The Explorer
Sep 17, 2018
Meriwether is an experimental explorer. He is intended mostly as a simple testbed to try out various ideas. The intent is that he starts our simple and gradually gets new capabilities.
Meriwether will be exploring in and around my house. He will look for "interesting" things and feed his "desires." He can detect different colors of light, temperature, sound, and obstacles. What exactly is "interesting" has yet to be finalized, but a few ideas are certain colored objects, particular types (frequencies?) of sound, and as a basic "desire" or need, certain temperature ranges. He may also include a solar panel for recharging, which will give him a need and desire for sunlight.
Meriwether isn't a robot; he's a creature...
Anatomy
This is a very low budget, simple project. Meriwether's main body is made from a cheap pressboard clipboard and a cheap plastic storage bucket. He has two yellow gear motors and wheels from ebay for drive and an arduino clone for control. An RGB LED is used to detect different colors of light. A transistor in super-diode configuration is the temperature sensor. A cheap sound input module is used for detecting sounds. A series of bumper switches are arranged along the base to detect collisions. The drive wheels are placed up front and a third caster wheel is at the back. Rechargeable NiMH batteries provide power. I will probably add a solar panel for recharging, which will also add some basic survival needs.
Programming / Intelligence
For now, the programming will be conventional. It will consist of typical C/C++ code to achieve the goals listed below. At some point in the future, various types of artificial intelligence coding may be added, such as a neural network. His goals are listed here, in decreasing order of importance:
1. Survive: Meriwether doesn't want to die. He knows he has to feed (sunlight) and avoid dangerous obstacles. He doesn't know all the things that are dangerous, but running out of energy is one. He knows that loud noises may mean danger and will mostly avoid them. Perhaps a sensor to detect rain so he becomes smart enough to get in out of the rain.
2. Explore: Meriwether wants to find new things. New patches of color, new obstacles, or perhaps new sounds that aren't dangerous can be explored. Places where light is bright or dark can also be of interest. Areas with certain temperature ranges should also be interesting.
3. Map: Meriwether wants to remember where the interesting things are; they may be useful later. So he will try to remember where he found the interesting things.
4. Learn: Meriwether wants to do new things, not the same old things. He also wants to be able to associate interesting things he finds with helping to meet other goals. As an example, if he finds that purple objects (flowers) are usually in bright sunlight, he can associate the purple objects with possible places to go to recharge. Or if darker areas associate with more comfortable temperatures, he can learn to look for shade if he gets too hot.
Beginnings
This project is just beginning. It's a personal research project, so where it will lead is yet unknown. Arent' the best journeys the ones you take without a firm destination, just for the journey itself?
I will be updating this post as the project proceeds.
"Where you headed?"
"Wherever I end up."
Sep 20, 2018
Why?
In a recent blog post on Lets Make Robots, neogirl101 asked a great question that got a good discussion started: AI: is it really intelligent?
Meriwether is in part a response to that question. Before we can answer if anything is intelligent (including us!) we need to decide what it means to be intelligent. Most of us would agree that humans are intelligent. Most humans, anyway. Or at least a few. And we like to think we are "above" the other creatures. But what makes us different? My short response to that is that we ask: "why?"
It appears that other creatures have varying levels of intelligence. But it would seem that none of them ask "why" and then pursue the answer.
I think that most of what we do is interact with our environment. Higher intelligence makes us more in control of that environment. And a simple way of defining intelligence might be how well we control our environment instead of letting it control us. Language, written or spoken, roads, cities, cars, planes, rockets, farming, trade, and most other human endeavors, are all ways of controlling our environment. Even math!
But other creatures interact with their environment. And even control it to some extent. A rabbit digs a hole for protection. A bird builds a next to sleep in and raise its young. A spider builds an intricate web to catch insects over a larger area than it could possibly cover on its own. Are these signs of intellligence?
What about emotions? What are they? Where do they come from? Are we the only creatures that have them? It appears we aren't. Watch a dog when its owner comes home from work. Or a bird whose mate gets run over by a car. It would be hard to deny they show emotion.
The heading above was meant to not be clear. The question, why, covers a couple things. First, why build Meriwether? What's his purpose, his goals? Second, why are we different from other creatures? Are we? How much different? Third, why do all creatures, including us, do the things we do?
Meriwether is a start at trying to answer some of these questions. If you want to learn math, you don't start with calculus. You start with numbers, then arithmetic, and so on, building up to bigger and bigger things. To build, and understand, an "artificial creature" we don't want to start with a human. Let's start with something simpler: Meriwether.
Meriwether will be born with instincs. Much like all creatures, he wants to survive. He needs to "eat." He will roam around looking for food (sunlight) and safe places to survive. He should be able to learn where to find those things by associating them with other things. We learn early on to associate certain things, such as a building, with something we need, such as shelter. Or that when we are hungry the kitchen is a likely place to find food. That will be Meriwether's first goal: learn to associate physical places or phenomenon with his needs.
I'll be back later. I have some building and programming to do.
Sep 25, 2018
Meriwether wants to survive, and he wants his race to survive. He has certain needs that must be met for him, and his race, to survive. He needs to eat. He eats bright light that will charge his batteries. He needs a comfortable environment: not too hot or too cold. He needs to stay relatively dry. A little water is ok, but not too much. And he needs to explore his surroundings to find places that are warm and dry and places that have lots of light.
Meriwether's body will tell him when he is hungry, or hot or cold, or wet. He can sense food and water. He can also sense obstacles and different colors of light. And just like all creaturs, he uses these senses to decide what to do. If he is hungry he looks for food If he's hot he looks for shade. If he's wet he looks for a place that is dry. And again like other creatures, these senses aren't on or off; there are multiple levels. So, he might be a little bit cold but very hungry. So his responses shouldn't be simple "I'm hungry so I must eat." And if there are two needs, the strongest need should not always override the weaker one. If you are very hungry and about to go to lunch, but you are also a little chilly, you probably won't ignore the jacket on the back of your chair and rush off to lunch. Because the jacket is convenient and won't interfere much with your lunch, you will put the jacket on before you go. Even though the hunger need is stronger than the comfort need.
Meriwether should do the same thing. So all his senses from his nervous system feed into his brain. His brain will take everything into account and make a decision what to do. Once it has decided where to go, it sends signals out through the nervous system to the muscles (motors) to take him where ne needs to go.
How will the brain take all that into account and make a good decision? It will calculate some function, f(inputs), from all the inputs of the nervous system, and make a decision. Exactly what that function is has not been determined yet. But a first start will probably be to take the strength of each need and add the convenience of meeting that need to prioritize activities. So, if he is a little bit hungry and very cold, but he knows there is food nearby, the convenience of getting food added to the level of hungriness may outweight the coldness for now and cause him to eat before going to look for a warm place.
Meriwether should be somewhat intelligent and be able to remember some things. For instance, he should remember places that are likely to be warm, or often have food. So he has a memory to keep track of important and interesting things. When he finds something interesting he will remember what it is and where it is. Then, later, when he's trying to meet a need, he can refer back to that memory to find likely places that need can be met.
Physicists say the world runs on randomness. They claim that lots of subatomic stuff happens randomly. I don't know about all that, but I know watching people behave seems to indicate we have a lot of randomness. So I may add a bit of randomness to Meriwether's decision making. Just enough so that if a decision between two things is close, the randomness may change it.
And that is how Meriwether's behavior will be defines. He has needs and senses that can tell him what he needs and when those needs are being met. He has a desire to survive which leads to a desire to meet his needs. And he has muscles that can help him meet his needs by taking him to places that have the stuff he needs.
As time goes on, evolution will help Meriwether improve. And, once he grows up, he will be interested in meeting up with pretty little Mary Weather and raising some little Stormy Weathers. But he's just a kid now and that isn't important to him yet.
OK. Back to soldering and coding...