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

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

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

jainr gravatar image

Hi,

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
3

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

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

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

Comments

This makes sense. Thank you very much!

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

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

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

Question Tools

2 followers

Stats

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

Seen: 780 times

Last updated: Jul 20 '22