I have ZED2i mounted on a robot with its own odometry node. Since TF trees have to be, well, trees, I’m sticking with the other robot’s odometry. From this Github issue, it seems as though the TF chain map
→ odom
→ base_link
→ zed2i_base_link
is a mandatory chain, whereas in my case, I’m trying to do odom (other robot)
→ robot_base_link
→ zed2i_base_link
. I’ve also modifed common.yaml
to have position tracking disabled:
pos_tracking:
pos_tracking_enabled: false
publish_tf: false
publish_map_tf: false
I modified zed2i.launch
to have the static TF between ZED and the robot:
<arg name="base_frame" value="body" /><!-- The robot's base frame -->
<arg name="cam_pos_x" value="0.5541150717847408" /> <!-- Position respect to base frame (i.e. "base_link) -->
<arg name="cam_pos_y" value="0.00002916409135" /> <!-- Position respect to base frame (i.e. "base_link) -->
<arg name="cam_pos_z" value="0.1413133563415901" /> <!-- Position respect to base frame (i.e. "base_link) -->
<arg name="cam_roll" value="0.0038318163402699043" /> <!-- Orientation respect to base frame (i.e. "base_link) -->
<arg name="cam_pitch" value="0.034986497068765145" /> <!-- Orientation respect to base frame (i.e. "base_link) -->
<arg name="cam_yaw" value="-0.0009843428622626003" /> <!-- Orientation respect to base frame (i.e. "base_link) -->
The TF tree looks like we’d like it to now, with zed2i_base_link
connected to the robot’s body
frame. The lack of a map frame shouldn’t break anything/cause a low framerate as experienced in the linked issue, right?
Edit: I originally wrote pos_tracking
arguments as true, changed them to false as they are in my common.yaml