How to avoid detecting obstacles passing in front of a running robot?

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

How to avoid detecting obstacles passing in front of a running robot?

miraikaihatsu
Hi, matlabbe
I have a robot with 2D LiDAR and a RGBD camera. While robot is running, if a person crosses in front of the robot, it remain as an obstacle. Is there a setting that prevents this object from remaining? I know from previous posts that the Grid/RayTracing=true setting can remove dynamic objects, and I have actually tried this method and confirmed that it removes them gradually. However, when the robot runs around the remaining Octomap objects, it does not disappear completely. I want to know how to not detect dynamic objects or how to remove them easily.
Thank you!
Reply | Threaded
Open this post in threaded view
|

Re: How to avoid detecting obstacles passing in front of a running robot?

matlabbe
Administrator
Hi,

There is a relatively large topic in SLAM about filtering dynamic objects. For example, you can look at our paper "Dynamic Object Tracking and Masking for Visual SLAM", in which we used an image segmentation approach to remove people from the map. Basically, in rtabmap, if you set depth pixels to 0 in the depth image for some objects (e.g., people), the resulting 3D point cloud won't have them. It is kind of an easy way to do it without modifying any rtabmap code: just create a new node republishing a depth image without dynamic objects.

For the OctoMap approach, it will eventually remove all dynamic objects but the camera/lidar should be able to ray trace in them when the object is gone, so the background should be seen by the sensor. Note also that if the robot was moving at the same time, it  may add dynamic obstacles that some part of them are now outside the FOV of the sensor, so part of the object will stay there unless the robot back up to clear everything. See also this thread: http://official-rtab-map-forum.206.s1.nabble.com/How-does-rtabmap-deal-with-dynamic-objects-tp4735p8255.html

cheers,
Mathieu

Reply | Threaded
Open this post in threaded view
|

Re: How to avoid detecting obstacles passing in front of a running robot?

miraikaihatsu
Hi, matlabbe

Sorry for my late reply. (I had a cold)
Thanks to you I am gradually understanding rtabmap and octomap.
In the situation shown in the attached diagram, is there any way to remove the remaining dynamic octomap obstacles? I cannot delete this object in my environment. Looking at the thread in the above link, it feels impossible.



Thank you.
Reply | Threaded
Open this post in threaded view
|

Re: How to avoid detecting obstacles passing in front of a running robot?

matlabbe
Administrator
With a RGBD camera with limited range in an empty space, it can indeed be difficult to clear the upper part. Indoor, the camera could see the ceiling, which can be used to clear those obstacles. Stereo cameras can see miles/kilometers away, they could probably clear it unless it is a clear blue sky without any clouds. Textureless walls can be an issue for stereo cameras though, if they don't have active IR pattern.

Other option is to set a maximum obstacle height (Grid/MaxObstacleHeight) to avoid adding obstacles over optical height that are more difficult to clear.