Josh Kline's Robotics Project 1
[
Back to Index.
]
This page describes my project for Harvey Mudd's
Robotics (CS154)
course. I will be building and programming a robot from the
Lego Mindstorms
kit.
Problem Statement
Create a robot using Lego Mindstorms and program it to traverse a room while
avoiding obstacles. The room will be set up like an obstacle course and the
robot's objective will be to make it from one side of the room to the other.
This project is interesting to me because it will give me a chance to
explore the Lego platform while delving into a broader robotics topic, that of
navigation.
Bonus
While completing this project I will also be designing a curriculum to present
this problem to a group of students at Pomona High School. This project is in
conjunction with
Seminar in
Science Education (IE197).
Update [2003-11-16 but known for some time before that data]:
It is unclear whether this portion of the project will
continue. Implementation of a curriculum is dependent upon agreement from my
partners in IE197. Personally I am confident that a two or three hour activity
could easily be organized using the out of the box LEGO programming
environment and a pre-built platform. There are many details to be decided,
including how much instruction to give the students and how much to let them
try to decipher on their own, e.g. do I tell them how to make the robot turn,
or is that part of the challenge for them to figure out. Many possible
competition scenarios could be devised for example fastest time through a maze,
ability to complete more and more difficult mazes.
Progress
- Installed The Robotics Invention System (RIS) the software that comes
with the Mindstorms kit.
- Constructed "Hank the Bumpertank" from the
The Unofficial Guide to
LEGO MINDSTORMS Robots.
Front/Side View
70.86 Kb
|
Top View
49.29 Kb
|
Both Motors
59.19 Kb
|
One Motor
53.03 Kb
|
Touch Sensors/Bumpers
54.93 Kb
|
- Programmed Hank using the program listed in the book.
- Tweaked program to give more desirable results. Some success.
- 2003-02-10: Spent about 4 hours trying to get the brickOS installed.
First cygwin needed to be installed and I think that was done
successfully. There seems to be some trouble with the Hitachi gcc
compiler. I tried following some
instructions i found on the web but on the last "make install" there
was an error that I don't understand. I e-mailed to Joe Mallone to see if
he could provide any assistance.
- Unknown date. Unfortunately Joe Mallone was not able to get the brickOS
functioning on my current box.
With the help of Matt Livianu I narrowed down the problem, or I should
say the symptom, to a link error having to do with memcpy.c.
Not being knowledgeable about the workings of
Linux I am unable to progress further on this issue.
- 2003-02-16 After several hours of tinkering (trial and error and
following
directions of myriad web pages) I got the brickOS installed. The
Brown
University cs148
course web page was helpfull in this process. I was able
to download the firmware onto my RCX block but was unable to download
any programs. The
dll
program seems to just hang. Hopefully I will be
find some solution to this problem as well.
- 2003-02-17: Cosmetic Makeover. I have named my current robot
"Perspective" in anticipation of building a second robot for use with
BrickOS. Today I transformed Perspective into a mean fighting machine
complete with lasers and a rotating, tilting turret. Here are some
pictures of the preliminary armored stage.
77.42 Kb
|
73.49 Kb
|
The current state is much
fiercer having an armored turret and additional degrees of freedom in
the guns but quality photos have not been processed yet. Stay tuned...
Algorithms: What's in a brain?
- In its current form the program running on Hank is quite simplistic. It
moves forward until it detects a bump with either the right or left
bumper. It them backs up and turns in the opposite direction
of the hit, e.g. if left bumper hit then make a right turn. The distance
that Hank backs up
and turns can be changed modifying the program. It took some
experimentation to get an optimal combination. I found that a short
backup distance and a small degree of turning works better than larger
values of either. This means that Hank will usually hit the same
obstacle several times before turning enough to get around it. It also
lessens the chances that hank will turn farther than is needed. Another
drawback is that the robot will get stuck in a corners, repeatedly
hitting one bumper and then the other and thus turning into the corner
each time. It also has a tendency to follow the same general path over
an over again.
- The currently algorithm combines the "wander" and "avoid obstacles" low
level
behaviors described in the article by Rodney Brooks
It still remains to create a planned way to travel that would be similar to
the "explore" or "build maps" levels of Brooks' design. The sample BrickOS
program described in
The Unofficial Guide to
LEGO MINDSTORMS Robots uses Brooks' subsumption architecture. If I
ever get brickOS to work then I can implement this.
- The current program certainly does not use the sense, plan, act model
described in the paper by Erann Gat.
With no planning to speak of Hank simply senses and then acts.
- Thanks to Prof Dodds for
suggesting these citations.
Worlds: What is an obstacle?
- Currently Hank likes to hang out in arenas constructed out of bricks or
books. These arenas typically are enclosed on three sides have an open side,
or partially open side, through which Hank can enter or leave. The middle of
the arenas can be littered with other barriers.
- A major constraint is that the barriers must be high enough to trigger
Hank's bumpers and not slip under them.
- Hank is strong enough to push light obstacles although typically only for
about a centimeter before the touch sensors are triggered.
- The objective is for Hank to start somewhere in the arena and be able to
exit through the opening.
- Here are some photos of a sample arena.
Sample Obstacle Course 78.58 Kb
|
Sample Obstacle Course 38.93 Kb
|
Near term goals, aka the next step
- Install legOS or other software that is more powerful then the
standard RIS. This goal is revised to install
brickOS which is the new name
and hence new versions
of the legOS.
2003-02-16: This goal is modified to reflect that the brickOS is installed,
but is not functioning fully yet.
- More playing, er, I mean testing.
Long term goals
- Implement an algorithm to find a path through an obstacle course. I don't
know what form
this will take, I make try to invent an algorithm, or use one that already
exists. This goal
is still vague, e.g. what is an obstacle course?
- 2003-02-16: Once brickOS is functional device an algorithm that will do
more than simply wander. It should remember which direction it wants to go
and then keep track of how far it has traveled and turned. This may
involve adding some rotation sensors to Hank.
- Determine whether Hank moves in such as way as to be interesting to the
cat.
Blatant Paper Citation
In their 2002 paper "Get Back in Shape!" Yoshida et al. describe a type of
robot that can reconfigure itself.
This robot
is made up of small identical
pieces, each a robot on its own, that use shape memory alloy to attach to each
other and rotate around each other. While LEGOs are reconfigurable to a high
degree they are not yet able to reconfigure themselves. (Fortunately they have
managed to train humans to do this for them.) By
Prof Dodds' axiom that "anything
that can be done can be done in LEGO" it is probable that there will
eventually
be LEGO robots that can assemble or rearrange themselves or each other LEGO
creations.
Original stuff Copyright 2003
Josh Kline.
LEGO, Mindstorms, Robotic
Invention System, are probably copyright or trade mark LEGO corporation, or
some other group like that. Don't sue me, it won't do you any good.
|
|