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

3D Navigation (navigation in uneven terrain)

asked 2022-06-24 06:49:57 -0500

marpeja gravatar image

I am trying to develop a project in which I have to navigate a robot through a cave. The problem is that the cave's terrain is very uneven and so creating a 2D costmap to use Nav2 afterwards isn't an option, as the 2D costmap contains a lot of "occupied spots" because of the uneven of the terrain.

Do you know any package/project that performs 3D navigation? Or is it possible to use Nav2 with a workaround (how would it be)?

I am using ROS2 in ubuntu 20.04, my simulation is runnning on Gazebo, and I am performing the SLAM with RTABMap.

Thank you!!

edit retag flag offensive close merge delete



do you have a pointcloud map of the environment you are trying to navigate ?

Fetullah Atas gravatar image Fetullah Atas  ( 2022-06-24 07:00:34 -0500 )edit

Yes! in .ply format, but I can save it in other formats if needed (RTABMap allows different formats)

marpeja gravatar image marpeja  ( 2022-06-24 09:31:19 -0500 )edit

please see my answer

Fetullah Atas gravatar image Fetullah Atas  ( 2022-06-24 09:45:33 -0500 )edit

Thank you very much!! I will try to use it!

marpeja gravatar image marpeja  ( 2022-06-24 12:48:22 -0500 )edit

2 Answers

Sort by ยป oldest newest most voted

answered 2022-06-24 09:45:10 -0500

updated 2022-06-24 09:47:18 -0500

vox_nav is a project that is aimed for navigation in unstructured/uneven terrains.

See, the robot navigating in uneven terrain with vox_nav;

So far I have used the project only where GPS is available, the pointcloud map is geo-referenced. I assume in your case there is no GPS ?,there could be some work in order to accommodate replacement of GPS localization with your SLAM based localization. But I would like to work on that and make this possible. Feel free to contact me or use the issue tracker in vox_nav repo to test the project, I am interested to see how vox_nav could be useful to your case.

Disclaimer; vox_nav is still a research project and is far from stable/reliable, so you should expect certain amount of hassle while trying to use vox_nav.

edit flag offensive delete link more


That's pretty neat! My hope is next year (or more realistically, the year after) I can really dedicate time to getting height map implementations in Nav2. My hope is to start branching out to having alternate controller/planner server options based on 3D voxel grids and height maps to offer the full gambit of options for full 3D, height, and 2D navigation. Its a hassle to port all the algorithms over to each, but at least the basis will be done.

stevemacenski gravatar image stevemacenski  ( 2022-06-24 13:37:08 -0500 )edit

Thanks Steve!, I came to the conclusion that using a full 3D representation is more useful in terms of scalability (e.g. if I were to extend navigation for flying robots) for my case. At the moment I am using Octomap, planners are mostly from OMPL so a collision check module to FCL-Octomap serves well for now. However, I have plans to add OpenVDB to speed up planners, I met few people who have integrated/refined OpenVDB as an environment representation. Namely vdb_mapping, you might take a look at them too.

Fetullah Atas gravatar image Fetullah Atas  ( 2022-06-24 13:54:32 -0500 )edit

I'll say that I won't plan to use OpenVDB in the future. Its a great piece of software, but the binaries have had SO many problems over the years, you just can't rely on them. For 20.04 for over a year you couldn't use the binaries due to a messed up compiler flag. Now in 22.04 there are issues with the version that someone decided to release. And since none of the releases are controlled by the OpenVDB people themselves, its a real struggle to get real issues dealt with.

There are a number of options now for sparse voxel representations, I'd probably look at another one. But definitely i wouldn't use Octomap, that's too old and slow at this point. But its a reasonable starting point for a research project in ROS given its history

stevemacenski gravatar image stevemacenski  ( 2022-06-24 16:18:40 -0500 )edit

Hi Fetullah! I was trying to install all deps and vox_nav as shown in your Getting started page. However, when executing colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release -DACADOS_WITH_QPOASES=ON -DACADO_CODE_IS_READY=ON -DWITH_IPOPT=true --packages-skip-regex archive --packages-skip vox_nav_control vox_nav_cupoch; \ right after source install/setup.bash I get an error in the reporting that there is an undefined reference to octomath::Pose6D::Pose6D(octomath::Pose6D const&), but I have been using RTABMap before and I had no issues... Do you know how to solve this?

marpeja gravatar image marpeja  ( 2022-06-26 05:53:42 -0500 )edit

HI!, I dont remember facing such issue, are you using source build of rtabmap or octomap?, it could be that different versions of octomap are installed. Please name the packages that are on your src directory, I will see whether I can reproduce the issue. You might want to open an issue or a new question for better track and documentation of the problem.

Fetullah Atas gravatar image Fetullah Atas  ( 2022-06-26 06:03:29 -0500 )edit

These are the packages I have:


Moreover I installed rtabmap with:

sudo apt install ros-foxy-rtabmap-ros

And Octomap with:

sudo apt-get install ros-foxy-octomap
marpeja gravatar image marpeja  ( 2022-06-26 07:36:59 -0500 )edit

You seem to already do source build of rtabmap_ros, you dont need to apt-get install it, you may remove that Debian installation of rtabmap_ros and use source build. I was able to build both rtabmap_ros and rtabmap with foxy-devel branches. I could not reproduce this issue, I have installed Debian octomap just as you.

Here my versions;





You can check your versions with;

ros2 pkg xml octomap

Overall, my suggestion would be to remove Debian installation of rtabmap_ros, clean up your build workspace with ;

cd colcon_ws &&
rm -rf build/*

and try to build again.

Fetullah Atas gravatar image Fetullah Atas  ( 2022-06-26 08:31:58 -0500 )edit

Thanks mate! Problem solved! I will start working with it now.

marpeja gravatar image marpeja  ( 2022-06-26 11:05:10 -0500 )edit

answered 2022-06-24 07:35:37 -0500

ljaniec gravatar image

I think this package could help you:

(several RGBD cameras on the robot are a must)

edit flag offensive delete link more

Question Tools



Asked: 2022-06-24 06:49:57 -0500

Seen: 1,391 times

Last updated: Jun 24 '22