When I look at the ROS tf2 documentation, it shows two turtlebots with “world” as the top frame that provides a universal frame of reference.
When I run Dave, and view frames:
* View tf2 frames
Desk: ros2 run tf_tools view_frames.py
Listening to tf data during 5 seconds...
Generating graph in frames.pdf file...
Desk: evince frames.pdf (or browse to folder and dbl-click frames.pdf)
I have the imu_link and joint_imu that ties the imu_link to the base_link, but that doesn’t show in the frames display for some reason.
@KeithW does Finmark know where in the “world” frame he is? If so - what generates the odom->world or base_link->world transform?
This is the issue I was having. In my case the tf from imu_link to world was being published by the imu driver. That overrode the tf coming from the URDF between the imu_link and base_link. When I was using AMCL did did have a transform from map to odom - I think that comes from the localization package.
I was going to try removing the tf published by the imu driver to see what happened. I never got to that because the imu node kept crashing. If your new driver keeps it from crashing, I’ll try removing the tf publisher next.
Yes, no crashing confirmed. I’ll work on creating the safe_imu_sensor.py for ROS(1) this weekend.
It also looks like every other robot is using the robot_localization package to fuse IMU and Odometry to feed the nav stack.