Skip to content

About

Lagrangian dynamics and PD+ trajectory tracking for differential drive robots on vertical surfaces

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vertical Robot Dynamics

Dynamics modeling and trajectory tracking control for differential drive robots on vertical magnetic surfaces.

Robot Control Demo

Overview

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.

Key Features

  • 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

Technical Highlights

Dynamics Model

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

Control Architecture

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.

Results

Metric Value
Tracking Error < 5 cm
Trajectory Span 2.8 m vertical
Energy Drift < 2 uJ

Project Structure

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

Usage

Run Trajectory Tracking Demo

python final_demo.py

Run Dynamics Validation

python test_dynamics_verification.py

Generate Report Figures

python generate_report_figures.py

Physical Parameters

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

Academic Context

This work was developed for:

  • EK505 Dynamics Modeling (Boston University) - Mathematical derivation and validation
  • Intro to Robotics - Control implementation for the WIPERs project

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

Author

Cornelius Gruss Robotics and Autonomous Systems Boston University cgruss@bu.edu

About

Lagrangian dynamics and PD+ trajectory tracking for differential drive robots on vertical surfaces

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages