With RGB-D + 2DLider

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

With RGB-D + 2DLider

plaid
"Method A" : With RGBD Camera(Intel RealSense )
"Method B" : With RGBD Camera + 2D Lider



I'm trying to do "Method B" in a simulation. But I have one problem, so let me ask. The first time I did it "Method A" , it detected an obstacle (a coke can) that was lower than the robot and avoided it. However, with this "method B", the robot does not avoid the obstacle although it detects it on RVIZ. (It collides with the can.) How can I make it recognize and avoid obstacles lower than the robot in this way?
I want to get both the advantage of the camera's ability to be lower than the robot and the advantage of Lider's ability to get a wider area, but I haven't been able to. This is no different than just a 2DLider. Can someone please tell me how to do this? Please help me. Thanks!

Reply | Threaded
Open this post in threaded view
|

Re: With RGB-D + 2DLider

matlabbe
Administrator
Hi,

With B, rtabmap switches by default to lidar-only mapping Grid/FromDepth=false. You can explicitly set back Grid/FromDepth=true to come back to method A for the occupancy grid, while lidar can still be used for localization.

It is pretty new, so not heavily tested yet, but Grid/GromDepth has been migrated to Grid/Sensor parameter to add option to use both lidar and depth sensors for occupancy grid (when Grid/Sensor=2). You may give a try, otherwise with older rtabmap versions, I would stick to Grid/FromDepth=true if you really need to detect objects under lidar height OR (what I do in general) is to keep Grid/FromDepth=false with the lidar to get a nice global occupancy grid but in move_base's local costmap I include the camera point cloud so that the local planner can avoid small objects even if they are not in the global map (here is an example: using this and this for the local costmap config).

cheers,
Mathieu
Reply | Threaded
Open this post in threaded view
|

Re: With RGB-D + 2DLider

plaid
Thanks for the reply. I have installed "sudo apt install ros-melodic-rtabmap-ros" with this instead of "git clone", how do I update to the latest version? Thanks!
Reply | Threaded
Open this post in threaded view
|

Re: With RGB-D + 2DLider

matlabbe
Administrator
Reply | Threaded
Open this post in threaded view
|

Re: With RGB-D + 2DLider

plaid


Thanks for the reply. I am trying the second of the methods you have shown me. Basically, I am referring to the following page(http://wiki.ros.org/rtabmap_ros/Tutorials/SetupOnYourRobot#Kinect_.2B-_Odometry_.2B-_2D_laser)(2.1 Kinect + Odometry + 2D laser), and I want to include the camera information as a local cost map there. I added the ""local costmap.yaml"" that you showed me to the code on the previous page, but it doesn't work. Please help me. Thank you
Reply | Threaded
Open this post in threaded view
|

Re: With RGB-D + 2DLider

matlabbe
Administrator
Make sure obstacles_cloud and ground_cloud are published. In the example, they were generated from the point cloud created from the depth image: https://github.com/introlab/rtabmap_ros/blob/70bc399907fdded622bdaa9998d9138116b98307/launch/azimut3/az3_nav.launch#L129-L149

You can show the obstacle and ground clouds in rviz to debug, the local costmap obstacles should match the obstacle cloud.
Reply | Threaded
Open this post in threaded view
|

Re: With RGB-D + 2DLider

plaid
This post was updated on .
I have a question about how to write a launch file.
Is the pkg name nodelet instead of rtabmap_ros? Also, can I leave the args part as it is? Do I need to change it depending on my environment?If so, what should I put in the args section? Please tell me.
Reply | Threaded
Open this post in threaded view
|

Re: With RGB-D + 2DLider

matlabbe
Administrator
Hi,

Simple launch files are shown on this page: http://wiki.ros.org/rtabmap_ros/Tutorials/SetupOnYourRobot

Some nodes of rtabmap can be used as nodelets or directly as node, it depends on how you feel to use one or the other. For simplicity, use directly the nodes. If you know how to use nodelets, you may prefer using nodelets for some efficiency improvements.

cheers,
Mathieu