0% found this document useful (0 votes)
171 views10 pages

Case Study (Balancing Robot)

The document describes two autonomous balancing robots: 1) An autonomous balancing robot created by Christian Sundin and Filip Thorstensson that uses sensors like infrared proximity sensors and an accelerometer/gyroscope along with a PID controller to balance and carry small loads. 2) The nBot balancing robot created by David P. Anderson that can balance things on top of it and uses an inclinometer, accelerometer, gyroscope and home-brew shaft encoders with an on-board computer to balance through uneven surfaces and avoid collisions.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
171 views10 pages

Case Study (Balancing Robot)

The document describes two autonomous balancing robots: 1) An autonomous balancing robot created by Christian Sundin and Filip Thorstensson that uses sensors like infrared proximity sensors and an accelerometer/gyroscope along with a PID controller to balance and carry small loads. 2) The nBot balancing robot created by David P. Anderson that can balance things on top of it and uses an inclinometer, accelerometer, gyroscope and home-brew shaft encoders with an on-board computer to balance through uneven surfaces and avoid collisions.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 10

Autonomous Balancing Robot

Created by Christian Sundin and Filip Thorstensson, Department of Signals and


Systems, Chalmers University of Technology, Sweden

Fig. 1: Actual Picture


Front View and Side View
I.

II.

Robotic Application
For entertainment purposes
Food serving at tables
List of Functionalities
Able to balance on two wheels
Able to carry a small load
Stable and not make any large unwanted movements,
Able to move on a small table without falling off the edges
Able to detect and interact with people

Fig. 2:

III.

Sensors on Board and Controller


Sensors on Board

Two Proximity Sensors


1. Table detection: Sharp GP2Y0D810Z0F infrared digital 2-10cm

The edge detecting sensors are of infrared type, the same type that can be used for
line following robots where the robot uses two sensors to scan for the line. They have
an infrared light emitting diode and a photo diode.
2. Human or wall detection: Sharp GP2Y0A21YK0F infrared digital 10-80cm
For detecting objects in front of the robot such as walls or people another infrared
proximity sensor was used which outputs an analog voltage. This one measures
distances in the span 10 80cm by sending out a beam of infrared light and then by
using the reflection using an onboard signal processor it calculates a responding
output voltage. The voltage can be read by the ADC and used to calculate a distance to
the object detected in centimeters.

Temperature Sensor

For human identification a temperature sensor was used. For this purpose the
TPA81 was chosen, which is a thermopile array that consists of 8 pyro-electric sensors
and 1 onboard ambient temperature sensor. A human in a room of 20C 22C
appears around 29C 33C. The TPA81 communicates through I2C and returns 1
byte containing the temperature in C.

Accelerometer and gyroscope

It consists of a 3 axis accelerometer and a 3 axis gyroscope. It has a onboard


processor for sensor fusion to get a good estimate of the angle called digital motion
processor.

Controller

PID Controller

The PID controller was designed by using the linear system, a sensor model and the
Kalman filter. The parameter to be controlled by the PID was the angle of the
pendulum. For the PID controller a Kalman filter was used to remove the noise from
the accelerometer and gyro.

LQG Controller

The LQG controller was used to stabilize the robot. For the LQG a Kalman observer
was needed to estimate the speed of the wheel and also to filter the sensor noise.

Microprocessor Arduino

As the main CPU board a small Arduino board was chosen. This was a small
development board created for experimenting and hobby purposes. It had 54 I/O pins
which includes 14 PWM outputs, 16 analog inputs, 4 UARTs with 1 I2C port and 3 SPI
ports available. The card consists of an ATmega2560 microcontroller with a clock
speed of 16 Megahertz. It requires an input voltage between 7 12V for optimal
functioning and can be powered and be programmed through a USB-cable.
IV.

Wheels Configuration and Driving Mechanism

For wheels two 90 10mm were chosen because of the diameter on the wheels
were good by consideration of the motors angular velocity and the desired speed of the
robot. The wheels were made out of light plastic with a rubber tire and attached to the
motor axis with an aluminum hub. The motors were then mounted on the bottom
shelf between the front and the back rods.
To power the motors a motor driver was needed and the one of choice was the
Ardumoto for two 12V DC-motors. It was chosen because it fits easily on the Arduinocard and the only connections needed except for the pins already connected through
the shield were the main power to the motors of 12V and two motors. It was based on
the L298 H-bridge and could supply up to 2A per channel. It worked with both 3.3V
and 5V logic, where 5V was the level in the system. The motors were controlled by
setting a digital 0 or 1 on the direction pin for deciding which direction the motor
would go and by supplying a PWM signal for determine the speed of the motors where
255 was full power of supply voltage Vin and 0 is completely turned off. This allows for
256 different levels for back and forth of the motor which gives a total span of 511
speeds.

Source:
http://publications.lib.chalmers.se/records/fulltext/163397.pdf

nBot Balancing Robot


Created by David P. Anderson

Fig. 3: Actual Picture of nBot


I.

II.

Robotic Application
It can be used to balance things on top of it. Say for example placing a tray
on top and placing glasses with drinks, a bottle, or even a plate with
anything on it.
For entertainment purposes.
List of Functionalities
For outdoors performance in general, the robot's balance seems to be
unaffected by uneven and irregular surfaces

III.

It pivots away from the collision and continues; sort of a built in "bumper"
behavior without an actual physical bumper.
It takes several tries for it to overcome the bump at the start on ramp. The robot
initially bounces away, leaning further forward to get enough torque to climb
over the bump and start up the ramp.
It have sensors and behaviors to avoid running into things, but note that the
robot does not lose its balance and fall over when it does collide.
The two-wheel robot is indeed able to handle much more aggressive slopes than
my other robots.

Sensors on Board, Controller


Sensors on Board
FAS-G (Inclinometer)
This fast and stable 360 degrees inertial tracking device combines
two MEMS accelerometers, one angular-rate gyro, and a filtering
algorithm for dynamic yet accurate measurement. It enables many
applications, including vehicle roll detection.

ADXL202 Accelerometer with a Rate Gyro


The ADXL202E is a low-cost, low-power, complete dualaxis iMEMS accelerometer with a measurement range of 2g. The
ADXL202 can measure both dynamic acceleration (e.g., vibration) and
static acceleration (e.g., gravity). Applications are 2-Axis Tilt Sensing,
Data Projector Keystone Correction, Alarms and Motion Detectors and
Inertial Navigation

Home-Brew Shaft Encoders

Fig. 4: Home-brew encoder connected to a 68HC11 Timer-Input Compare


port on the M.I.T. 6.270 Robot Controller board,
Controller

IV.

On-board computer (MIT 6.270)


It has an LCD display and 32KB of battery backed RAM. It also
has 6 motor controls (five! (5) L293D's with the bottom four running in
"stacks" to get more current capactiy.) There are a couple of
pushbuttons, a "frob knob" and a place to put an IR beacon. There are a
bunch of analog inputs that route through a CMOS switch to the I/Os on
the CPU. Programmed in "Interactive C" this board is truly one of the
milestones in modern hobby robotics.

Wheel Configuration + Driving Mechanism

Figure 5: nBot Driving Mechanism


The platform is constructed using an aluminum axle mount and two aluminum
side beams, attached to a 1/4" clear Lexan upper deck. The above image includes all
the parts of the basic two-wheel truck. In the foreground can be seen the 1/4" Lexan
deck between the two aluminum side beams, with 3/8" bronze bearings already
inserted in the beams. Behind that is the aluminum axle block (with bronze bearings
inserted in the inner surfaces) flanked on either side by two 12 volt D.C. gearhead
motors.

In the rear of the figure 5, are the axles, gears, and main wheels.

The axle mounting block was squared up on the lathe using cylindrical squares
and a face plate. Then the axle hole was bored in a single operation without removing
the block from the lathe, insuring that both axles are aligned with each other and
square with the mounting surfaces of the block. The block was removed from the lathe
and the inner section between the two axles was removed with the vertical mill. The
aluminum wheel hubs and steel axles were also made with the lathe. All the other
structural components were machined from aluminum and Lexan stock using the mill.
For

driving

the nBot, it

used Pittman

GM8712

Gearhead

Motor

Home-Brew

Shaft

with

Encoders.

Fig. 6: Pittman GM8712 Gearhead Motor


The basic idea for a two-wheeled dynamically balancing robot is pretty simple:
drive the wheels in the direction that the upper part of the robot is falling. If the
wheels can be driven in such a way as to stay under the robots center of gravity, the
robot remains balanced. In practice this requires two feedback sensors: a tilt or angle
sensor to measure the tilt of the robot with respect to gravity, and wheel encoders to
measure the position of the base of the robot. Four terms are sufficient to define the
motion and position of this inverted pendulum and thereby balance the robot. These

are 1) the tilt angle and 2) its first derivative, the angle velocity, and 3) the platform
position and 4) its first derivative, the platform velocity. These four measurements are
summed and fed back to the platform as a motor voltage, which is proportional to
torque, to balance and drive the robot. Here is a diagram of the algorithm with some
code and implementation notes:
+---------------------+--------------+
+--------< | Motor shaft encoder |
|
|
+---------------------+
Motor PWM | <-----+
|
+---< | Angle sensor
|
|
|
|
|
+---------------------+--------------+
|
|
|
|
|
|
+-------+
|\ angle
|
|
|
|
|
| \ velocity
|
|
+-----| Deriv |------|K1-----+
|
|
|
|
|
| /
\
|
|
|
+-------+
|/
\
|
|
|
+-----+
|
|
|
|\ angle
|
\
|
|
|
| \ pos
|
\
|
|
+--------------------|K2--------+
\
|
|
| /
|
\
|
|
|/
|
\
|
|
| SUM
+------+
|
+-------+
|\ wheel
|
/
|
|
|
| \velocity|
/
+----------| Deriv |------|K3--------+
/
|
|
|
| /
|
/
|
+-------+
|/
|
/
|
+-----+
|
|\ wheel /
|
| \ pos /
+-------------------------|K4-----+
| /
|/

The boxes labled "Deriv" calculate the derivative of the inputs by subtracting
the last sample from the current sample. For the shaft encoders this gives the wheel
velocity, and for the angle sensor this gives the angle velocity. The four triangles
labeled. K1 through K4 are the "knobs" that apply gain to the four feedback signals.
They are then summed together and fed back to the robot as the PWM motor voltage .

Sources:
http://www.geology.smu.edu/~dpa-www/robo/nbot/
http://www.geology.smu.edu/~dpa-www/robo/nbot/bal2.txt

http://www.geology.smu.edu/~dpa-www/robo/nbot/bal2.txt
http://www.electronics-lab.com/blog/?p=1106
http://www.analog.com/en/mems-sensors/mems-inertialsensors/adxl202/products/product.html

UNIVERSITY OF THE EAST


COLLEGE OF ENGINEERING

CASE STUDY:
BALANCING ROBOTS

ECN 516 ECE1A

DIVINAGRACIA, SHARMELA B.
FALLORINA. KENNETH BERLIN N.
GEOCADIN, GERARD
ILETO, ALFONSO III E.

FERNANDO VICTOR V. DE VERA


ECE, M. TECH

You might also like