Mobile Inverted Pendulum System
A project for ROB 550: Robotics Systems Lab course taught in University of Michigan, Ann Arbor. An overview of this project:
Acting
- Dynamic control of DC motors to balance and control a wheeled inverted pendulum
- Trajectory Following for a mobile robot
Sensing
- Use of wheel encoders for performing odometry
- Use of MEMS IMU sensors to determine orientation (heading, pitch angle)
Design
- Build a system from the ground up based on an embedded system
- Use of Beaglebone with Robot Control Library in C for soft real-time control
The control architecture can be explained by the following figure:
Dependencies
libroboticscape
Source code for The Robot Control Library is in the folder ~/Install/librobotcontrol. Check out the website, or the github repository for how to use the functionality it provides.
Running the code
- run
test_motors.cto test the motor standalone balancebot/balancebot.cis the main code which starts two threads, and attaches thebalancebot_controller()function to the IMU interrupt.
Directories and Codebase
| Files | Description |
|---|---|
bin/ |
Binaries folder |
balanceebot/balanceebot.c/.h |
Main setup and threads |
test_motors/test_motors.c/.h |
Program to test motor implementation |
common/mb_controller.c/.h |
Contoller for manual and autonomous nav |
common/mb_defs.h |
Define hardware config |
common/mb_motors.c/.h |
Motor functions to be used by balancebot |
common/mb_odometry.c/.h |
Odometry functions |
optitrack/ |
optitrack driver/server |
xbee_serial |
xbee serial optitrack client code |
Square Lap corrected by UMBark procedure
Check out the final report for more information and results.

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.

