High-fidelity physics twin with analytical FK & numerical IK, trajectory planning, and cinema motion modes. Designed for sim-to-real transfer.
Python ≥ 3.9, MuJoCo ≥ 2.3.
# Install cd mujoco_sim && pip install -r requirements.txt # Cinema motion modes python cinema_line_tracking.py --mode crane python cinema_line_tracking.py --mode dolly python cinema_line_tracking.py --mode pan # Circular path tracking python circle_path_tracking.py # Teleoperation python teleop_ik.py # Cartesian IK python teleop_fk.py # Joint-space
DH parameters shared across the MuJoCo XML, ROS TF tree, and kinematics solvers. FK is closed-form from DH; IK is iterative numerical (Damped Least-Squares Jacobian via MuJoCo's mj_jacBody).
| Joint | Description | aᵢ (m) | αᵢ (°) | dᵢ (m) | θ_off (°) |
|---|---|---|---|---|---|
| J1 | Base yaw | 0.0000 | 0.0 | 0.2487 | 0.0 |
| J2 | Shoulder pitch | 0.0218 | 90.0 | 0.0590 | 180.0 |
| J3 | Arm pitch | 0.2998 | 0.0 | 0.0000 | 0.0 |
| J4 | Elbow pitch | 0.0200 | 90.0 | 0.0000 | 0.0 |
| J5 | Wrist pitch | 0.3251 | −90.0 | 0.0000 | 0.0 |
| J6 | Wrist roll | 0.0428 | 90.0 | 0.0000 | 0.0 |
Max reach ~1.0 m · Continuous base yaw
# Forward kinematics — closed-form DH
python kinematics/forward_kinematics.py \
--q 0 0 0 0 0 0# Inverse kinematics — numerical DLS Jacobian
python inverse_kinematics_numerical.py \
--target_xyz 0.6 0.0 0.5Numerical IK: iterative Damped Least-Squares (DLS) Jacobian. Singularity-robust via damping constant λ=10⁻⁴. Converges in <100 iterations to 0.1 mm tolerance.

Joint-space teleoperation (FK)

Cartesian teleoperation (IK)
Three cinematography-specific motion modes. Each generates smooth camera paths used in professional production.

Vertical arc sweeping the camera upward while tracking a fixed point. Used for reveals and establishing shots.
python cinema_line_tracking.py --mode crane

Linear push-in / pull-out while maintaining camera orientation. Simulates a physical dolly track.
python cinema_line_tracking.py --mode dolly

Lateral arc sweep holding a subject in frame. Smooth rotation for product shots and subject tracking.
python cinema_line_tracking.py --mode pan

End-effector follows a circular arc around a target point. Configurable radius and center.
python circle_path_tracking.py \ --radius 0.15 \ --center 0.45 0.0 0.4
Asymptotically optimal sampling-based planner. Finds collision-free paths in joint space with a rewiring step that continually improves path cost.
cd classical_planner python rrt.py
Gradient descent on an artificial potential field with attractive goal forces and repulsive obstacle forces. Fast reactive replanning for quasi-static environments.
python path_tracking.py