Dynamics modeling and trajectory tracking control for differential drive robots on vertical magnetic surfaces.
This project develops the complete dynamics model and control system for a differential drive robot operating on a vertical magnetic whiteboard. Unlike horizontal mobile robots, vertical operation introduces persistent gravitational disturbances that require explicit model-based compensation.
- Lagrangian dynamics with nonholonomic constraints (rolling without slipping)
- Pseudo-velocity formulation that naturally satisfies kinematic restrictions
- Computed torque (PD+) control with gravity compensation
- Energy conservation validation confirming correct dynamics implementation
- Sub-5cm tracking error on challenging figure-8 trajectories
The robot state is represented as:
x = [x, y, psi, u1, u2]^T
where (x, y) is the center of mass position, psi is heading, and (u1, u2) are pseudo-velocities (forward speed and angular rate).
The equations of motion account for:
- Gravitational potential energy on vertical surface
- Nonholonomic constraint at the wheel axle
- Center of mass offset from wheel axle
- Friction damping from eraser contact
The PD+ controller explicitly compensates for nonlinear dynamics:
f = M * a_cmd + m(q, u)
where M is the mass matrix and m(q, u) contains velocity-dependent and gravitational terms. This enables linear closed-loop dynamics for precise trajectory tracking.
| Metric | Value |
|---|---|
| Tracking Error | < 5 cm |
| Trajectory Span | 2.8 m vertical |
| Energy Drift | < 2 uJ |
vertical-robot-dynamics/
├── dynamics.py # Core dynamics model (ODEs)
├── parameters.py # Physical parameters
├── pd_plus_controller.py # Computed torque controller
├── final_demo.py # Animation generation
├── generate_report_figures.py # IEEE figure generation
├── test_*.py # Validation tests
│
├── docs/
│ ├── dynamics_modelling/ # EK505 Dynamics Modeling report
│ │ ├── final_report.tex # IEEE-style LaTeX paper
│ │ └── figures/ # Publication figures
│ └── intro_robotics/ # Intro to Robotics materials
│
└── demos/
└── robot_control_demo.gif # Control demonstration
python final_demo.pypython test_dynamics_verification.pypython generate_report_figures.py| Parameter | Value | Description |
|---|---|---|
| Mass | 0.6 kg | Robot body mass |
| Wheel Radius | 25 mm | Drive wheel radius |
| Track Width | 150 mm | Distance between wheels |
| COM Offset | 30 mm | Center of mass forward of axle |
This work was developed for:
- EK505 Dynamics Modeling (Boston University) - Mathematical derivation and validation
- Intro to Robotics - Control implementation for the WIPERs project
Part of the Wireless Ink Purging Ensemble Robots (WIPERs) team project - autonomous whiteboard cleaning robots that use computer vision and multi-robot coordination.
My Contributions:
- Derived complete equations of motion using Lagrangian mechanics
- Implemented trajectory tracking controller with gravity compensation
- Validated dynamics through energy conservation analysis
- Developed simulation framework and visualization tools
Cornelius Gruss Robotics and Autonomous Systems Boston University cgruss@bu.edu
