Closed mxgrey closed 2 years ago
Merging #70 (1fe4987) into main (e8505b4) will increase coverage by
0.47%
. The diff coverage is35.50%
.
@@ Coverage Diff @@
## main #70 +/- ##
==========================================
+ Coverage 22.16% 22.64% +0.47%
==========================================
Files 359 364 +5
Lines 29181 29995 +814
Branches 13306 13811 +505
==========================================
+ Hits 6468 6792 +324
- Misses 13804 13918 +114
- Partials 8909 9285 +376
Flag | Coverage Δ | |
---|---|---|
tests | 22.64% <35.50%> (+0.47%) |
:arrow_up: |
Flags with carried forward coverage won't be shown. Click here to find out more.
Impacted Files | Coverage Δ | |
---|---|---|
rmf_traffic/include/rmf_traffic/DetectConflict.hpp | 0.00% <0.00%> (ø) |
|
rmf_traffic/include/rmf_traffic/Route.hpp | 0.00% <ø> (ø) |
|
rmf_traffic/include/rmf_traffic/Trajectory.hpp | 25.00% <ø> (ø) |
|
...mf_traffic/include/rmf_traffic/agv/Interpolate.hpp | 0.00% <ø> (ø) |
|
rmf_traffic/include/rmf_traffic/agv/Planner.hpp | 11.11% <0.00%> (-1.39%) |
:arrow_down: |
...traffic/include/rmf_traffic/agv/RouteValidator.hpp | 40.00% <ø> (ø) |
|
...affic/include/rmf_traffic/agv/SimpleNegotiator.hpp | 0.00% <ø> (ø) |
|
...mf_traffic/include/rmf_traffic/schedule/Change.hpp | 66.66% <ø> (ø) |
|
..._traffic/include/rmf_traffic/schedule/Database.hpp | 0.00% <0.00%> (ø) |
|
...mf_traffic/include/rmf_traffic/schedule/Mirror.hpp | 0.00% <ø> (ø) |
|
... and 89 more |
This PR introduces the most significant change to the traffic negotiation system in the last two years.
Previously traffic management was entirely time-based. Traffic participants would make predictions about their expected trajectories through space-time and then other participants have the opportunity to plan their own trajectories around that, or create conflicts to trigger negotiations. When one or more participants inevitably deviate from the timing of their plan (either because of errors in their predictive models or because of external factors), a negotiation gets triggered so they can re-adjust their predictions and avoid collisions. That time-based approach led to a considerable amount of logically unnecessary cycles through potentially expensive planning effort. It also carries a risk of allowing robots to end up conflicting despite their best efforts to negotiate, because sometimes a negotiation would not get triggered quickly enough.
The new traffic dependency system allows traffic participants to explicitly express their dependencies on each other's traffic plans. With this added layer of semantic information, robots can ensure they stay out of each other's way by explicitly watching the progress of other participants and waiting at a safe location until the other participants report that they are out of the way.
This new system should drastically reduce planning effort, reduce the frequency of negotiations, and ensure good spacing between robots that would otherwise have a risk of collision.
This PR depends on