Inconsistencies in default extrinsic files
-
Hi team,
I'm setting up a drone with a Voxl Deck, and I've pulled in the default extrinsic file ("factory_m500_flight_deck") to modify for my needs. I was looking to just leave it as-is except for adding a fixed offset to all the "body" measurements, but a few things about it seem a bit off. I'd like to either correct my understanding or help the team correct the file, depending on whether these errors are in my interpretation or in the file itself.
-
The y-distance between imu0 to imu1 is 0.037m in the file, but it seems like it should be .029m according to the reference drawings (36mm - 2.8mm - 4.25mm) as well as my calipers. And .037m is wider than the board itself.
-
This is a tiny one, but the z distance between IMUs is .002 which makes sense since they're on opposite sides of the PCB. Shouldn't the Z distances for imu-to-body and imu-to-tracking differ by .002 for each IMU? They're each the same in in the config file.
-
The z height of the stereo and tof cameras relative to body are both 0 but they are clearly at different heights on the mount.
-
Per imu-to-body, the body's X is just around the back edge of the PCB (.02m behind imu0). But per tof-to-body and stereo-to-body, it's a few cm behind the board (.1m behind the cameras).
I doubt any of these (save for possibly #1) will significantly affect performance, if at all, but I imagine it's in everyone's interest for the extrinsics to be self-consistent. Should these files be corrected, or am I missing something?
For reference, here's the file I'm looking at (as set by "voxl-configure-extrinsics factory_m500_flight_deck"):
{ "name": "M500_flight_deck", "extrinsics": [{ "parent": "imu1", "child": "imu0", "T_child_wrt_parent": [-0.0484, 0.037, 0.002], "RPY_parent_to_child": [0, 0, 0] }, { "parent": "imu0", "child": "tracking", "T_child_wrt_parent": [0.065, -0.014, 0.013], "RPY_parent_to_child": [0, 45, 90] }, { "parent": "imu1", "child": "tracking", "T_child_wrt_parent": [0.017, 0.015, 0.013], "RPY_parent_to_child": [0, 45, 90] }, { "parent": "body", "child": "imu0", "T_child_wrt_parent": [0.02, 0.014, -0.008], "RPY_parent_to_child": [0, 0, 0] }, { "parent": "body", "child": "imu1", "T_child_wrt_parent": [0.068, -0.015, -0.008], "RPY_parent_to_child": [0, 0, 0] }, { "parent": "body", "child": "stereo_l", "T_child_wrt_parent": [0.1, -0.04, 0], "RPY_parent_to_child": [0, 90, 90] }, { "parent": "body", "child": "tof", "T_child_wrt_parent": [0.1, 0, 0], "RPY_parent_to_child": [0, 90, 90] }, { "parent": "body", "child": "ground", "T_child_wrt_parent": [0, 0, 0.1], "RPY_parent_to_child": [0, 0, 0] }] } -
Reading along? Create a free ModalAI Forum account to join in.
With an account you can reply, ask your own question, get an email when a ModalAI engineer answers, and mark the reply that solved it. Your place in each thread is saved between visits.
Questions about VOXL, Flight Core, ESCs and ModalAI drones are answered here by the engineers who build them.
Register Login