# Camera extrinsics — base_link to camera_optical_frame transforms
# Generated from mechanical mount geometry:
#   mount_radius = 0.05m, mount_height = 0.30m
#   Camera yaw: front=0deg, right=-90deg, rear=180deg, left=90deg
#
# Quaternion convention: [qx, qy, qz, qw] (xyzw)
# Rotation: camera_optical_frame -> base_link
#   camera_optical: z=forward(out), x=right, y=down
#   base_link:      x=forward,      y=left,  z=up  (ROS REP-103)
#
# Regenerate with:
#   python3 calibrate_extrinsics.py --mode mechanical \
#     --mount-radius 0.05 --mount-height 0.30 \
#     --output jetson/calibration/extrinsics.yaml

_description: Camera extrinsics - base_link to camera_optical_frame transforms
_mount_radius_m: 0.05
_mount_height_m: 0.30

cameras:
  front:
    parent_frame: base_link
    child_frame: camera_front_optical_frame
    translation: [0.05, 0.0, 0.30]
    rotation_quat_xyzw: [0.5, -0.5, 0.5, -0.5]

  right:
    parent_frame: base_link
    child_frame: camera_right_optical_frame
    translation: [0.0, 0.05, 0.30]
    rotation_quat_xyzw: [-0.707107, 0.0, 0.0, 0.707107]

  rear:
    parent_frame: base_link
    child_frame: camera_rear_optical_frame
    translation: [-0.05, 0.0, 0.30]
    rotation_quat_xyzw: [-0.5, -0.5, 0.5, 0.5]

  left:
    parent_frame: base_link
    child_frame: camera_left_optical_frame
    translation: [0.0, -0.05, 0.30]
    rotation_quat_xyzw: [0.0, -0.707107, 0.707107, 0.0]
