RobotLocomotion / drake

Model-based design and verification for robotics.
https://drake.mit.edu
Other
3.25k stars 1.25k forks source link

Multibody Documentation Questions #8592

Closed dcqr closed 6 years ago

dcqr commented 6 years ago

Not sure if this is the right place to post this, but there were a few things in the Multibody Dynamics documentation at http://drake.mit.edu/doxygen_cxx/group__multibody__concepts.html that seemed a little bit confusing to me.

Thanks!

sherm1 commented 6 years ago

Hi, @dcqr. Great questions -- I'll take a shot at answering them. Please ask more if I misunderstood anything or my answer didn't clarify.

First a point of likely confusion: Drake's older rigid body code (RigidBodyPlant/Tree) is based on Featherstone and hence uses Plücker vectors. We are replacing that with a new implementation (MultibodyPlant/Tree) that is based on Jain and uses Jain's spatial quantities instead (and those are not Plücker vectors). The documentation you are reading describes the new Jain-based implementation. There is no corresponding documentation for the older implementation (that's one reason we're writing a new one).

Are Drake spatial vectors the same as the spatial vectors in Robot and Multibody Dynamics by Jain?

Yes. We use Jain's spatial quantities (which are a pair of ordinary 3-vectors) rather than Featherstone's (which are a single 6-vector, aka Plücker vector).

Is spatial acceleration the derivative of spatial velocity in Drake, or is the translational component of Drake's spatial acceleration linear acceleration?

Hmmm. Your question makes me think you might be confusing these with Plücker vectors. In Drake's (and Jain's) formulation, the spatial acceleration A_EF consists of a pair of ordinary 3-vectors, each of which is the time derivative of the corresponding 3-vector in a spatial velocity V_EF. So the translational component is indeed the linear acceleration. A Plücker acceleration vector has an extra cross product there.

Expressed-in vs. transform

A vector force or motion represents a physical quantity. An "expressed-in" frame (or vector basis) is simply an agreement between two parties as to how they will write down the numbers that represent that vector. Changing that agreement changes the numbers but not the physical quantities. OTOH, "transforming" a quantity means to not only change the basis but to change the origin point. That results in a change to the physical quantity being measured -- for example, a separation distance or relative translational velocity is different when measured from different points. So you are right that a transform involves a cross product, but changing an expressed-in basis does not. In code we denote the expressed-in frame Y by appending _Y to the physical quantity. So V_EF_W and V_EF_Y are the same physical quantity (the spatial velocity of frame F in E) but written down two different ways.

"While the rotational component of a spatial vector applies to a rigid body or frame as a whole, the translational component refers to a particular point rigidly fixed to that same body or frame.", which I believe is not true for spatial forces or spatial momentum.

Can you say more about this? At first glance it looks correct as is to me -- a (translational) force is also applied to a particular point, and spatial momentum is measured about a point also.

Why do you emphasize the fact that Drake's spatial vectors are not Plücker vectors?

Because Plücker vectors are, in our opinion, a very unfortunate choice for spatial quantity that makes Featherstone's formulation unnecessarily difficult. Jain's spatial vectors are much simpler and natural, and require only a short paragraph to explain in Jain's book vs. a long chapter in Featherstone's.

What makes them different? Are they the same as the spatial vectors described in Jain's textbook.

The difference is that Jain's spatial quantities are simply a pair of ordinary 3D vectors with a natural interpretation in a 3D world. Plücker's are 6D vectors, mathematically elegant but an awkward fit to a 3D world.

@amcastro-tri can probably describe the difference more precisely if you want to know more, or point you to some references if you have both Jain's and Featherstone's books handy.

amcastro-tri commented 6 years ago

I don't think I could've said it better myself. I believe @sherm1 did address all your points very well. @dcqr, Please feel free to ask more about this if you believe any of the docs are not quite clear.

sherm1 commented 6 years ago

Closing this since there were no followup questions.