AME 3623: Project 1: Digital Logic Robot Controller
Autonomous navigation is a problem that exists in many domains --
whether we are designing mobile robots for factory floors or
unstructured desert
terrain, or aircraft that must
perform surveillance and targeting functions. One common method
for navigation is to use a set of landmarks to locate and guide the
robot through its environment. Such landmarks can be naturally
occurring objects that are visible over a wide area, or they can be
artificial beacons. For example, the
VHF Omnidirectional
Range (VOR) navigation system is used by aircraft to determine an
appropriate heading toward a known location (check out a
VOR Simulator).
In this lab, we will implement a simple beacon-based navigation system
for a wheeled robot. Our goals include:
- learn how to design feedback control mechanisms,
- apply our digital design skills, and
- gain experience in implementing and debugging digital logic
circuits.
Problem
There will be two infrared beacons located within the environment.
Your robot's task will be to:
- Lock onto a beacon (the robot will be placed such that the
beacon is initially in partial view).
- Move toward the beacon.
- Stop when a second beacon is detected to the right of the robot.
- In general, your robot should stop when it does not sense any
beacons.
Deadline
Due date: Thursday, February 23
By this date, you must:
- Demonstrate your robot's behavior,
- Turn in project report (one per group), and
- Turn in personal report (one per person).
Robot interface
Beacon Receivers
A total of four infrared receivers will be mounted onto the robot.
Two will be mounted in a fixed configuration at the front of the
robot. The remaining two will be mounted on a controllable turret.
For each receiver, you will have access to 2 digital bits of state
information. These bits encode the strength of the signal, which
changes as a function of distance to and alignment with the beacon.
The encoding is as follows:
B1
| B0
|
| Signal Interpretation
|
0
| 0
|
| No signal
|
0
| 1
|
| Low signal
|
1
| 0
|
| Medium signal
|
1
| 1
|
| High signal
|
Robot Control
The robot uses two pairs of wheels to move. By driving the wheels in the
appropriate manner, the robot is able to turn left/right, to translate
forward/backward, or to mix translation with turning. For this lab,
you will control the motion of the robot through a simple digital
interface consisting of 3 input lines. The semantics of this digital
interface are as follows:
C2
| C1
| C0
|
| Robot motion
|
0
| 0
| 0
|
| Stop
|
0
| 0
| 1
|
| Forward
|
0
| 1
| 0
|
| Backward
|
0
| 1
| 1
|
| Left
|
1
| 0
| 0
|
| Right
|
1
| 0
| 1
|
| Forward-Right
|
1
| 1
| 0
|
| Forward-Left
|
1
| 1
| 1
|
| x
|
Turret Control
The turret is controlled with 2 digital bits. The semantics of these
are as follows:
T1
| T0
|
| Turret state
|
0
| 0
|
| Face forward
|
0
| 1
|
| Face left
|
1
| 0
|
| Face right
|
1
| 1
|
| x
|
Physical Interface
The lynxmotion robot control board provides several physical
interfaces for your use:
Power
The robot control board may be powered in one of two ways:
- 9V battery
- 7V "wallwart" power supply (the "wart" plugs into AC, and the
plug fits into the jack on the robot control board).
Never directly connect these power sources to your own circuit, as you
will destroy components.
Note that when you first supply power to the robot control board, it
will go through a bootup/test phase before controlling the robot. If
you do not see the boot sequence (as indicated by the flashing LEDs),
this is indicative of either a power supply problem or a problem in
your own circuit.
When the 9V battery begins to run low on "juice," the robot and/or
your circuit will begin to do odd things. Typically, the first odd
behavior is exhibited by the IRed sensors (false and/or no readings).
If this is the case, replace the battery with a fresh one.
Motor power is provided by the large 7V batteries. When you plug this
battery into the robot, be prepared for it to move. A good way to
start testing your circuit is to put the robot "up on blocks" such
that the wheels do not touch the floor. As this battery runs low on
juice, your robot will begin to behave sluggishly. At this point,
replace with a fresh battery.
Materials to Hand In
Project Report
Your report should include the following:
- The names of the group members
- A description of the function that you have implemented:
for each possible beacon state, what motor command do you
generate (forward, left, right, etc.)?
- Describe the corresponding truth table.
- Show the Karnaugh map and the clusters
- Show the circuit diagram.
The reports are due at 5:00 on February 23rd. These
must be turned in via the D2L drop-box (one copy per group) in
either postscript or pdf format (no M$Word, please).
Personal Reports
Your personal report must include the following information:
- Your name
- An estimate of your contribution to the project in terms of
percentage of effort, and an estimate of the contribution of
each of your fellow group members. The sum of estimates over
the group members must be 100%.
- Justify your percent of effort estimate.
The personal reports are due at 5:00 on February 23rd. These must be
turned in via the D2L drop-box in raw text format.
fagg at ou.edu
Last modified: Tue Feb 21 22:30:16 2006