Given this spatial force F_Bp_E applied at point P of body B and expressed in a frame E, this method computes the 6-dimensional dot product with the spatial velocity V_IBp_E of body B at point P, measured in an inertial frame I and expressed in the same frame E in which the spatial force is expressed. More...

Returns the maximum absolute values of the differences in the rotational and translational components of this and other (i.e., the infinity norms of the difference in rotational and translational components). More...

Detailed Description

template<typename T>
class drake::multibody::SpatialForce< T >

This class is used to represent a spatial force (also called a wrench) that combines both rotational (torque) and translational force components.

Spatial forces are 6-element quantities that are pairs of ordinary 3-vectors. Elements 0-2 are the torque component while elements 3-5 are the force component. Both vectors must be expressed in the same frame, and the translational force is applied to a particular point of a body, but neither the frame nor the point are stored with a SpatialForce object; they must be understood from context. It is the responsibility of the user to keep track of the application point and the expressed-in frame. That is best accomplished through disciplined notation. In source code we use monogram notation where capital F is used to designate a spatial force quantity. We write a point P fixed to body (or frame) B as \(B_P\) which appears in code and comments as Bp. Then we write a particular spatial force as F_Bp_E where the _E suffix indicates that the expressed-in frame is E. This symbol represents a torque applied to body B, and a force applied to point P on B, with both vectors expressed in E. Very often the application point will be the body origin Bo; if no point is shown the origin is understood, so F_B_E means F_Bo_E. For a more detailed introduction on spatial vectors and the monogram notation please refer to section Spatial Vectors.

Constructor & Destructor Documentation

In Release builds the elements of the newly constructed spatial force are left uninitialized resulting in a zero cost operation. However in Debug builds those entries are set to NaN so that operations using this uninitialized spatial force fail fast, allowing fast bug detection.

Member Function Documentation

Given this spatial force F_Bp_E applied at point P of body B and expressed in a frame E, this method computes the 6-dimensional dot product with the spatial velocity V_IBp_E of body B at point P, measured in an inertial frame I and expressed in the same frame E in which the spatial force is expressed.

This dot-product represents the power generated by this spatial force when its body and application point have the given spatial velocity. Although the two spatial vectors must be expressed in the same frame, the result is independent of that frame.

Warning

The result of this method cannot be interpreted as power unless the spatial velocity is measured in an inertial frame I.

A spatial force to be added to this spatial force. It must be on the same system or body S on which this spatial force is applied and at the same point P as this spatial force, and expressed in the same frame E.

Returns

A reference to this spatial force, which has been updated to include the given spatial force F_Sp_E.

Warning

This operation is only valid if both spatial forces are applied on the same system or body S, at the same point P and expressed in the same frame E.

A spatial force to be subtracted from this spatial force. It must be on the same system or body S on which this spatial force is applied and at the same point P as this spatial force, and expressed in the same frame E.

Returns

A reference to this spatial force, which has been updated to exclude the given spatial force F_Sp_E.

Warning

This operation is only valid if both spatial forces are applied on the same system or body S, at the same point P and expressed in the same frame E.

This is an alternate signature for shifting a spatial force's application point that does not change the original object. See ShiftInPlace() for more information.

Parameters

[in]

p_BpBq_E

Shift vector from point P of body B to point Q of B, expressed in frame E. The "from" point Bp must be the current application point of this spatial force, and E must be the same expressed-in frame as for this spatial force.

Return values

F_Bq_E

The equivalent shifted spatial force, now applied at point Q rather than P.

In-place shift of a SpatialForce from one application point to another.

this spatial force F_Bp_E, which applies its translational force component to point P of body B, is modified to become the equivalent spatial force F_Bq_E that considers the force to be applied to point Q of body B instead (see class comment for more about this notation). This requires adjusting the torque component to account for the change in moment caused by the force shift.

We are given the vector from point P to point Q, as a position vector p_BpBq_E (or p_PQ_E) expressed in the same frame E as the spatial force. The operation performed, in coordinate-free form, is:

τ_B = τ_B - p_BpBq x f_Bp
f_Bq = f_Bp, i.e. the force as applied to body B at Q is the
same as was applied to B at P.

For computation, all quantities above must be expressed in a common frame E; we add an _E suffix to each symbol to indicate that.

This operation is performed in-place modifying the original object.

Parameters

[in]

p_BpBq_E

Shift vector from point P of body B to point Q of B, expressed in frame E. The "from" point Bp must be the current application point of this spatial force, and E must be the same expressed-in frame as for this spatial force.

Returns

A reference to this spatial force which is now F_Bq_E, that is, the force is now applied at point Q rather than P.

See also

Shift() to compute the shifted spatial force without modifying this original object.

The documentation for this class was generated from the following files: