Unstable RC Position Flight using ROS2 VIO

Goal
Use external visual odometry for stable position flight (via RC) indoors.

Setup

  • Computer / OS: Jetson Orin NX (ROS 2 Humble)

  • Autopilot / FW: CUAV X7+ Pro running PX4 v1.16.0rc

  • External pose source: 3D SLAM node publishing slam_odom at 30 Hz

  • Bridge: Custom ROS 2 node converting slam_odom/fmu/in/vehicle_visual_odometry

What I did
I run the SLAM and a ROS2 node which converts the odometry topic from 3D-SLAM /slam_odom in FLU to PX4’s NED /fmu/in/vehicle_visual_odometry

The issue
Position flight is unstable/oscillatory when using RC (loiters, then starts wandering/jerking). With GPS disabled and only VIO enabled, the vehicle does not hold position reliably.

Data

In PX4 Log, what i see is Visual Odometry Latency graph is 0 throughout and logged message

[timesync] RTT too high for timesync: 15 ms
7
0:54:51
WARNING
[ekf2] primary EKF changed 2 (filter fault) -> 0
8
0:54:55
WARNING
[ekf2] primary EKF changed 0 (unhealthy) -> 1
9
0:55:29
WARNING
[timesync] RTT too high for timesync: 18 ms