Hi,
I'm trying to get a pointcloud using rtabmap. To do this, I am subscribing to the rtabmap/cloud_map topic. However, while I do receive the sensor_msgs/PointCloud2 messages periodically in my node, these messages only report empty point clouds. When inspecting the topic with rostopic echo, I see that the height is 1 and width is 0, and the data array is empty. The rtabmap/mapData topic does report the correct data, albeit not in a PointCloud. When I use rtabmapviz, I can see the visualization of the point cloud. Also when using rviz I can see the point cloud (using the MapCloud visualization). Example of one cloud_map message: --- header: seq: 1254 stamp: secs: 3842 nsecs: 530000000 frame_id: "map" height: 1 width: 0 fields: - name: "x" offset: 0 datatype: 7 count: 1 - name: "y" offset: 4 datatype: 7 count: 1 - name: "z" offset: 8 datatype: 7 count: 1 - name: "rgb" offset: 16 datatype: 7 count: 1 is_bigendian: False point_step: 32 row_step: 0 data: [] is_dense: True --- My rqt_graph and screenshot of rtabmapviz can be found here. Any idea what I could be missing here? Do I need to set a parameter to enable the generation of the pointcloud using the mapData? |
Administrator
|
Which rtabmap version do you have?
Not sure about the scale of the point cloud, but cloud_map uses "Grid/" parameters to filter the cloud by range: $ rtabmap --params | grep Grid/Grid/DepthMax (or now Grid/RangeMax) can be set to 0 to avoid filtering the cloud. cheers, Mathieu |
Hi Mathieu,
I have the latest version installed through apt-get on Ubuntu, using ROS Kinetic. I think this is version 0.11.13? I don't think the scale is the cause of the problem. Even when flying very close to the building, the cloud_map is still empty. Also, when setting Grid/RangeMax to 0, the problem persists. It might maybe be useful to share the parameters that I'm using: <param name="rgb/image_transport" type="string" value="compressed"/> <param name="depth/image_transport" type="string" value="raw"/> <!-- RTAB-Map's parameters: do "rosrun rtabmap rtabmap (double-dash)params" to see the list of available parameters. --> <!--param name="RGBD/NeighborLinkRefining" type="string" value="true"/--> <!-- Do odometry correction with consecutive laser scans --> <param name="RGBD/ProximityBySpace" type="string" value="true"/> <!-- Local loop closure detection (using estimated position) with locations in WM --> <param name="RGBD/ProximityByTime" type="string" value="false"/> <!-- Local loop closure detection with locations in STM --> <param name="Reg/Strategy" type="string" value="1"/> <!-- 0=Visual, 1=ICP, 2=Visual+ICP --> <param name="Vis/InlierDistance" type="string" value="0.1"/> <!-- 3D visual words correspondence distance --> <param name="RGBD/OptimizeFromGraphEnd" type="string" value="false"/> <!-- Optimize graph from initial node so /map -> /odom transform will be generated --> <param name="Reg/Force3DoF" type="string" value="true"/> <param name="Grid/FromDepth" type="string" value="false"/> <param name="Grid/DepthMax" type="double" value="0"/> <param name="subscribe_depth" type="bool" value="true"/> <param name="subscribe_scan" type="bool" value="false"/> |
Administrator
|
Set Grid/FromDepth to true. You may want to set Reg/Force3DoF to false if you do 6DoF trajectories.
|
Free forum by Nabble | Edit this page |