Demo Nav2 scan observations in the layered global map#2
Conversation
9a0e9c7 to
b39d9d9
Compare
Signed-off-by: SamuelFoo <fooenzesamuel@gmail.com>
b39d9d9 to
30c198e
Compare
Signed-off-by: SamuelFoo <fooenzesamuel@gmail.com>
30c198e to
e5e80e7
Compare
Signed-off-by: SamuelFoo <fooenzesamuel@gmail.com>
e5e80e7 to
6bc186f
Compare
| from math import cos, isfinite, sin | ||
|
|
||
|
|
||
| def scan_obstacle_points( |
There was a problem hiding this comment.
This function needs to be slightly fleshed out. As it stands it currently doesnt do any clearing or a good job of marking either. I strongly urge looking into the Bresenham's Line Algorithm for clearing free space and marking. In fact perhaps we should consider some type of RayCast message as an option as it would make the marking far more reliable and better reflect the nature of an observation from a common sensor like a camera.
| This demo combines laser observations from three stationary Nav2 robots in the global `/map`: | ||
|
|
||
| ```bash | ||
| ros2 launch rmf_layered_map_server_demo nav2_observations.launch.py |
There was a problem hiding this comment.
Screen shots of what to expect would be good. Consider making the scan points more visible in rviz. It took me quite some time to figure out what I was staring at and locate the obstacle.
Signed-off-by: SamuelFoo <fooenzesamuel@gmail.com>
Signed-off-by: SamuelFoo <fooenzesamuel@gmail.com>
Signed-off-by: SamuelFoo <fooenzesamuel@gmail.com>
Signed-off-by: SamuelFoo <fooenzesamuel@gmail.com>
Signed-off-by: SamuelFoo <fooenzesamuel@gmail.com>
Signed-off-by: SamuelFoo <fooenzesamuel@gmail.com>
4b81ea3 to
b6d70d6
Compare
|
Each sampled laser beam now publishes:
The map server now accepts and rasterizes I used one triangular sector per sampled beam instead of expanding each ray into Bresenham point regions, keeping the published region count bounded. Added tests for scan clearing, no-return rays, patch ordering, convex-region composition, and RViz visualization. |
Signed-off-by: SamuelFoo <fooenzesamuel@gmail.com>
Signed-off-by: SamuelFoo <fooenzesamuel@gmail.com>
Signed-off-by: SamuelFoo <fooenzesamuel@gmail.com>
|
Moving robot demo: Screen.Recording.2026-07-16.022020.mp4 |
|
These visuallizarions are really nice!! |

New feature implementation
Implemented feature
This PR adds a three-robot Nav2 observation demo for the layered global occupancy map in open-rmf/next_gen_prototype#36.
Each robot converts local laser endpoints into temporary
MapRegionUpdatepoint regions. The layered map server combines all three sources in/map, which is displayed in a separate RViz window.Implementation description
This PR adds:
discourse/3-layered-global-occupancy-map.mddocuments the committed interface, server behavior, raw-scan demo, tuning controls, and current limitations. Validation covered 13 Rust tests, 3 scan-conversion tests, Python linters, and a headless three-robot Gazebo run.Next steps
GenAI Use
We follow OSRA's policy on GenAI tools
Generated-by: GPT-5