FAST-LIVO2 icon indicating copy to clipboard operation
FAST-LIVO2 copied to clipboard

How to implement time synchronization among GNSS boards, lidar, and cameras.

Open JACKLiuDay opened this issue 9 months ago • 6 comments

Dear Dr. Zheng,

I currently have a ZED-F9P GNSS board capable of outputting a PPS signal, along with a MID360 LiDAR and a Hikvision MV-CU013-A0UC camera. I have already achieved synchronization between the LiDAR and the camera using an STM32 development board and successfully reproduced FAST-LIVO2.

Now, I would like to use the GNSS board to synchronize the LiDAR and the camera. Do I still need the STM32 board? Can I directly connect the GNSS PPS signal to the trigger lines of the LiDAR and the camera to achieve my goal?

I would greatly appreciate your guidance on this matter.

Best regards

JACKLiuDay avatar Apr 14 '25 03:04 JACKLiuDay

More specifically, you can refer to this diagrammatic.

Image

xuankuzcr avatar Apr 14 '25 04:04 xuankuzcr

More specifically, you can refer to this diagrammatic.

Image

Thank you for your reply, Dr. Zheng. Does this image correspond to a published paper or an open-source synchronization method? It looks very similar to FAST-LIVO2's approach (also using STM32).

JACKLiuDay avatar Apr 14 '25 09:04 JACKLiuDay

Yeah, this is from MARS LVIG, an open-source project that integrates the FAST-LIVO2 system on the DJI M300 platform: https://mars.hku.hk/dataset.html. The microchip program source code is also publicly available.

xuankuzcr avatar Apr 14 '25 09:04 xuankuzcr

Yeah, this is from MARS LVIG, an open-source project that integrates the FAST-LIVO2 system on the DJI M300 platform: https://mars.hku.hk/dataset.html. The microchip program source code is also publicly available.

Thank you for your reply, Dr. Zheng. I reviewed the LVIG project and synchronization code you provided, but I still have some questions. If I want to achieve synchronization between GNSS, LiDAR, and the camera, which specific board should I use? Is it the Arduino Uno board? And how should the wiring be implemented? It would be great if I could refer to your open-source FAST-LIVO hardware synchronization solution as a reference. https://github.com/xuankuzcr/LIV_handhold

JACKLiuDay avatar Apr 15 '25 05:04 JACKLiuDay

Both Arduino and STM32 can be used. You can refer to the logic of the code written in Arduino to modify the STM32 code in LIV_handhold. There isn't a ready-made STM32 version available.

xuankuzcr avatar Apr 16 '25 09:04 xuankuzcr

Hello I was considering theese two RTK modules (I'm interested in the RTK dongles instead of PPS solo boards because I would love to try the Livox Horizon with some mapping pipelines): https://gnss.store/en/zed-f9p-gnss-modules/126-233-elt0110.html#/61-gnss_module-l1_l2_zed_f9p https://gnss.store/en/septentrio-gnss-modules/540-elt0752.html

Both have PPS out. 3.3v TTL. I use Livox Converter2.0 which I believe should directly be able to read the signal.

the "C099-F9P application board" used on the drone also has 2 SMA outputs so I guess PPS is output as in the modules I'm considering. My question is, how the do you convert SMA out cable into the JST GHR-03V-S of the livox converter, or even to pins for the At mega used for this project? I'm totally lost on this.

Also, the camera used on the drone, the Hikvision CA-050-11UC, has no sync input according to specs despite the graph above seems to sugest that, may be you're registering the pulses on the on board computer instead?

Hikvision CA-050-11UC, specs: https://detail.1688.com/offer/592300766689.html

My plan is to use raspberri pi 5 with NVME to capture the .bag and do all the computations on the desktop pc.

Tx

TokyoWarfare avatar Nov 10 '25 00:11 TokyoWarfare