Hi everyone,
I’m working on a UAV project using PX4 v1.14.4. I’m using OpenVINS for pose estimation and subscribing to the odometry output via rclpy in ROS 2. From what I understand, the position provided by OpenVINS is in the FLU (Forward-Left-Up) coordinate frame.
When publishing this data to /fmu/in/vehicle_visual_odometry in Python, is it recommended to set pose_frame as POSE_FRAME_FRD and manually invert the Y and Z axes of the position to match FRD? Should I also directly invert the signs of the Y and Z components in the orientation (quaternion) and covariance accordingly?
Alternatively, would it be better to align the system with the East at startup and perform a full ENU-to-NED transformation instead?
I’m aware that px4_ros_com provides frame transformation utilities in C++, but I’m not entirely confident in rewriting them in Python. For example:
Are the quaternion-to-Euler and Euler-to-quaternion conversions done in ZYX order?
Would you recommend using the existing px4_ros_com frame transformation tools directly if possible, rather than rewriting them in Python?
Thanks in advance for your advice!