Yeah and that's fucking ridiculous and a damning indictment of the glaring incompetence of train companies.
If I can have reasonably accurate gps readings of my phone while I'm on the train, there is zero reason for train companies to not have systems that are at least as accurate.
Does your phone's GPS work in a tunnel? What happens if GPS ever gets jammed (or worse, spoofed)?
Aviation also doesn't exclusively rely on GNSS positioning, so why should train protection, given that it's also extremely safety critical?
> Does your phone's GPS work in a tunnel?
My car's GPS does, using dead reckoning.
Trains can also use dead reckoning.
/me checks notes, I've heard that they move on inflexible things called "rails" that almost never change the location.
The thing is that trains move way faster compared to friction (which is needed for breaking and manoveering) than cars. The equivalent is if you would be driving 900-1200 km/h with your car[1]. Good luck being able to break in time on that speed and estimating your position with GPS.
Also the hard part is knowing the position of the others and their trajectory, which changes in between moving towards them and is done by a third party. The normal passing distance is smaller than the width of your vehicle and you can only change your own direction every few kilometers. That means that the others trajectory towards you can only become known after you are already past your last opportunity to change your trajectory and even within your breaking distance. Good luck!
[1] Friction for cars on the road is 0.010-0.015, for trains 0.001-0.002; train speed 120 km/h * 7.5 = 900 km/h equivalent for car; that's not even a high-speed train.
Part of the problem is multiple tracks. Those tracks may be only 10 feet (3 m) apart. (I don't know if high-speed rail lines in Spain are that close, and I don't know if the line where the accident occurred was double track.)
"Reasonably accurate GPS" trying to determine which track you're on at 150 mph is not as simple as you make it sound. Yeah, it can determine how far along the track you are. But when you get two trains moving toward each other, each at 150 MPH, do you really trust that GPS to tell you that they're on different tracks?
I agree that the problem here has no easy, general and automatic gps-based solution but I think it's helpful to keep the actual likely situations in mind. Usually we have the most trains/densest timetables close to major transport hubs where speeds are low anyway and driving 'on sight' is a good compromise of safety and keeping things working. Where speed really matters - outside of major hubs, straight ruralish routes - we simply don't usually have great density of trains AND tracks. At least from my travels in western Europe I don't think I've ever seen more than two tracks in the same direction on high-speed-segments. So if we keep that in mind and don't expect a general and automatic solution, a simple, gps-based fallback-system that requires all trains that are within a radius of X of each other (either in time or space) MUST coordinate, else they both shutdown/move on sight, could work reasonably well. In reality and for the involved parties (the trains that are close to each other), it's a very human-scale problem.
Trains can't change lanes without warning like a Nissan Altima on the Dan Ryan Expressway. The only way a train can move from one track to an adjacent track -- or get on the first track in the first place -- is if switches are set to allow the train onto that track. And on any modern high-speed line, those switches are centrally controlled by dispatch.
Keeping track of which parallel track a train was on automatically was a solved problem a hundred years ago, using relays and lights and hard-wired logic. Adding computers and GPS greatly increases the precision with which dispatch knows position and speed along the track, but knowing which track has not changed in the last century.
Yes, but as long as the central signalling system is working, it already knows where the train is, with no need to involve GPS. (And where modern signalling and train protection systems need increased precision as compared to the granularity of track circuits/axle counter sections, the solution usually involves a combination of on-train odometry plus track balises at occasional intervals in order to reset any inaccuracies that might have accumulated.)
What we're talking about here is some sort of TCAS-equivalent for the case where the central signalling is down – while it's easy to accurately localise trains with the aid of a central signalling system that authoritatively knows about the infrastructure layout, it's quite more difficult when you're trying to do the same thing in a decentralised, train-local fashion.
Yep, that's what I was trying to convey as well. There also seems to be RCAS, but it sounds like a newly invented system. https://www.dlr.de/en/kn/research-transfer/projects/next-gen...
And as of now, I suppose that RCAS (or RCAS-like systems) is best suited for (especially minor) single track branch lines that don't currently have a full-scale signalling system already up-and-running, but instead still rely on "Timetable & Train Order" and similar systems.
Single track means that at least outside of stations, collisions can be reliably identified without much danger of false positives (and for station areas you can just institute a blanket speed limit to compensate for the gap in RCAS coverage, which might not even be any lower than the speed limit required for traversing diverging/spring-operated/hand-operated points there anyway), and no already existing full-scale signalling system means that RCAS actually provides a significant safety benefit and is therefore likely worthwhile from a cost-benefit-analysis point of view, too, if you're actually regularly operating multiple trains simultaneously on that kind of infrastructure.
Whereas on multi-track mainline railways avoiding false positives is much harder and normally you should already have proper signalling and train protection systems in place anyway, so the additional safety benefits of RCAS would be much more marginal.
[dead]
>Trains can't change lanes without warning
Oh, they can, but it's usually a very traumatic event.
Basically what was the case with the previous accident in Spain.
It's very easy since there is limited ability for trains to change tracks, so the location history of the train is a strong indicator of which track it is on. Even Google Maps can tell you which lane you are in since god knows when, and cars can freely change lanes. And that's just consumer software. For something commercial like a train they could trivially solve this problem with something more robust. But I'm not familiar with the Spanish system; how much of the engineering did they do?
There are switches that move trains between tracks. Now you need every switch to report, keep a history of that. Many trains also separate and combine. Trains sometimes go backwards to be switched.
It's not impossible. But handwaving GPS placement of trains at the correct location, direction, and track deserves more than a handwave as trivial.
All of those failure modes can be accommodated. I fail to see anything here a competent engineer couldn't address. I speculate it's not a technical problem, but an operational and cultural one. This is not rocket science.
But it must be also cheaper and more reliable than the current system, otherwise nobody is going to implement it.
Two rtk receivers with LTE including a little battery backup would cost what, $2,000 per car tops?
Presumably switches already report their position to somewhere.
It's absolutely unacceptable for this problem exist in today's world.
> Presumably switches already report their position to somewhere.
Yeah and this somewhere already knows whether a crash is going to happen. In which case your solution brings no benefit. You can't rely on the correctness of a system, which you want to make an alternative to, to help in the case the original system fails.
This discussion focuses on a non-problem (granted partly due to an imprecise comment of mine). The system knows where all the trains are and also that a crash will happen, if the decision is made, that then indeed was made.
What is needed is that the system needs to convince the operator there is still a problem, after it proved itself unreliable. My suggestion would be a log of the constraints the prover encountered while determining whether there is a conflict. This certainly already exists somewhere in the background, but I am not aware whether that is currently shown to operators in deployed systems. It does exist somewhat in the research systems we use in university.
Multiple independent systems. Easy to ignore a single system, but two or more ? Would have to have a death wish
When I wrote that comment I would have answered, that you already need to distrust a system, that of course still have the authority to sound like it would be right. Also from other accident reports, my understanding is that relying on yet another system causes people to make even more errors, while when they start to manually assess the situation from first principles, they are able to grasp the fundamental error, because they are questioning every assumption, as they are reconstructing a world model different from the automatic system. But the latter takes more time and effort, so people tend to do the former.
The thing is that in modern automated dispatching you only have the same world model as the automatic system, so when there is an error you have the same world model as the system, but that just detected, that that does not equal the actual state of the world. And often the error is in fact a false positive.
But now, I actually think that this accident was caused by several systems being in effect: https://news.ycombinator.com/item?id=50298796
Yes, it can tell you. How perfectly, though? Perfectly enough to bet 60 lives on?
When Google Maps gets wrong what lane I'm in, nobody dies. It can be right 99% of the time, that's good enough. It's not good enough for a train system, though - at least, I suspect it's not. I'd want a lot more than "it works in my car" before I trusted it.
Can we just have it as an additional data point, on top of what we should already know from where the train should be from switching history? If we get 99% accuracy, is that enough to check with an operator “specify which track you are in, left or right” when the measured value is different than the expected?
In addition to that being unpractical, the train doesn't even know the state of switches, i.e. not whether it is on the same track as some other position. It's just that this is undecidable for a single train. (This is what my first comment was about, it's simply not known how to solve it on the level of a single train, likely because it is impossible.) However the answer for what to do if a train can't trust the network, is don't move. Or move by sight, which is limited to 40km/h for good reason.
On the other hand this is a complete non-issue and solved for more than a century on the network level. So there is zero need to invent satellite or vision based train detection at worst even using statistical systems, when you can use deterministic systems, for example using the fact that a train is out of metal, so it's detectable by the train closing a electric circuit between the rails. Or using the sensors that are installed at every signal, switch or other positions for precisely this question.
HN does railway safety... The Dunning-Kruger level in this thread is ridiculous.
As a passenger, I'm very glad software engineers haven't (fully) taken over aviation and railway safety yet.
Google maps gives me the directions for the express lanes when I'm in the normal lanes and vice versa like 50% of the time, and that's an order of magnitude greater error in distance than the distance between adjacent train tracks. And several orders of magnitude greater failure rate than is acceptable for a safety system.
RTK is more than capable of figuring out what track you are on
It can be on the other track right now, but change to your track in the future. Or in other words, the topology of the network changes in operation. Whether the track you are on and the track another train is on, is the same or not is not decidable without knowing the current network state.
Would that work in tunnels and forests too?
Tunnels are controlled by a single block - only one train can ever be allowed access at once, period. Until the "current" occupant train is verifiably out of the tunnel, that block is forbidden to all.
Forests are irrelevant; rail right-of-way contains no trees, and is wide enough to assure clear "view" of satellites.
You are just answering how the current system actually works. This discussion was about how a hypothetical system works based on GPS or radar alone.
> Tunnels are controlled by a single block - only one train can ever be allowed access at once, period.
Absolute nonsense. Do you have any idea how long some tunnels are?
There are actually different definitions for what a block is. It can be both a section where you can decide for trains to enter or where you can change their sequence (Zugfolgeabschnitt vs. Zugmeldeabschnitt, don't know the English terms) Also it can be a physical implementation of any constraint between components of different stations.
But yes there does not need to be a limitation on there only being a single train in a tunnel.
> a damning indictment of the glaring incompetence of train companies.
No, what I describe has nothing to do with the companies, that's the research state. It's just an indictment of you making bold statement about a subject, you don't now enough about.
> I can have reasonably accurate gps readings of my phone
Would you dare to cross on a rope over a deep valley, blind using only GPS readings of your phone? Because that's kind what you are suggesting, expect you also move a few hundred other people.
> Would you dare to cross on a rope over a deep valley, blind using only GPS readings of your phone?
Hang on, this is nothing at all like that - trains run on fixed tracks. The only bit of data we are interested in for collision avoidance is the linear offset along the track. Even the shittiest GPS fix of all-time would give a good-enough intersection with a fixed path to avoid crashing into a second stationary train in the open country-side (do you see any satellite line-of-sight blockers in the crash footage?)
> The only bit of data we are interested in for collision avoidance is the linear offset along the track.
So that is naive, but assuming that would be all that you need, with GPS you would also need the positions of all other trains. But why would you transmit all this information to every train, instead of just computing the collisions in a central node? (That's what is done now.) A better fit for what you suggest would be radar, and this does exist. [1] But that's where your original assumption is naive. You regularly pass other trains within <2m at high speeds, so linear offset is not all you need.
> But why would you transmit all this information to every train, instead of just computing the collisions in a central node?
Because central nodes can fail (as they did here, both human and machine), and providing this redundant data allows both the computer and the human-in-the-loop on the fast-moving chunk of steel to independently validate the decisions coming from the central node.
> You regularly pass other trains within <2m at high speeds, so linear offset is not all you need.
In this collision, both trains were on the same track. So while we obviously care about adjacency issues in the general case, this specific failure mode can be detected purely via a linear offset.
You can and do have redundancy in the central node already. Also that's not what failed here.
> In this collision, both trains were on the same track.
Yeah, but how do you distinguish that? So when I understand you correctly, what you want is: Find another moving chunk of metal in the radius of 2km, which moves toward you, but not in a direct or ballistic trajectory, but in a arbitrary complicated trajectory, but which can lookup in a database. Also you are operating in the real world, so there are potentially houses, trees and mountains in between. I guess that would be possible, but it would be really expensive. Your best bet would be to adapt a missile detection and targeting system from the military. A system which does exist and is somewhat similar is RCAS (https://www.dlr.de/en/kn/research-transfer/projects/next-gen...).
> Yeah, but how do you distinguish that?
By enumerating the tracks?
I feel like you are intentionally trying to turn this into a spherical cow situation by insisting on solutions that work in an information vacuum. All of this sort of problem in the real world is solved by sensor fusion from multiple data sources.
Trains are captive to a particular track - they can only change tracks at specific pre-determined junctions. With a pretty minimal sensor feed from each junction we can statically determine which track segment a given train is on. With GPS we can shrink that segment length down to a few kilometres. By sharing data persistently every single train can validate that central command-and-control is not about to run it into another train from behind...
There cases which are genuinely challenging engineering problems (i.e. derailments that impinge on adjacent tracks), but this trivial case of bumper cars is not one of them.
>> Yeah, but how do you distinguish that?
> By enumerating the tracks?
How do you distinguish that the <2km away detected moving train runs on your track on not on the one directly besides you?
> Trains are captive to a particular track - they can only change tracks at specific pre-determined junctions.
Yeah, but you do not know which one it runs on. Your entire point is that you do not trust the information the infrastructure knows. If you do allow to use information from the infrastructure, then why not use the sensors that already exist along the whole train network? It's also very unlikely that there is something electrically connecting the two rails of a track, that you would like to run over. So why wouldn't you trust that information, but some vague GPS signal?
> we can statically determine
But the current state of the art is, that you deterministically and provable know where a train is. Why would you use a more expensive, less safe system? The current focus to reduce errors in computing train conflicts is to prevent random bit flips due to radiation at the same time in three different computers running different software.
> I feel like you are intentionally trying to turn this into a spherical cow situation
The situation where you proposal makes sense, but the current system does not, is a spherical cow situation, that's my point.
> that you deterministically and provable know where a train is
You are the one who framed this conversation as it not being solved how to deterministically know where a train is. Everyone else in here has been kindly suggest that if perfect information is unobtainable, then we should work with what we have
Oh, I see how you could think that, without context. That's in fact not what I wanted to say. I meant that pretty literally. The infrastructure of course knows where the train is.
> Trains are still not able to assess properly where they are, even using satellites and inside train sensors. Of course there is research on that, but it's still an unsolved problem.
*Trains* on there own! This IS a hard problem, how to do that with any other infrastructure. It IS current research and not yet solved. That is for example relevant, if you want to be able to run trains at full speed <1m tolerance, so that you can have more than one train stopping at a station <60s. All while still not paying for infrastructure and maintaining backward compatibility with a century old trains. (I mean in the future you could use the same to also couple trains at full speed, but that's still sci-fi.)
> That is for example relevant, if you want to be able to run trains at full speed <1m tolerance, so that you can have more than one train stopping at a station <60s.
...is that something you'd ever want? In general, it is, but the way it's handled is by having those trains stop on separate tracks.
Running multiple trains through the same station track in under 60 seconds means that all passengers must embark and disembark in under 30 seconds. That's very tight. I would venture to say it's too tight and meeting this goal would make the trains worse.
(And if passengers aren't getting on or off the train, then the train isn't stopping at a station.)
In a society where building more rail is not welcomed, trying to get more out of the existing tracks becomes critical. In a metro, time for embark and disembark of 30s is not unreasonable. https://de.wikipedia.org/wiki/Fahrgastwechselzeit#cite_ref-d...
Redundancy in a central node is an oxymoron. Safety critical systems need to work 100% of the time if any single node fails, and stop safely if there are multiple failures and it can't work properly. Doesn't matter if each individual node is 100% reliable by itself because connections fail too.
You can still have redundancy in the computation, that isn't prevented by being in the same location.
> Safety critical systems need to work 100% of the time
Railway safety must be safe 100% of the time, but not available 100% of the time. Also the point of a signal box is to make decisions about the order of train assignment to track. You absolutely do not want multiple points of truths for that.
The way I think of it, divide the tracks into segments. Before you put a train on a segment, you must ask a question - is there a train on it. There are only two answers possible, No, and something else. If it is something else, stop. Don't let the train on that segment.
There are optimizations possible like make segments smaller etc but the original algorithm is trivial. If we can't figure things out, we make segments longer and we slow down the trains until we can. I am positive for a sufficiently large track segment and a sufficiently slow train, we can always answer the question with a no.
You've "invented" interlocking railway semaphores, after which the computer science concept was named.
https://en.wikipedia.org/wiki/Railway_semaphore_signal
https://en.wikipedia.org/wiki/Interlocking
Congratulation you are reinventing 1890 state of the art.
The problem is when the modern computer-dependent system replaces the ancient one, and so then the computer is down there is nothing at all.
Actually in this case it seemed that the opposite was the case, there was another fallback system, but you needed to disregard it, and operate manually, but the operators likely didn't notice that. https://news.ycombinator.com/item?id=50298796
Which is why you generally don't do that.
who said anything about only using gps? I'm saying in addition to their current system!
The exact comment I answered to. https://news.ycombinator.com/item?id=50287160
i don't see where it says they should use gps alone. In fact it even mentions starlink in addition to gps.
>Even GPS + Starlink + 1 monitor (is that 50k€?) could have prevented this.
My reading on that sentence was that even a simple setup would have been sufficient to prevent this. Not that it should be the only thing.
My reading indicates, that "Even X could have prevented this." means that X is able to solve the issue on it's own. Otherwise X would in fact not prevent it.
- I don't think X would actually work, without actually eventually recreating part of the current railway control system, and the current rail control system alone already works better.
- I don't think another less reliable more costly safety system helps, when the current one already stated that there is a problem, and it was ignored.
>My reading indicates, that "Even X could have prevented this." means that X is able to solve the issue on it's own. Otherwise X would in fact not prevent it.
X on its own would have solved this particular crash, yes.
X + existing setup would solve this crash + all the other crashed the existing setup solves.