PyRobo is a small Python library for simulating a 3-DOF revolute-revolute-revolute (RRR) manipulator, including kinematics, dynamics, trajectory generation, basic control, and simple 3D visualization.
- Kinematics: Forward kinematics and Jacobians
- Dynamics: Mass, Coriolis/centrifugal, and gravity terms
- Trajectory: Cubic spline trajectories with via-points
- Control: Simple PD and inverse-dynamics control
- Simulation & plots: RK4 integration, joint/trajectory/energy plots
Requirements (typical setup):
- Python ≥ 3.8
- NumPy, Matplotlib (see
requirements.txtfor exact versions)
Install in editable/development mode from the repo root:
pip install -e .or just:
pip install -r requirements.txtFrom the repository root:
# Example 1: Forward kinematics + animation
python -m examples.example_1_forward_kinematics
# Example 2: Trajectory generation
python -m examples.example_2_trajectory
# Example 3: Dynamics + energy verification
python -m examples.example_3_dynamics
# Example 4: Trajectory tracking control
python -m examples.example_4_controlRun basic unit tests from the repo root:
python -m tests.test_kinematics
python -m tests.test_dynamics
python -m tests.test_trajectory- Default robot parameters (masses, lengths, inertia, gravity) are defined in the model code under
src/models/. - Advanced symbolic derivation and code-generation scripts live in
scripts/, but are not needed for normal use.
This project is intended for robotics education and experimentation.