-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make explicit that body fixed frame is the sourceFrame #100
Make explicit that body fixed frame is the sourceFrame #100
Conversation
As the frames are formally described as sourceFrame and targetFrame, make it clear that the angular velocity is represented in sourceFrame. Let an indication that it is the "body" frame, as in the RigidBodyState documentation
This goes against my understanding of #99 If RBS is the state of 'source' in 'target', the velocities should be the velocities of 'source' in 'target'. Or am I still missing something ? |
I agree that both velocities should be represented in the same frame. In most parts of the code I know it is sadly not the case, probably because of the ambiguous documentation. |
According my understanding of RBS documentation #99:
But I agree with Sascha:
|
One relevant question is whether the current code is consistent with the current RBS documentation, or if we anyways have widely different interpretations in the wild already. In the former case, changing it is difficult. In the latter case, it's a no-brainer. |
At least the code I know, where both pose and velocity is set, is consistent with the current documentation. But it wouldn't be to hard to change those parts. |
I have a doubt about the velocities in case the sourceFrame==targetFrame. |
For me, the only thing that would make sens with the current definition is to express the velocity of sourceFrame in the targetFrame considered fixed at time (t). Otherwise, there is no way to express a velocity of a vehicle in the body frame. |
It's not a trivial assumption. One can think that the frames, if having the same name, should share the same properties, including velocities. Why not represent the velocities direct in sourceFrame (the body frame)? Like the velocity of the sourceFrame related to the targetFrame expressed in sourceFrame? A body frame velocity is usually what a sensor measures, independent of the targetFrame (inertial frame) used. If anyone wants the representation of the velocity in a specific targetFrame, then the orientation is required. |
I'm picking up on this since the confusion came back (rock-gazebo/simulation-orogen-rock_gazebo#15), in this case because I didn't re-read the RBS documentation in the first place (so, not confusion of reading the documentation, but simply not the intuitive answer). Anyways, I think the best right now is to stick to the common interpretation of the code (even if it ends up being horribly incosistent, IMO), that is - from what I believe @saarnold said:
If there's agreement, could you update this PR, @joaobrittoneto ? If you don't have the time, I will create a new one. |
Thanks |
As the frames are formally described as sourceFrame and targetFrame,
make it clear that the angular velocity is represented in sourceFrame.
Let an indication that it is the "body" frame, as in the RigidBodyState documentation