|
|
Rigid-body inertia of the mobile platform, from the robot model. More...
#include <armarx/navigation/simulation/PlatformInertia.h>
Classes | |
| struct | Parameters |
Public Member Functions | |
| Eigen::Vector3d | bias (const Eigen::Vector3d &q, const Eigen::Vector3d &qdot) |
| Coriolis, centrifugal and gravity terms at the platform DoFs. | |
| Eigen::Matrix3d | massMatrix (const Eigen::Vector3d &q) |
Joint-space mass matrix at platform pose q. | |
| PlatformInertia & | operator= (const PlatformInertia &)=delete |
| PlatformInertia (const Parameters ¶ms) | |
| PlatformInertia (const PlatformInertia &)=delete | |
| double | totalMass () |
Total mass of everything lumped onto the platform [kg], i.e. massMatrix(0)(0, 0). | |
| double | yawInertia () |
| Moment of inertia about the platform's yaw axis [kg m^2], at zero yaw. | |
| ~PlatformInertia () | |
Rigid-body inertia of the mobile platform, from the robot model.
Wraps a reduced simox-control RBDL model built on the three virtual platform joints (X_Platform, Y_Platform, Yaw_Platform — the PlatformPlanning node set). Everything above the platform is lumped rigidly onto the yaw body at the robot's configuration, so the result is a 3x3 mass matrix in [x, y, yaw].
The reduced model is deliberate: ARMAR-7 uses four-bar joints (Knee, Ankle) and hemisphere joints (wrists) that RBDL cannot represent as ordinary joints. None of them is in PlatformPlanning, so they are only ever lumped as rigid bodies and never need a Jacobian.
Definition at line 60 of file PlatformInertia.h.
|
explicit |
|
default |
|
delete |
Here is the call graph for this function:| Eigen::Vector3d bias | ( | const Eigen::Vector3d & | q, |
| const Eigen::Vector3d & | qdot ) |
Coriolis, centrifugal and gravity terms at the platform DoFs.
This is InverseDynamics(q, qdot, 0), i.e. the generalized force needed to hold the current velocity. It is non-zero because the centre of mass is offset ~150 mm from the yaw axis. Gravity contributes nothing to purely horizontal DoFs.
Definition at line 139 of file PlatformInertia.cpp.
| Eigen::Matrix3d massMatrix | ( | const Eigen::Vector3d & | q | ) |
Joint-space mass matrix at platform pose q.
| q | [x, y, yaw] with x and y in metres and yaw in rad. |
[kg, kg, kg m^2] on the diagonal. Depends on yaw only — the two prismatic DoFs are translation-invariant. Definition at line 133 of file PlatformInertia.cpp.
|
delete |
Here is the call graph for this function:| double totalMass | ( | ) |
Total mass of everything lumped onto the platform [kg], i.e. massMatrix(0)(0, 0).
Definition at line 145 of file PlatformInertia.cpp.
| double yawInertia | ( | ) |
Moment of inertia about the platform's yaw axis [kg m^2], at zero yaw.
Definition at line 151 of file PlatformInertia.cpp.