Let's Make Robots!

What can a robot do?

I asked a question here about a robot's reaction to input coming from standard sensors. I got a lot of good answers and a lot of very useful information however I am now finding out I asked the wrong question...

I am going to re-ask here and see what I come up with.

What can you have a robot do? What I mean is, when a robot is in say, "drive mode" and cruising around, what parameters could it have that would predict it's behavour? For example, on one of Frits's bots on code included is to look for open spaces, i.e. an open doorway etc. What other inputs could it react to? Or do you even want the robot to drive away from danger --Maybe it should drive to items just to avoid them. I like Mintvelt's little guy with the articulated head but when and how often, during a drive around cycle, should the bot stop and have a good look around? (The look around part is really the base of the question I asked here)

Other ideas, it is pretty easy for a bot to drive to a specific spot (via an IR beacon) but what to do when it gets there? -Pick something up, drop it off? There is so many options here.

In conclusion (and to restate the question) I really want to add some personality to my robots instead of them being in a constant "drive around and avoid loop". What could you have your robot do?

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

You could also have a random response, and depending on the outcome, that response can get higher or lower frequency in random picking.

Would be a way to have a start on a roboth that thinks and learns.

Well. I used to think I couldn't do electronics or mechanics until I came across LMR about 10 months ago. I'm still in awe of all the possibilities and my head is spinning with ideas. Every time I read the ideas that are posted on this site the list of stuff I really must try out gets longer. So I settle for producing any contraption that works more or less as intended.

Back to your personality question.  In order to give a robot personality it should have:

 

  1. goals
  2. moods (or modes or states of mind or whatever you want to call it)
  3. ways to express itself
To start with that last one. Moves are very important because we humans associate gestures with personality. It wont do if your robot is excited and it show this by flashing an LED marked "excited". Look at Frits! cup lifter. That robot has personality because he looks as if he's straining to position itself correctly and then when he lifts the cup: he holds it over his head in triumph. In other words. Gestures are the main way to express yourself.
 
Implementing moods is a different matter. You can make something like tamagotchi where you have a few parameters like hunger or boredom which influence one or more states of mind. Of course random influences can be added here. The obvious mood change is to make your bot appear happy when he reaches a goal.
 
That brings us to the hard part. What should the robots goals be? You can set a simple goal like navigating to the other side of a room or finding an object and drive around it, but even these goals are hard to meet. Having the robot verify if he reached his goal is even harder.
 
Most goals in commercial bots are met with some smart mechanical trick. Take the vacuum cleaner bot. The actual cleaning is done with a mechanical brush and the robot doesn't verify whether the goal is reached (excep for mr Clean of course)
 
Adding mechanics also tends to make everything a lot more complicated. Edward has two degrees of freedom in the head movement which adds a lot of complexity to any program that involves observations. I was toying with Edward to figure out a way to make it distinguish between a cup with the opening facing up and with the opening facing down. With Edwards head mounted the way it is, even figuring out which readings are from the cup and which readings are from surroundings is pretty hard.
 
This is one of the reasons I made the smooth object tracker. If you add a processor to a couple of  sensors and one or two servos, you can make those components into one combined package. Instead of having one picaxe doing all the moves and interpretations of the sensors, you'd be using one picaxe to interpret sensory inputs and report interpreted info, like "bogey at 6 o'clock!" to the MCU. Another picaxe could be doing arm movements including reading the feedback. A setup like that could help reducing the complexity.
 
Personally, I hope to build a robot that picks up my kids toys and put then in a box. Preferrably without putting in our dishes and furniture as well. I think it's possible, but I am not sure I can make a working bot like that before my kids clean up their own toys. 

 

Sounds like you need to modify the vacuum cleaner or fit Edward with a bulldozer blade :D

Hmm.  What should a robot do?  This is a great question, and a very important one too.  After all, what's the point of building a robot if we don't make it "do" anything interesting or worthwhile?  Right now the bot I'm working on will avoid walls, and nothing else.  There's not a whole lot more you can do with a single Ping sensor.  Perhaps once I get it working I'll improve the code with more complex programming that gives it a bit more personality.

I think Mintvelt's "Edward" bot is a great example of a robot with some personality.  Just stopping and looking around the room gives it a lot of character.

But ... my personal opinions about what a robot should do?  Personally, I think a robot should be entertaining.  That's the ultimate goal with the bots I want to make.  Once I complete this simple bot I want to build a Wall-E - like robot with several degrees of freedom and multiple sensors.  Here are a few ideas I've had for what he should "do":

-A built-in accelerometer (or tilt sensor) will alert him that he has fallen or been flipped over, in which case he will whine or call for help.  The Pleo does this -- I want to mimic its emotional response to that situation.

-If possible, I really want to have him react to moving objects, low to the ground, radiating heat (detected via IR radiation).  In other words, small children and pets.  Wall-E (or whatever I name him) will make cute noises and act gently if he detects this.

-Related to that last one, anything "hostile" near the robot will make him react differently ... quickly backing away or getting scared.  Perhaps objects that approach quickly or move fast.  Not sure if this would be possible. 

-Act curious, explore.  I want the robot to be curious about and react to objects that have rounded edges, or at the least are not purely composed of right angles.

-Have the ability to detect hallways, and look inside each room.

-Hum while travelling, like Wall-E sometimes did.

-Have degrees of personality that changes based on things that happen.  Maybe just a simple variable that gets added and subtracted to, 0 being "very happy" and 255 being "very sad." 

-React to loud noises and try to seek out the origin.

-A simple photoresistor on the top of the head will let the bot know he's outside, and he will react with awe and excitement.  If I put arms on I really want him to throw them up in excitement upon going outside, especially if it's been a while since he's been outside.

-Have him go to "sleep" after a period of nothing new happening, and then "wake up" via a motion detector.  Hopefully possible without killing the battery.

I've already bitten off more than I can chew by dreaming up these things, and I can feel my wallet getting lighter as I type.  I know it's ambitious and more than I'll probably be able to do, but just consider if "brainstorming" if you have doubts about what I'll actually be able to accomplish.

I'm liking the idea or random. --That's really a major key here, huh? I have been watching my dogs as well, to see what kind of stuff they do. I guess that's probably my answer --Ah, Confucious say "you must observe first, young grasshoppah"... Not to say I want your ideas to stop.

Probably a clock IC and the "Random" command are good starting blocks...

FYI - Confucius say, "There really is no such thing as random, only the inability to see the pattern"

Although, it does seems prevalent in nature with trillions of variables, quantum mechanics and what all..

In simplistic structured emulators “randomness” is difficult,  that is why RSA gets the big bucks to randomize parts of our structured network.

Funny how random = more life-like…

 

Another random response…

 

Maybe random should be replaced by unexpected?
I like the idea of a robot as a pet. This post got me thinking about what my dogs do.  If im sat on the sofa they will sit there with me, looking around watching what is going on, occasionally having a wander around. if i get up they do too and follow me.  If i throw a ball they fetch it (sometimes), and i can send one of them off and he will bring me back something (normally a shoe!).  I think these would make great robot modes, i.e follow, fetch, go get.  I think the go get mode would be quite fun if the robot had a gripper on the front and it just wandered off and bought back something random.

You need a purpose to know what a robot can do.

The IR beacons: why do you need to pick up or do anything when you get there, what was the purpose of it navigating? They could be used as waypoints. Set a perimiter around a location, have a bot or two go to the multiple(identifiable) waypoints. It could use heat sensors to detect if something like an animlal or person is around. 

Mintvelts articulated head bot: This could have ir recievers in the eyes(or eye like spaces) that have a very narrow view. See the above ir beacon example for navigating to a specific location. Rotating the head to locate the waypoint.

Here is another, golf ball retriever at the driving ranges. have it detect the sound of the ball landing and locate with something like a cmu cam.

Nasa has done some cool stuff with their mars exploreres :)

I like riks idea about closing doors and I mentioned in the sensor wiki thingey that if you attach a metal detector to an outdoor robot it could search for buried treasure. If you make a drumming robot with a stud detector, it could use that to determine if an object would make a good drum. Set it up with a microphone and have it dance when it hears music. RFID detection kits are available these days quite cheap. I was going to put some of those RFID tags on objects so the robot can identify them when it come near them and determine what to do with them. E.g. coffee mug, take to kitchen if cold. Recently I saw an IR thermometer that could measure temperature from about a meter away on a keychain for about $30. This would make a great sensor to tell if a coffee has gone cold.

Hope this helps :)