Why does voxl-inspect-pose -f fail when voxl-vision-px4 -b command is executed ?
-
The following is my voxl version:
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 --------------------------------------------------------------------------------
voxl related packages in opkg are:
voxl:~$ opkg list-installed | grep voxl libvoxl-cutils - 0.1.1 voxl-camera-calibration - 0.1.5 voxl-ceres-solver - 1.14.0-7 voxl-cpu-monitor - 0.2.6 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.0.7 voxl-mavlink-server - 0.1.1 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.8 voxl-qvio-server - 0.4.6 voxl-streamer - 0.3.1 voxl-suite - 0.7.0 voxl-tag-detector - 0.0.4 voxl-tflite-server - 0.2.3 voxl-utils - 1.1.1 voxl-uvc-server - 0.1.1 voxl-vision-px4 - 1.0.5 voxl-voxblox - 1.0.4 voxl-vpn - 0.0.6
Initially I can view
voxl-inspect-pose -f
without any issue:voxl:~$ voxl-inspect-pose -f timestamp(ms)| Position (m) | Roll Pitch Yaw (deg) | Velocity (m/s) | angular rate (deg/s) | 228543 | -0.04 -0.03 -0.01 | -2.2 15.6 -0.5 | -0.00 0.00 -0.00 | -0.13 -0.22 -0.04 |^C received SIGINT Ctrl-C
But after I execute
voxl-vision-px4 -b
, I get the following output:voxl:~$ voxl-vision-px4 -b detected platform APQ8096 loading our own config file ================================================================= Parameters as loaded from config file: config file version: 1 qgc_ip: 192.168.8.60 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 en_vio: 1 en_voa: 1 en_send_vio_to_qgc: 0 en_send_voa_to_qgc: 0 voa_upper_bound_m: -0.150000 voa_lower_bound_m: 0.150000 en_set_clock_from_gps: 1 en_force_onboard_mav1_mode: 1 en_reset_px4_on_error: 1 qvio_auto_reset_quality: 0.000500 horizon_cal_tolerance: 0.300000 offboard_mode: trajectory follow_tag_id: 0 figure_eight_move_home: 1 en_tag_fixed_frame: 0 fixed_frame_filter_len: 5 en_transform_mavlink_pos_setpoints_from_fixed_frame:0 ================================================================= loading extrinsics config file exising instance of voxl-vision-px4 found, attempting to stop it starting geometry module starting px4 monitor starting px4 mavlink starting udp mavlink Adding manual QGC IP address to udp connection list: 192.168.8.60 Added new UDP connection to 192.168.8.60 starting px4 shell starting fixed pose input starting vio manager starting tag manager starting voa manager starting offboard trajectory starting control input pipe Init complete, entering main loop Connected to voxl-mavlink-server Detected PX4 Mavlink SYSID 1 uart send msgid: 111 sysid: 1 compid:197 uart send msgid: 111 sysid: 1 compid:197 Connected to voxl-qvio-server 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 uart send msgid: 330 sysid: 1 compid:197 uart send msgid: 84 sysid: 1 compid:197 Connected to TOF ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 uart send msgid: 330 sysid: 1 compid:197 uart send msgid: 84 sysid: 1 compid:197 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 uart send msgid: 330 sysid: 1 compid:197 ...... ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 uart send msgid: 84 sysid: 1 compid:197 uart send msgid: 330 sysid: 1 compid:197 ^C received SIGINT Ctrl-C Starting shutdown sequence stopping control input stopping offboard trajectory uart send msgid: 111 sysid: 1 compid:197 uart send msgid: 111 sysid: 1 compid:197 ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324 exiting offboard trajectory thread uart send msgid: 330 sysid: 1 compid:197 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 uart send msgid: 330 sysid: 1 compid:197 exiting VOA thread stopping tag manager stopping vio manager stopping fixed pose in module stopping px4 shell module Stopping udp mavlink module uart send msgid: 111 sysid: 1 compid:197 uart send msgid: 111 sysid: 1 compid:197 uart send msgid: 111 sysid: 1 compid:197 uart send msgid: 111 sysid: 1 compid:197 uart send msgid: 111 sysid: 1 compid:197 uart send msgid: 111 sysid: 1 compid:197 exiting QGC udp listener thread exiting localhost 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
The error being:
ERROR validating VIO data received through pipe: read partial packet read 156 bytes, but it should be a multiple of 324
and
voxl-inspect-pose -f
shows nothing:waiting for server at /run/mpa/vvpx4_body_wrt_fixed/
Why is it happening?
-
The partial packet read error usually occurs when there is a version mismatch between packages (i.e. the size of the packet has been updated and one package has the new size but another doesn't). If you update all of your packages together this issue should go away.