Calibration



Intrinsics

Camera Index Installation Position Topic Name Intrinsics File
Camera Intrinsics (Link)
0 Right-back /hikcamera/image_0/compressed camera-intrinsics_cam0.yaml
1 Front (right) /hikcamera/image_1/compressed camera-intrinsics_cam1.yaml
2 Front (left) /hikcamera/image_2/compressed camera-intrinsics_cam2.yaml
3 Left-front /hikcamera/image_3/compressed camera-intrinsics_cam3.yaml
4 Right-front /hikcamera/image_4/compressed camera-intrinsics_cam4.yaml
5 Left-back /hikcamera/image_5/compressed camera-intrinsics_cam5.yaml
6 Rear /hikcamera/image_6/compressed camera-intrinsics_cam6.yaml

Extrinsics

Target Topic Extrinsics File
4D Radar to LiDAR (Link)
Radar -> Velodyne /Target_Radar_1 -> /velodyne_points extrinsics_radar_velodyne.yaml
4D Radar to Camera (Link)
Radar -> cam1/Target_Radar_1 -> /hikcamera/image_1/compressedextrinsics_radar_camera1.yaml
Radar -> cam2/Target_Radar_1 -> /hikcamera/image_2/compressedextrinsics_radar_camera2.yaml
LiDAR to IMU (Link)
Velodyne -> IMU/velodyne_points -> /imu/datavelodyne_Initialization_result.txt
Hesai -> IMU/hesai_points -> /imu/datahesai1_Initialization_result.txt
Camera to IMU (Link)
cam0 -> IMU/hikcamera/image_0/compressed -> /imu/dataextrinsics_cam0_imu.yaml
cam1 -> IMU/hikcamera/image_1/compressed -> /imu/dataextrinsics_cam1_imu.yaml
cam2 -> IMU/hikcamera/image_2/compressed -> /imu/dataextrinsics_cam2_imu.yaml
cam3 -> IMU/hikcamera/image_3/compressed -> /imu/dataextrinsics_cam3_imu.yaml
cam4 -> IMU/hikcamera/image_4/compressed -> /imu/dataextrinsics_cam4_imu.yaml
cam5 -> IMU/hikcamera/image_5/compressed -> /imu/dataextrinsics_cam5_imu.yaml
cam6 -> IMU/hikcamera/image_6/compressed -> /imu/dataextrinsics_cam6_imu.yaml
Camera to Velodyne LiDAR (Link)
Velodyne -> cam0/velodyne_points -> /hikcamera/image_0/compressedextrinsics_cam0_velodyne.yaml
Velodyne -> cam1/velodyne_points -> /hikcamera/image_1/compressedextrinsics_cam1_velodyne.yaml
Velodyne -> cam2/velodyne_points -> /hikcamera/image_2/compressedextrinsics_cam2_velodyne.yaml
Velodyne -> cam3/velodyne_points -> /hikcamera/image_3/compressedextrinsics_cam3_velodyne.yaml
Velodyne -> cam4/velodyne_points -> /hikcamera/image_4/compressedextrinsics_cam4_velodyne.yaml
Velodyne -> cam5/velodyne_points -> /hikcamera/image_5/compressedextrinsics_cam5_velodyne.yaml
Velodyne -> cam6/velodyne_points -> /hikcamera/image_6/compressedextrinsics_cam6_velodyne.yaml
Camera to Hesai LiDAR (Link)
Hesai -> cam0/hesai_points -> /hikcamera/image_0/compressedextrinsics_cam0_hesai.yaml
Hesai -> cam1/hesai_points -> /hikcamera/image_1/compressedextrinsics_cam1_hesai.yaml
Hesai -> cam2/hesai_points -> /hikcamera/image_2/compressedextrinsics_cam2_hesai.yaml
Hesai -> cam3/hesai_points -> /hikcamera/image_3/compressedextrinsics_cam3_hesai.yaml
Hesai -> cam4/hesai_points -> /hikcamera/image_4/compressedextrinsics_cam4_hesai.yaml
Hesai -> cam5/hesai_points -> /hikcamera/image_5/compressedextrinsics_cam5_hesai.yaml


1. Time Synchronization


We use an Ethernet topology to achieve data transmission, and the system architecture is shown in Figure 1. The Precision Time Protocol (PTP) server broadcasts synchronization signals to coordinate the clocks of various data acquisition devices in the sensor network. The PTP server obtains NMEA output and Pulse-Per-Second (PPS) signals from the u-blox M8T GNSS receiver. These signals are then converted into PTP time synchronization using the Auto66 autonomous driving time synchronization box from Coolshark Technology (酷鲨科技). The PTP server serves as the system clock source. This mechanism allows the ROS time of the onboard computer to remain consistent with GPS time. Subsequently, the PTP server broadcasts time synchronization data to all network ports, ensuring that the hardware clocks of sensors such as cameras and LiDAR are synchronized. For sensors without Ethernet interfaces, ROS time synchronized with GPS is used to record timestamps.

Furthermore, for cameras, the GigE Vision protocol is used to broadcast action commands over the network, enabling synchronous triggering of Ethernet cameras with a trigger precision of less than 0.005 seconds. All data is transmitted to the onboard computer through this system architecture and simultaneously recorded in rosbag format. The current trigger frequencies are set as follows: LiDAR and cameras at 10 Hz, IMU at 400 Hz, 4D radar at 13 Hz, GNSS at 1 Hz, and UWB at 50 Hz.

Image description
Fig. 1. The Structure of Our Sensors Synchronization

2. Sensors Frame