@zauberflote1 @tom Hi Zauber and Tom! I have done everything you have recommended, I updated to version 1.5.0 of the SDK, I also did a complete calibration of both the cameras and the IMU and the PX4, I have checked the extrinsics file and it seems correct, I leave all the information I have right now. But I have not been able to get the drone to fly in a stable way, when taking off you get an extremely unstable flight, in which it can start to go up or down or move to the sides, this is extremely dangerous for a critical operation and in an indoor place, because generally there is not much margin for error, I need to solve this urgently! if you need something else let me know!
────────────────────────────────────────────────────────────────────────────────
system-image: 1.8.04-M0054-14.1a-perf
kernel: #1 SMP PREEMPT Mon Mar 24 22:31:58 UTC 2025 4.19.125
────────────────────────────────────────────────────────────────────────────────
hw platform: M0054
mach.var: 1.0.1
SKU: MRB-D0014-4-V1-C27-T7-M22-X0
────────────────────────────────────────────────────────────────────────────────
voxl-suite: 1.5.0
────────────────────────────────────────────────────────────────────────────────
Packages:
Repo: http://voxl-packages.modalai.com/ ./dists/qrb5165/sdk-1.5/binary-arm64/
Last Updated: 2025-07-28 15:33:25
List:
libfc-sensor 1.0.7
libmodal-cv 0.5.18
libmodal-exposure 0.1.4
libmodal-journal 0.2.6
libmodal-json 0.4.7
libmodal-pipe 2.13.2
libqrb5165-io 0.5.0
libvoxl-cci-direct 0.3.3
libvoxl-cutils 0.1.5
modalai-slpi 1.2.0
mv-voxl 0.1-r0
qrb5165-bind 0.1-r0
qrb5165-dfs-server 0.2.0
qrb5165-imu-server 1.1.3
qrb5165-mini-tof-server 0.2.2
qrb5165-rangefinder-server 0.1.5
qrb5165-slpi-test-sig 01-r0
qrb5165-system-tweaks 0.3.6
qrb5165-tflite 2.8.0-2
voxl-bind-spektrum 0.1.1
voxl-camera-calibration 0.6.0
voxl-camera-server 2.2.4
voxl-ceres-solver 2:1.14.0-10
voxl-configurator 1.0.2
voxl-cpu-monitor 0.6.0
voxl-docker-support 1.3.1
voxl-elrs 0.4.7
voxl-esc 1.5.4
voxl-feature-tracker 0.5.2
voxl-flow-server 0.3.6
voxl-gphoto2-server 0.0.10
voxl-joystick-server 0.0.6
voxl-jpeg-turbo 2.1.3-7
voxl-lepton-server 1.3.3
voxl-lepton-tracker 0.0.4
voxl-libgphoto2 0.0.4
voxl-libuvc 1.0.7
voxl-logger 0.5.3
voxl-mavcam-manager 0.6.0
voxl-mavlink 0.1.5
voxl-mavlink-server 1.4.9
voxl-modem 1.1.8
voxl-mongoose 7.7.0-2
voxl-mpa-to-ros 0.3.9
voxl-mpa-tools 1.4.0
voxl-open-vins 0.4.19
voxl-open-vins-server 0.3.12
voxl-opencv 4.5.5-3
voxl-osd 0.1.8
voxl-portal 0.7.11
voxl-px4 1.14.0-2.0.105
voxl-px4-params 0.7.5
voxl-qvio-server 1.2.0
voxl-remote-id 0.0.9
voxl-reset-slpi 0.0.1
voxl-state-estimator 0.0.5
voxl-streamer 0.7.5
voxl-suite 1.5.0
voxl-tag-detector 0.0.5
voxl-tflite-server 0.4.1
voxl-utils 1.4.8
voxl-uvc-server 0.1.7
voxl-vision-hub 1.8.23
voxl-vtx 1.4.7
voxl-wavemux 0.0.1
voxl2-io 0.0.3
voxl2-system-image 1.8.04-r0
voxl2-wlan 1.0-r0
{
"name": "D0014_Starling_2",
"extrinsics": [{
"parent": "imu_apps",
"child": "tracking_front",
"T_child_wrt_parent": [0.037, 0.000, 0.0006],
"RPY_parent_to_child": [0, 90, 90]
}, {
"parent": "imu_apps",
"child": "tracking_down",
"T_child_wrt_parent": [-0.08825, -0.0045, 0.0269],
"RPY_parent_to_child": [0, 0, 180]
}, {
"parent": "imu_apps",
"child": "tracking_rear",
"T_child_wrt_parent": [-0.092, 0.016, 0.0036],
"RPY_parent_to_child": [0, -90, -90]
}, {
"parent": "imu_apps",
"child": "hires",
"T_child_wrt_parent": [0.0388, 0.0, 0.0186],
"RPY_parent_to_child": [0, 90, 90]
}, {
"parent": "body",
"child": "imu_apps",
"T_child_wrt_parent": [0.0295, -0.0065, -0.016],
"RPY_parent_to_child": [0, 0, 0]
}, {
"parent": "body",
"child": "imu_px4",
"T_child_wrt_parent": [0.0043, 0.0073, -0.0163],
"RPY_parent_to_child": [0, 0, 0]
}, {
"parent": "imu_apps",
"child": "lepton0_raw",
"T_child_wrt_parent": [-0.0846, 0.0128, 0.0242],
"RPY_parent_to_child": [0, 0, 90]
}, {
"parent": "body",
"child": "tof",
"T_child_wrt_parent": [0.066, 0.009, -0.012],
"RPY_parent_to_child": [0, 90, 180]
}, {
"parent": "body",
"child": "ground",
"T_child_wrt_parent": [0, 0, 0.033],
"RPY_parent_to_child": [0, 0, 0]
}]
}
cat opencv_tracking_front_intrinsics.yml
%YAML:1.0
---
M: !!opencv-matrix
rows: 3
cols: 3
dt: d
data: [ 4.5714170737476474e+02, 0., 6.5910963154859280e+02, 0.,
4.5792960641409849e+02, 4.0038966931029148e+02, 0., 0., 1. ]
D: !!opencv-matrix
rows: 4
cols: 1
dt: d
data: [ 6.2012870824903796e-02, 1.6259845524556362e-02,
-4.2354944524998885e-03, -1.5471587475499430e-03 ]
reprojection_error: 4.5942149808142413e-01
width: 1280
height: 800
distortion_model: fisheye
calibration_time: "2025-07-28 22:53:47"
cat opencv_tracking_rear_intrinsics.yml
%YAML:1.0
---
M: !!opencv-matrix
rows: 3
cols: 3
dt: d
data: [ 4.8912456448648203e+02, 0., 6.4281111886295446e+02, 0.,
4.8904789191290672e+02, 4.0021905849311702e+02, 0., 0., 1. ]
D: !!opencv-matrix
rows: 4
cols: 1
dt: d
data: [ 3.7700429553275704e-02, -6.3619256403005392e-03,
2.4382411049586192e-02, -1.2672813614381549e-02 ]
reprojection_error: 4.1466991560546473e-01
width: 1280
height: 800
distortion_model: fisheye
calibration_time: "2025-07-28 22:57:03"
cat opencv_tracking_down_intrinsics.yml
%YAML:1.0
---
M: !!opencv-matrix
rows: 3
cols: 3
dt: d
data: [ 4.6086004584403508e+02, 0., 6.4051075130106608e+02, 0.,
4.6096052455716375e+02, 4.2617760618350911e+02, 0., 0., 1. ]
D: !!opencv-matrix
rows: 4
cols: 1
dt: d
data: [ 7.2849347738052822e-02, -2.3660438800073867e-02,
4.1302387135490337e-02, -1.7560990900256007e-02 ]
reprojection_error: 5.1837524215838549e-01
width: 1280
height: 800
distortion_model: fisheye
calibration_time: "2025-07-28 23:08:04"
{
"config_file_version": 1,
"en_localhost_mavlink_udp": true,
"localhost_udp_port_number": 14551,
"en_vio": true,
"vio_pipe": "ov",
"secondary_vio_pipe": "qvio",
"vfc_vio_pipe": "ov",
"en_reset_vio_if_initialized_inverted": true,
"vio_warmup_s": 3,
"send_odom_while_failed": true,
"horizon_cal_tolerance": 0.5,
"en_hitl": false,
"offboard_mode": "figure_eight",
"follow_tag_id": 0,
"figure_eight_move_home": true,
"robot_radius": 0.300000011920929,
"collision_sampling_dt": 0.1,
"max_lookahead_distance": 1,
"backtrack_seconds": 60,
"backtrack_rc_chan": 8,
"backtrack_rc_thresh": 1500,
"wps_move_home": true,
"wps_stride": 0,
"wps_timeout": 0,
"wps_damp": 1,
"wps_vfc_mission": true,
"wps_vfc_mission_loop": false,
"wps_vfc_mission_to_ramp": 25,
"wps_vfc_mission_to_kp": 0.10000000149011612,
"wps_vfc_mission_cruise_speed": 1,
"en_tag_fixed_frame": false,
"fixed_frame_filter_len": 5,
"en_transform_mavlink_pos_setpoints_from_fixed_frame": false,
"vfc_rate": 100,
"vfc_rc_chan_min": 980,
"vfc_rc_chan_max": 2020,
"vfc_thrust_ch": 3,
"vfc_roll_ch": 1,
"vfc_pitch_ch": 2,
"vfc_yaw_ch": 4,
"vfc_submode_ch": 6,
"vfc_alt_mode_rc_min": 0,
"vfc_alt_mode_rc_max": 0,
"vfc_flow_mode_rc_min": 0,
"vfc_flow_mode_rc_max": 0,
"vfc_hybrid_flow_mode_rc_min": 0,
"vfc_hybrid_flow_mode_rc_max": 0,
"vfc_position_mode_rc_min": 0,
"vfc_position_mode_rc_max": 2100,
"vfc_traj_mode_rc_min": 0,
"vfc_traj_mode_rc_max": 0,
"vfc_yaw_deadband": 30,
"vfc_vxy_deadband": 50,
"vfc_vz_deadband": 150,
"vfc_min_thrust": 0,
"vfc_max_thrust": 0.800000011920929,
"vfc_tilt_max": 0.43599998950958252,
"vfc_yaw_rate_max": 3,
"vfc_thrust_hover": 0.5,
"vfc_vz_max": 1,
"vfc_kp_z": 5.2899999618530273,
"vfc_kd_z": 5.9800000190734863,
"vfc_vxy_max": 3,
"vfc_kp_xy": 0.63999998569488525,
"vfc_kd_xy": 2.559999942779541,
"vfc_kp_z_vio": 5.2899999618530273,
"vfc_kd_z_vio": 5.9800000190734863,
"vfc_kp_xy_vio": 3.2400000095367432,
"vfc_kd_xy_vio": 3.9600000381469727,
"vfc_w_filt_xy_vio": 10,
"vfc_w_filt_xy_flow": 3,
"vfc_vel_ff_factor_vio": 0.899999976158142,
"vfc_xy_acc_limit_vio": 2.5,
"vfc_max_z_delta": 3,
"vfc_att_transition_time": 0.5,
"vfc_stick_move_threshold": 30,
"vfc_flow_transition_time": 1,
"vfc_q_min": 10,
"vfc_points_min": 7,
"vfc_en_submode_announcement": 1,
"vfc_disable_fallback": false,
"vfc_traj_csv": "/data/voxl-vision-hub/traj.csv",
"en_voa": true,
"voa_upper_bound_m": -0.15000000596046448,
"voa_lower_bound_m": 0.15000000596046448,
"voa_voa_memory_s": 1,
"voa_max_pc_per_fusion": 100,
"voa_pie_max_dist_m": 20,
"voa_pie_min_dist_m": 0.25,
"voa_pie_under_trim_m": 1,
"voa_pie_threshold": 3,
"voa_send_rate_hz": 20,
"voa_pie_slices": 36,
"voa_pie_bin_depth_m": 0.15000000596046448,
"voa_inputs": [{
"enabled": true,
"type": "point_cloud",
"input_pipe": "dfs_point_cloud",
"frame": "stereo_l",
"max_depth": 8,
"min_depth": 0.300000011920929,
"cell_size": 0.079999998211860657,
"threshold": 4,
"x_fov_deg": 68,
"y_fov_deg": 56,
"conf_cutoff": 0
}, {
"enabled": true,
"type": "point_cloud",
"input_pipe": "stereo_front_pc",
"frame": "stereo_front_l",
"max_depth": 8,
"min_depth": 0.300000011920929,
"cell_size": 0.079999998211860657,
"threshold": 4,
"x_fov_deg": 68,
"y_fov_deg": 56,
"conf_cutoff": 0
}, {
"enabled": true,
"type": "point_cloud",
"input_pipe": "stereo_rear_pc",
"frame": "stereo_rear_l",
"max_depth": 8,
"min_depth": 0.300000011920929,
"cell_size": 0.079999998211860657,
"threshold": 4,
"x_fov_deg": 68,
"y_fov_deg": 56,
"conf_cutoff": 0
}, {
"enabled": true,
"type": "tof",
"input_pipe": "tof",
"frame": "tof",
"max_depth": 6,
"min_depth": 0.15000000596046448,
"cell_size": 0.079999998211860657,
"threshold": 3,
"x_fov_deg": 106.5,
"y_fov_deg": 85.0999984741211,
"conf_cutoff": 125
}, {
"enabled": true,
"type": "rangefinder",
"input_pipe": "rangefinders",
"frame": "body",
"max_depth": 8,
"min_depth": 0.300000011920929,
"cell_size": 0.079999998211860657,
"threshold": 4,
"x_fov_deg": 68,
"y_fov_deg": 56,
"conf_cutoff": 0
}]
}
to finish I have also observed that at the time of take off the points are not fixed before take off, if not just when the drone is armed, I am sometimes results in a mismatch, for example in the image that I show below, I only armed the drone, there if the points appeared, but as I left the drone only armed (not lift it) I could see that the position of the drone began to go negative infinititamente, when not even the drone was moving.