|
Hanno's ViewPort
|
|
|
Hanno
wanted to build a balancing robot. We studied the physics
of an "inverted pendulum on wheels". Whereas a normal
pendulum is stable when hanging down, an inverted pendulum is
inherently unstable, and must be actively balanced in order to
remain upright. The tilt "theta" has to be measured and
the motor has to be driven in a feed back loop, so the moving
pivot point and the applied torque keep the pendulum upright.
We wrote a Visual Basic program to simulate the dynamics by
using numerical integration. |
|
|
|
|
|
|
Hanno built his balancing robot
from VEX erector set and electronic components.
It is a complex device, consisting of a gyro and an
accelerometer to measure the tilt. The two signals have to
be fused with a Kalman filter. The tilt signal is fed to
an PID (proportional integral and derivate) controller,
PWM (pulse with modulator) to drive the servo motors. The
position of the wheels can be measured with wheel encoders.
To make this work the sensors, the servo signals, and
intermediate results of the servo algorithms should be
measured. This is too much for my good old oscilloscope.
Many channels should be measured in real time from a single shot
and stored for investigation. |
|
|
|
|
|
Hanno found the Parallax
Propeller ideally suited for the control of his robot and
the diagnose of all the signals. There are eight micro
computers in a single chip with individual memory blocks and a
shared memory, where the micro computers can communicate.
Four of the micro computers are used to interpret the servo
signals, do the servo calculations, and to control the servo
motors.
One micro computer is used as an observer and watches the
results of the others and sends these results over an USB
connection to a PC, where they can be displayed.
|
|
|
|
|
|
This is a screen shot of ViewPort in action.
Hanno developed a sophisticated
program, which is called appropriately ViewPort,
because it shows a view of the action of the input / output ports
of the propeller and intermediate results of the calculations.
It acts like a Digital Storage Oscilloscope (DSO), with variable
time scales and many trigger options. In addition it can
act like a Logic State Analyzer (LSA) and display up to 32 digital
signals. There is a nice GUI (Graphical User Interface)
for editing and display.
|
|
|
|
|
|
I |
My Dancebot is working !!
Here Hanno is showing proudly his balancing robot. Hanno
displayed his robot at many places in the US and in New Zealand.
|
|
Open CV is one of the
leading software packages for image processing. There are
500 functions written in C++ - not easy to use. Hanno
integrated some of the functions into his ViewPort and now
ViewPort can recognize faces, circles and colored blobs and puts
the
coordinates into the propeller where they can be used to control
servo motors. (In the picture above a webcam is looking at
a scene, looking for a face. Then a servo driven arrow
points to the face.) |
|
|
|
|
I worked with Hanno on this project -
from California to New Zealand - assisted by Skype and email. In
many discussions we talked about theory and background. I was one
of Hanno's Beta testers, I contributed to some of the applications.
|
|
Hanno is working with Parallax - a
supplier for electronic components for the hobby-, education- and
industrial market. Parallax started selling ViewPort in their product
line.
PRODUCT NEWS
Date:
February 23. 2009
ViewPort Software Version 4.1 - Just Released |
|
Parallax
is now selling ViewPort Software (standard and ultimate versions).
ViewPort, developed by Hanno Sander at MyDanceBot.com, is the premier
debugging environment for the Parallax Propeller. The tool combines an
integrated debugger with powerful graphics that show you what’s going on
within the Propeller. Monitor variables over time with the built in
oscilloscope or change their value while your Propeller is running.
One of
the first customers wrote:
“ViewPort v4.1 is solid, stable and versatile, a very impressive
achievement. Now, I am going to incorporate ViewPort in several of my
research investigations,”
|
|