ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Covariance reference frame

asked 2023-06-01 18:51:54 -0500

Vishwa gravatar image

I am calculating the wheeled odometry covariance for a 4 wheeled mecanum omni-directional robot in 2D. Though I have a question on what frame you what the pos covariance to be in, the odom's frame, or the base_link's frame. So in other words, say for example, my odom and base_link frame starts exactly the same as the map frame (y pointing north, x pointing east). I am facing north and go straight up. I expect my pos covariance to be larger in the y-axis, then I rotate 90 deg right, facing east (now base_link frame rotated). Now I head east, but I am still going straight ahead, not strafing. Do you expect the positional covariance to grow larger in the x-axis, or the y-axis for your calculations? If it grew larger in the x axis, then it is in the frame of odom, though if it grew larger in the y axis, then it would be in the frame of the base_link. Are my assumptions right, if then, what frame do you expect the covariance to be in? I understand I should be using the twist covariance for wheeled odometry regardless, though for a sanity check, I would like to know this as well, as the decision of frames correlates.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2023-06-03 06:53:50 -0500

Mike Scheutzow gravatar image

updated 2023-06-03 07:04:21 -0500

For a PoseWithCovariance message, the covariance frame is the same as the frame pose (base_link in your case).

For a TwistWithCovariance message, linear.x is velocity for the robot's x-axis, so covariance[0] is also along the robot's x-axis.

edit flag offensive delete link more

Question Tools


Asked: 2023-06-01 18:51:54 -0500

Seen: 54 times

Last updated: Jun 03 '23