Any good navigation package/path planner for outdoor navigation on 3D/2d-manifold uneven terrain with a skid steer robot?

asked 2020-11-20 03:29:13 -0500

jorgemia gravatar image

I essentially want to record some waypoints across uneven terrain and then be able to retrace those waypoints by sending goals to the stack (whilst avoiding potential dynamic/static obstacles). I've been able to do this in 2D but struggling outdoors. I've been playing around with RTAB-Map using a stereo/RGB-D camera which allows you to create 2D or 3D maps which could potentially be used for navigation but still stuck on the path planning/controller side of things in 3D.

It seems 2D/flat navigation has mostly been solved and improved by now with the standard ros navigation stack (move_base) and other extensions/projects such as locus' robot_navigation, move_base_flex and GeRoNA.

Are there any similar projects for navigation in 3D/outdoor terrain/slopes with a wheeled robot, as move_base will only work in 2D (or is there a way of using move_base for 3D/2D-manifold)?

I'm aware that the Navigation 2 stack in ROS2 is planning to implement grid_map to replace costmap2D and potentially make "3D" navigation easier but I'm currently still on ROS1. The only other scenarios I've seen of move_base being used in 3D is with RTAB-Map Stereo Outdoor Navigation and the DARPA SubT Virtual Challenge Tutorial, but I've tried using that approach but it is not ideal.

I think it might be possible to use move_base_flex with grid_maps and elevation_mapping to achieve navigation in 3D but haven't found any implementation anywhere yet (move_base_flex seem to be planning to release an implementation with grid_maps in January source). mesh_navigation is the closest thing I found to what I want to do (other than Nav2), it works with move_base flex but doesn't have dynamic obstacle avoidance yet, not sure if anyone has experience with this package? Any pros/cons to using triangular meshes? (Seems like triangular meshes would be able to represent multi-level/story terrain whilst grid_map wouldn't).

I've seen some projects using MoveIt and OMPL to implement eg. a RRT planner but not sure if this is the best approach/will be too complicated? 3D planners which use Octomap/Voxblox seem to very popular in UAV and Legged Robotics research, I imagine they would be extensible to ground robots but feels like it might be complicated. Eg. GBPlanner, FASTER, INDIRES_Navigation.

This seems to be a field that is very much still in development and the Nav2 stack seems the easiest solution in the long term but is not quite there yet, so if anyone knows of any packages for local and global path planning with ground robots on 3D surfaces or tips on how to implement the planners or approach the problem any help will be appreciated!

edit retag flag offensive close merge delete