Back to project index

Control / SELECTED PROJECT

Robot Trajectory Planning and Control Simulation

From a planar 2-DOF arm to a spatial 3-DOF model: comparing trajectories, PID tracking and multibody simulation.

My role
Independent development · Kinematics, trajectory planning and control simulation
  • MATLAB
  • PID
  • URDF
  • PyBullet
SYSTEM / FLOW
  1. 01Targets and waypoints
  2. 02Forward and inverse kinematics
  3. 03Four trajectory methods
  4. 04PID tracking simulation
  5. 05Error and torque analysis
  6. 06URDF / PyBullet visualization
System schematic · not a device photo or execution record

00 / Context & objective

From a planar 2-DOF arm to a spatial 3-DOF model: comparing trajectories, PID tracking and multibody simulation.

01My contributions

  • Modeled planar 2-DOF and spatial 3-DOF arms with forward and inverse kinematics and workspace analysis.
  • Implemented cubic, quintic, trapezoidal-velocity and Cartesian straight-line trajectories for comparison under shared conditions.
  • Implemented PID tracking on simplified joint dynamics and analyzed end-effector error, peak error and control torque.
  • Built URDF and PyBullet visualization and 3-DOF gravity-compensated torque control, checking geometric coordinate alignment.

02System flow

  1. 01Targets and waypoints
  2. 02Forward and inverse kinematics
  3. 03Four trajectory methods
  4. 04PID tracking simulation
  5. 05Error and torque analysis
  6. 06URDF / PyBullet visualization

03Recorded results

  • Archived MATLAB plots, CSV files and analysis for four trajectory methods form a complete planning-to-control simulation workflow.
  • Archive checks passed planar and spatial numerical tests in MATLAB R2022a and two Python source-wiring checks.
  • The documentation separates 2-DOF kinematic playback from 3-DOF gravity-enabled dynamics control.

04Validation scope & limitations

Read results alongside their measurement targets and conditions. Historical records, host checks, and device validation are distinguished.

  • I independently developed the modeling and control simulation; other members' reporting and presentation work is not claimed as mine.
  • All control results are simulated and concern end-effector position. There are no physical-arm, gripper or object-contact experiments.
  • MATLAB uses simplified independent-joint dynamics. PyBullet uses different dynamics, parameters and gains, so their metrics are not interchangeable.
  • Archiving did not repeat full PyBullet gravity simulation; Python source-wiring checks are not simulation acceptance.

05Public materials

View GitHub repository