Closed HeTemp closed 1 year ago
Hi! Thanks for your interest in Swarm-SLAM!
The issue might be the rendezvous simulator. Robots don't publish data unless they have neighbors. They also keep track of what data were shared with each robot in order to avoid duplicated messages and make sure that each neighbor receives all the information. As mentionned in the paper, I introduced a rendezvous schedule for dataset evaluation to simulate the worst case in which robots only meet at the end.
According to your log: Simulated rendezvous schedule of robot 0,900,3600
, robot 0 will be visible to other only between the 900 second and the 3600 second, so you might have to wait for them to see each other.
I just pushed an update to cslam_experiments to disable this mechanism since it is only useful for worst-case evaluation.
For now on, people who want to replicate the experiments exactly will need to use the tag 1.0.0.
With my latest commit, the robots will see each other right from the beginning and should start publishing on /r[id]/cslam/keyframe_data
right away. Let me know if this fixes your isssue. If not, I suggest that you look to see if all the relevant topics are in the correct namespaces and have corresponding publishers and subscribers. You can look for this using ros2 topic list
, ros2 node list
and ros2 node info node_name
. Feel free to post the output of those commands here if you have'nt resolved the problem :)
Hello! Thank you very much for your response!
I have updated my cslam experiment and now I am able to get information from /r0/cslam/heartbeat
.
However, I still couldn't received any messages (nor error messages) from ros2 topic echo /r0/cslam/keyframe_data
or ros2 topic echo /r0/odom_info
According to your advice, I have reviewed the message node information by ros2 node list
and ros2 node info node_name
, and corrected the camera_info format in my dataset, but it still doesn't seem to have any effect.
I am not sure what command outputs you would need to confirm the cause of the problem. Please let me know, and I will post them here immediately. Thanks!
Ok, the problem might be the odometry which Swarm-SLAM takes as input. If there is no odometry published, the system won't do anything.
I suggest this general methodology to debug while running your setup:
rqt_graph
and double check that all the topics are connected properly;ros2 topic echo topic_name
or ros2 topic hz topic_name
. Work you way gradually through the pipeline to find where things are broken and not publishing.If, as I now suspect, the odometry is not published, check into the odometry launch file and its many parameters: https://github.com/lajoiepy/cslam_experiments/blob/main/launch/odometry/rtabmap_kitti_stereo_odometry.launch.py Note that the odometry is a decoupled input from Swarm-SLAM, so if RTAB-Map does not work for you, but you are able to run another odometry software with your bag, you can use the other one instead.
Thanks again for you kind help! After inspection, I think there is something wrong with the dataset I recorded. So I switched to graco_ Lidar dataset, and it works. So the problem may be on my KITTI dataset and I will check my KITTI dataset again.
Ok, I am glad to hear that it works with GrAco. I'll close the issue since it is not directly related to Swarm-SLAM, but please post your solution for the KITTI bags here if you can. Also, feel free to open another issue if you face any other problem, or if you have questions :)
Thanks again for you kind help! After inspection, I think there is something wrong with the dataset I recorded. So I switched to graco_ Lidar dataset, and it works. So the problem may be on my KITTI dataset and I will check my KITTI dataset again.
Can you please let me know how did you run the odometry on graco dataset?
Hello! First of all, thank you very much for sharing such excellent work!
I encountered some problems while using the KITTI dataset for experiments.During the runtime,
/r0/cslam/keyframe_data
topic has no information. I'm not sure if the issue is with the rosbag that I recorded. Do you have any advice on this matter?The general information about the rosbag that I recorded is as follows:
I selected a small portion of the KITTI odometry color dataset(the first 1000 images from sequence 00) and converted them into a ROS2 bag using a script and ros_bridge.It has the following topic:
The messages of
/r0/stereo_camera/left/image_rect_color
are as follows:The messages of
/r0/stereo_camera/left/camera_info
are as follows:The main program is running as follows: