Seeking clarity regarding frame of reference in which robot velocities are provided
I have a very simple doubt.
I have a robot with a body frame B
attached very rigidly to it. I have a world frame W
attached rigidly to the ground i.e. my inertial frame. When I publish a Twist message with some linear
and angular
velocity components, with respect to which frame are they published or considered?
From my knowledge, it is definitely not the world frame W
because when I publish a positive in linear.x
the robot just simply moves forward with respect to its instantaneous position. Is the answer something like with respect to the "instantaneous" body frame or something similar?
Seeking for clarity,
Thanks
Just an observation: you seem to expect a generic answer, while in reality I believe it's very much possible for different
Twist
consumers to behave differently here. For some, the frame of reference may be the body-local frame, for others, an external one.If you're observing behaviour of a specific component which made you ask this question, it would be good to mention that component, as it could help you getting (better) answers.
Note that the question would probably be different if you'd mentioned
TwistStamped
.Thank you for your response. To clarify my question. I had ground robots in my mind while asking this question. We can take the Turtlebot3 for example.
Why would the question be completely different if I mentioned
TwistStamped
instead ofTwist
? I did not understand, please explain.@electrophod +1
See the second paragraph in @tryan's answer.
@gvdhoorn that was helpful. Thanks!