adb is not working after tflite deployment.
-
@bgaudel It seems as though you have all the configs setup correctly, can you post the status of the following services:
systemctl status voxl-px4 systemctl status voxl-vision-px4 systemctl status voxl-mavlink-server
-
@tom Here are the outputs of the above commands:
-
@bijay-gaudel How about:
journalctl -u voxl-px4 journalctl -u voxl-vision-px4 journalctl -u voxl-mavlink-server
-
-
@bijay-gaudel Let's reset all of the services to their default / working state for RB5, can you run the following:
# configure services to defaults voxl-configure-mpa -f rb5-flight # modify /etc/modalai/voxl-vision-px4 with your correct qgc_ip vi /etc/modalai/voxl-vision-px4 # reboot rb5 adb reboot
The services seem to be having issue in this current state based off of the WARNING
-
This post is deleted! -
@tom /etc/modalai/voxl-vision-px4 file seems empty.
but
/etc/modalai/voxl-vision-px4.config
have data as:rb5:/$ cat /etc/modalai/voxl-vision-px4.conf /** * VOXL Vision PX4 Configuration File * * version: don't touch this, used to keep track of changing config file formats * * ############################################################################## * ## Networking * ############################################################################## * * qgc_ip: * Manually inform voxl-vision-px4 of the IP address of your QGC Ground * Controller by providing the IP address of your ground station computer * in the “qgc_ip” field of the config file. This field is also configured * as one of the first questions in the configuration wizard. * If you wish to rely on QGC to initiate the connection to VOXL you can * leave this field as-is, blank, or “NULL”. Mavlink data is sent to this * IP on port 14550 by default, but this can be changed with the * qgc_udp_port_number config value. * * en_secondary_qgc: * Enable manually setting a second QGC ground station IP address. * * secondary_qgc_ip: * IP address for optional second QGC connection. Note that many more mavlink * connections can be made as long as they are initialized by the other device. * * qgc_udp_port_number: * Port to use for manual and automatic QGC connections, default 14550 * * udp_mtu: * Max size of UDP packet to send to QGC. Multiple mavlink messages will be * combined into one UDP packet to reduce network traffic. Set this to 0 to * send one UDP packet for every mavlink message. Default is 512 which * allows several mavlink messages per UDP packet. * * en_localhost_mavlink_udp: * If you are running MAVROS/MAVSDK onboard VOXL and wish to open access to * PX4 through a localhost UDP port simply ensure the follow feature is * enabled. This is set to true by default. This will allow one local process * to communicate with PX4 via port 14551 by default, NOT 14550 which is * reserved for connections outside the board. These separation prevents * conflicts between the two sockets. Both MAVROS and MAVSDK can be * configured to use this port. * * localhost_udp_port_number: * Port number for localhost UDP socket, default 14551 * * ############################################################################## * ## VIO * ############################################################################## * * en_vio: * Enable processing of VIO data from MPA to be sent to PX4 as mavlink * odometry messages. Enabled by default. * * vio_pipe: * Which pipe to subscribe to VIO data. Must be a standard libmodal-pipe * vio_data_t type. Default is qvio * * en_send_vio_to_qgc: * Enable sending of VIO odometry messages to QGC for debug. * Note PX4 also sends odometry messages to QGC, so look for * the messages in mavlink-inspector marked as from component 197 * * en_reset_vio_if_initialized_inverted: * For VIO algorithms like qVIO that can initialize in any orientation * and output their estimate of the gravity vector, we suggest leaving * this enabled to allow vvpx4 to automatically send the reset signal * back to the VIO pipe if VIO was initialized upside-down or sufficiently * off-level. Helpful if the user powers on a drone while carrying it to * the flight area and VIO starts too early. * * vio_warmup_s: * Wait this for this amount of time of having good VIO data before * actually starting to send to PX4. This helps stop EKF2 getting * confused if VIO flickers in and out while struggling to init. * Set to 0 to disable the feature. * * send_odom_while_failed: * Off by default. Reserved for the future when PX4 supports quality field * * ############################################################################## * ## APQ8096-only Features * ############################################################################## * * en_set_clock_from_gps: * Enable setting the VOXL system time to GPS time if no NTP server can be * reached via network to set the time. * * en_force_onboard_mav1_mode: * Force PX4 to use onboard mode for mavlink 1 channel which is the channel * apq8096 (VOXL1) uses to communicate UART Mavlink with PX4. Not applicable * to qrb5165-based platforms. Sets the MAV1_MODE PX4 param. * * en_reset_px4_on_error: * Trigger a reboot of PX4 one some of PX4's unrecoverable errors, * Not applicable to qrb5165 * Yaw estimate error & High Accelerometer Bias and both detected * * ############################################################################## * ## Misc Features * ############################################################################## * * horizon_cal_tolerance: * Allowable standard deviation in roll/pitch values to consider the drone * stable enough in flight to do a PX4 horizon calibration. Default is 0.45, * you can increase this slightly if flying in a small indoor area or with * a drone that does not hold still very well. * See https://docs.modalai.com/calibrate-px4-horizon/ * * ############################################################################## * ## offboard mode config * ############################################################################## * * offboard_mode: The following are valid strings * off: VVPX4 will not send any offboard commands to PX4 * figure_eight: Default value, VVPX4 commands PX4 to fly a figure 8 path * follow_tag: Drone will follow an apriltag around. Very dangerous, not * recommended for customer use, for ModalAI R&D only. * trajectory: VVPX4 receives polynomial trajectories by pipe and commands * PX4 to follow the trajectory path. Still in development. * * follow_tag_id: * Apriltag ID to follow in follow_tag mode * * figure_eight_move_home: * Enable by default, resets the center of the figure 8 path to wherever * the drone is when flipped into offboard mode. When disabled, the drone * will quickly fly back to the XYZ point 0,0,-1.5 in VIO frame before * starting the figure 8. Disabling this feature can be dangerous if VIO * has drifted significantly. * * robot_radius: * Robot radius to use when checking collisions within the trajectory monitor. * The trajectory monitor is only active when in trajectory mode * * collision_sampling_dt: * The time step to sample along the polynomials by when checking for collisions * in the collision monitor. * * max_lookahead_distance: * Maximum distance to look along the trajectory. Sensor data further out can be * unrealiable so keeping this value small reduces false positives * * ############################################################################## * ## Fixed Frame Tag Relocalization * ############################################################################## * * en_tag_fixed_frame: * Enable fixed frame relocalization via voa_inputs. * See: https://docs.modalai.com/voxl-vision-px4-apriltag-relocalization/ * * fixed_frame_filter_len: * Length of the moving average filter to use for smooth relocalization * when a tag is detected. Default is 5, a longer filter will result in * smoother behavior when a new tag comes into view. Set to 1 to do no * filtering at all and assume every tag detection is accurate. * * en_transform_mavlink_pos_setpoints_from_fixed_frame: * When enabled, mavlink position_target_local_ned_t commands received on * via UDP will be assumed to be in fixed frame and are then transformed * to local frame before being sent to PX4. This allows offboard mode * position commands from MAVROS/MAVSDK to be in fixed frame relative to * voa_inputs even though PX4/EKF2 operates in local frame relative to where * VIO initialized. * * ############################################################################## * ## Collision Prevention (VOA) * ## Settings for configuring data sent to PX4 for Collision Prevention * ############################################################################## * * en_voa: * Enable processing of DFS and TOF data to be sent to PX4 as mavlink * obstacle_distance messages for collision prevention in position mode. * * en_send_voa_to_qgc: * Enable sending of VOA obstacle_distance messages to QGC for debug. * * voa_lower_bound_m & voa_upper_bound_m: * VOA ignores obstacles above and below the upper and lower bounds. * Remember, Z points downwards in body and NED frames, so the lower bound * is a positive number, and the upper bound is a negative number. * Defaults are lower: 0.15 upper: -0.15 Units are in meters. * * voa_memory_s: * number of seconds to keep track of sensor readings for VOA * default: 1.0 * * voa_inputs: * Array of pipes to subscribe to for use with VOA, up to 10 supported * Each entry has 4 fields: * * enabled: true or false, it's safe to leave this enabled when the pipe is missing * type: can be point_cloud, tof, or rangefinder * input_pipe: pipe name, e.g. stereo_front_pc, rangefinders, tof, etc * frame: frame of reference, should be listed in /etc/modalai/extrinsics/conf * */ { "config_file_version": 1, "qgc_ip": "172.16.0.204", "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": false, "en_reset_vio_if_initialized_inverted": true, "vio_warmup_s": 3, "send_odom_while_failed": false, "horizon_cal_tolerance": 0.5, "offboard_mode": "off", "follow_tag_id": 0, "figure_eight_move_home": true, "robot_radius": 0.300000011920929, "collision_sampling_dt": 0.1, "max_lookahead_distance": 1, "en_tag_fixed_frame": false, "fixed_frame_filter_len": 5, /** * VOXL Vision PX4 Configuration File * * version: don't touch this, used to keep track of changing config file formats * * ############################################################################## * ## Networking * ############################################################################## * * qgc_ip: * Manually inform voxl-vision-px4 of the IP address of your QGC Ground * Controller by providing the IP address of your ground station computer * in the �~@~\qgc_ip�~@~] field of the config file. This field is also configured * as one of the first questions in the configuration wizard. * If you wish to rely on QGC to initiate the connection to VOXL you can * leave this field as-is, blank, or �~@~\NULL�~@~]. Mavlink data is sent to this * IP on port 14550 by default, but this can be changed with the * qgc_udp_port_number config value. * * en_secondary_qgc: * Enable manually setting a second QGC ground station IP address. * * secondary_qgc_ip: * IP address for optional second QGC connection. Note that many more mavlink * connections can be made as long as they are initialized by the other device. * * qgc_udp_port_number: * Port to use for manual and automatic QGC connections, default 14550 * * udp_mtu: * Max size of UDP packet to send to QGC. Multiple mavlink messages will be * combined into one UDP packet to reduce network traffic. Set this to 0 to * send one UDP packet for every mavlink message. Default is 512 which * allows several mavlink messages per UDP packet. * * en_localhost_mavlink_udp: * If you are running MAVROS/MAVSDK onboard VOXL and wish to open access to * PX4 through a localhost UDP port simply ensure the follow feature is * enabled. This is set to true by default. This will allow one local process * to communicate with PX4 via port 14551 by default, NOT 14550 which is * reserved for connections outside the board. These separation prevents * conflicts between the two sockets. Both MAVROS and MAVSDK can be * configured to use this port. * * localhost_udp_port_number: * Port number for localhost UDP socket, default 14551 * * ############################################################################## * ## VIO * ############################################################################## * * en_vio: * Enable processing of VIO data from MPA to be sent to PX4 as mavlink * odometry messages. Enabled by default. * * vio_pipe: * Which pipe to subscribe to VIO data. Must be a standard libmodal-pipe * vio_data_t type. Default is qvio * * en_send_vio_to_qgc: * Enable sending of VIO odometry messages to QGC for debug. * Note PX4 also sends odometry messages to QGC, so look for * the messages in mavlink-inspector marked as from component 197 * * en_reset_vio_if_initialized_inverted: * For VIO algorithms like qVIO that can initialize in any orientation * and output their estimate of the gravity vector, we suggest leaving * this enabled to allow vvpx4 to automatically send the reset signal * back to the VIO pipe if VIO was initialized upside-down or sufficiently * off-level. Helpful if the user powers on a drone while carrying it to * the flight area and VIO starts too early. * * vio_warmup_s: * Wait this for this amount of time of having good VIO data before * actually starting to send to PX4. This helps stop EKF2 getting * confused if VIO flickers in and out while struggling to init. * Set to 0 to disable the feature. * * send_odom_while_failed: * Off by default. Reserved for the future when PX4 supports quality field * * ############################################################################## * ## APQ8096-only Features * ############################################################################## * * en_set_clock_from_gps: * Enable setting the VOXL system time to GPS time if no NTP server can be * reached via network to set the time. * * en_force_onboard_mav1_mode: * Force PX4 to use onboard mode for mavlink 1 channel which is the channel * apq8096 (VOXL1) uses to communicate UART Mavlink with PX4. Not applicable * to qrb5165-based platforms. Sets the MAV1_MODE PX4 param. * * en_reset_px4_on_error: * Trigger a reboot of PX4 one some of PX4's unrecoverable errors, * Not applicable to qrb5165 * Yaw estimate error & High Accelerometer Bias and both detected * * ############################################################################## * ## Misc Features * ############################################################################## * * horizon_cal_tolerance: * Allowable standard deviation in roll/pitch values to consider the drone * stable enough in flight to do a PX4 horizon calibration. Default is 0.45, * you can increase this slightly if flying in a small indoor area or with * a drone that does not hold still very well. * See https://docs.modalai.com/calibrate-px4-horizon/ * * ############################################################################## * ## offboard mode config * ############################################################################## * * offboard_mode: The following are valid strings * off: VVPX4 will not send any offboard commands to PX4 * figure_eight: Default value, VVPX4 commands PX4 to fly a figure 8 path * follow_tag: Drone will follow an apriltag around. Very dangerous, not * recommended for customer use, for ModalAI R&D only. * trajectory: VVPX4 receives polynomial trajectories by pipe and commands * PX4 to follow the trajectory path. Still in development. * * follow_tag_id: * Apriltag ID to follow in follow_tag mode * * figure_eight_move_home: * Enable by default, resets the center of the figure 8 path to wherever * the drone is when flipped into offboard mode. When disabled, the drone * will quickly fly back to the XYZ point 0,0,-1.5 in VIO frame before * starting the figure 8. Disabling this feature can be dangerous if VIO * has drifted significantly. * * robot_radius: * Robot radius to use when checking collisions within the trajectory monitor. * The trajectory monitor is only active when in trajectory mode * * collision_sampling_dt: * The time step to sample along the polynomials by when checking for collisions * in the collision monitor. * * max_lookahead_distance: * Maximum distance to look along the trajectory. Sensor data further out can be * unrealiable so keeping this value small reduces false positives * * ############################################################################## * ## Fixed Frame Tag Relocalization * ############################################################################## * * en_tag_fixed_frame: * Enable fixed frame relocalization via voa_inputs. * See: https://docs.modalai.com/voxl-vision-px4-apriltag-relocalization/ * * fixed_frame_filter_len: * Length of the moving average filter to use for smooth relocalization * when a tag is detected. Default is 5, a longer filter will result in * smoother behavior when a new tag comes into view. Set to 1 to do no * filtering at all and assume every tag detection is accurate. * * en_transform_mavlink_pos_setpoints_from_fixed_frame: * When enabled, mavlink position_target_local_ned_t commands received on * via UDP will be assumed to be in fixed frame and are then transformed * to local frame before being sent to PX4. This allows offboard mode * position commands from MAVROS/MAVSDK to be in fixed frame relative to * voa_inputs even though PX4/EKF2 operates in local frame relative to where * VIO initialized. * * ############################################################################## * ## Collision Prevention (VOA) * ## Settings for configuring data sent to PX4 for Collision Prevention * ############################################################################## * * en_voa: * Enable processing of DFS and TOF data to be sent to PX4 as mavlink * obstacle_distance messages for collision prevention in position mode. * * en_send_voa_to_qgc: * Enable sending of VOA obstacle_distance messages to QGC for debug. * * voa_lower_bound_m & voa_upper_bound_m: * VOA ignores obstacles above and below the upper and lower bounds. * Remember, Z points downwards in body and NED frames, so the lower bound * is a positive number, and the upper bound is a negative number. * Defaults are lower: 0.15 upper: -0.15 Units are in meters. * * voa_memory_s: * number of seconds to keep track of sensor readings for VOA * default: 1.0 * * voa_inputs: * Array of pipes to subscribe to for use with VOA, up to 10 supported * Each entry has 4 fields: * * enabled: true or false, it's safe to leave this enabled when the pipe is missing * type: can be point_cloud, tof, or rangefinder * input_pipe: pipe name, e.g. stereo_front_pc, rangefinders, tof, etc * frame: frame of reference, should be listed in /etc/modalai/extrinsics/conf * */ { "config_file_version": 1, "qgc_ip": "172.16.0.204", * * voa_inputs: * Array of pipes to subscribe to for use with VOA, up to 10 supported * Each entry has 4 fields: * * enabled: true or false, it's safe to leave this enabled when the pipe is missing * type: can be point_cloud, tof, or rangefinder * input_pipe: pipe name, e.g. stereo_front_pc, rangefinders, tof, etc * frame: frame of reference, should be listed in /etc/modalai/extrinsics/conf * */ { "config_file_version": 1, "qgc_ip": "172.16.0.204", "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": false, "en_reset_vio_if_initialized_inverted": true, "vio_warmup_s": 3, "send_odom_while_failed": false, "horizon_cal_tolerance": 0.5, "offboard_mode": "off", "follow_tag_id": 0, "figure_eight_move_home": true, "robot_radius": 0.300000011920929, "collision_sampling_dt": 0.1, "max_lookahead_distance": 1, "en_tag_fixed_frame": false, "fixed_frame_filter_len": 5,
The
qgc_ip
in this file is correct IP address of my PC. -
@bgaudel Apologies, the .conf was what I meant. Are you still having the same issue?
-
@tom yes, still not able to connect with
QGC
The output of
voxl-px4
command is:
Does this look okay? What other settings and files should I pay attention for? -
@bgaudel
voxl-px4
is already running in the background, there's no need to try to start any of the processes manually from the command line.Now that you've gone through
voxl-configure-mpa
, can you try these commands again so we can get some info:journalctl -u voxl-px4 journalctl -u voxl-vision-px4 journalctl -u voxl-mavlink-server
-
@tom Here is the output of these commands: