-
Notifications
You must be signed in to change notification settings - Fork 571
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Value of queue_size in L515 + T265 #570
Comments
If there is no error, it may means that rtabmap is not able to synchronize topics from T265 and L515 after some time. Maybe the timestamp set in odometry topic drifts in comparison to timsestamp set in L515 topics. You may compare With the standalone, we restamp pose and image topics from both camera at the time of receiving them on the computer. Check if there are parameters to chose computer time instead of camera time for realsense cameras. There is a realsense parameter called |
I face the same problem, the parameter "RS2_OPTION_GLOBAL_TIME_ENABLED" should be set in rs_l515_and_t265.launch? |
@gongyue666 any luck in setting that flag |
the warnings are disappeared, but the final result is not very good in my case |
final result as in the 3D map or still the streaming cannot be stopped? |
final result as in the 3D map performed badly, easily lost~ |
@gongyue666 How do you set RS2_OPTION_GLOBAL_TIME_ENABLED in the launch file? |
rtabmap stand-alone application works flawlessly for long hours with L515 + T265. But rtabmap-ros struggles to run the same configuration and for some reason, it is dependent on queue_size value. I did try to put a very high value of queue size but the final map quality is not great as compared to running rtabmap standalone application. |
even D435+T265 is better than L515+T265 |
Yes. But L515 + T265 for indoors gives the best quality map. And I want to get the map somehow from the robot. I am currently running a standalone application via forwarding X (Display) over SSH. @sumitsarkar1 you can run standalone rtabmap application via ssh display forward. Works great for now. Note: the master and client are connected via ethernet cable. However, it will be great if we can get rtabmap-ros wrapper properly working for L515 + T265 @matlabbe. |
@shubhamwagh were you able to run standalone RTabmap via ssh? Like the onboard compute (on the robot) runs SLAM using RTabMap and you can start and stop the mapping using RTabmap GUI from a remote computer. Did you try over wireless... And ya L515 maps are more "crisp" (like walls at a distance more than 5 mtrs) than depth camera maps |
@sumitsarkar1 , yes I am able to run standalone RTAB map via ssh display forward. You can check the gist I have created to forward display over ssh. You can follow the steps to forward the display to the client. The setup of my system is as follows: Robot (Server): Laptop (Client): Robot and Laptop are wired connected via router. I haven't tried wireless yet, but I believe there will be latency issues with that. |
@shubhamwagh thanx a lot...I had some success using ssh and Nautilus...however over wireless there is latency ...but thanx for the forward display suggestions..I will try them |
@sumitsarkar1 , I got RTAB-MAP for L515 + T265 working with ROS now. Looks like by default global_time_sync for L515 is set to false. Add the following rosparams before launching l515. Then it works fine without any issues 😃 . <param name="/camera/motion_module/global_time_enabled" type="bool" value="true"/>
<param name="/camera/l500_depth_sensor/global_time_enabled" type="bool" value="true"/>
<param name="/camera/rgb_camera/global_time_enabled" type="bool" value="true"/> Here is my complete launch file for sensor launch <launch>
<arg name="device_type_t265" default="t265"/>
<arg name="device_type_l515" default="l515"/>
<arg name="serial_no_t265" default=""/>
<arg name="serial_no_l515" default=""/>
<arg name="t265_ns" default="t265"/>
<arg name="l515_ns" default="l515"/>
<arg name="tf_prefix_t265" default="$(arg t265_ns)"/>
<arg name="tf_prefix_l515" default="$(arg l515_ns)"/>
<arg name="initial_reset" default="false"/>
<arg name="enable_fisheye" default="false"/>
<arg name="color_width" default="1280"/>
<arg name="color_height" default="720"/>
<arg name="depth_width" default="640"/>
<arg name="depth_height" default="480"/>
<arg name="ordered_pc" default="false"/>
<arg name="clip_distance" default="-2"/>
<arg name="topic_odom_in" default=""/>
<arg name="calib_odom_file" default=""/>
<param name="/$(arg t265_ns)/tracking_module/frames_queue_size" type="int" value="16"/>
<param name="/$(arg t265_ns)/realsense2_camera/enable_relocalization" type="bool" value="false"/>
<param name="/$(arg l515_ns)/motion_module/global_time_enabled" type="bool" value="true"/>
<param name="/$(arg l515_ns)/l500_depth_sensor/global_time_enabled" type="bool" value="true"/>
<param name="/$(arg l515_ns)/rgb_camera/global_time_enabled" type="bool" value="true"/>
<!--remap from="/$(arg tf_prefix_t265)/odom/sample" to="/odom" /-->
<group ns="$(arg t265_ns)">
<include file="$(find realsense2_camera)/launch/includes/nodelet.launch.xml">
<arg name="device_type" value="$(arg device_type_t265)"/>
<arg name="serial_no" value="$(arg serial_no_t265)"/>
<arg name="tf_prefix" value="$(arg tf_prefix_t265)"/>
<arg name="initial_reset" value="$(arg initial_reset)"/>
<arg name="enable_fisheye1" value="$(arg enable_fisheye)"/>
<arg name="enable_fisheye2" value="$(arg enable_fisheye)"/>
<arg name="topic_odom_in" value="$(arg topic_odom_in)"/>
<arg name="calib_odom_file" value="$(arg calib_odom_file)"/>
<arg name="gyro_fps" value="-1"/>
<arg name="accel_fps" value="-1"/>
<arg name="enable_gyro" value="true"/>
<arg name="enable_accel" value="true"/>
<arg name="enable_pose" value="true"/>
<arg name="enable_sync" value="true"/>
<!-- <arg name="ordered_pc" value="$(arg ordered_pc)"/> -->
</include>
</group>
<!-- <arg name="enable_infra" default="true"/> -->
<!-- Launch L515 through nodeler -->
<group ns="$(arg l515_ns)">
<include file="$(find realsense2_camera)/launch/includes/nodelet.launch.xml">
<arg name="device_type" value="$(arg device_type_l515)"/>
<arg name="serial_no" value="$(arg serial_no_l515)"/>
<arg name="tf_prefix" value="$(arg tf_prefix_l515)"/>
<arg name="initial_reset" value="$(arg initial_reset)"/>
<arg name="align_depth" value="true"/>
<arg name="filters" value="pointcloud"/>
<arg name="color_width" value="$(arg color_width)"/>
<arg name="color_height" value="$(arg color_height)"/>
<arg name="depth_width" value="$(arg depth_width)"/>
<arg name="depth_height" value="$(arg depth_height)"/>
<arg name="clip_distance" value="$(arg clip_distance)"/>
<arg name="ordered_pc" value="$(arg ordered_pc)"/>
<arg name="enable_sync" value="true"/>
</include>
</group>
<!-- CAMERA ALIGNMENT -->
<node pkg="tf" type="static_transform_publisher" name="t265_to_l515" args="0.00305 -0.0003 -0.04305 0.0 0.0 1.57 /$(arg tf_prefix_t265)_link /$(arg tf_prefix_l515)_link 100"/>
</launch> Here is how I launch rtabmap: <launch>
<arg name="device_type_t265" default="t265"/>
<arg name="device_type_l515" default="l515"/> <!-- Note: using regular expression. match D435, D435i, D415... -->
<arg name="serial_no_t265" default=""/>
<arg name="serial_no_l515" default=""/>
<arg name="camera1" default="t265"/> <!-- Note: Replace with camera name -->
<arg name="camera2" default="l515"/> <!-- Note: Replace with camera name -->
<arg name="clip_distance" default="-2"/>
<arg name="debug" default="false"/>
<arg name="use_rviz" default="false"/>
<arg name="use_rtabmapviz" default="true"/>
<include file="$(find growbot_launch)/auto_launch/rs_t265_and_l515.launch">
<arg name="device_type_t265" value="$(arg device_type_t265)"/>
<arg name="device_type_l515" value="$(arg device_type_l515)"/>
<arg name="serial_no_t265" value="$(arg serial_no_t265)"/>
<arg name="serial_no_l515" value="$(arg serial_no_l515)"/>
<arg name="t265_ns" value="$(arg camera1)"/>
<arg name="l515_ns" value="$(arg camera2)"/>
<arg name="clip_distance" value="$(arg clip_distance)"/>
</include>
<include file="$(find rtabmap_ros)/launch/rtabmap.launch">
<arg name="rtabmap_args" value="--delete_db_on_start"/>
<arg name="cfg" value="$(find growbot_launch)/config/config.ini"/>
<arg name="gdb" value="$(arg debug)"/>
<arg name="depth_topic" value="/$(arg camera2)/aligned_depth_to_color/image_raw"/>
<arg name="frame_id" value="$(arg camera1)_link"/>
<arg name="visual_odometry" value="false"/>
<arg name="odom_topic" value="/$(arg camera1)/odom/sample"/>
<arg name="rgb_topic" value="/$(arg camera2)/color/image_raw"/>
<arg name="rgbd_sync" value="true"/>
<arg name="approx_rgbd_sync" value="false"/>
<arg name="camera_info_topic" value="/$(arg camera2)/color/camera_info"/>
<arg name="queue_size" value="10"/>
<arg name="rviz" value="$(arg use_rviz)"/>
<arg name="rtabmapviz" value="$(arg use_rtabmapviz)"/>
</include>
</launch>
|
Following are the issues I referred to, to solve this problem:
Hope this helps someone who wants to work with L515 + T265 sensor configuration using rtabmap_ros |
@shubhamwagh what was your launching command? I am using the following
I am getting lags in the 3D map rendering |
[ INFO] [1618329073.723286023]: rtabmap (27): Rate=1.00s, Limit=0.000s, Conversion=0.0009s, RTAB-Map=0.0878s, Maps update=0.0015s pub=0.0000s (local map=21, WM=21)
L515 + T265
For RTabMap_ros
Following is the launch command of rtabmap_ros
roslaunch rtabmap_ros rtabmap.launch rtabmap_args:="-d --Mem/UseOdomGravity true --Optimizer/GravitySigma 0.3 --delete_db_on_start" odom_topic:=/t265/odom/sample frame_id:=t265_link rgbd_sync:=true depth_topic:=/l515/aligned_depth_to_color/image_raw rgb_topic:=/l515/color/image_raw camera_info_topic:=/l515/color/camera_info approx_rgbd_sync:=false visual_odometry:=false queue_size:=200
The text was updated successfully, but these errors were encountered: