Hello,
I did : https://docs.px4.io/main/en/ros2/user_guide.html#install-px4
for Rapi4_Pixhawk 6x Ethernet connexion , the communication seems to works well and topics are published.
I'm currently working on integrating a VICON motion capture system with PX4 . I'm trying to use the visual odometry data as the primary source of localization indoors.
✅ What I did:
Parameter Configuration (via QGroundControl):
EKF2_EV_CTRL = 11 → (Horizontal position, vertical position, yaw).
EKF2_HGT_REF = vision.
EKF2_MAG_TYPE = none.
EKF2_EV_DELAY = 10
Data publishing:
I wrote a Python script that publishes data to the PX4 topic /fmu/in/vehicle_visual_odometry.
Confirmed via ros2 topic echo that the topic is being updated correctly.
❌ Issue:
Despite all this, I do not receive any updates on /fmu/out/vehicle_local_position. It's either not being published at all, or not fusing the data from VICON.
Additionally, the initial position of the drone, as reported by the VICON system, is (0, 0, 0.2) in the VICON frame.
When running:
ros2 run px4_ros_com offboard_control
the drone does not take off correctly — only three motors spin.
For reference, the drone is physically aligned with the VICON frame, especially the X-axis.
Any help on how to make it working ? Thanks