MAVLink Odometry X Y value 0
-
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? -