MAVLink Odometry X Y value 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β ? -
@Chad-Sweet I selected "None" for the EKF2_MAG_TYPE and entered "0" for the SYS_HAS_MAG.
The Odometry x y values are still at 0.
Do I need to change anything in my voxl-vision-px4.conf files now that I am not using a GPS?"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, "vio_pipe": "qvio", "en_vio": true, "en_send_vio_to_qgc": true, "en_reset_vio_if_initialized_inverted": true, "vio_warmup_s": 3, "en_set_clock_from_gps": true, "en_force_onboard_mav1_mode": true, "en_reset_px4_on_error": true, "horizon_cal_tolerance": 0.449999988079071, "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, "en_voa": true, "en_send_voa_to_qgc": true, "voa_upper_bound_m": -0.15000000596046448, "voa_lower_bound_m": 0.15000000596046448, "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" }] }
Should I just unplug the Cirocomm GPS?
-
I unplugged the GPS from the Seeker. I am still not able to get position control in MAVLink and my Odometry x y values are still at 0.
Maybe the last option to do is to re-calibrate my cameras... -
If voxl-inspect-qvio shows functioning VIO data, there is no need to calibrate cameras. VIO is working. PX4 is most likely misconfigured.
If you have a GPS, then you likely have a magnetometer?
Seeker should have arrived pre-configured for VIO flight. No need to change anything. VIO is flight tested for 20 minutes before being shipped.
-
-
@Chad-Sweet
Yes, I have this GPS/Magnetometer that is on the back of the Seeker above the battery compartment.
If my PX4 is possibly misconfigured, should I just remove PX4 and start clean?
Or, is there something you might know that could be causing the problem in PX4?