Hello, I am quite new to rtabmap and ROS in general, I am trying to connect an OS1-128 lidar sensor with an external Tinkerforge Brick v2 IMU and visualize it using rtabmap and ROS. I started with just installing rtabmap and trying to connect the lidar first without the external IMU, just using the lidar's built-in one, and run the test_ouster_gen2.launch file with the basic configuration but I keep getting warnings that rtabmap did not receive any data.Here is the launch file I was using:
<!-- Hand-held 3D lidar mapping example using only a Ouster GEN2 (no camera). Prerequisities: rtabmap should be built with libpointmatcher Example: $ roslaunch rtabmap_ros test_ouster_gen2.launch sensor_hostname:=os-XXXXXXXXXXXX.local udp_dest:=192.168.1.XXX $ rosrun rviz rviz -f map $ Show TF and /rtabmap/cloud_map topics ISSUE: You may have to reset odometry after receiving the first cloud if the map looks tilted. The problem seems coming from the first cloud sent by os_cloud_node, which may be poorly synchronized with IMU data. --> <!-- Required: --> <arg name="sensor_hostname"/> <arg name="udp_dest"/> <arg name="frame_id" default="os_sensor"/> <arg name="rtabmapviz" default="true"/> <arg name="scan_20_hz" default="false"/> <arg name="voxel_size" default="0.15"/> <!-- indoor: 0.1 to 0.3, outdoor: 0.3 to 0.5 --> <arg name="use_sim_time" default="false"/> <param if="$(arg use_sim_time)" name="use_sim_time" value="true"/> <!-- Ouster --> <include unless="$(arg use_sim_time)" file="$(find ouster_ros)/ouster.launch"> <arg name="sensor_hostname" value="$(arg sensor_hostname)"/> <arg name="udp_dest" value="$(arg udp_dest)"/> <arg name="image" value="true"/> <arg if="$(arg scan_20_hz)" name="lidar_mode" value="1024x20"/> <arg unless="$(arg scan_20_hz)" name="lidar_mode" value="2048x10"/> </include> <!-- IMU orientation estimation and publish tf accordingly to os_sensor frame --> <node pkg="nodelet" type="nodelet" name="imu_nodelet_manager" args="manager"> <remap from="imu/data_raw" to="/os_cloud_node/imu"/> <remap from="imu/data" to="/os_cloud_node/imu/data"/> </node> <node pkg="nodelet" type="nodelet" name="imu_filter" args="load imu_filter_madgwick/ImuFilterNodelet imu_nodelet_manager"> <param name="use_mag" value="false"/> <param name="world_frame" value="enu"/> <param name="publish_tf" value="false"/> </node> <node pkg="nodelet" type="nodelet" name="imu_to_tf" args="load rtabmap_ros/imu_to_tf imu_nodelet_manager"> <remap from="imu/data" to="/os_cloud_node/imu/data"/> <param name="fixed_frame_id" value="$(arg frame_id)_stabilized"/> <param name="base_frame_id" value="$(arg frame_id)"/> </node> <group ns="rtabmap"> <node pkg="rtabmap_ros" type="icp_odometry" name="icp_odometry" output="screen"> <remap from="scan_cloud" to="/os_cloud_node/points"/> <param name="frame_id" type="string" value="$(arg frame_id)"/> <param name="odom_frame_id" type="string" value="odom"/> <param if="$(arg scan_20_hz)" name="expected_update_rate" type="double" value="25"/> <param unless="$(arg scan_20_hz)" name="expected_update_rate" type="double" value="15"/> <remap from="imu" to="/os_cloud_node/imu/data"/> <param name="guess_frame_id" type="string" value="$(arg frame_id)_stabilized"/> <param name="wait_imu_to_init" type="bool" value="true"/> <!-- ICP parameters --> <param name="Icp/PointToPlane" type="string" value="true"/> <param name="Icp/Iterations" type="string" value="10"/> <param name="Icp/VoxelSize" type="string" value="$(arg voxel_size)"/> <param name="Icp/DownsamplingStep" type="string" value="1"/> <!-- cannot be increased with ring-like lidar --> <param name="Icp/Epsilon" type="string" value="0.001"/> <param name="Icp/PointToPlaneK" type="string" value="20"/> <param name="Icp/PointToPlaneRadius" type="string" value="0"/> <param name="Icp/MaxTranslation" type="string" value="2"/> <param name="Icp/MaxCorrespondenceDistance" type="string" value="1"/> <param name="Icp/PM" type="string" value="true"/> <param name="Icp/PMOutlierRatio" type="string" value="0.1"/> <param name="Icp/CorrespondenceRatio" type="string" value="0.01"/> <!-- Odom parameters --> <param name="Odom/ScanKeyFrameThr" type="string" value="0.95"/> <param name="Odom/Strategy" type="string" value="0"/> <param name="OdomF2M/ScanSubtractRadius" type="string" value="$(arg voxel_size)"/> <param name="OdomF2M/ScanMaxSize" type="string" value="15000"/> </node> <node pkg="rtabmap_ros" type="rtabmap" name="rtabmap" output="screen" args="-d"> <param name="frame_id" type="string" value="$(arg frame_id)"/> <param name="subscribe_depth" type="bool" value="false"/> <param name="subscribe_rgb" type="bool" value="false"/> <param name="subscribe_scan_cloud" type="bool" value="true"/> <param name="approx_sync" type="bool" value="false"/> <param name="queue_size" type="int" value="10"/> <param name="scan_cloud_max_points" value="262144"/> <remap from="scan_cloud" to="/os_cloud_node/points"/> <remap from="imu" to="/os_cloud_node/imu/data"/> <!-- RTAB-Map's parameters --> <param name="Rtabmap/DetectionRate" type="string" value="1"/> <param name="RGBD/NeighborLinkRefining" type="string" value="false"/> <param name="RGBD/ProximityBySpace" type="string" value="true"/> <param name="RGBD/ProximityMaxGraphDepth" type="string" value="0"/> <param name="RGBD/ProximityPathMaxNeighbors" type="string" value="1"/> <param name="RGBD/LocalRadius" type="string" value="2"/> <param name="RGBD/AngularUpdate" type="string" value="0.05"/> <param name="RGBD/LinearUpdate" type="string" value="0.05"/> <param name="Mem/NotLinkedNodesKept" type="string" value="false"/> <param name="Mem/STMSize" type="string" value="30"/> <!-- param name="Mem/LaserScanVoxelSize" type="string" value="0.1"/ --> <!-- param name="Mem/LaserScanNormalK" type="string" value="10"/ --> <!-- param name="Mem/LaserScanRadius" type="string" value="0"/ --> <param name="Reg/Strategy" type="string" value="1"/> <param name="Optimizer/GravitySigma" type="string" value="0.5"/> <param name="Optimizer/Strategy" type="string" value="1"/> <param name="Grid/CellSize" type="string" value="0.1"/> <param name="Grid/RangeMax" type="string" value="20"/> <param name="Grid/ClusterRadius" type="string" value="1"/> <param name="Grid/GroundIsObstacle" type="string" value="true"/> <!-- ICP parameters --> <param name="Icp/VoxelSize" type="string" value="$(arg voxel_size)"/> <param name="Icp/PointToPlaneK" type="string" value="20"/> <param name="Icp/PointToPlaneRadius" type="string" value="0"/> <param name="Icp/PointToPlane" type="string" value="true"/> <param name="Icp/Iterations" type="string" value="10"/> <param name="Icp/Epsilon" type="string" value="0.001"/> <param name="Icp/MaxTranslation" type="string" value="3"/> <param name="Icp/MaxCorrespondenceDistance" type="string" value="1"/> <param name="Icp/PM" type="string" value="true"/> <param name="Icp/PMOutlierRatio" type="string" value="0.7"/> <param name="Icp/CorrespondenceRatio" type="string" value="0.2"/> </node> <node if="$(arg rtabmapviz)" name="rtabmapviz" pkg="rtabmap_ros" type="rtabmapviz" output="screen"> <param name="frame_id" type="string" value="$(arg frame_id)"/> <param name="odom_frame_id" type="string" value="odom"/> <param name="subscribe_odom_info" type="bool" value="true"/> <param name="subscribe_scan_cloud" type="bool" value="true"/> <param name="approx_sync" type="bool" value="false"/> <remap from="scan_cloud" to="/os_cloud_node/points"/> </node> And the warnings i keep getting after starting rtabmap with roslaunch rtabmap_ros test_ouster_gen2.launch sensor_hostname:=192.xxxxxx udp_dest:=192.xxxxxx : [ WARN] [1614687309.213491141]: /rtabmap/rtabmapviz: Did not receive data since 5 seconds! Make sure the input topics are published ("$ rostopic hz my_topic") and the timestamps in their header are set. If topics are coming from different computers, make sure the clocks of the computers are synchronized ("ntpdate"). Parameter "approx_sync" is false, which means that input topics should have all the exact timestamp for the callback to be called. /rtabmap/rtabmapviz subscribed to (exact sync): /os_cloud_node/points /rtabmap/odom_info [ WARN] [1614687311.238510555]: Still waiting for data on topic /imu/data_raw... [ WARN] [1614687312.882493616]: /rtabmap/rtabmap: Did not receive data since 5 seconds! Make sure the input topics are published ("$ rostopic hz my_topic") and the timestamps in their header are set. If topics are coming from different computers, make sure the clocks of the computers are synchronized ("ntpdate"). Parameter "approx_sync" is false, which means that input topics should have all the exact timestamp for the callback to be called. /rtabmap/rtabmap subscribed to (exact sync): /rtabmap/odom /os_cloud_node/points I am not sure what exactly I am missing and what's going wrong, any help would be appreciated. |
Administrator
|
duplicate of https://github.com/introlab/rtabmap_ros/issues/552
|
Free forum by Nabble | Edit this page |