QVIO unstable flight. Please help!
-
Hello! very good morning! I am trying to develop a safe and efficient solution to control the drone in a simple way, the idea is to manage the drone through actions with the Mavlink server (I already have it, I can take off the drone from QGC) the problem is to get stability, the drone flies most of the time in an unstable way, i have configured the voxl-vision-hub with qvio, and i have also tried with ov, but in none of the two is stable, i take off the drone in position mode and what it does most of the times is not to keep its position, but to start flying uncontrolled, upwards or sideways.
As you know this is totally inefficient and not applicable to the need I have, since basically the main thing is a safe and stable flight.
I would like you to help me first to understand the difference between QVIO, VIO and OV (I have not seen anything in the documentation that explains well the difference between these three).
And secondly to see if you can help me to be able to give the necessary configuration to be able to obtain a safe accuracy.
I am going to leave you the configurations I have and the tests I have done.
system-image: 1.8.02-M0054-14.1a-perf kernel: #1 SMP PREEMPT Mon Nov 11 22:47:44 UTC 2024 4.19.125 ──────────────────────────────────────────────────────────────────────────────── hw platform: M0054 mach.var: 1.0.1 SKU: MRB-D0014-4-V1-C27-T7-M22-X0 ──────────────────────────────────────────────────────────────────────────────── voxl-suite: 1.4.5 ──────────────────────────────────────────────────────────────────────────────── Packages: Repo: http://voxl-packages.modalai.com/ ./dists/qrb5165/sdk-1.4/binary-arm64/ Last Updated: 2025-07-16 21:35:53 List: kernel-module-voxl-fsync-mod-4.19.125 1.0-r0 kernel-module-voxl-gpio-mod-4.19.125 1.0-r0 kernel-module-voxl-platform-mod-4.19.125 1.0-r0 libfc-sensor 1.0.7 libmodal-cv 0.5.18 libmodal-exposure 0.1.4 libmodal-journal 0.2.5 libmodal-json 0.4.7 libmodal-pipe 2.13.1 libqrb5165-io 0.5.0 libvoxl-cci-direct 0.3.2 libvoxl-cutils 0.1.5 modalai-slpi 1.1.20 mv-voxl 0.1-r0 qrb5165-bind 0.1-r0 qrb5165-dfs-server 0.2.0 qrb5165-imu-server 1.1.3 qrb5165-rangefinder-server 0.1.5 qrb5165-slpi-test-sig 01-r0 qrb5165-system-tweaks 0.3.5 qrb5165-tflite 2.8.0-2 voxl-bind-spektrum 0.1.1 voxl-camera-calibration 0.5.9 voxl-camera-server 2.2.1 voxl-ceres-solver 2:1.14.0-10 voxl-configurator 1.0.1 voxl-cpu-monitor 0.6.0 voxl-docker-support 1.3.1 voxl-elrs 0.4.7 voxl-esc 1.5.2 voxl-feature-tracker 0.5.2 voxl-flow-server 0.3.6 voxl-fsync-mod 1.0-r0 voxl-gphoto2-server 0.0.10 voxl-gpio-mod 1.0-r0 voxl-io-server 0.0.5 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-mapper 0.2.4 voxl-mavcam-manager 0.5.8 voxl-mavlink 0.1.5 voxl-mavlink-server 1.4.7 voxl-mission-manager 1.0.6 voxl-modem 1.1.6 voxl-mongoose 7.7.0-2 voxl-mpa-to-ros 0.3.9 voxl-mpa-tools 1.4.0 voxl-nlopt 2.5.0-4 voxl-open-vins 0.4.19 voxl-open-vins-server 0.3.12 voxl-opencv 4.5.5-3 voxl-osd 0.1.7 voxl-platform-mod 1.0-r0 voxl-portal 0.7.10 voxl-px4 1.14.0-2.0.98 voxl-px4-imu-server 0.1.2 voxl-px4-params 0.7.3 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.4.5 voxl-tag-detector 0.0.4 voxl-tflite-server 0.4.4 voxl-utils 1.4.7 voxl-uvc-server 0.1.7 voxl-vision-hub 1.8.21 voxl-voxblox 1.1.5 voxl-vtx 1.3.14 voxl-wavemux 0.0.1 voxl2-io 0.0.3 voxl2-system-image 1.8.02-r0 voxl2-wlan 1.0-r0
Service Name | Enabled | Running | CPU Usage ─────────────────────────────────────────────────────────────────── docker-autorun | Disabled | Not Running | modallink-relink | Disabled | Not Running | voxl-camera-server | Enabled | Running | 67.9% voxl-cpu-monitor | Enabled | Running | 0.0% voxl-dfs-server | Disabled | Not Running | voxl-elrs-startup | Disabled | Not Running | voxl-feature-tracker | Disabled | Not Running | voxl-flow-server | Disabled | Not Running | voxl-imu-server | Enabled | Running | 1.8% voxl-io-server | Disabled | Not Running | voxl-lepton-server | Disabled | Not Running | voxl-lepton-tracker | Disabled | Not Running | voxl-logger | Disabled | Not Running | voxl-mapper | Enabled | Running | 53.6% voxl-mavcam-manager | Enabled | Running | 0.0% voxl-mavlink-server | Enabled | Running | 5.4% voxl-mission-manager | Enabled | Not Running | voxl-modem | Disabled | Not Running | voxl-open-vins-server | Enabled | Running | 98.2% voxl-osd | Disabled | Not Running | voxl-portal | Disabled | Not Running | voxl-px4-imu-server | Enabled | Running | 1.8% voxl-px4 | Enabled | Running | 28.6% voxl-qvio-server | Enabled | Running | 37.5% voxl-rangefinder-server | Enabled | Running | 1.8% voxl-remote-id | Disabled | Not Running | voxl-seek-server | Disabled | Not Running | voxl-softap | Disabled | Not Running | voxl-state-estimator | Disabled | Not Running | voxl-static-ip | Disabled | Not Running | voxl-streamer | Enabled | Running | 0.0% voxl-tag-detector | Disabled | Not Running | voxl-tflite-server | Enabled | Running | 0.0% voxl-time-sync | Disabled | Not Running | voxl-uvc-server | Disabled | Not Running | voxl-vision-hub | Enabled | Running | 8.9% voxl-vrx | Disabled | Not Running | voxl-vtx | Disabled | Not Running | voxl-wait-for-fs | Enabled | Completed |
{ "config_file_version": 1, "en_localhost_mavlink_udp": true, "localhost_udp_port_number": 14551, "en_vio": true, "vio_pipe": "qvio", "secondary_vio_pipe": "ov", "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": "trajectory", "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 }] }
{ "odr_hz": 30, "use_camera_height_bootstrap": true, "camera_height_off_ground_m": 0.085000000894069672, "enable_init_while_moving": false, "cam_imu_timeshift_s": 0, "cam_imu_timeshift_s_uncertainty": 9.99999974737875e-05, "T_cam_wrt_imu_uncertainty": [0.00050000002374872565, 0.00050000002374872565, 0.00050000002374872565], "R_cam_to_imu_uncertainty": [0.00499999988824129, 0.00499999988824129, 0.00499999988824129], "accl_fsr_ms2": 156, "gyro_fsr_rad": 34, "accl_noise_std_dev": 0.31600001454353333, "gyro_noise_std_dev": 0.00999999977648258, "cam_noise_std_dev": 100, "min_std_pixel_noise": 0.5, "fail_high_pixel_noise_points": 1.6650999784469604, "limited_imu_bw_trigger": 25, "gps_imu_time_alignment_s": 0, "T_gps_wrt_imu": [0, 0, 0], "enable_mapping": true, "enable_gps_vel": false, "en_auto_reset": true, "auto_reset_max_velocity": 10, "auto_reset_max_v_cov_instant": 0.10000000149011612, "auto_reset_max_v_cov": 0.00999999977648258, "auto_reset_max_v_cov_timeout_s": 0.5, "auto_reset_min_features": 3, "auto_reset_min_feature_timeout_s": 1, "en_standby_mode": true, "standby_skip_frames": 1, "mask_file_path": "" }
finally I share with you the tests I have done:
- take off the drone in the place where I connect the battery (failure)
- move the drone manually until I saw that the z-axis coincided more or less with the movement it made, position the drone at 0, and take off (here I got more stability)
- reset qvio and ov, after powering up the drone, the qvio was accurate but the ov was moving crazily on the plane when static (failure)
here are some images of the inconsistencies between qvio and ov
thank you very much in advance, and sorry if the thread is too big!
-
@Daniel-Rincon QVIO (voxl-qvio-server) and OVINS (voxl-open-vins-server) are two different VIO algorithms. Currently only one can be used at a time. If you take a look at
/etc/modalai/voxl-vision-hub.conf
you should be able to specify which to use. -
@tom Hello Tom! Yes, I understand this, but which one is more accurate? which one should I decide on in an Indoor environment? we have the Starling 2 triple tracking.
Can you help me by answering the other questions? or is there someone in the ModalAI team who can help me?
I have left all my settings there, and as you can see QVIO is set as the main VIO.
-
@Daniel-Rincon Others will likely chime in, but OVINS allows you to run multi-cam VIO which in general will be more accurate than single-cam which is all that QVIO can do
-
@tom Thanks Tom, I will wait to see if someone else joins, as this has blocked our development, thank you very much.
-
@Daniel-Rincon,
Please consider updating to the latest SDK release, 1.5.0, if you haven't already. This has our latest VIO public development.As Tom mentioned, OV in 1.5.0 can use a binocular+ tracking, i.e., number of cams => 2 without stereo matching. This improves VIO robustness significantly compared to the single cam QVIO. Hence, OV should be preferred.
Additionally, I would recommend redoing a full calibration of all sensors (IMU, PX4, Cams) and checking if the extrinsics file is correct.
This should improve your flight performance.
I hope this clarifies some of your questions
-
@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.
-
@Daniel-Rincon have you looked through the troubleshooting guide? https://docs.modalai.com/flying-with-vio/#troubleshooting-vio
Usually looking at the ovins-overlay in voxl-portal offers good insight
The common issues are vibration is too high, the extrinsics are incorrect or there are not enough features to track in the environment