Covariance reference frame
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 baselink's frame. So in other words, say for example, my odom and baselink 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 baselink 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 baselink. 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.
Asked by Vishwa on 2023-06-01 18:51:54 UTC
Answers
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.
Asked by Mike Scheutzow on 2023-06-03 06:53:50 UTC
Comments