luxonis / depthai-ros

Official ROS Driver for DepthAI Sensors.
MIT License
251 stars 185 forks source link

what's camera_i_base_frame for? #583

Open khuechuong opened 3 weeks ago

khuechuong commented 3 weeks ago

okay so I thought that it might be the fix frame or something but it doesn't even show up on the tf tree.

basically in camera.yaml:

<arg name="base_frame" default="oak-d_frame" />
<arg name="parent_frame" default="oak-d-base-frame" />
    <param name="$(arg name)/camera_i_base_frame" value="$(arg base_frame)"/>
    <param name="$(arg name)/camera_i_parent_frame" value="$(arg parent_frame)"/>
    <include unless="$(arg publish_tf_from_calibration)" file="$(find depthai_descriptions)/launch/urdf.launch">
        <arg name="base_frame" value="$(arg  name)" />
        <arg name="parent_frame" value="$(arg  parent_frame)"/>
        <arg name="camera_model" value="$(arg  camera_model)"/>
        <arg name="tf_prefix" value="$(arg  name)" />
        <arg name="cam_pos_x" value="$(arg  cam_pos_x)" />
        <arg name="cam_pos_y" value="$(arg  cam_pos_y)" />
        <arg name="cam_pos_z" value="$(arg  cam_pos_z)" />
        <arg name="cam_roll" value="$(arg  cam_roll)" />
        <arg name="cam_pitch" value="$(arg  cam_pitch)" />
        <arg name="cam_yaw" value="$(arg  cam_yaw)" />
    </include>

so parent_frame is used for tf urdf but I don't see where base_frame is used. I also couldn't find anything on camera_i_base_frame on the documentation. There's a camera_i_tf_base_frame, but I'm not sure what it's use for.

Serafadam commented 2 weeks ago

Hi, I think you have caught a typo in configuration as those parameter names should be indeed called camera_i_tf_base_frame. The convention is that parent_frame is used for attaching camera to other TF entity (for example map) and base_frame is a child frame of it that serves as a starting point for each individual cameras TF tree.