I’m doing something a little different with fiducial_slam, specifically trying to record both fiducials and lidar scanning in the same run. I created a sensor setup that I’m pushing around on a cart - this defines a “robot” that has a pi cam and a lidar sensor. I’ve recorded a bag file with the camera images and lidar, and am trying to run fiducial_slam on it to create the map.
My URDF file defines base_footprint -> base_link -> camera, and also base_link -> laser frame. I am launching fiducial_slam with the following command:
roslaunch fiducial_slam fiducial_slam.launch map_frame:=“map” odom_frame:=“odom” base_frame:=“base_link” publish_6dof_pose:=“true” publish_tf:=“true” future_date_transforms:=“0.5”
This is giving me a separate transform tree of map -> odom, with no connection to the “robot”. It’s also giving me a massive headache. For the life of me, I can’t get the transform tree to acknowledge that the “robot” is on the map, so fiducial_slam can’t place anything but the initial two aruco markers. Can anyone offer some insight? I’m really at a loss.
2 Likes
Hey @WayTooManyHobbies,
Thanks for your question. fiducial_slam
assums that there is some other source of odometry providing the odom->base_link
transform. On most robots this data is provided by wheel odometry.
In your case it sounds like there is nothing providing that transform, so you could a static transform publisher that published a constant 0 transform for odom->base_link
. Note that this will mean that you will have no source of position data in between fiducial_slam updates, which may cause issues.
Rohan
Thanks for the information - that’s very helpful, and gives me some ideas to try. I’ll report back on how things work out.
Chuck
OK, looks like what I wanted to do short term will not work. I’ll have to work on an odometry source and try again. Thanks for your help!
I’m now trying to use slam_toolbox in concert with the lidar to provide odometry to use with fiducial_slam. The transforms look better, but I still don’t get the other fiducials on the map. My tf frames are shown here - anyone spot where I’m being dense?
Just updating - I’m getting marginally smarter as the days go by. Finally rammed through my skull that the transform is not the same as the topic, and that I need a topic. I’m now working on another part of my project to get odometry going, and then I’ll take another stab at an integrated mapping solution with lidar-based mapping and fiducial_slam for localization.
1 Like
How did you go integrating lidar and fiducial slam?