Forums - IMU and Camera Transformation

4 posts / 0 new
Last post
IMU and Camera Transformation
shaadee
Join Date: 20 Dec 16
Posts: 5
Posted: Tue, 2019-05-21 22:03

Hi,

We are housing the FlightPro board in owr own enclosure which has the downfacing camera in a differnt position with respect to the PCB. We therefore need to provide appropriate 'tbc' and  'ombc' parameters for the mvVISLAM initialisation. I can see that this issue has been raised in the following link https://github.com/ATLFlight/ros-examples#how-do-i-set-my-own-values-for-the-initial-imu-to-camera-transformation- which is very helpful, however the coordinate frames relate to the original Flight Kit board.

Question is, what are the coordinate frames for the board, IMU and camera of the FlightPro board?

Also, what are the values for tbc and ombc for the new FlightPro? (the above links shoes the values for the original Flight Board)

Thanks

  • Up0
  • Down0
gmerewet
Join Date: 24 Mar 16
Posts: 11
Posted: Thu, 2019-05-23 12:50

The following transform works for me on the 820 with MVVislam (tracking quality is good, but haven't tested extensively). Time alignment is also important (use snap_cam_ros, and MVVislam offset value of 0.002

      F32 tbc[] = { -0.051, 0.015, 0.011 };
      // NOTE(mereweth) - axis-angle rep;                                                   
      F32 ombc[] = { 0.6149, -0.6149, -1.4817 };
 
See here for IMU and camera coordinate frames labeled on the Flight board:
  • Up0
  • Down0
shaadee
Join Date: 20 Dec 16
Posts: 5
Posted: Wed, 2019-05-29 15:57

Thanks for your input. I think I have sorted out the values for our setup which is our own custom enslosure. I can now track without loosing tracking after a few meteres of movement which was the case before. However I can see that there seems to be some sort of repeatable bias in tracking!

Regarding the coordinates, I found that the IMU coordinate frame (which is the same as the board) is different from what you have shown on the picture on your link. Based on monitoring the raw values of the accelerometer output (for IMU) and pose translations (for body) I think looking at the camera lens (same way as your picture) the IMU X-axis is to the left, Y-Axis upwards and Z-Axis away from you (Right-hand). Camera coordinate is the same as you have shown (X-axis to the left, Y-Axis downwards, and Z-axis towards you). 

Regarding the time delay value, the defalut value in main.cpp in mvVISLAM is 0.0026. I have tried this as well as your suggestion of 0.002 and and also 0.0023 (to be in the middle) and compared ploting of the resulting tracking, but can't really tell which one is better. How do we know for sure what value shoud be used? 

  • Up0
  • Down0
gmerewet
Join Date: 24 Mar 16
Posts: 11
Posted: Mon, 2019-06-03 15:13

There are two IMUs on the board - I'm using IMU0 on /dev/spi-10, which has the coordinate axes I described above. Not sure about the other one, but the snav package gives coordinate transforms (at least rotations, and translations if you do some searching) between IMU frame origins.

MV Vislam estimates camera-IMU time alignment online, and it should converge with a good initial estimate. You could try printing out the value of that field in the vislam pose struct to see what it converges to.

   @param timeAlignment                                                                                                                                                                   
      Camera IMU time misalignment estimate (seconds). 
  • Up0
  • Down0
or Register

Opinions expressed in the content posted here are the personal opinions of the original authors, and do not necessarily reflect those of Qualcomm Incorporated or its subsidiaries (“Qualcomm”). The content is provided for informational purposes only and is not meant to be an endorsement or representation by Qualcomm or any other party. This site may also provide links or references to non-Qualcomm sites and resources. Qualcomm makes no representations, warranties, or other commitments whatsoever about any non-Qualcomm sites or third-party resources that may be referenced, accessible from, or linked to this site.