No valid position estimate when sending mocap data to px4

No valid local position estimate error.

I’m getting the error below while trying to publish mocap data to px4. My setup is a pixhawk 6x running px4 v1.15 and an intel nuc with ROS2 Humble connected through ethernet. I run the MicroXRCEAgent and publish the VehicleOdometry data from our motion capture system to /fmu/in/vehicle_visual_odometry.

Px4 receives the data successfully as I can run listener vehicle_visual_odometry on the MavLink console and get:

Additionally I can see in the attitude tab of MavLink Inspector that the yaw data is used for state estimation as its value converges to the ground truth whenever I publish to /fmu/in/vehicle_visual_odometry. However, the x, y, z, roll, and pitch values do not change at all.

To publish to /fmu/in/vehicle_visual_odometry I run my own node which just remaps our motion capture data to the XRCE bridge topic and syncs the timestamp as in

which seemed to work for that user. I have also tried simply running the local navigation example from

which publishes dummy data to the same topic, but that also does not work.

I’ve tried different parameter configurations, mostly modifying the kalman filter and XRCE parameters, without success. Below are my current parameters as well as the output of listener vehicle_local_position. (Note EKF2_EV_CTRL used to be 15, that didn’t work either).

(Why is xy_valid = False?)

I have also already commented out the topics I am not using from the dds_topics.yaml file (maybe I commented it out something important?) as it was discussed on a similar post.

On another similar post, (same error but sending gps data through telem2)

they solved their issue by changing the vel_ned_valid parameter. I don’t see that parameter in QGC.

Am I publishing to the wrong topic or is this a configuration issue?

Any insight is appreciated.

Thank you.