Notices
RC Robotics and Autonomous Robots Discuss autonomous and radio control robots and anything related to robotics in here

My autonomous home robot...

Old 01-10-2008, 07:37 PM
  #1  
Cybert99
Junior Member
Thread Starter
 
Join Date: Dec 2007
Location: Sammamish, WA
Posts: 15
Likes: 0
Received 0 Likes on 0 Posts
Default My autonomous home robot...

I have been interested in robotics since I was very young, so six or seven years ago I set out to make a fun "pet" robot with some useful behaviors. I named the result of my experiments "Cybert". You can see him in action below:

[link=http://www.youtube.com/watch?v=GYh-AtoLI8Q]Cybert (YouTube video)[/link]

I made a number of improvements to his "alarm clock" behavior but before I could get another video my hard drive crashed and I lost some of his programming. I was swamped at work at the time and just didn't have the time or inclination to rebuild everything from backups. (Improvements not shown in the video: he moved about 50% faster and had a more playful and friendly voice... among other changes.)

MORE ABOUT CYBERT:
I started with a commercial robot I found online. ("Cye" from Probotics.) I added a head, an IR sensor, a light sensor and gave him a computer synthesized voice. Then I wrote my own navigation and "personality" routines. One of Cybert's behaviors was called "Alarm Clock". Every morning he would do the following: (some of this is in the video)

1. "Wake up" at whatever time we specified.
2. Download the latest news and weather, and look up our stock portfolio.
3. Convert the downloaded data into text files (to be read using text-to-speech technology).
4. Undock from his charger and roll down the hallway, avoiding any obstacles or obstructions.
5. Stop at the foot of our bed and issue a random greeting: "Good morning! It's Tuesday, December 3. Time to get up!"
6. Ask if we would like to hear the current news, weather, and be updated on our stock portfolio.
7. Ask if he should wake up our daughter.
8. If we replied "Yes" to #6 Cybert would read the information out loud.
9. If we replied "Yes" to #7 Cybert would navigate back down the hallway and stop in front of our daughter's door.
10. After stopping he would issue a random greeting, back up and "knock" on the door 3 times by bumping it.
11. Following #10, Cybert would back up, stop, and wait for the door to open. (Using his range finding sensor on the door.)
12. If the door did not open after 5 minutes, Cybert would loop back and knock again.
13. When the door eventually opened, Cybert would back up and issue a random welcome: "There you are! What a great day!"
14. The greeting finished, Cybert would would navigate back to the spare bedroom and plug into his charger.

This ran flawlessly for about a month. He never missed a day and never missed his charger!

Hmm. I think I may be a GEEK! ;-)
Old 01-10-2008, 08:13 PM
  #2  
Yub, yub, cmdr!
Senior Member
 
Yub, yub, cmdr!'s Avatar
 
Join Date: Aug 2003
Location: Worcester, MA
Posts: 2,592
Likes: 0
Received 0 Likes on 0 Posts
Default RE: My autonomous home robot...

Wow, very nice.

Are the charger navigation stuff done using an infrared Tx and Rx?
Old 01-10-2008, 08:47 PM
  #3  
Cybert99
Junior Member
Thread Starter
 
Join Date: Dec 2007
Location: Sammamish, WA
Posts: 15
Likes: 0
Received 0 Likes on 0 Posts
Default RE: My autonomous home robot...

Cybert navigates using ded-reckoning. The wheels are "spiked" to avoid slippage and they have highly accurate sensors that can track precisely how far each one turns. Thus, if the charger is 0,0 and the robot receives a command to back up for half a second, the movement of each wheel allows me to keep track of how far the robot backed up. And if one wheel moves a few centimeters farther than the other wheel I know that the robot's orientation has changed a bit (a slight "turn").

I made a map of our upper floor and using this ded-reckoning data I can track Cybert's movements. Errors can occur over time, of course, which is why he "checks in" at the wall. (Since the wall is on the map, this allows me to reset his position, at least along one axis.) The charger is always put in a corner so the robot can "check in" on both adjacent walls. This works perfectly!

As Cybert moves through the environment, I programmed him to use his forward facing distance sensor to look for objects. If he detects something in front of him -- which obviously wasn't on my map -- he scans it left and right and then blocks that area as unpassable before re-calculating a new path. It worked pretty well!

The disadvantage of all of this, of course, is that you need to make a map first. And if someone ever picked him up he'd quickly get hopelessly lost.

Incidentally, the Cye robot came with all the ded-reckoning software and a powerful radio modem. Most of the processing -- and all of my additional programming -- took place on my PC. In fact, Cybert has a voice because I hooked up a 2 way radio to my PC's speaker for the text-to-speech processing I needed.

Old 01-10-2008, 08:58 PM
  #4  
Yub, yub, cmdr!
Senior Member
 
Yub, yub, cmdr!'s Avatar
 
Join Date: Aug 2003
Location: Worcester, MA
Posts: 2,592
Likes: 0
Received 0 Likes on 0 Posts
Default RE: My autonomous home robot...

That is really neat!

What language is the bot in? If it's in Java, I can give you my libraries that I coded to work with just 3 sonar sensors, so that Cybert will make the map himself and even if he is picked up he will quickly find where he is. They're not quite done yet, but tell me if you're interested.
Old 01-11-2008, 01:00 AM
  #5  
calvino
Senior Member
 
calvino's Avatar
 
Join Date: Apr 2007
Location: Thousand Oaks, CA
Posts: 8,958
Likes: 0
Received 0 Likes on 0 Posts
Default RE: My autonomous home robot...

DUDE, that is AWESOME, good work, that is also an interesting idea to "check in at the wall" to reset the position, nicely done[8D]
Old 01-11-2008, 10:06 PM
  #6  
goldendesign04
Senior Member
 
Join Date: Aug 2007
Location: Tampa, FL
Posts: 295
Likes: 0
Received 0 Likes on 0 Posts
Default RE: My autonomous home robot...

You may say its a GEEK thing, I just say its massively cool. Actually its on so many levels of cool to me I must be a GEEK, with no capabilities seeing I can build you a motor thatll haul but I couldnt for the life of me even program my vcr alarm (heck I still have a vcr an vhs tapes for that matter ). An yet you have a robot butler that has alarm an so many other functions I can hardly fathom.
Very neat indeed.
-Wayne
Old 01-13-2008, 02:40 AM
  #7  
Cybert99
Junior Member
Thread Starter
 
Join Date: Dec 2007
Location: Sammamish, WA
Posts: 15
Likes: 0
Received 0 Likes on 0 Posts
Default RE: My autonomous home robot...

Just wanted to answer a few questions:

The "checking in at the wall" stuff was all created by Probotics (the makers of the "Cye" robot I bought). I'm not sure if you can still buy these robots, but the website is here: http://www.personalrobots.com/

Cye came with his own software and fortunately they made all of his programming functions accessible via .OCX. I wrote a Visual Basic program that monitored his sensors, handled his navigation (using the map of our upstairs), and took care of his voice, personality, and other features. Once I had his navigation working (which turned out to be much easier than I thought), it took me about 2 minutes to add a couple of small buttons to my program. The first made him automatically undock and come into the office near my computer, and the second made him return to his charger. This was really handy!

One other note... In the video it looks like Cybert is responding to my commands. Actually, he's simply responding to *any* sound. When he would ask us if we would like to hear the news and weather, Cybert would "listen" for a few seconds. If his sound sensor didn't pick up a significant change in the room's volume he would take that as a "no" and his program would continue. If he DID pick up a sound he would interpret that as "yes". So we would always say -- in a loud voice -- "YES". But we could have clapped, barked, or done anything else to make a loud noise and it would have worked just as well.
Old 01-13-2008, 03:03 AM
  #8  
Cybert99
Junior Member
Thread Starter
 
Join Date: Dec 2007
Location: Sammamish, WA
Posts: 15
Likes: 0
Received 0 Likes on 0 Posts
Default RE: My autonomous home robot...

Okay, a quick story that some of you may find entertaining...

When I wrote Cybert's speech routines I decided to give him "moods", as well. I won't go into the details but Cybert would start each day in a "normal" mood, then his sensor data would cause his mood to change. If he was in a dark room for too long, for example, he would start to get a little afraid. And he would get a little angry whenever he bumped into something. He had 9 different moods and every time I came up with something for him to say I'd write 9 different versions of it... one for each mood. I even changed his voice to match his mood. (If he was depressed his voice would get sort of low and monotone, for example.)

Several weeks after writing the mood stuff (and never really testing it), I decided to create his alarm clock behavior that you can see in the video. I did most of my work at night so I always had his voice turned off so as not to wake my wife or daughter. When I finally got the behavior working I set everything up and went to bed.

Cybert wasn't scheduled to wake us up until 7:30 or so, but I was awake at 6:45 because I was so excited. The clock on the bedside table hit 7:30 and less than a minute later I heard Cybert navigating down the hallway. He rolled into our bedroom and turned to face the bed. Then he told us to wake up, asked about the news and weather, asked about our stock portfolio (our stocks were up that morning, which was an added bonus!), and finally he asked about waking up our daughter. I said, "Yes" and off he went down the hallway again, stopping in front of Autumn's door. Everything was working perfectly! I was thrilled!

Cybert asked Autumn to get out of bed, then he "knocked" on her door 3 times and waited for the door to open. Our daughter HATED to get up in the morning so she didn't budge. Five minutes passed and since he didn't detect the door opening, my program looped back to try again. Only this time, Cybert's voice was deep and loud. And instead of his previous friendly prompting he said, "Okay! That's IT! GET OUT OF THAT BED RIGHT NOW!!!" He sounded pissed off!!!

At first I thought I had some kind of strange bug, but then I remembered his mood programming and I realized that "knocking" on the door had caused his mood to change from "normal" to "angry", which made my alternate dialogue kick in. Hmm... I guess that could help explain why Autumn never liked my robot. ;-) Anyway, it was sort of a cool "emergent behavior" and I chuckled about it for days.
Old 01-13-2008, 01:08 PM
  #9  
Cybert99
Junior Member
Thread Starter
 
Join Date: Dec 2007
Location: Sammamish, WA
Posts: 15
Likes: 0
Received 0 Likes on 0 Posts
Default RE: My autonomous home robot...

I just added a new video: http://www.youtube.com/watch?v=wf7239VZjGk

Whenever Cybert moved he constantly reported back with the distance reading from his forward facing sensor. If he detected an obstacle he performed the following actions:

1. Stop
2. Announce, "Oops. There is something in the way. Please move."
3. Wait for a few seconds.
4. If the obstruction is still there, scan left and right, taking distance readings
5. Pick the best direction based on the sensor data
6. Navigate past the item (hopefully)
7. Recalculate a path to the destination (using a simple path finding algorithm I wrote)

We kept the house pretty clean, so I think I only saw this behavior kick in once when one of the dogs got in his way. When the robot asked Brisby to move, the loud sound made him scamper away. So Cybert didn't even have to navigate around, he just kept going forward.
Old 01-13-2008, 08:23 PM
  #10  
BUDMAN27
 
BUDMAN27's Avatar
 
Join Date: Mar 2006
Location: Galveston, TX
Posts: 1,591
Likes: 0
Received 0 Likes on 0 Posts
Default RE: My autonomous home robot...

OMG Star Wars was more than just a movie

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Thread Tools
Search this Thread

Contact Us - Archive - Advertising - Cookie Policy - Privacy Statement - Terms of Service - Do Not Sell My Personal Information

Copyright 2018 MH Sub I, LLC dba Internet Brands. All rights reserved. Use of this site indicates your consent to the Terms of Use.