User Tools

Site Tools


dbkim_ballbeam

This is an old revision of the document!


Single Degree of Freedom Ball Balancing Tutorial

Author: <DONGBIN KIM> Email: dongbin.kim@unlv.edu
Date: Last modified on <06/01/19>
Keywords: <ballandbeam, ballbalancing, controls>


The photo above depicts ball balancing systems which allows you to understand classic control theory from simulation to the real life application. The big picture problem is that the theoretical simulation normally does not require lots of efforts due to the exponential development in computers and software such as MATLAB, but it is always tough to convert from simulation into real-life application because it requires extra problems. Solving this completely is important as becoming a roboticist. This tutorial shows you how to simulate your system, and fabricate it in real life. It takes approximately 5 hours to complete.

Motivation and Audience

This tutorial's motivation is to practice basic dynamic system control from simulation to fabrication. Readers of this tutorial assumes the reader has the following background and interests:

* Know how to derive equation of motion of a system
* Perhaps also know how to use Robot Operating Systems for the system fabrication
* Perhaps additional background needed may include C++ or Python programming language

The rest of this tutorial is presented as follows:

  • Parts List and Sources
  • Construction
  • Programming
  • Final Words

Parts List and Sources

To complete this tutorial, you'll need the following items


  • For dynamixel motor control, the following article should be downloaded Dynamixel SDK
  • For Robot Operating System installation, use the following link. ROS-kinetic kame is used ROS Website
  • 3D printing is required for the connector that links the dynamixel and the beam. (Ask dongbin.kim@unlv.edu for the CAD file. Wiki wasn't able to upload here)

Hardware Construction

                                           (Ball balancing scheme)

                                     (Ball balancing Hardware Setup)

This section gives step-by-step instructions along with photos to build the ball balancing system set-up.

Step 1

  • 8020 Aluminum Build : Connect 8020 Aluminum beams like the hardware setup above

Step 2

  • The Foam Board : Cut the board 48cm by 10cm. In 10cm area, slice a little bit 3 cm from both edges, so you can fold to the create a semi-triangle shape. It will be the beam that will support the hallow ball

Step 3

  • Dynamixel MX-28 : Mount the 3D-Printed connector on Dynamixel MX-28, then connect with the beam.

Step 4

  • Sony Camera : Mount the camera on top border of the aluminum frame.
  • Dynamixel + Beam : Place is 36cm under the sony camera. It's because all part of the beam will be inside the camera display. Therefore the position of the ball will be achieved correctly.

Step 5

  • Power Supply : Place it near the dynamixel to provide the continuous power
  • USB Cable : Organize nicely so the cable will not touch the beam or interfere the camera.

Software Construction

A link to the source code can be found <provide URL to your code, probably saved in this DASL Wiki>.
The goal of the code is <brief explanation>. It works in the following way


<!- Insert a snippet of your code here. Try to keep to less than 0.5 page long –>



The snippet above serves to <fill in the blank>. It does this by <fill in the blank>.


<!- Insert another snippet of your code here. Try to keep to less than 0.5 page long –>


Next, the code does <fill in the blank>. It does this by <fill in the blank>.

Final Words

This tutorial's objective was to <fill in the blank>. Complete <choose: construction details, source code and program descriptions> for <fill in the blank>. Once the concepts were conveyed the reader could <fill in the blank>.

Speculating future work derived from this tutorial, includes <fill in the blank>. In the big picture, the problem of <fill in the blank> can be solved with this tutorial.

For questions, clarifications, etc, Email: paul.oh@unlv.edu

dbkim_ballbeam.1559475819.txt.gz · Last modified: 2019/06/02 04:43 by dongbinkim