Yard Automatic Train Operation Concept Demonstrator

This work demonstrates some thoughts and concepts around the general idea of Automatic Train Operation (ATO), which is a technology for computer-controlled driving of locomotives.  The demonstrator consists of a simulator, which is written in Node.JS and serves three distinct APIs and three distinct Single Page Applications (SPAs) that use Angular.JS and Bootstrap frameworks.
The three APIs and SPAs are for:
  • A dispatcher: someone in the railroad back-office who directs the flow of traffic
  • A yard crewman: someone who works "boots-on-the-ground" in the train yard, performing a variety of tasks such as providing "point protection" (i.e. visually confirming that a train has room to move without running into something, typically when the locomotive is in reverse), operating switches, etc.
  • The automatic locomotive

The Node.JS server uses Express to serve the APIs.  It contains a track model made of "blocks" (contiguous lengths of non-diverging or -converging track) and "switches" (points at which one track converges into or diverges from another).  The track model contains a routing module, which uses Djikstra's algorithm to plan the path for a locomotive to travel from its current location to an arbitrary point in the train yard, without striking a railcar or locomotive (unless intentionally coupling to the railcar).

The simulator contains a model of a subset of the Norfolk-Southern Elkhart, Indiana Yard facility, which can be seen on Google Maps here.

The video below shows the demonstrator and its three SPAs in action.


 In the video, the locomotive ATO is first engaged in "Automatic Mode" by following the on-screen prompts.  Next, the yard crewman logs onto a simulated mobile phone app using his employee ID.  Then, the dispatcher sends a demonstration "plan" to the system.


The demonstration plan builds a train on the "trim" end of the yard by coupling to railcars on three different classification tracks and then pulling the train onto a departure track.  Each time that the locomotive makes a move, a "point protection" mission is sent to the yard crewman, who is given a simulated view from a track-mounted camera or a forward-facing camera mounted to the locomotive.  He is also given the same view as the dispatcher to view the planned route of the train.  The yard crewman is provided with an Emergency Stop button, which can be used to send a stop command to the locomotive ATO system in the event that the route is fouled by some obstacle.


Once a move is identified, the system identifies the switches that are on the planned route and lines them appropriately by issuing commands to simulated switch machines.  On the dispatcher view, switches which are misaligned are in red and turn green when they become aligned.

The system provides missions to the locomotive ATO controller in the form of directions of travel and distances to travel.  On the ATO screen, the limit of authority (pictured as a flag marked with a zero speed limit) is displayed to indicate where the locomotive should stop.