moveit / moveit2

:robot: MoveIt for ROS 2
https://moveit.ai/
BSD 3-Clause "New" or "Revised" License
1.05k stars 512 forks source link

/clear_octomap service does not update the octomap properly in MoveIt2 #2797

Open Danilrivero opened 5 months ago

Danilrivero commented 5 months ago

Description

Directly related to the following solved issues from MoveIt.

https://github.com/ros-planning/moveit/issues/3380 https://github.com/ros-planning/moveit/pull/3134

When the pcd topic does not publish, the "clear octomap" option in MotionPlanning from rviz2 will not clear the map. If the pcd topic does publish, the map will update based on the pcd and can't be cleared completely. In the move_group's PS, the octomap is correctly cleared even though it seems not to update through rviz2. @rhaschke may have information on this looking at his PR in MoveIt.

Your environment

Steps to reproduce

Publish a pointcloud using the _sensors3d.yaml module for the generation of the octomap. The generated octomap will not clear entirely unless updated at the same time through the publishing of a new pcd (moreover always having a PS containing octomap parts).

Expected behaviour

When calling the "/clear_octomap" service the module should clear the octomap even though it would presumably update within the next update if pcd is being published.

Actual behaviour

The module does not update the octomap unless being updated with the publishing of a new pcd.

octomap

Backtrace or Console output

Usage of the following configuration file: sensors_3d.yaml.

Seems like it requires to sync the PR made in MoveIt to MoveIt2.

patrickKXMD commented 5 months ago

Hi, what do you use for planning? MoveItCpp in your node or a standalone move_group node?

The button in rviz plugin triggers /clear_octomap service which is a capacity in move_group node. If you are using MoveItCpp inside your own node, use moveit_cpp->getPlanningSceneMonitorNonConst()->clearOctomap();to clear the octomap.

Danilrivero commented 5 months ago

Hi, what do you use for planning? MoveItCpp in your node or a standalone move_group node?

The button in rviz plugin triggers /clear_octomap service which is a capacity in move_group node. If you are using MoveItCpp inside your own node, use moveit_cpp->getPlanningSceneMonitorNonConst()->clearOctomap();to clear the octomap.

In this case I use the standalone move_group node. I have verified that by constantly updating the octomap, this is, constantly publish a pointcloud to the defined topic inside thesensors_3d.yaml it will properly clear due to the octomap constantly being updated.

github-actions[bot] commented 3 months ago

This issue is being labeled as stale because it has been open 45 days with no activity. It will be automatically closed after another 45 days without follow-ups.

Danilrivero commented 3 months ago

Bumping this in case anyone is available to do this backport since the fixes exist back in MoveIt1. Else I will do it once I am available.

github-actions[bot] commented 2 months ago

This issue is being labeled as stale because it has been open 45 days with no activity. It will be automatically closed after another 45 days without follow-ups.