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?

ahhh, the eternal question for the hobbyist robot builder

"Now that we found X, what are we gonna do about it?"

For varying values of X: Love, Skillz, deWalt hardware.

This should be in the ideas forum. And then again, maybe not. After all, there are none in your post. Yet.

The eternal question has been bugging me ever since I started thinking of building an actual robot. Sure you could build a vehicle that drives around. But what problem will you solve with all that engineering? You’re not in it for the solving of problems. You’re in it for the engineering. Any problem you solve is gonna be an artificial one. I find peace in that thought. And a little decadence.

I came up with ridiculous ideas like “pick up coat from floor, hang it on a coat hanger” or “drive around the house and map the electro smog”. I never dreamed of a robot that would e.g. do my laundry (from picking up the hamper to storing the folded clothes in my closet). But only because the real problems are too hard to crack.

How about a robot that closes all doors in its path. Preserving heat in the house and therefore saving the environment?

2008_fundraiser_micro_button-en.png

I’m picking up what you are putting down…
I guess, in general, I am thinking of my robots as “pets” more than servants or “forced labor” as the name inplies…

What I do is try to abstract

What I do is try to abstract from the "OK, now I can do it", and get back to "Wow, can I make it do that"?

To me the inspiration always lies in the fascination. And sometimes fascination can disapear once you master the art.

I cannot play a guitar. I imagine, that if I could, I would just rock like wawbang!!

What would happen if I learned to play the guitar, would be that I spend a lot of time learning it, so all magic disappeared, and I would just play it, but not that enthusiastic.

Point is; get fascination back, see how cool it is that you can actually…

:slight_smile:

pet personality

well, you could try and add some "pet-like" personality to your bot. Something like tamagotchi. I did it on my first robot (in a small scale). Example:

 

  • keep a variable that is the "happiness" of the robot.
  • define some things that make the robot happier, and others that make him sadder.
  • define some "somatic" behaviour, ie some way the robot show that it is sad or happy (involving some simple "motor dance", head nodding, beeping with the buzzer, etc).
  • same things with other variables of choice (angry/friendly, tired/energetic (maybe connected to battery), etc).
what i did with my robots was to increment the happiness when it could run straight, and decrease it when it encounters obstacles. To show angryness it shaked left and right (easy to do by quickly alternatin motors). It was nice becouse the more he was sorrounded by stuff, the angryest it was, untill you completely close it :stuck_out_tongue:
I also added a lot of "randoms" in the code to have less predictable and more natural behaviour.
I think this will make for a different-from-average robots :slight_smile: Added bonus: no extra hardware involved. (but a lot of software :P)

 

You need a purpose to know

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 :slight_smile:

I see random coming up a lot…

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…

Hmm. What should a robot

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.

What to do?

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.

 

Oh good grief, Robots can

Oh good grief, Robots can pretty much do anything, as long as you give the time to program it.

One bot I saw was programmed to wander around and interact. If there’s a flashing light, it will go and investigate, if it hears a noise it will begin singing, if nothing but a steady bright light, it will wander around to find a darker place to hide.

A good bookf I just came accross is calle Mobile Robots. It’s a bit older, but I’m a junkie for used book shops.

It used the Atmel chip I think, which wouldn’t be too hard to convert over for the picaxe.

You could also have a random

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.

FYI - Confucius say, "There

FYI - Confucius say, “There really is no such thing as random, only the inability to see the pattern”<o:p></o:p>

Although, it does seems prevalent in nature with trillions of variables, quantum mechanics and what all…<o:p></o:p>

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

Funny how random = more life-like…<o:p></o:p>

<o:p> </o:p>

Another random response…<o:p></o:p>

 

All great ideas here… I

All great ideas here…<o:p></o:p>

I think I would suggest … “EAT”<o:p></o:p>

It’s autonomous right? Well, it is when it has fully charged batteries… So, it’s really only autonomous for 1 hour, after which, it goes brain dead until you spoon feed it 14Volts. Don’t you think it should feel itself getting hungry, and find something to eat? Maybe you can make an IR beacon above a 14 Volt charger with a coupler. Kind of like a glowing electronic teat . :P<o:p></o:p>

GroG<o:p></o:p>

 

That would be AWESOME.Along

That would be AWESOME.

Along with the “coinsumer” idea. It could get scared if it doesn’t sense the presence of said “teat” and gets scared, if it can’t see where it gets its recharge.

Then I could see a panic mode where it runs around, using only bumper sensors to find its way.

**Yeah, You get the idea… **

Yeah,

You get the idea… Mapping can become more relavent too. Rodney Brooks did interesting work with subsumption architecture

So the behavior decompisition would be:

1. Explore and Map - If not hungry

2. Hungy - Find way back to Teat to recharge

3. Feeding - recharging until not hungry

4. Avoid Immediat Obstacles

So avoiding objstacles will supress other behaviors, and a hungry robot will supress the urge to explore. Can you imagine, if this was implemented and you got between your hungry robot and its food? Hopefully, Chris won’t have a “Avoid Immediate Obstacle->remove obstacle with Oxy-Acetalene torch” sub-module :stuck_out_tongue:

 

"Kind of like a glowing electronic teat ."

Glowing Electronic Teat…

If ever there was a name for a band that would be it!

I’m working on the charging base…

I like this idea of going back to base for a charge… I am actually working on this as we speak. I think I might start another thread about charging circuits in general. For now, I am still trying to find out how to use a picaxe as a voltage monitor…

I have seen the simple trick of using a diode on a ADC channel and having the unit monitor it’s own internal voltage -this is super simple to do, however, I am not finding much in terms of monitoring the voltage from the main 12V lead-acid battery. I am looking at some big 20AH bastards so if the robot doesn’t cruise around a lot, that should last quite a long time.

Yes, definitely leave the
Yes, definitely leave the death-ray out of this one.

I came accross a ton of old

I came accross a ton of old cellphones and chargers that I’m looking to modify.

 

Just ahve to make sure you don’t charge your batteries with an amperage that is higher than what they can handle.

http://www.evilmadscientist.com/article.php?story=solar&query=solar

This does deal with solar panels, but has some good info on recharging batteries and such.

Damn, I knew that one…

Hey thanks bunches oddbot,

-And I knew I knew that one! voltage devider… I even had a website bookmarked with a calculator on it for just this set-up! I’m an idiot, or forgetful, one of the two. Thanks either way.