Balancing Builder Bot
- 1.27 s
- Settling time (impulse response, sim)
DOCUMENTS ON FILE · 01
SHORT REPORTPDF · 12 PP · 689.7 KB
Balancing Builder Bot: e-Yantra Team BB#2091 Project Report
Recommended if you want to skim, e.g. recruiters.
Brief
Team BB#2091’s entry for the e-Yantra Robotics Competition: a two-wheeled self-balancing robot fitted with a gripper, required to traverse a predefined path crossing obstacles while picking up and dropping foam boxes, all while staying balanced.
Problem
Balancing a two-wheeled robot is an inverted-pendulum control problem on its own; adding a gripper that picks up and releases mass mid-traversal continuously shifts the system’s centre of mass, so the balance controller has to stay stable through those load changes, not just at rest.
Approach
- Modeled the robot as an inverted pendulum on wheels using the Euler-Lagrange method, deriving the state-space representation (
x, ẋ, θ, θ̇) in MATLAB. - Computed the state and input matrices (A, B) via Jacobians of the equations of motion, and found the system’s equilibrium points and their stability (the upright point is unstable; the hanging point is marginally stable).
- Designed an LQR controller (
u = -Kx) withQandRcost matrices tuned to prioritize which states get corrected most aggressively, computing gains with MATLAB’slqr(). - Implemented the controller in CoppeliaSim via Python, reading body position/orientation/velocity through the simulator’s object-handle API and actuating both wheel joints from the computed control law.
- Added a gripper (one revolute joint, one prismatic claw joint) for pick-and-place, with keyboard-driven joint control and a dynamic axis-recalibration step for rotations beyond 45°, to keep turning stable at large tilt angles.
Results
The bot balanced, traversed the assigned path, and completed pick-and-place of the foam boxes in CoppeliaSim, delivering a 1.27-second settling time on impulse response.
Status / Next
Completed; project closed after the competition submission.