MAVLink Odometry X Y value 0
-
I am not able to get any X/Y values in my MAVLink Odometry or in my LOCAL_POSITION_NED.
I have done research into this issue, but could not find a solution for my setup.Could someone please point out my problem?
voxl:~$ voxl-version -------------------------------------------------------------------------------- system-image: 3.8.0 kernel: #1 SMP PREEMPT Tue Apr 26 18:08:39 UTC 2022 3.18.71-perf -------------------------------------------------------------------------------- hw version: VOXL -------------------------------------------------------------------------------- voxl-suite: 0.8.1 0.7.0 --------------------------------------------------------------------------------
Service Name | Version | Enabled | Running | CPU Usage ------------------------------------------------------------------------------- docker-autorun | 1.2.4 | Disabled | Not Running | docker-daemon | 1.2.4 | Disabled | Not Running | modallink-relink | 0.15.1 | Disabled | Not Running | voxl-camera-server | 0.9.1 | Enabled | Running | 16.6 voxl-cpu-monitor | 0.2.5 | Enabled | Running | 0.0 voxl-dfs-server | 0.2.6 | Enabled | Running | 8.3 voxl-imu-server | 1.0.1 | Enabled | Running | 2.0 voxl-mavlink-server | 0.1.3 | Enabled | Running | 0.0 voxl-modem | 0.15.1 | Disabled | Not Running | voxl-portal | 0.2.6 | Enabled | Running | 0.0 voxl-qvio-server | 0.4.6 | Enabled | Running | 8.3 voxl-rangefinder-server | 0.1.2 | Disabled | Not Running | voxl-streamer | 0.3.6 | Disabled | Not Running | voxl-tag-detector | 0.0.4 | Disabled | Not Running | voxl-tflite-server | 0.2.3 | Disabled | Not Running | voxl-time-sync | 1.1.4 | Enabled | Completed | voxl-vision-px4 | 1.2.0 | Enabled | Running | 2.0 voxl-wait-for-fs | 1.1.4 | Enabled | Completed |
voxl:~$ opkg list-installed | grep "voxl" libvoxl-cutils - 0.1.1 voxl-camera-calibration - 0.2.2 voxl-ceres-solver - 1.14.0-7 voxl-cpu-monitor - 0.2.5 voxl-docker-support - 1.2.4 voxl-gphoto2-server - 0.0.10 voxl-jpeg-turbo - 2.1.3-4 voxl-libgphoto2 - 0.0.4 voxl-libuvc - 1.0.6 voxl-logger - 0.1.2 voxl-mapper - 0.0.7 voxl-mavlink - 0.1.0 voxl-mavlink-server - 0.1.3 voxl-modem - 0.15.1 voxl-mongoose - 7.6.0 voxl-mpa-to-ros - 0.3.2 voxl-mpa-tools - 0.6.3 voxl-nlopt - 2.5.0-4 voxl-opencv - 4.5.5-1 voxl-portal - 0.2.6 voxl-qvio-server - 0.4.6 voxl-streamer - 0.3.6 voxl-suite - 0.7.0 voxl-tag-detector - 0.0.4 voxl-tflite-server - 0.2.3 voxl-utils - 1.1.4 voxl-uvc-server - 0.1.1 voxl-vision-px4 - 1.2.0 voxl-voxblox - 1.0.4 voxl-vpn - 0.0.6
voxl:~$ opkg list-installed | grep "modal" libmodal-cv - 0.1.0 libmodal-exposure - 0.0.7 libmodal-json - 0.4.2 libmodal-pipe - 2.4.0
"config_file_version": 1, "qgc_ip": "192.168.110.146", "en_secondary_qgc": false, "secondary_qgc_ip": "192.168.1.214", "qgc_udp_port_number": 14550, "udp_mtu": 512, "en_localhost_mavlink_udp": true, "localhost_udp_port_number": 14551, "en_vio": true, "en_voa": true, "en_send_vio_to_qgc": true, "en_send_voa_to_qgc": true, "voa_upper_bound_m": -0.15000000596046448, "voa_lower_bound_m": 0.15000000596046448, "en_set_clock_from_gps": true, "en_force_onboard_mav1_mode": true, "en_reset_px4_on_error": true, "horizon_cal_tolerance": 0.300000011920929, "offboard_mode": "trajectory", "follow_tag_id": 0, "figure_eight_move_home": true, "en_tag_fixed_frame": false, "fixed_frame_filter_len": 5, "en_transform_mavlink_pos_setpoints_from_fixed_frame": false, "vio_pipe": "qvio", "en_reset_vio_if_initialized_inverted": true, "vio_warmup_s": 3, "voa_memory_s": 1, "voa_inputs": [{ "enabled": true, "type": "point_cloud", "input_pipe": "dfs_point_cloud", "frame": "stereo_l" }, { "enabled": true, "type": "point_cloud", "input_pipe": "stereo_front_pc", "frame": "stereo_front_l" }, { "enabled": true, "type": "point_cloud", "input_pipe": "stereo_rear_pc", "frame": "stereo_rear_l" }, { "enabled": true, "type": "tof", "input_pipe": "tof", "frame": "tof" }, { "enabled": true, "type": "rangefinder", "input_pipe": "rangefinders", "frame": "body"
voxl:~$ voxl-inspect-extrinsics #0: parent: imu0 child: tracking T_child_wrt_parent: 0.014 0.005 0.005 RPY_parent_to_child: -45.0 0.0 0.0 R_child_to_parent: 1.000 -0.000 0.000 0.000 0.707 0.707 -0.000 -0.707 0.707 #1: parent: imu1 child: tracking T_child_wrt_parent: -0.034 0.030 0.005 RPY_parent_to_child: -45.0 0.0 0.0 R_child_to_parent: 1.000 -0.000 0.000 0.000 0.707 0.707 -0.000 -0.707 0.707 #2: parent: body child: imu0 T_child_wrt_parent: 0.050 -0.015 0.016 RPY_parent_to_child: 0.0 90.0 90.0 R_child_to_parent: 0.000 -0.000 1.000 1.000 0.000 -0.000 -0.000 1.000 0.000 #3: parent: body child: imu1 T_child_wrt_parent: 0.046 0.033 -0.013 RPY_parent_to_child: 0.0 90.0 90.0 R_child_to_parent: 0.000 -0.000 1.000 1.000 0.000 -0.000 -0.000 1.000 0.000 #4: parent: body child: stereo_l T_child_wrt_parent: 0.055 -0.040 0.000 RPY_parent_to_child: 0.0 90.0 90.0 R_child_to_parent: 0.000 -0.000 1.000 1.000 0.000 -0.000 -0.000 1.000 0.000 #5: parent: body child: ground T_child_wrt_parent: 0.000 0.000 0.045 RPY_parent_to_child: 0.0 0.0 0.0 R_child_to_parent: 1.000 -0.000 0.000 0.000 1.000 -0.000 0.000 0.000 1.000 #6: parent: imu1 child: imu0 T_child_wrt_parent: -0.048 0.037 0.002 RPY_parent_to_child: 0.0 0.0 0.0 R_child_to_parent: 1.000 -0.000 0.000 0.000 1.000 -0.000 0.000 0.000 1.000 #7: parent: body child: tof T_child_wrt_parent: 0.055 0.000 0.000 RPY_parent_to_child: 0.0 90.0 -90.0 R_child_to_parent: 0.000 0.000 1.000 -1.000 0.000 -0.000 -0.000 -1.000 0.000
-
There is no position control for indoor flights.
COM_OBS_AVOID
CP_DIST
I am having trouble figuring this one out.
-
Here are my GCS Serial parameters.
-
I am currently on the PX4 ModalAi build Firmware, but I was also getting the Reject Position Control error and 0 values for X & Y in MAVLink Odometry in QCS for the PX4 Mainline build Firmware.
-
I have also tried doing the following;
voxl:~$ voxl-reset-qvio Sending hard reset command to voxl-qvio-server success
&
voxl:~$ systemctl restart voxl-qvio-server
After executing these commands, the X & Y values did not change from 0.
-
Here are my voxl-vision-px4 -o readouts;
There are definitely errors in the VIO data through the pipe, I just don't know how to fix it.If anyone has any ideas to fix this issue, I'm all ears
voxl:~$ voxl-vision-px4 -o loading our own config file ================================================================= Parameters as loaded from config file: config_file_version: 1 MAVLINK IO qgc_ip: 192.168.110.146 en_secondary_qgc: 0 secondary_qgc_ip: 192.168.1.214 qgc_udp_port_number: 14550 udp_mtu: 512 en_localhost_mavlink_udp 1 localhost_udp_port_number: 14551 VIO en_vio: 1 vio_pipe: qvio en_send_vio_to_qgc: 1 en_reset_vio_if_initialized_inverted: 1 vio_warmup_s: 4.000000 APQ8096-ONLY FEATURES en_set_clock_from_gps: 1 en_force_onboard_mav1_mode: 1 en_reset_px4_on_error: 1 MISC FEATURES horizon_cal_tolerance: 0.300000 OFFBOARD MODE offboard_mode: trajectory follow_tag_id: 0 figure_eight_move_home: 1 FIXED FRAME RELOCALIZATION en_tag_fixed_frame: 0 fixed_frame_filter_len: 5 en_transform_mavlink_pos_setpoints_from_fixed_frame:0 COLLISION PREVENTION (VOA) en_voa: 1 en_send_voa_to_qgc: 1 voa_upper_bound_m: -0.150000 voa_lower_bound_m: 0.150000 voa_memory_s: 1.000000 voa_input #0 enabled: 1 type: point_cloud input_pipe: dfs_point_cloud frame: stereo_l voa_input #1 enabled: 1 type: point_cloud input_pipe: stereo_front_pc frame: stereo_front_l voa_input #2 enabled: 1 type: point_cloud input_pipe: stereo_rear_pc frame: stereo_rear_l voa_input #3 enabled: 1 type: tof input_pipe: tof frame: tof voa_input #4 enabled: 1 type: rangefinder input_pipe: rangefinders frame: body ================================================================= loading extrinsics config file starting geometry module starting px4 monitor starting px4 mavlink Connected to voxl-mavlink-server Detected PX4 Mavlink SYSID 1 starting udp mavlink Adding manual QGC IP address to udp connection list: 192.168.110.146 Added new UDP connection to 192.168.110.146 starting px4 shell starting fixed pose input starting vio manager Connected to VIO pipe: qvio updating to use imu: imu1 done updating transforms to use imu: imu1 detected system time has already been set starting tag manager starting voa manager ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 Connected to pipe: dfs_point_cloud starting horizon cal Connected to pipe: tof starting offboard trajectory Init complete, entering main loop ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ^C received SIGINT Ctrl-C Starting shutdown sequence stopping offboard trajectory exiting offboard trajectory thread stopping horizon_cal stopping voa manager ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 exiting VOA thread stopping tag manager stopping vio manager stopping fixed pose in module stopping px4 shell module Stopping udp mavlink module exiting localhost udp listener thread exiting QGC udp listener thread udp_mavlink stopped Stopping uart mavlink module waiting for px4 mavlink timer thread to join Stopping px4 monitor closing remaining client pipes closing remaining server pipes Removing PID file exiting voxl:~$
-
Could this issue be coming from imu0 and imu1?
-
Has anyone had this error message on their system?
ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324
If so, how was it resolved?
Here is my debug odometry;
voxl:~$ voxl-vision-px4 --debug_odometry loading our own config file ================================================================= Parameters as loaded from config file: config_file_version: 1 MAVLINK IO qgc_ip: 192.168.110.146 en_secondary_qgc: 0 secondary_qgc_ip: 192.168.1.214 qgc_udp_port_number: 14550 udp_mtu: 512 en_localhost_mavlink_udp 1 localhost_udp_port_number: 14551 VIO en_vio: 1 vio_pipe: qvio en_send_vio_to_qgc: 1 en_reset_vio_if_initialized_inverted: 1 vio_warmup_s: 3.000000 APQ8096-ONLY FEATURES en_set_clock_from_gps: 1 en_force_onboard_mav1_mode: 1 en_reset_px4_on_error: 1 MISC FEATURES horizon_cal_tolerance: 0.450000 OFFBOARD MODE offboard_mode: trajectory follow_tag_id: 0 figure_eight_move_home: 1 FIXED FRAME RELOCALIZATION en_tag_fixed_frame: 0 fixed_frame_filter_len: 5 en_transform_mavlink_pos_setpoints_from_fixed_frame:0 COLLISION PREVENTION (VOA) en_voa: 1 en_send_voa_to_qgc: 1 voa_upper_bound_m: -0.150000 voa_lower_bound_m: 0.150000 voa_memory_s: 1.000000 voa_input #0 enabled: 1 type: point_cloud input_pipe: dfs_point_cloud frame: stereo_l voa_input #1 enabled: 1 type: point_cloud input_pipe: stereo_front_pc frame: stereo_front_l voa_input #2 enabled: 1 type: point_cloud input_pipe: stereo_rear_pc frame: stereo_rear_l voa_input #3 enabled: 1 type: tof input_pipe: tof frame: tof voa_input #4 enabled: 1 type: rangefinder input_pipe: rangefinders frame: body ================================================================= loading extrinsics config file exising instance of voxl-vision-px4 found, attempting to stop it starting geometry module starting px4 monitor starting px4 mavlink Connected to voxl-mavlink-server Detected PX4 Mavlink SYSID 1 starting udp mavlink Adding manual QGC IP address to udp connection list: 192.168.110.146 Added new UDP connection to 192.168.110.146 starting px4 shell starting fixed pose input starting vio manager Connected to VIO pipe: qvio updating to use imu: imu1 done updating transforms to use imu: imu1 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 starting tag manager starting voa manager Connected to pipe: dfs_point_cloud Connected to pipe: tof starting horizon cal starting offboard trajectory Init complete, entering main loop ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 detected system time has already been set ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 WARNING in VOA manager, no attitude data from px4 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 ERROR validating VIO data received through pipe: read partial packet
There is also one VOA manager WARNING in my odometry debug, with no attitude data from px4....
WARNING in VOA manager, no attitude data from px4
-
From the Troubleshooting VIO docs, can you try these steps?
QVIO Overlay in voxl-portal
voxl-inspect-qvio -
@Chad-Sweet Yes, I have read through those steps and tried them. All of my cameras are viewable in voxl-portal. I have also ran the voxl-inspect-qvio and the status was ok with no error's.
-
Can you please share the output of those steps?
-
voxl:~$ voxl-inspect-qvio waiting for server T_imu_wrt_vio (m) |Roll Pitch Yaw (deg)| state| error_code -0.00 0.00 0.00| -0.0 0.0 -0.0| OKAY | ^C received SIGINT Ctrl-C closing and exiting
-
@Chad-Sweet What would you like to see in my voxl portal?
-
Here I have turned the drone about an inch to the left.
voxl:~$ voxl-inspect-qvio waiting for server T_imu_wrt_vio (m) |Roll Pitch Yaw (deg)| state| error_code -0.02 0.00 0.03| 0.3 -10.3 1.7| OKAY | ^C received SIGINT Ctrl-C closing and exiting
-
The qvio-overlay in voxl-portal is interesting, but from the voxl-inspect-qvio it looks like VIO is working properly. It's mostly likely PX4 is rejecting position mode, usually because it requires a magnetometer.
This section covers position mode rejected issues
Do you have a magnetometer connected? If not, are you sure PX4 is not expecting one?
-
@Chad-Sweet I haven't added anything special to my Seeker setup.
-
@Chad-Sweet
SYS_HAS_MAG
EKF2_MAG_TYPE
So, I should enter the 0 value for SYS_HAS_MAG
and 5 for the EKF2_MAG_TYPE? -
If you are using PX4 1.12 or later, and do not have a magnetometer, and want to use VIO, yes.
-
@Chad-Sweet OK Iโll try that
-
@Chad-Sweet There is not an option for 5 in EKF2_MAG_TYPE.
Should I leave this at โAutomaticโ or select โNoneโ ?