Manifest Scheduled Robot Trains

Currently limited to Passenger and Unit Class Trains.

Local, Way, and Fast Freight Class Trains are NOT supported with Robot Trains. These latter three classes require a human crew to effect Setouts and Pickups.

This version obeys directives to take alternate paths where there are mainline and bypass or runaround tracks. My layout has seven runarounds that our robot trains can use when there are turnout or signal conflicts into a block on the specified route. Currently, when we approach a turnout that is an Entry Portal of a Bypass. we only evaluate for conflict once before taking the alternate leg. We will test with multiple time delayed attempts before choosing the alternate leg in the next version. Recall that our layout has a single track mainline with bidirectional signaling. So each bypass has two routing legs, main and alternate, in each direction or 28 route legs in all.

If there are stops on the specified route that is bypassed, there is no attempt, in this version,  to revisit the bypassed block and missed stops.

The Bypass track sub-plan for my robot trains is shown here:

Robot Train Bypasses


The following paragraphs outline the steps required to create multiple scheduled robot train scripts using MRRM. The needed XML Logix to effect the scheduled start of each train using a fastclock is also generated by MRRM. This capability allows museums and other demonstration layouts to have multiple scenarios of multiple concurrently running trains if the needed trackwork and support hardware and software are installed.

The steps are:

1. Create Consist Names and assign at least the lead locomotive. The optional sound may be sourced with the lead loco or the first slave loco. There is a runtime option to assign a lead loco and 1st slave loco.

2. Create the Train specification and Rules

3. Create the manifests

The above three steps are shown in this demo:

4 Create the Robot train routes.

5. Assign Train stop and pass-by specs to Robot Train. Up to four stops, station pass-bys and crossing are supported per track block and sensor.

6. Compute block sensors, signals and turnout settings.

7. Create JMRI jython scripts for each train using above data. Place each script in the Jmri/jython/train-runs subdirectory


8. Create JMRI Logix XML (Panel) snippet for all robot trains in the subdirectory. A Fastclock spec is added to the XML

9. Start JMRI. Open Preferences. Go to Startup/Files tab. Enter command to add the XML panel to JMRI specs. e.g. "Preferences/JMRI/Mnfst LOGIX and fastclock.xml"


10. Restart JMRI and start Fastclock. Open Script Output in the Panel menu

11. Observe Train startups iaw scheduled time. Observe script output

12. Follow script messages for each loco. A dispatcher or aide can resolve Train halts if a train is waiting for a signal or turnout. Generally such scenarios can be avoided once the alternate leg is chosen and the train is stopped before the Exit portal. The script will keep trying until the turnout or signal holding condition is resolved. Much testing is planned

13. Continue step 12 until all robot trains complete their run scripts.

The next video demos a sample script and its progress on my virtual layout using the JMRI Digitrax simulator. Future videos will use my real layout with JMRI.

Automated Collision Avoidance

Two trains using a bypass to avoid head-on collision.