ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | Q&A
Ask Your Question

[Nav2] Why use Voxel layer over 2D layer for RGBD sensor?

asked 2022-07-19 02:08:11 -0500

jainr gravatar image


I can't get my head around why to use voxel layer if at the end, collision will be checked in 2D (as robot footprint is 2D). Thus, even having 3D obstacle data in costmap is no use and adding RGBD sensor to obstacle layer should perform perfectly with appropriate max_obstacle_height parameter.

Please let me know where am I going wrong.

Thank you!

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted

answered 2022-07-20 16:30:36 -0500

updated 2022-07-20 16:31:37 -0500

So you can raytrace and manage the world in its native coordinate systems that would then be projected into 2D for planning purposes. If you squash it to 2D and using 2D raytracing on native 3D data, its not going to work as well or accurately represent the world, necessarily.

Hence, use Voxel grid for 3D data as a standard default (or STVL or NPVL or eq.) unless you're running on such limited compute that you need to do only 2D raycasting (e.g. Raspberry Pi and below, though even an RPi4 can easily handle an instance or two of Voxel Layers).

edit flag offensive delete link more


This makes sense. Thank you very much!

jainr gravatar image jainr  ( 2022-07-20 20:23:49 -0500 )edit

answered 2022-07-19 08:47:30 -0500

Per Edwardsson gravatar image

You don't have to use a voxel layer. If you don't typically care about the third dimension, you are better off using an occupancy grid. However, if you were to make a flying (or swimming) robot, the third dimension suddenly becomes more important, and a voxel grid necessary.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools



Asked: 2022-07-19 02:08:11 -0500

Seen: 177 times

Last updated: Jul 20 '22