What is the definition of the inputs of nav_msgs/msg/odometry

asked 2022-11-17 22:08:26 -0500

2887senpai gravatar image

I am currently trying to convert uorb topic "vehicle_odometry" from holybro pixhawk 6c into "nav_msgs/msg/odometry". "vehicle_odometry" is using REP 147 standard and "nav_msgs/msg/odometry" is using REP 103 standard.

For "nav_msgs/msg/odometry", the representation of geographic locations is using ENU(EAST NORTH UP) convention and the body standard is foward, left and up. All systems are using right-hand rule.

For "vehicle_odometry", the representation of geographic locations is using NED(NORTH EAST DOWN) convention and the body standard is foward, right and down. All systems are using right-hand rule.

The difference of body standard and the representation of the geographic locations is making me confused because the documentation did not list out which input is using body frame standard and which input is using local position standard.

Here is my guess of the definition:

nav_msgs/msg/odometry:

msg.pose.pose.position: ENU local frame

msg.pose.pose.position.x: EAST

msg.pose.pose.position.y: NORTH

msg.pose.pose.position.z: DOWN

msg.pose.pose.orientation: body standard

msg.pose.pose.orientation.x: forward

msg.pose.pose.orientation.y: left

msg.pose.pose.orientation.z: up

msg.pose.pose.orientation.w

msg.twist.twist.linear: ENU local frame

msg.twist.twist.linear.x: EAST

msg.twist.twist.linear.y: NORTH

msg.twist.twist.linear.z: DOWN

msg.twist.twist.angular: body standard

msg.twist.twist.angular.x: X axis points to forward

msg.twist.twist.angular.y: Y axis points to right

msg.twist.twist.angular.z: z axis points to up

msg.pose.covariance: optional

msg.twist.covariance: optional

edit retag flag offensive close merge delete