Odometry not showing up in PX4 when using Visual Interial Odometry (VIO)

Hardware: Pixhawk4 (PX4 pro stable release v1.11.0/ px4fmu-v5_default.px4)
Setup: PX4 connected to Jetson TX2, and Holybro telemetry radio 915Mhz connected to ground and px4 for QGC.

Hey all,
I was referring to this tutorial
https://docs.px4.io/master/en/computer_vision/visual_inertial_odometry.html#verify_estimate

And followed most of the steps.
The step where I got stuck was check/verify VIO Estimate, as told in that step I set the MAV_ODOM_LP to 1 and was expecting an ODOMETRY message in the mavlink inspector, but it didn’t found out,

My mavlink inspector output looks the following as shown in the image.

I’m launching the file named bridge_mavros.launch as mentioned in the tutorial, and receiving data on /mavros/odometry/out at 25hz on TX2

Here are the logs by running diagnostics:

The output of the mavlink status stream as seen on qgc:

mss_2

The output of mavlink status streams as seen on QGC:

I wanted to know, are there any extra steps for using VIO odometry for px4 estimate?
Any help for making it work is appreciated.

Thank you

Hi,
it is possible that odometry messsage doesn’t appear in Mavlink Inspector because QGroundControl is not connected through USB to the vehicle

@Isidro_Arias
I tried that too, it still doesn’t show up.

I think there are some commands that are missing in the official tutorial. I tried the below link https://github.com/thien94/vision_to_mavros
and it seems that the odometry shows up in QGC when we publish on /mavros/vision_pose/pose and not on /mavros/odometry/out.

@krawal19

I have opened the issue already, try v1.10.1 for now.

1 Like

Using the v1.10.1 version and it solved my issue :raised_hands:t2:

Thank you, @mwbb.

2 Likes

Hi for future reference
Unfortunetly I cannot use the v1.10.1 since the FC that I am using was not yet supported in that version. and trying to support it there doesnt make much sense.
This can also be observed on v1.12.3 . Even though the ODOMETRY message is not being streamed on that mavlink instance the vision is being properly fused.

Can ypu give more details? I may be able to help resting it.

Running v1.12.3, odometry is not showing up in qgroubndcontrol Mavlink inspector even though MAV_ODOM_LP is set to 1.
In Mavlink Console, uorb top shows there is vehicle_visual_odometry publishing

@Zhengtian_Ma is there any reason you are not using EKF Estimator? Basically recommended to do that.

hi, thanks for the reply. we are indeed using EKF2 to fuse the sensor readings. We would like to see odometry for debugging purpose by comparing the odometry with the local_position which is the fused result by EKF2.