Code Monkey home page Code Monkey logo

balancebot's Introduction

Mobile Inverted Pendulum System

Codacy Badge

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.c to test the motor standalone
  • balancebot/balancebot.c is the main code which starts two threads, and attaches the balancebot_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.

Collaborators

Shreyas Bhat and Saptadeep Debnath

balancebot's People

Contributors

mohie34 avatar pgaskell avatar saptadeb avatar shreyasb032 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.