title.jpg (20464 bytes)

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.

CyeWagon.jpg (37299 bytes)
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
  

 

Copyright 1999-2000, John Cutter.
For feedback, problems, questions, or to share your own stories or ideas, please contact john@home-robot.com.
Last updated: October 25, 1999.