Dynamics API Referenceο
This page documents ``ManipulaPy.dynamics``, the module that adds full rigid-body dynamics to :pyclass:`~ManipulaPy.kinematics.SerialManipulator`.
Tip
Looking for a conceptual tour? See Dynamics User Guide.
Full Equationsο
Inverse dynamics
Forward dynamics
Usage Examplesο
Basic set-up
import numpy as np
from ManipulaPy.urdf_processor import URDFToSerialManipulator
# Load a URDF and grab its pre-built dynamics model
processor = URDFToSerialManipulator("robot.urdf")
dynamics = processor.dynamics # instance of ManipulatorDynamics
Mass matrix
M = dynamics.mass_matrix([0.1, 0.2, 0.3, 0, 0, 0])
Individual force terms
q = np.array([0.1, 0.2, 0.3, 0, 0, 0])
dq = np.array([0.05, 0.1, 0, 0, 0, 0])
C = dynamics.velocity_quadratic_forces(q, dq)
G = dynamics.gravity_forces(q)
Inverse dynamics
ddq = np.array([1.0, 0.5, 0, 0, 0, 0])
tau = dynamics.inverse_dynamics(q, dq, ddq,
g=[0, 0, -9.81],
Ftip=[0, 0, -10, 0, 0, 0])
Forward dynamics
ddq_sim = dynamics.forward_dynamics(
q, dq, tau,
g=[0, 0, -9.81],
Ftip=[0, 0, 0, 0, 0, 0]
)
Key Featuresο
Automatic caching of expensive mass-matrix evaluations
Complete force model (Coriolis, centrifugal, gravity, externals)
Gravity override for moon/Mars/zero-g simulations
Joint-limit aware helpers inherited from kinematics
Designed for GPU β the same formulas power the CUDA kernels
Troubleshootingο
Large torques? Check your gravity vector and link inertias. Singularities? Watch the Jacobian condition number (see Kinematics guide). Slow first call? Numba JIT compiles on demand; subsequent calls are much faster.
See Alsoο
Kinematics API Reference β forward kinematics & Jacobians
Control API Reference β model-based controllers that rely on this API
Path Planning API Reference β trajectory generation with dynamics constraints
Dynamics User Guide β physics background and best-practice tips