Senior Project
An Introduction to Robotics for C.S. Students
Design a simple robot that can be constructed using Legos, but will
be controlled by the HandyBoard. Create a set of instructions that will
guide students in the construction of the robot.
- Create a set of labs that parallel the book which allow students to
explore the capabilities of the robot while giving them hands-on experience
making, testing and writing code for several different types of sensors.
- Create an API that simplifies the robot's movement and sensing so
the students don't need to know all the details of engineering to program
the robot.
Handybot Instructions
Here is an example of some of the instructions provided in the Instruction
Manual. These are just small thumbnails of the actual images rendered
using MLCad, a Lego Design
Toolkit based off of LDraw. The image
you saw on the opening page was created by porting the LDraw dat
file into POV-Ray rendering software.
The Manual was printed on photo quality paper with high resolution images
and graphics (just like the instruction booklets you get when you purchase
Lego kits).
Included in the instruction manual are wiring diagrams for the different
sensors used in the labs. Here is an example of the diagram for constructing
a shaft encoder sensor which is used
to track the rotation of a disk or wheel.
Robotics Labs
Each Lab consists of several parts. They are designed to be completed
in about an hour provided that the student comes prepared, including having
read the background material and constructed the lego modules beforehand.
Since there is soldering involved, a lab assistant may be needed to build
the sensors for each of the groups.
- Background - Selected chapters in Fred Martin's "Robotic
Explorations" book that students should read before begining the
lab.
- Equipment - A list of equipment and supplies required to complete
the lab. This can include sensors, wires, electrical tape, etc...
- Software - The C files that need to be loaded onto the Handybot
in order to do the lab. These are a combination of our API files and
extension libraries available at www.handyboard.com.
- Construction - A brief overview of what needs to be constructed
for the labs: lego modules and electrical sensors.
- Testing Procedure - Since there are several issues involved
with using hand-made sensors and the handyboard, each sensor should
be thoroughly tested before the students attempt to write code. This
is to make sure that any errors that occur during the assignments are
the result of their programs and not the hardware.
- In-Lab Assignment - Here the students are asked to apply the
concepts covered in the readings and testing procedure to a specific
assignment that can be finished during the lab session.
- Homework Assignment - The homework is similar to a mini-project
where the students are asked to make the robot perform a function by
expanding upon what they learned during the lab.
Documents - MSWord Format
Application Programming Interface
Here are some of the libraries we wrote to make the labs a little easier
on students. Each library is designed to go along with a particular lab.
The students would not be required to write these functions, but they should
understand the theory behind them.
- move.c - Movement functions for a handybot with
two motors controlling the left and right wheels/treads of the robot.
- p_move.c - Proportional based movement functions
for moving and rotating a fixed distance using rotational shaft encoders.
- pd_move.c - Proportional-Derivative based
movement functions for more refined moving and rotating.
- mt_move.c - Movement functions for use with
priority based multi-tasking.
There are also additional files which I am not posting that deal with
shaft encoding and other applications at the assembly level. The reason
for not posting them is because they are only modified versions of the
code presented in "Robotic Explorations."
|