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

Google Cartographer 3D map for localization [closed]

asked 2019-06-12 07:18:58 -0600

zeynep gravatar image

updated 2019-06-14 02:18:11 -0600

Hello, I want to use google cartographer 3d pure localization in my project. I have Velodyne VLP-16 LIDAR. First I will create a 3D Map for localization. So cartographer will use this pbstream file for localization.

In 3D, cartographer does not publish a 2D occupancy grid map so i will create 2D map with slam-gmapping for ROS navigation Stack. I plan to use cartographer only for localization instead of AMCL.

Localization and Navigation will be made on different maps. It is a problem.

My question is ; how I can make Cartograpger 3D localization and ROS Navigation Stack work together?

edit retag flag offensive reopen merge delete

Closed for the following reason the question is answered, right answer was accepted by zeynep
close date 2019-06-17 08:27:44.985390

1 Answer

Sort by ยป oldest newest most voted

answered 2019-06-15 13:17:28 -0600

JustinBlack02 gravatar image

You should use pbstream_map_publisher and/or occupancy_grid_node to create the occupancy grid. If you are running pure localization then your maps will be the same since they will both be generated from the same pbstream.

edit flag offensive delete link more


Thanks for your reply but accroding to it is not a 2D Occupancy Grid Map that ROS Navigation Stack can use, it is a X-ray map . According to damonkohler answer, they include all range data projected into a 2D plane. X-rays are a 2D representation of vertical density that's useful for humans, but probably not for robots. So it is useless for Navigation Stack.

zeynep gravatar image zeynep  ( 2019-06-15 14:17:21 -0600 )edit

Your entire problem is self inflicted. You localize in 3D and navigate in 2D. Why don't you make your dimensions match? If you navigate in 2D then localize in 2D and use the occupancy grids. If you really want to localize in 3D then you should query the submaps for their point clouds, convert those to e.g. octomaps for 3d navigation or slice along the z axis in the domain your robot will navigate and project the resulting cloud down to 2d to convert that to an occupancy grid.

JustinBlack02 gravatar image JustinBlack02  ( 2019-06-15 15:16:08 -0600 )edit

I will try to convert 3D pbstream file to point cloud data. I will create an elavation map in 2D from this point cloud data.

zeynep gravatar image zeynep  ( 2019-06-17 03:49:45 -0600 )edit

Please mark this answer as accepted or add your own answer for future users.

JustinBlack02 gravatar image JustinBlack02  ( 2019-06-17 08:18:54 -0600 )edit

Question Tools



Asked: 2019-06-12 07:18:58 -0600

Seen: 2,739 times

Last updated: Jun 15 '19