Transformations

Tree

graph TD earth --> _[map] _[map] --> base_in_map base_in_map --> base_rolled_pitched base_rolled_pitched --> cam_mount cam_mount --> cam_ptz_encoder cam_ptz_encoder --> cam_ptz_sensor cam_ptz_sensor --> rgb_sensor_image_plane rgb_sensor_image_plane --> thermal_sensor_image_plane base_rolled_pitched --> soar_imu _[map] --> ais_123 _[map] --> ais_512

tf tree

  • earth is fixed according to ROS-REP105

  • map is a zero rotation position of the ship

    • other actors e.g. AIS GPS ship positions should be transformed into this frame

  • base_in_map is the compass / yaw corrected ship position in map (rotation only)

  • base_rolled_pitched is the IMU / roll+pitch corrected ship position (rotation only)

    • dont use yaw info as this is done by compass in base_in_map frame

    • datasources

      • ship imu (slow via NMEA but fused with compass/gps)

      • resq custom pi based imu (fast)

  • cam_mount is the position of the camera on the mast (translation only)

  • cam_ptz_encoder is the ptz axis corrected position (rotation only)

  • cam_ptz_sensor translation from cam_mount to camera sensor (translation only)

  • rgb_sensor_image_plane sensor to rgb image coordinates (rotation only)

  • thermal_sensor_image_plane the thermal camera’s own image coordinates (rotation only)

    • the two cameras ride one head but are not perfectly boresighted so we need a extrinsic correction for that

AIS

AIS GPS Positions will be converted to metrical relative position to the map coordinate frame to be able to use them as transform.