Dynamics Tutorial#

This tutorial covers robot dynamics and physics simulation using ManipulaPy.

Introduction#

Robot dynamics deals with the relationship between forces, torques, and motion.

Mass Matrix Computation#

import numpy as np
from ManipulaPy.dynamics import ManipulatorDynamics

# Create dynamics object
dynamics = ManipulatorDynamics(
    M_list=M,
    omega_list=omega,
    S_list=S_list,
    B_list=B_list,
    Glist=Glist
)

# Compute mass matrix
joint_angles = np.zeros(6)
M = dynamics.mass_matrix(joint_angles)

Inverse Dynamics#

import numpy as np

# Compute required torques
joint_angles = np.array([0.1, 0.2, 0.3, 0.4, 0.5, 0.6])
joint_velocities = np.zeros(6)
joint_accelerations = np.array([1.0, 0.5, 0.3, 0.2, 0.1, 0.0])
gravity = [0, 0, -9.81]
external_forces = np.zeros(6)

torques = dynamics.inverse_dynamics(
    joint_angles,
    joint_velocities,
    joint_accelerations,
    gravity,
    external_forces
)

Forward Dynamics#

import numpy as np

# Simulate robot motion
applied_torques = np.array([10, 5, 3, 2, 1, 0.5])

accelerations = dynamics.forward_dynamics(
    joint_angles,
    joint_velocities,
    applied_torques,
    gravity,
    external_forces
)

See Also#