What saves a man is to take a step. Then another step. It is always the same step, but you have to take it.
Antoine de Saint-Exupery
I need a robot to conduct some experiments in intelligence. ODIE (Out Door Intelligent Explorer) is the result. The idea is that ODIE will live outside for long periods of time. He will learn his environment and learn to interact with it to meet his needs. This article is mostly about his hardware. The first, very basic, version of software will be mostly similar to "typical" hobby robots. The more advanced later software will be covered in the intelligence articles linked above.
ODIE was inspired by Karl Lunt's BYRD (Back Yard Research Drone.) I read his article on BYRD in Nuts and Volts magazine many years ago. I thought it was a great idea at the time and wanted to build something similar. When I started my intelligence experiments the idea was perfect as a base for those experiments. Many of his articles were published in the book "Build Your Own Robot." Much of the book is dated now since it is 25 or so years old, but it is still useful and interesting.
A short note about the name before I dive into a description of the robot itself. I wanted a name that was similar to BYRD and looked for an appropriate acronym. I'm sure the adopted cats living in my backyard will find ODIE annoying, just like Garfield and his friend. So it fit perfect.
I want to build an intelligent creature. I won't go into much detail here. See the page above. But the requirements for ODIE are based on that work. I will discuss those requirements as needed in the description.
Intelligence on Earth has evolved primarily as a method of survival. The world is a hostile place; a creature must find food, reproduce, avoid natural hazards (weather, cliffs, etc.), and not become some other creature's food. Intelligence in that environment is a huge advantage. The first requirement for ODIE is to be able to live in much the same environment. Other creatures probably won't find him very tasty, but they might think he's a threat.
He will need to eat. He feeds on sunlight. He needs to find shelter from rain, snow, wind, heat, cold, other aggressive or curious creatures, and perhaps more. He needs to explore his environment so he knows where to find food and shelter. I haven't figured out how to make him reproduce yet, so he doesn't need to find a mate.
What features or devices does ODIE need to meet these requirements? He needs a form of propulsion. Let's use standard electric gearmotors attached to wheels. Four wheels and two motors to start with the option of adding motors to the other wheels later if we need them.
The motors and electronics will run off electricity. So to eat he needs a source of electric power. A solar panel to generate electricity from sunlight and a battery to store it should work well. A 12 volt gel cell battery and a solar panel are a good match. Along with that he needs to know when he is hungry, when he's not, and when he is feeding. So he needs to measure the voltage on the battery and the voltage coming from the solar panel.
Too much heat is bad for his electronics and mechanics. Too cold and things won't work well, especially the battery. So he needs to know when he is hot or cold. A temperature sensor, or sensors, will be needed. We will decide later exactly what type. I'm kind of partial to diode junction temperature sensors, but thermistors may be a better choice. We'll see.
Electronics and water don't mix very well. And most metal objects don't care too much for water either. ODIE needs to be smart enough to get in out of the rain. First, he needs to know it's raining. Some sort of water sensor will be needed. More to follow on that.
To find the places he can eat and find shelter, ODIE has to explore. In doing that he will have to find paths he can take. If there is an obstacle in his way he needs to know it. Some bump sensors will give him a sense of touch. It is useful to know there is an obstacle ahead before running into it, so some ultrasonic sensors will give him a very rudimentary form of sight.
When he is exploring he should be able to remember where things are, whether they be sources of food or shelter or obstacles. That means he will need to have an idea where he is. We will likely add some wheel encoders to track his movements. Or maybe not. My thoughts on wheel encoders and odometry as a way to for a robot to know where it is will be covered in the software section. I will just say here that I think odometry is way over- blown and not the right way to proceed. When was the last time you counted steps to find your way around? I spent many years learning, practicing, and teaching dead reckoning navigation. I can tell you it is difficult and not at all a natural thing for people. By extension, it most likely isn't common at all in the natural world. Why should our robots be different?
Of course he will need a body. An aluminum chassis that is mostly water tight should work well. About the size of a large cat or small dog is good. That's big enough to fit lots of stuff, parts are easily available, it's a good size for keeping up with him without being too large and unwieldy.
The last thing we need for now is a nervous system. Something has to monitor and control all the other hardware. To start out ODIE will have an AVR processor with various sensors and control electronics. If he survives long enough he should evolve by adding more powerful electronics. But that will be down the evolutionary road a ways.
That should be enough to get us started. Let's start building!
ODIE should be rugged but fairly light weight. I wanted him to be big enough to hold all the electronics, sensors, power sources, and whatever as well as big enough to see (and find!) easily but not so big he was hard to move around (or expensive!) I also wanted him big enough to easily traverse the things he would encounter in my yard, such as grass, small hills, rocks, sticks, and other whatnots. My initial estimate was about a foot square.
In the end I decided on 9x12 inches for the chassis, with the wheels sticking out the narrow direction for a total of about 12x12. That seemed about right and fit perfect with some aluminum I have on hand.
There is a great metal recycler in Clarksville, TN. Lui Heimansohn Steel & Salvage has all sorts of surplus and salvaged metal. I haven't been there in a while but in the past they sold aluminum by the pound. No matter what it was. I have gotten some really good stuff cheap. I think last time I was there it was $1 a pound. On one of my trips several years ago I found a stack of sheet aluminum that was 9 inches by 40 inches and 1/16 inch thick. Perfect for making electronics boxes and chassis. They had a bunch. I bought about 20 or so sheets. I still have a few. I used one for ODIE's chassis.
I plan for ODIE to be mostly water tight. So when I made the bends and fastened the parts together I put RTV silicone sealant in the seams. I will put more on the seams once it is finished, as well as gaskets for the removable top panel. Eventually I plan to put some kind of coating over the outside of the chassis, such as epoxy, to seal it better. He won't be completely waterproof but should be able to handle a rain storm.
ODIE has to have some muscles. All Electronics is a great place to buy motors for robots. I found some a couple years ago that were just great. They are rated up to 24 Volts and turn 80 or so RPM at 12V. They are really powerful gearmotors but only draw about 180 mA with no load at 12V. Not too bad. I bought as many as I could afford at the time, which was about 10. They are made by Rex Engineering and usually sell for about $125. I paid about $10 each. They are a good match for ODIE. All Electronics doesn't have any more, but they do have some other nice motors.
Unlike the cats living in my back yard, ODIE should be self-sufficient. I don't want to have to feed him. So he is going to have solar panels to feed himself. I'll get back to those later. But he also needs to store the energy he gets from the sun. He needs a battery. I thought about using NiMH batteries, but they are a bit of a pain to charge properly. Lithium Ion or Lithium Polymer suffer the same problem. NiCd would be good, but they are hard to find now. Gel cells are available in lots of sizes, not expensive, and easy to charge. And as these things go I just happened to be in the sporting goods section of Walmart for some other reason and spotted a 12V 7.5 AH battery meant for trail cameras. It was pretty cheap at $25. I grabbed one. It fits nicely in the middle bottom of ODIE's body.
Wheels have always been the biggest problem with me building robots. I will leave that whole story for another time. I decided to use lawnmower wheels for ODIE. Being the scavenger that I am I saved the wheels from the last two crappy lawnmowers I had. The wheels were the best parts of them. I did save the engines to melt down, though. The wheels in the pictures are the rear wheels from one of those mowers. They both had bigger rear wheels than front. But they were different from each other. Anyway, I later decided to use some six inch lawnmower wheels I had bought for another project. They are all the same size which makes things a bit more convenient. You'll see them later. I still have to remove them from the other project.
I mentioned that wheels are always a problem. Here's part of the problem; motor shafts come in all sizes and a few shapes. These motors have an 8mm D shaft. The wheels have a 1/2 inch (12.7mm) bore. Some sort of adapter has to be used. Skipping over all the trial and error, I found that 5/16 inch fuel hose (5/16 inch is almost exactly 8mm, which is nice) will press fit nicely on the shaft and grip it well. But it also then presses very tight into a 1/2 inch hole! I think this will make a great wheel adapter. I plan to thread a 5/16 inch bolt into the outside end to make it tighter and help keep the wheel from sliding off the end. I think it will work well, but time will tell.
But it also then presses very tight into a 1/2 inch hole!
Perhaps a bit TOO tight. I was having a VERY hard time getting the wheel pressed onto the hose after putting the hose on the shaft. I tried several variations of the sequence and in the end decided to go a different route.
Should anyone care, the fuel hose I tried was Gates 4219XL bought from Oreilly Auto Parts. I think this idea could work really well, but a smaller outside diameter hose would be better.
I mentioned taking the wheels off another project. On that project I had used 5/16 inch threaded couplers. The coupler has an outer diameter of just about 1/2 inch. By drilling out the threads it slips over the shaft fairly snug and then fits fairly well into the bore of the wheel. A layer of electrical tape or maybe epoxy over the outside will make it snug. A threaded hole for a setscrew will hold it to the shaft.
Since it is already drilled for a 5/16 - 18 bolt all we need to do is drill out the threads. That makes centering the drill much less trouble. But it is still a pain. I drilled a hole a bit smaller than 1/2 inch (I think it was 15/32 but may have been 31/64) in a soft piece of pine. Then I gently hammered a coupler into it. That shapes the outer edge of the hole to fit the hex shape and makes it nice and tight and keeps it from turning as you drill. Then I found a drill bit that would just slide into the threads and put it in the drill press. I used that to center the wood with the coupler in it, then clamped the wood down. Now that it was all centered and clamped I replaced the bit with a 5/16 inch bit and slowly and carefully drilled out the threads. If you try this, make sure you lower the drill press table enough to get bits and couplers in and out without moving the table. Then, without moving anything, I took that coupler out and pressed another in, then drilled it.
This works. But, now all the drive force will be transfered to the wheel through the setscrew. To alleviate that I will put "something" on the outside of the coupler. Electrical tape wrapped tight is the easiest. A coat of epoxy might be better. Either way, it will spread the load from just the setscrew to the entire length and circumference of the coupler. The shaft to coupler joint still needs some thought.
There is one more thing to consider. The motors aren't designed to have a lateral load on the output shaft. They have a single bearing at the output. Sideways force on them will eventually take its toll. As a way to slightly help out I have made some plastic "bearings" that fit tight around the shaft and screwed them on the outside of ODIE. You can see them in some of the pictures. That's not a very good solution, but should work for now. We'll see how well it holds up and for how long.
The back wheels of ODIE aren't driven. They will be passive and will have optical shaft encoders. Since there is no output shaft, we have to make an axle. A 5/16 bolt is all we need. To mount it to the wheel I used some 5/16 "tee nuts" that have screw holes in the mounting part.
I found these tee nuts on ebay. They are listed as 3/8 5/16 M6 M8 M10 Zinc Alloy Round Base T-Nut Three Brad Hole Furniture Tee Nut . Don't you just love ebay listings? Here's a picture from the listing.
I think those will make nice wheel adapters. A better design would have an extended shaft from the motors through a bearing block. If a threaded shaft were used it could be threaded straight into one of the tee nuts and it would be much more secure and sturdy than what I have now. Next time!
The back wheels must have some sort of mount for the shaft. I made bearing blocks out of the same plastic as in the front. They need to be thicker, though. The plastic is from a "poly" (polyethylene) cutting board. It's about 3/8 inch thick. I glued three pieces together and drilled a 5/16 hole through it. By putting a 5/16 bolt through it and the hole in ODIE's body, I can keep it in place and drill/screw it to ODIE. A bolt of the proper length from the inside to the out will hold an encoder disk, a shaft collar to keep it in place, then on the outside the wheel and tee nut and then another locking nut. The shaft collar acts as sort of a bearing (better than the head of the bolt) and also allow the head to extend further and hold the encoder.
Having the encoders on undriven wheels keeps you from measuring a slipping wheel as distance traveled. There will be a lot more to say about wheel encoders and odometry and such in the software part of this project.
At least now ODIE is starting to look a bit like a robot instead of (just) a pile of junk. Lots more to do.
Wheels. I think I have them tamed now. Maybe. For the drive wheels I gave up (for now) on the fuel hose. I used the threaded couplers above. I took a small file and "roughed up" the inside of the wheel bore, and made some small grooves. Once all the holes were drilled and tapped I mixed a batch of JB Weld and put a thick coat on the outside of the coupler and put it into the wheel bore. I put the setscrew in to make sure it was all aligned right and hold it in place. I figure that should hold pretty well and take most of the force off the setscrew. The rough/grooved inside of the bore should give the JB Weld some grip and the hex shape of the coupler should transfer the force pretty well. We shall see. I'm a bit concerned about the setscrew keeping the wheel from sliding off the end of the shaft.
I finished the bearing blocks for the back wheels and mounted them. Some 3 1/2 inch bolts make nice axles. I cut some 2 inch diameter circles out of the same aluminum I used for the chassis. I drilled a small hole in the center and cut them round on a router table. Then drilled the small hole out to 5/16 inch. I painted encoder stripes on them and mounted them on the head end of the bolt, which will be inside ODIE. A bit of JB Weld should hold them in place, helped by a shaft collar. A couple washers will take up extra space needed for clearance. The electronics for the wheel encoders will come a bit later.
The other end of the bolt screws into the tee nut. I wrapped a bit of electrical tape around the outside of the tee nut to make it a tight fit in the bore. Then I drilled some holes and drove in some sheet metal screws. That should be plenty strong for an undriven wheel. I will put another nut on the outside as a lock nut, perhaps with a lock washer in between.
ODIE's main chassis is nearly complete. He is pretty much in a state now where he can roll around. There will be some additions, but they will come later. A water-tight cover will close him up to the elements before he ventures out into the wilds of my back yard. The power and nervous systems are up next.