Hello,
I’d like to run nvblox sample with adding slope environment like below.
But the carter don’t proceed into slope area because of costmap near slope.
Question:
Are there any recommended way to solve this problem?
–
Best regards,
Hello,
I’d like to run nvblox sample with adding slope environment like below.
But the carter don’t proceed into slope area because of costmap near slope.
Question:
Are there any recommended way to solve this problem?
–
Best regards,
Hi @mat-h. For the Isaac Sim example,
The reconstruction is converted to a 2D costmap that is passed to Nav2 and used for navigation.
Navigating in slope area is 3D navigation. If you project it to 2D, the slope would be considered as an obstacle.
To do 3D navigation, you will need to set esdf_mode of nvblox to 3d and configure nav2 package to support 3D navigation (link) or use a different navigation package for 3D navigation.
Or if your slope is lower than than the lidar height of the robot (seems unlikely according to your screenshot), you can still do 2D navigation but set the esdf_slice_height a higher value (link)
Hi,
Thank you very much for your kindness.
I really appreciate your help.
I found the carter move into slope area based on your guide.
Thank you.
But “Rainbow Voxel” for “obstacle avoidance” doesn’t seem to be displayed like below.
So, I’d appreciate if you tell us how to show “Rainbow voxel” and realize proper “obstacle avoidance”.
–
Best regards,
Hi @mat-h! The ESDF slice is a 2D projection, and it is subscribing to topic /nvblox_node/static_esdf_pointcloud which is only published when you are in 2D mode. Please checkout the code.
if (params_.esdf_mode == EsdfMode::k2D) {
timing::Timer esdf_output_timer("ros/esdf/slice_output");
sliceAndPublishEsdf(
"static", static_mapper_, static_esdf_pointcloud_publisher_,
static_map_slice_publisher_, static_occupancy_grid_publisher_,
params_.distance_map_unknown_value_optimistic);
......
}
If you want to get the 3D information, you should check the topic /nvblox_node/mesh. In Rviz it is NvbloxMesh. If you want to use it for 3D navigation, you may update your downstream code to convert it to a proper 3D costmap for your navigation stack.
Let me also reach out to the internal team for confirmation.
Hi,
Thank you very much for your kindness.
I really appreciate your help.
I continue to investigate nvblox source code from your guide.
Then I can found the carter moved into slope area a little by below modification.
(The costmap seems to be relaxed by changing “esdf_min_height=0.2”)
So I think the cost map is generated properly, if esdf_max/min_height params are dynamically calculated by using base_link(transform-z).
Question:
Could you tell us how to realize to genarate costmap with esdf_max/min_height param dynamically calculated like this by using base_link(transform-z)?
–
Best regards
Hi @mat-h
We got feedback from internal team. At the moment we only support flat environments in this context. We offer calculation of a 3D ESDF in the manipulator context, but given that you’re navigating in 2D, that’s unlikely to work.
About having the slice height relative to the base_link that is a good idea, but unfortunately something that we don’t support right now.
Best,
Ahung
Hi,
Thank you very much for your kindness.
I really appreciate your help.
I understood current NVBLOX only support flat environments.
I’d appreciate if you consider to integrate 3D-navigation feature such as slopes environment including support for “the slice height relative to the base_link”.
Best regards,
Hi,
That would be great, thank you!