My autonomous home robot...  
View related threads: (in this forum | in all forums)

Tower Hobbies
Enter up to 4 keywords or Tower stock numbers
Logged in as Guest



Users viewing this topic: none
  Printable Version
       

All Forums >> Radios, Batteries, Clubhouse and more >> RC Robotics and Autonomous Robots >> My autonomous home robot...
Page: [1]

Login
Message << Older Topic   Newer Topic >>
My autonomous home robot... - 1/11/2008 12:37:28 AM   
Cybert99


 

Posts: 15
Joined: 12/27/2007
From: Sammamish, WA, USA
Status: offline
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:

Cybert (YouTube video)

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! ;-)

< Message edited by Cybert99 -- 1/11/2008 12:39:49 AM >


_____________________________

Comprehensive RC Flight Simulator Comparison Chart:
http://www.emptynestgames.com/rc_sim_chart.html
       Post #: 1

RE: My autonomous home robot... - 1/11/2008 1:13:43 AM   
Yub, yub, cmdr!



Posts: 2463
Joined: 8/16/2003
From: Worcester, MA, USA
Status: offline
Wow, very nice.

Are the charger navigation stuff done using an infrared Tx and Rx?

_____________________________

David "chmod"

(in reply to Cybert99)
       Post #: 2

RE: My autonomous home robot... - 1/11/2008 1:47:50 AM   
Cybert99


 

Posts: 15
Joined: 12/27/2007
From: Sammamish, WA, USA
Status: offline
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.



_____________________________

Comprehensive RC Flight Simulator Comparison Chart:
http://www.emptynestgames.com/rc_sim_chart.html

(in reply to Yub, yub, cmdr!)
       Post #: 3

RE: My autonomous home robot... - 1/11/2008 1:58:25 AM   
Yub, yub, cmdr!



Posts: 2463
Joined: 8/16/2003
From: Worcester, MA, USA
Status: offline
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.

_____________________________

David "chmod"

(in reply to Cybert99)
       Post #: 4

RE: My autonomous home robot... - 1/11/2008 6:00:03 AM   
calvino



Posts: 5535
Joined: 4/17/2007
From: Thousand Oaks, CA, USA
Status: online
DUDE, that is AWESOME, good work, that is also an interesting idea to "check in at the wall" to reset the position, nicely done

_____________________________

RC18T, 1980 Goldpan, ST-1, Slow Stick (BL)
<><

(in reply to Yub, yub, cmdr!)
       Post #: 5

RE: My autonomous home robot... - 1/12/2008 3:06:33 AM   
goldendesign04


 

Posts: 295
Joined: 8/4/2007
From: Tampa, FL, USA
Status: offline
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

(in reply to calvino)
       Post #: 6

RE: My autonomous home robot... - 1/13/2008 7:40:31 AM   
Cybert99


 

Posts: 15
Joined: 12/27/2007
From: Sammamish, WA, USA
Status: offline
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.

_____________________________

Comprehensive RC Flight Simulator Comparison Chart:
http://www.emptynestgames.com/rc_sim_chart.html

(in reply to goldendesign04)
       Post #: 7

RE: My autonomous home robot... - 1/13/2008 8:03:44 AM   
Cybert99


 

Posts: 15
Joined: 12/27/2007
From: Sammamish, WA, USA
Status: offline
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.

< Message edited by Cybert99 -- 1/13/2008 6:02:49 PM >


_____________________________

Comprehensive RC Flight Simulator Comparison Chart:
http://www.emptynestgames.com/rc_sim_chart.html

(in reply to Cybert99)
       Post #: 8

RE: My autonomous home robot... - 1/13/2008 6:08:03 PM   
Cybert99


 

Posts: 15
Joined: 12/27/2007
From: Sammamish, WA, USA
Status: offline
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.


_____________________________

Comprehensive RC Flight Simulator Comparison Chart:
http://www.emptynestgames.com/rc_sim_chart.html

(in reply to Cybert99)
       Post #: 9

RE: My autonomous home robot... - 1/14/2008 1:23:28 AM   
BUDMAN27



Posts: 1114
Joined: 3/28/2006
From: Galveston, TX, USA
Status: offline
OMG Star Wars was more than just a movie

(in reply to Cybert99)
       Post #: 10

Page:   [1]
All Forums >> Radios, Batteries, Clubhouse and more >> RC Robotics and Autonomous Robots >> My autonomous home robot...
Page: [1]





Jump to:


Google