ros-navigation / navigation2

ROS 2 Navigation Framework and System
https://nav2.org/
Other
2.54k stars 1.28k forks source link

Create 3D static costmap layer and 3D map server #1787

Closed SteveMacenski closed 2 years ago

SteveMacenski commented 4 years ago

For running 3D SLAM, visual slam, and others, it would be useful to have a 3D static layer taking in a 3D map from a map server and populating it with the same mechanics as the existing static layer. For 3D SLAM, its loading the dense map, but VSLAM, its loading the sparse feature map.

This would involve:

This is especially important for localization for the global costmap. The global costmap is generally sized by the map size, so we need something to provide the structure of the environment as well as the actual places we can't go from static obstacles. For SLAM sessions, its much less important since the depth information processed into a Voxel Layer will largely create a rough map of the environment as new information gets in the view of the cameras.

sunbo57123 commented 4 years ago

hi,

Using PCL IO PCD to load maps from file and publishing probably a pointcloud to a topic

It may be realised by adding a new msg file for pointcloud, through which the map server could publish pointcloud file information, and then adding a specific method to MapIO for loading point cloud files. Does this draft fit this requirement?

naiveHobo commented 4 years ago

Currently 2D maps are stored in the PGM format and published by the map_server as nav_msgs/OccupancyGrid msgs. Analog to that, the 3D map server should be able to load 3D maps which are stored in the PCD format and the map_server should publish these 3D maps as sensor_msgs/PointCloud2 msgs.

SteveMacenski commented 2 years ago

This is baked into https://github.com/ros-planning/navigation2/issues/1757 so closing as redundant to group related topics together