dfki-ric / ugv_nav4d

A 4D (X,Y,Z, Theta) Planner for unmaned ground vehicles (UGVs).
BSD 3-Clause "New" or "Revised" License
3 stars 0 forks source link

Add relevant discussion to statement of needs section in the paper #2

Open soraxas opened 1 month ago

soraxas commented 1 month ago

See https://github.com/openjournals/joss-reviews/issues/6983

Hi @haider8645 I had a quick glance into the paper, and the statement of need doesn't really address why this package is needed in the community.

i.e., how does this differ from other similar-purpose packages like Nav2 (github) [1], one of the most well-structured / generic navigation frameworks that are widely adopted in autonomous robots and tested in the industry (De facto standard in ROS); or other more speciality framework like vox_nav [2] which is created for unstructured treeains.

The traversability aspect should be able to achieved via imposing cost in like a costmap?

[1] Macenski, S., Martín, F., White, R., & Clavero, J. G. (2020, October). The marathon 2: A navigation system. In 2020 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS) (pp. 2718-2725). IEEE. [2] Atas, F., Cielniak, G., & Grimstad, L. (2022, October). Elevation state-space: Surfel-based navigation in uneven environments for mobile robots. In 2022 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS) (pp. 5715-5721). IEEE.

@soraxas Excuse me for the late reply. I am on vacation atm so my replies might be delayed. Hmmm, please see some brief comments below about nav2 for now. If you expect a more detailed analysis of the capabilities then let me know but it would just take me a bit longer.

The environment representation used by the planner to generate the Traversability map is based on a Multi-Layered Surface Map (MLS). The MLS map can be generated online or an offline MLS map can be used. As of my latest update, ROS2 does not natively support MLS (Multi-Layered Surface) maps out-of-the-box within the standard Nav2 stack without additional development or customization. The primary map type supported by Nav2 is the 2D occupancy grid map. On the contrary, we used a 3D Map. The choice of MLS maps vs Voxel maps (used in nav2) is a personal choice. I personally like MLS Maps because they are great for visualization and provide a detailed surface representation.

The key contribution is that the planner can plan in a multistorey environment without the need to maintain multiple costmaps for each floor of a building. The planner internally maintains a 3D Traversablity Map for long distance planning in environments with distinct elevation levels, such as buildings with multiple floors or terrains with varying heights. To the best of my knowledge, ros2 nav2 does not natively support multistorey navigation out-of-the-box.

The Traversability map servers a similar purpose as the costmap in ROS but each cell in the traversability map contains further information about the ground surface like slope, plane model etc. See TravGenTrackingData. This can be seen as kind of an alternative to the combination of 3d costmap + gradient map in nav2. See Other Forms

So in short, the ugv_nav4d provides many new capabilities which are not yet available in nav2. We are currently working on making a ROS2 wrapper for the planner so that the ROS2 community can used it out-of-the-box. A fully integrated plugin support for nav2 is not in the pipeline but can be done if the interest from the community side is high :)

The statement of needs section should discuss how this differs from other more commonly used repositories.

The choice of MLS maps vs Voxel maps (used in nav2) is a personal choice. I personally like MLS Maps because they are great for visualization and provide a detailed surface representation.

Any pros/cons of MLS vs Voxel maps?

planthaber commented 1 month ago

The MLS approach has no discretization in the z axis. The x,y coordinates are formed by a grid with a cell size, but the z axis is not discretized. The cell content is a list of blocks with a start and stop height (float). Additionally the top of those blocks can have a slope value.

This means the MLS has a smooth surface, which is better suited for uneven ground navigation than occupancy voxels that create steps on sloped surfaces.

The original idea of the MLS is described here: https://cvg.cit.tum.de/_media/spezial/bib/triebel06multi.pdf

Voxel maps are imo better suited for drones or underwater vehicles, where non-ground obstacles have more importance, but when planning for ground vehicles in uneven terrain that addional accuracy makes the difference.

haider8645 commented 1 month ago

@soraxas please find the updated paper here