Send the link below via email or IMCopy
Present to your audienceStart remote presentation
- Invited audience members will follow you as you navigate and present
- People invited to a presentation do not need a Prezi account
- This link expires 10 minutes after you close the presentation
- A maximum of 30 users can follow your presentation
- Learn more about this feature in our knowledge base article
Do you really want to delete this prezi?
Neither you, nor the coeditors you shared it with will be able to recover it again.
Make your likes visible on Facebook?
You can change this under Settings & Account at any time.
Miniature Balancing Robot Kit
Transcript of Miniature Balancing Robot Kit
Balances on two wheels
Hall-effect angular position sensors
Aircraft plywood is CNC machined and gives a high strength to weight ratio
Inertial Measurement Unit
Mapping of surroundings
Kit coming soon
Dual distance sensors for
Wall following capability
Open source code
Plywood and acrylic cut on my home made CNC machine
Circuit design and layout
Make in my garage
See it work...
What is it?
9 inches tall
3 inch wheels
4 AAA batteries
Build and sell a balancing robot kit...
Integration of sensors, software and mechanics
Leverage digital sensors and 8-bit processing
CAD Plywood frame
miniature motors and gearboxes
Parts sourced by mailorder
PC boards populated by hand in the garage
Making in small batches (5)
measures the direction of the force of gravity relative to the X, Y, and Z directions. As the robot tilts, the direction of the force of gravity indicates the tilt angle. The
is good at measuring the angle when the robot is static, but provides a misleading signal during motion. For this reason the
, which measures angular velocity around the X, Y, and Z axis is also used. The
suffers from drift in its signal, so it does not provide a good static measurement. The measurements are turned into angles and combined by the
block , software code in the HC08 Microcontroller, to produce an improved measure of the tilt angle along the XZ plane for balance control. The
block also determines the rotation of the robot around the Z axis for steering navigation.
The key to balancing is the
block which takes as input the tilt angle, change in tilt angle (angular velocity), wheel position P, change in wheel position (wheel velocity) and provides an output to the
driving the wheels. The
drives the motors to attempt to balance the robot. In addition it controls the forward speed and steering of the robot based on the output of the
adaptively adjusts itself by slightly varying the parameters and measuring over time whether it improves the ability to balance and control robot velocity. If it finds improved parameters, these are saved in Flash memory and recalled when first powered up.
block takes into account battery voltage in determining the output drive of the motors. The
block constantly checks the orientation of the robot to make sure it is in an upright position and that the battery voltage is sufficient before allowing the
block to turn on the motors.
The robot creates a map of its surroundings by sweeping the
along the XY plane. The
Servo Position Controller
alternately moves each Scanning Servo so that it scans a quarter-circle. The
never point in exactly the same direction to avoid interference between their infrared beams. Also, one
is always facing forward in the direction of travel.
Servo Position Controller
adjusts the scanning rate based on proximity to obstacles so that faster scanning occurs when obstacles are close, based on the
. It also tracks in a direction when wall following is used. The
block creates the map of the robot’s surroundings based on the
measurements and the robot orientation as computed by the
block. The map uses polar coordinates to keep track of a distance at 16 different angles around a circle on the Z axis. As the robot steers and moves, the polar map data is transformed accordingly.
block searches for the best direction in the
to avoid obstacles. The
block determines what basic action the robot should take. It decides whether to use the direction suggested by the
or to stick with its current direction. It also decides whether to do a U turn when forward directions have obstacles, or go into reverse when wheel motion is stopped, or to begin wall following.
If wall following is selected, the output of the
block is used in a control loop to steer the robot at a target distance away from a wall. The
block provides robot speed and steering set points to the
How it works