Skip to content
natd89 edited this page Apr 13, 2018 · 49 revisions

Project Overview

Welcome to the robotic_vision_final_project wiki!

The goal of this project was to build a simple robot that could balance a ball on a platform while simultaneously controlling the ball's position, using a raspberry pi and two servo motors. The RPi 3 would be used to run the computer vision and control algorithms. The RPi camera would be used for position feedback for the controller.

This project is broken up into three sections: 1) Robot Dynamics, 2) Robot Control, and 3) Robot vision. Each topic will be discussed in their respective sections. To start out, here's a list of materials that I ended up using on the project:

  1. Raspberry Pi 3

  2. 2 X Servo Motors

  3. Raspberry Pi Camera

  4. Arduino Pro Mini:

  5. Miscellaneous Electronics Stuff

    • jumper wires
    • breadboard
    • capacitors
    • LEDs

Robot Dynamics

A note before I discuss the dynamics of the system. The only reason to develop dynamic equations is to come up with a model that can be used for model based control or simulation. Simulating the robot was out of the scope of this project, so I ignore that, but I was interested in using LQR for the controller. Since LQR is model based control I needed the dynamics of the system which were relatively straight forward.

I first split up the dynamics into two equations: 1) the XZ plane and 2) the YZ plane.The image below shows a free body diagram of the two side views.

ball balancing robot

This of course is a very broad simplification of the actual dynamics. When the full equations of motion are linearized they simplify quite nicely, and the separate 2-D views are an appropriate approximation. theta and phi are defined as positive rotations about the x ans y axes respectively.

Robot Control

Robot Vision

Clone this wiki locally