ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

2D navigation with 3D map

asked 2019-10-10 04:02:17 -0600

anymate98 gravatar image

I'm trying to do a SLAM and navigation on a flat surface. However, 2D SLAM may result in incomplete mapping for some machines. For example, some machines would not pass through table due to its size and the place sensor is placed during navigation. So 3D map would be a better solution regarding those limitations. But the environtment is flat enough to be considered as 2D, so I want to do navigation in 2D with 3D maps. In my plan, two 2D Lidars (vertical and horizontal) and possibly additional IMU would be used. Is it thoretically possible to perform 2D navigation with 3D map?

edit retag flag offensive close merge delete


I think the question here is how do use NavStack's 2d path planning (NavFn or DWA) on 3d slam maps generated by cartographer or hdl_graph slam. 3D slam maps are usually .pcd files and hence we do not have "grid map" (.pgm) for path planning and for costmap2d node of NavStack.

darshb34 gravatar image darshb34  ( 2021-01-10 05:05:43 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2019-10-10 12:30:10 -0600

updated 2019-10-10 12:30:35 -0600

If your concern is getting under tables, you can set the max obstacle height to buffer into your environmental representation to just a little taller than your robot. While your cameras would see the table, since its taller than you, you dont really care. For taller robots, they might care and again just set the max obstacle height to a little more than its actual height.

It is alluring (and I constantly fall into this working in perception) to want to use all the data and have the richest representation as possible, but unless the robot needs to later interact with the table and not just navigate around it, its largely unnecessary and would make you have to implement a planner that checks validity based on height in its search as well (which isn't hard, but isnt "free" computationally).

edit flag offensive delete link more


you can set the max obstacle height to buffer into your environmental representation to just a little taller than your robot.

and for users that don't know where this can be done: is there a setting for this (in any of the commonly used packages)?

gvdhoorn gravatar image gvdhoorn  ( 2019-10-10 12:40:21 -0600 )edit

Ah yes, in the obstacle, voxel, or spatiotemporal costmap_2D layers.

stevemacenski gravatar image stevemacenski  ( 2019-10-10 12:44:15 -0600 )edit

Thaks for the tip. However, because I currently tried making 2D maps only, I'm unclear about some things. Does this answer assume that the navigation stack takes 3D maps as an input, and if it is right, in which format? Or is it just talking about 2D SLAM with .pgm and .yaml map style for localization and using 3D LaserScans for determining obstacles and putting it into the costmap while navigating? I am trying to use cartographer in SLAM (and possibly in localization, too).

anymate98 gravatar image anymate98  ( 2019-10-10 20:29:42 -0600 )edit

it makes no assumption what so ever on the map

stevemacenski gravatar image stevemacenski  ( 2019-10-10 20:41:36 -0600 )edit

Question Tools

1 follower


Asked: 2019-10-10 04:02:17 -0600

Seen: 1,380 times

Last updated: Oct 10 '19