top of page

An open-source toolbox for users to have easy access to Hardware Synchronization on multi-sensors. The toolbox has a GUI based on QT (RQT). Users can record a ROS bag or have a new topic reflector  (reconstructed timestamp) as they want. Furthermore, the hardware-level IMU data process is also embedded in Microcontroller.

The project aims to provide an open-source solution to the online sensor data collection & timestamp reconstruction problem. We will be using a microcontroller to send hardware sync triggers to each sensor and collecting & reconstructing the data.

The final product could be like A solution that can help everyone quickly get data with accurate time. For example, one can easily sync a stereo camera with imu and GPS using the toolbox. He can choose an online algorithm or record it as a bag. A bunch of microcontrollers is on the support list.

 

Because the dataset work previously let me realize that the hardware sync is not an easy work which can bring taught problems when one first doing it. I want to expand my work to different platforms and situations to help others.

Pink Cream
Screenshot from 2022-03-17 15-27-16.png
Screenshot from 2022-03-17 14-52-08.png

This is the GUI in RQT on the host. We can set external trigger types and parameters in the GUI. All things are intuitive and easy to change. The host will use ASCII protocol to control the microcontroller. 

Users can also use reconstruct tools to get original data with the correct (rectified) timestamp.

As shown in the picture, we can assign the topic name input with the native sensor ROS driver. And get rectified data in topic output or ROS bag.

Screenshot from 2022-03-17 15-05-49.png

NU 32

Introduction for NU32 

Speed: 80MHz

Feature: Output Compare

Baud rate: 230400/115200

800px-NU32_Nov2015.jpg

STM 32F103

Screenshot from 2022-03-17 22-37-46.png

Speed: 72MHz

Baud rate: 115200

calibration with April Tag Board

Kaliba Test

Calibrate result

cam0:

T_cam_imu:

- [0.017248643674008135, -0.9998037138739959, 0.009747718459772736, 0.07733078169916466]

- [0.012834636469124028, -0.009526963092989282, -0.999872246379971, -0.016637889364465353]

- [0.9997688514842376, 0.017371548520172697, 0.01266779001636642, -0.14481844113148515]

- [0.0, 0.0, 0.0, 1.0]

camera_model: pinhole

distortion_coeffs: [-0.31576, 0.104955, 0.00032, -0.000156]

distortion_model: radtan

intrinsics: [886.191073, 886.591633, 610.578911, 514.59271]

resolution: [1224, 1024]

rostopic: /stereo/left/image_mono

timeshift_cam_imu: 0.005375665182111344

cam1:

T_cam_imu:

- [0.014447870885660574, -0.9997787221387724, -0.015289401081614196, -0.09375829054484337]

- [0.01108843210124949, 0.015450259055501236, -0.9998191517312787, -0.015076213124111792]

- [0.9998341390952836, 0.014275722527461954, 0.011309201824693582, -0.14050229888646543]

- [0.0, 0.0, 0.0, 1.0]

camera_model: pinhole

distortion_coeffs: [-0.311523, 0.09641, 0.000623, -0.000375]

distortion_model: radtan

intrinsics: [887.804282, 888.04815, 616.177573, 514.712952]

resolution: [1224, 1024]

rostopic: /stereo/right/image_mono

timeshift_cam_imu: 0.005415704144667583

The timeshift from camera and imu is near 5ms which is in line with our expectations. Because we set start point aligned and the exposure time is 10ms.

bottom of page