A small VIO system using raspberry pi and arducam ov9281

I think it’s sent through ipc tunnel. But I still didn’t got right.

You can help here.

Thanks, I think I figured it out another solution: You can publish the ego-planner output to MAVROS using /setpoint_raw/local.

@chobitsfan ,
kudos for the awesome work!!
I had some queries regarding system time synchronization and synchronization between IMU and camera frames:

  1. I believe you have set BRD_RTC_TYPES to 1, which is Mavlink SYSTEM_TIME.
    Therefore, The onboard computer sends SYSTEM_TIME msgs(via MAVROS) and uses the Mavlink TIMESYNC message to synchronize the system time between FCU and RPi, right?
    How do you handle the response once MAVROS receives TIMESYNC Mavlink msg from FCU?
    I understand the TIMESYNC helps you find the offset between the FCU and On-Board Computer, which you add/ subtract to the time stamp sent for the HIGHRES IMU Mavlink msg from FCU. Am I right in understanding this?
    Could you please discuss in detail the role of SYSTEM_TIME and TIMESYNC messages in helping onboard computer and FCU time sync?
    If BRD_RTC_TYPES is set to 1, is FCU time set to the time_unix_usec field value from the SYSTEM_TIME msg?
    How is the TIMESYNC msg used in this process? Is it to calculate the offset between the onboard computer time and FCU system time(the one set by Mavlink SYSTEM_TIME msg) to account for communication offsets?
  2. I also wanted to ask you if you use a camera trigger with servo/ relay functionality from FCU to trigger the camera to get the images at a certain frequency(DIY Camera Trigger using Relay — Copter documentation). If not, do you receive time-stamped image frames and further use software synchronization to sync images and highres imu mavlink packets for VIO? How do you get accurate timestamps for camera images?

Hi

  1. SYSTEM_TIME is only used to set FC log time, so that it is easier to know when did this flight happen. TIMESYNC is used to measure the time offset between FC and pi. Timestamp used in vins-mono is based on pi time.
  2. libcamera provides time-stamped image frames, see use sensor timestamp · chobitsfan/libcamera-apps@a142eb2 · GitHub