-
In the rmf_traffic package, we have this core class "Route", which have the following function:
It says, it will make this Route's certain checkpoint to "depend on" the other participant's checkpoint. Edit: |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 3 replies
-
I think the best way to explain it is to share this slide. For a short overview, a "traffic dependency" means that one robot intends to wait at a certain waypoint (let's say B2 to match the slide) along its route until another robot has reached a certain checkpoint (let's say A3 to match the slide). We encode that explicitly into the traffic schedule because if there is a significant delay in the robot that is being waited on, that could be interpreted as a traffic conflict. For example, if we had a purely time-based system and the schedule says that Robot A will reach A3 at t=10 and therefore Robot B will wait at B2 until t=10, that would be fine if Robot A has no delays. However, what if in real life Robot A is only just reaching A2 at t=10? The schedule would see that as a conflict and demand that the robots re-negotiate their routes. That renegotiation is a waste of effort if we can just tell the schedule that Robot B will wait at B2 until Robot A reaches A3 regardless of the precise timing. Then the schedule knows that delays in Robot A prior to A3 will not create any conflicts with Robot B after B2. Algorithmically this means that when detecting traffic conflicts we can have the conflict detector ignore any "collisions" it detects between
We would still check for collisions that involve Robot B's path before B2 or Robot A's path that come after A3. |
Beta Was this translation helpful? Give feedback.
I think the best way to explain it is to share this slide.
For a short overview, a "traffic dependency" means that one robot intends to wait at a certain waypoint (let's say B2 to match the slide) along its route until another robot has reached a certain checkpoint (let's say A3 to match the slide). We encode that explicitly into the traffic schedule because if there is a significant delay in the robot that is being waited on, that could be interpreted as a traffic conflict. For example, if we had a purely time-based system and the schedule says that Robot A will reach A3 at t=10 and therefore Robot B will wait at B2 until t=10, that would be fine if Robot A has no delays.
However, what i…