Goals | Log |
Gallery | Ideas | Reports | Stories | About
| Home

Project Crossroads...
9/27/99
Several weeks ago, I had a surprising and somewhat
alarming revelation. Let me explain:
Back in late August I spent over a week trying to
implement a simple speed control for Albert. This process involves a very
interesting formula (commonly referred to as "PID") that can be used to
automatically track and adjust a robot's speed. (I won't go into the details.)
I spent over a week trying to get my PID formula to work, but without success. After
some analysis I concluded that Albert's encoders just aren't accurate enough. I had
some ideas how to fix this problem, and I added this task to my growing list of "stuff
that needs to be fixed or changed."
I sat back and looked at this list for a long time,
and it occurred to me that I've spent six or seven months just trying to get Albert
"ready" for me to start programming. I've learned a lot, and I've had fun
working on Albert, but all I really wanted was a robot that I could program to do
interesting things. Now I was looking at another week or two -- or three -- before I
could even get started on the behavioral stuff that I've been so excited about.
In the midst of this dilemma I paid another visit
to the Probotics homepage (www.personalrobots.com).
The site has been reworked and now includes pictures and even some videos of their
Cye robot in action. I was always fascinated by this robot, but ignored it because
of its lack of sensors. Looking at Cye got me thinking about my "ideal"
robot. Then it hit me: Albert will never be the robot I always
dreamed about. As I studied Cye, and thought about everything I've
learned in the last few months, I began to see that this little robot might be the thing
I've been looking for from the beginning.
Still, I poured a lot of time, money and effort
into Albert. Switching to a new robot at this stage was something that I couldn't do
lightly. To help make my decision I made a table of desired behaviors and features
to see how Albert and Cye stack up. The results speak for themselves:
| Behavior / Feature: |
Albert |
Cye |
Ability to move
without bumping things
(We have a blind dog, so this is important.) |
With 5 sonar sensors Albert will be able to
avoid most objects as he moves around. When exploring, however, he will probably get
stuck in places he should have avoided. |
Cye won't bump into mapped obstacles, but he
can't avoid unexpected objects. Fortunately, he has an external port that should
allow me to hook up a single range finding sensor. |
Ability to navigate from room to room
(Many of the behaviors I hope to create involve getting the robot from
one room to the next) |
I can probably write some mapping routines for
Albert, but this will take several months and might be beyond my programming skills.
I bought a digital compass to help with this, but it can only distinguish eight
different directions. |
Cye has pre-made software that will allow him
to map his environment. Rooms and other places can be named, and Cye can usually
calculate a path between any of these. (He doesn't need a compass.) |
Small size and quiet operation
(I always wanted a robot that could move around like a "pet".) |
Albert is an acceptable size, but he is very
heavy and difficult to carry. Also, his motors are quite noisy. (We would have
to turn up the TV if he was moving around in the living room.) |
Cye is very small and so quiet
that Probotics included an option that makes the robot "beep" while moving,
so people know that it's nearby. Also, he only weighs about ten pounds and can be
picked up with one hand. |
Speed equal to someone walking slowly
(I keep thinking of the little black robot that Chewbacca scared in the
first Star Wars movie!) |
Albert moves at a maximum speed of 10" per
second. I thought this would be too slow, but in actual operation it's not that bad. |
Cye has a top speed of 3 feet per second!
Very speedy. |
Ability to find and dock with charger
(To be completely autonomous, a robot should be able to find
its charger. [I always figured this feature would be out of my reach -- but it's a
REALLY cool one.]) |
Not likely to happen. The laptop would
have to be tied to the robot's power supply -- that makes me nervous -- and I don't have
the mechanical or electrical skills to make a charging station. Also, programming a
robot to find and dock with a charger is VERY difficult. |
Cye already does this -- right out of the box! |
Ability to find people
(Finding and "being" with people is another pet-like
behavior.) |
The primary reason I have a light sensor is so
Albert can find the brightest rooms in the house. I figure this means that people
are likely to be nearby. |
Cye doesn't have a light sensor, but with his
amazing navigational abilities he could easily go to rooms where he thinks people might
be. (Possibly based on time of day or other factors.) |
Ability to sense people
(This goes hand-in-hand with the feature above.) |
I was planning to use Albert's sonar sensors to
detect movement. |
I will have to add the range finding sensor to
Cye before this is possible. |
Voice
(This is important, as it allows me to give the robot a real
personality, and it can be used to communicate interesting information.) |
The laptop provides excellent text-to-speech
capabilities, and a decent speaker. Because the serial port is already being used,
I'm not sure if I can get Albert connected to the Internet, which is something I hoped to
do. |
Cye can't talk, but I think I can hook up a
radio receiver to his power supply... then I can send audio from my PC. The quality
won't be as good as Albert, but if this works I would have full time access to the
Internet thanks to our DSL connection. |
Sound/voice detection and recognition
(It would be nice to be able to communicate with a home robot,
and give it commands.) |
As long as Albert isn't moving, I could
probably implement some simple voice recognition. This involves a lot of hard drive
activity, however, cutting down on the battery life of the laptop. |
Probotics is about to release a new version of
Cye that can respond to hand claps. There might be a way to get Cye to respond to
voice commands too, but this isn't likely right away. |
Interesting / Cool "Look"
(We all want a robot that will impress our friends and loved
ones. The "wow" factor is kind of important for this hobby since most
people think of C3P0 or Data when they think about robots.) |
With the cover I made, Albert looks pretty cool
(in my opinion). He not only looks like a robot, the front mounted sonar sensors are
eye-like, giving him a "face". |
Although Cye has a slick, streamlined
appearance, he doesn't really look like a robot. Albert has the edge in
this category. |
Ability to program new behaviors
(I would like to be able to tweak my robot's personality and
behaviors, and add new AI and other features as I think of them. The only
programming language I'm fluent in is Microsoft's Visual Basic. |
I can program Albert in VB, but I have to then
copy my program to a disk and install it on Albert. Turning on the laptop,
downloading Albert's software to the HC11 and then loading my VB program takes about 5 -
10 minutes every time I want to do anything with Albert. A pain. |
Cye includes an OCX that can be accessed from
VB or C++. It exposes 38 Methods, 17 Properties, and 16 Events. And since Cye
uses radio modems, I can write and test programs on my PC with NO setup time. (Cye
rests on his charger and is always ready to go.) |
Expandability
(Is there room for additional sensors and features?) |
I've used up most of my IO slots on Albert's
HC11, but I could always add another processor at some point, or possibly attach some
parallel port sensors directly to the laptop. |
Cye's expansion port is limited, but I should
be able to attach a range finding sensor, and a radio receiver (for voice). The
company will soon be releasing a cordless vacuum cleaner for Cye, but I'm not sure what
else they have planned. |
Support
(What do I do if the robot stops working?) |
AJ Neal at Zagros Robotics (where I bought
Albert's base) hasn't been very responsive. If something goes wrong with Albert I'm
probably going to have to fix it myself, or enlist the help of a friend like Christ
Hostetler. This is problematic because I don't know much about electronics or
mechanical stuff. |
Probotics appears to have excellent customer
support. Plus, the robot is professionally made so I suspect I'll have fewer
problems with it. (Albert's wheels keep coming off... I don't think that's going to
happen with Cye.) |
A New Robot in the Family
I received my Cye on Friday and it's really quite impressive. I took a few
minutes last night to map out the area between Cye's home base in my bedroom, and the PC
in my office. I programmed Cye (using the simple drag- and-drop interface that comes
with the robot) to undock from his charger, maneuver around a piece of exercise equipment,
roll down the hallway and into my office, navigate between two desks and a couch, and then
stop. He waits by my chair until precisely the top of the hour, then he beeps,
turns around, rolls into the hallway, down the hall, navigates around the exercise
machine, and docks with his charger. If he misses the charger, he backs up, finds
the nearest corner to zero out any errors that may have accumulated, backs up, turns and
then docks. I can follow all of his movement on my PC, and it's extremely satisfying
to see his little yellow "charging" light come on at the end of his journey.

Cye with optional wagon attachment (photo by NeoForma Design)
I'll have more reports about Cye in the weeks to
come. On a side note, I'm still working on Albert, and have entered him in the
"Floor Exercise" at this year's "Robothon '99", a yearly event
sponsored by the Seattle Robotics Society. But after this event I'll probably switch
to Cye and use him as I continue my experiments. I'll stilll work on Albert, but not
as much...
Back to Reports