Re: RTAB-Map Octomap for ROS MoveIt with dynamic objects and self-filtering

Posted by robertzickler on
URL: http://official-rtab-map-forum.206.s1.nabble.com/RTAB-Map-Octomap-for-ROS-MoveIt-with-dynamic-objects-and-self-filtering-tp6884p6988.html

Thank you very much. Took me a while to get my head around this problem but finally managed to get it working.
The linked camera_self_filter is very old (ROS groovy) and I couldn't make it working (rosbuild -> catkin ).

I now use the realtime_URDF_filter (https://github.com/blodow/realtime_urdf_filter). This one is using the GPU to mask the visual (not collision) STL-files from the robot description to the Depth Image. The filtered image then goes as input to RTAB-map.
Big problem: no padding of the robot parts! But you can inflate the STL-files (doggy...) or have a realy good setup with perfect model to real robot position and sensor data but that is kind of imposible. (*Tipp: read at the bottom)
The RTAB-map pointcloud is then published to 'move_group/monitored_planning_scene' and used for the MoveIt path planing.

I still have to tweek some params and will try to get you a working example for everyone to use. But up till now it is still kind of messy :D

Another package I tried was http://wiki.ros.org/robot_self_filter and http://wiki.ros.org/robot_body_filter. The first one is not maintained very well. The later (a fork from the robot_self_filter) seems to be very powerful but I couldn't get the filtering mechanism working on ROS. Especially I was missing a tutorial on pointcloud filtering... Would be awesome if someone could point me in the right direction

To your question:
Yes the button comes with MoveIt and clears the the 'move_it/monitored_planning_scene'. This is working again with my solution,.

*Note mentioned above for everyone interested:
A kind of interesting way I found out to still have the "ideal" robot in RViz while using the inflated STL-files for the URDF filtering:
My set-up: A seperat Jetson Nano (A) (or any other mashine with a GPU) with the camera pluged in and the filtering package and the RTAB-map running. The ROS core and MoveIt running on the main mashine (B). The Jetson connected over a switch.
Now the realtime_URDF_filter still uses the lokal path (on the Jetson A) to the STL-files. So you can have the "perfect" STL-models on the main mashine (B) (for RViz,...) and the inflated models on the mashine running the filter. The file names must match so dont get confused or override them when syncing your folders
Importend: time syncing the mashines but that is an other topic (https://wiki.ros.org/ROS/NetworkSetup)...

Robert