Vehicle command architecture
The system can include a motion planner and a vehicle controller. The system can optionally include or operate in conjunction with a remote operator platform, a remote data system 130 , and/or any other suitable components. However, the system can additionally or alternatively include any other suitable set of components. The system can function to facilitate causal command of a vehicle based on the vehicle state. Additionally, the system can function to maintain positive train control (PTC) with the distributed command architecture.
1 . A method for command of a rail network, comprising:
receiving a respective data packet from each of a plurality of vehicles within the rail network, each respective data packet comprising a vehicle vector clock and vehicle state data;
updating a corresponding vector clock for each vehicle of the plurality of vehicles based on the vehicle vector clock of the respective data packet; and
for each vehicle of the plurality of vehicles, determining a command based on the vehicle state data and the corresponding vector clock;
in response to determining the command for each vehicle of the plurality of vehicles:
incrementing a first logical clock of the corresponding vector clock, wherein a second logical clock of the corresponding vector clock is updated based on the vehicle vector clock; and
wirelessly broadcasting a command packet comprising the command and the corresponding vector clock; and
at a first vehicle of the plurality of vehicles:
responsive to an autonomous operation of the first vehicle, incrementing the second logical clock of the vehicle vector clock;
subsequently, receiving the command packet; and
responsive to a determination that the second logical clock of the vehicle vector clock exceeds the second logical clock of the corresponding vector clock of the command packet, continuing to execute the autonomous operation without responding to the command packet.
2 . The method of claim 1 , wherein the corresponding vector clocks for each vehicle of the plurality of vehicles are updated at a computing system which is remote relative to the vehicles, wherein each vehicle of the plurality of vehicles is configured to autonomously execute the command for the respective vehicle responsive to establishing causality between the vehicle vector clock maintained onboard the vehicle and the corresponding vector clock at the computing system.
3 . The method of claim 1 , wherein each vehicle of the plurality is autonomously controlled based on a partial ordering of the vehicle vector clock and the corresponding vector clock.
4 . The method of claim 3 , wherein a first logical clock of the vehicle vector clock of a second vehicle of the plurality of vehicles is incremented responsive to receipt of the command for the second vehicle; wherein a second logical clock of the vehicle vector clock of a second vehicle is incremented responsive to execution of the command for the second vehicle; wherein the second logical clock of the vehicle vector clock of the second vehicle is further incremented responsive to an autonomous control operation.
5 . The method of claim 1 , wherein the command packet is repeatedly broadcast without incrementing the corresponding vector clock.
6 . The method of claim 1 , wherein the respective data packet from each vehicle further comprises metadata, wherein the commands are determined based on the metadata.
7 . The method of claim 6 , wherein the command packet for each vehicle comprises a set of heartbeat signals based on the metadata, wherein each vehicle of the plurality of vehicles within the rail network is autonomously constrained by the set of heartbeat signals of the command packet.
8 . The method of claim 7 , wherein a first heartbeat signal is associated with a teleoperator video latency.
9 . The method of claim 7 , wherein a first heartbeat signal is associated with a roundtrip communication latency with the vehicle.
10 . The method of claim 1 , wherein each command packet comprises a track reservation for a portion of the rail network and a map version.
11 . The method of claim 1 , further comprising: at the first vehicle, after receiving the command packet, broadcasting a data packet comprising the vehicle vector clock.
12 . The method of claim 1 , further comprising, at a second vehicle of the plurality of vehicles:
receiving the command packet for the second vehicle;
based on the command packet for the second vehicle, updating the vehicle vector clock and command state of the second vehicle; and
autonomously controlling the second vehicle based on the command state of the second vehicle.
13 . The method of claim 1 , further comprising: determining satisfaction of a trigger condition corresponding to a communication delay with a second vehicle of the plurality of vehicles, wherein updating the corresponding vector clock of a second vehicle of the plurality of vehicles based on the vehicle vector clock of the respective data packet comprises: responsive to determining satisfaction of the trigger condition, initializing the corresponding vector clock for the second vehicle using the vehicle vector clock of the respective data packet.
14 . The method of claim 1 , wherein each respective data packet comprises a command state of the respective vehicle of the plurality of vehicles.
15 . The method of claim 14 , wherein the command comprises an active command configured to modify a motion plan of the vehicle.
16 . The method of claim 1 , wherein determining the command for a second vehicle of the plurality of vehicles is based on an input from a remote operator.
17 . The method of claim 1 , wherein each command packet is determined based on the vehicle state of the respective vehicle of the plurality of vehicles and a set of vehicle reservations indexed relative to a track map.
18 . The method of claim 1 , wherein each command packet further comprises a set of metadata, wherein a vehicle heartbeat mechanism is associated with the set of metadata.
19 . The method of claim 1 , further comprising updating a Positive Train Control (PTC) track database based on the vehicle vector clock received from each vehicle.