August 13, 2013 Update on the NR3 Navigation Robot
Based on the NR2 test platform, this robot uses all of the sensors and techniques developed in the NR2 program and with the addition of a few new optical sensors, will be the intelligence analog of the Callipteris Ants that occupy the Sahara Desert. To put this into perspective, a hypothetical robot which bounces off the walls avoiding objects with its bumpers or IR proximity sensors and can seek light or temperatures is the mental equivalent of a bacterium. Not much in the way of brains going on there, merely a reflexive reaction response. A small multicellular animal such as a water flea (Daphnia) has a true gangular swelling which qualifies a a primitive brain. This allows it more complex life functions and some unique behaviors, and posses a single internal sphere-like multi-faceted eye for navigation. This is on par with floor sweeping robots we have built for intellectual capacity. NR3 is one step higher, closest to the Desert Ant Callipteris. They use visual clues and count their steps to navigate in a sandy environment which precludes leaving scent trails which is what ants normally do to find home. They also have highly polarized eye covers to allow them to see the blue skies polarization levels and use that for navigation too when the sun is not visible. NR3 can orient itself with a digital compass, sonar distance measurement to landmarks and count its steps so to speak with wheel odometry. In addition, a set of photo detectors will be added later to allow it some optical navigation and confirmation. A giant solar panel on its back acts very much like the ants auxiliary eye - the Ocellus and can permit the robot to orient its rotation to optimize the solar flux on its battery charging panel to the Sun. NR3 is also the first fully solar charged robot I have built as well.
The purpose of creating this robot is to develop the techniques to navigate without using beacons, line following, or ballistic odometery (blind distance measuring) to travel from one end of the house (the bathroom) to the other end (Arcadia door in the Sun), using landmarks and walls for navigation only. If I wanted to paint a line on the floor, the task would be easy! But besides not being a great idea for home, there would be no new challenges in doing this. The eventual goal is the future robots will be able to move freely in the home environment and perform daily tasks, park them selves afterwards and charge up for the next days tasks without robot specific beacons or floor marks.
Basic Concept of Node Navigation
In a home or office environment, a robot must typically roam a roughly predetermined route through the building, stopping at specific points of interest to perform tasks, eventually ending at a final goal or destination. This could be the starting point by moving in a circular route, or at the end of a long contorted journey. While the interior of the home can change daily, the buildings walls, and superstructures will not and hence can be used for building specific navigation. Such navigation is accomplished by defining a sort of "Superhighway" through the home, with stopping points or "Nodes" used for incremental navigation placed in the route. Here is a graphic example on how this can work, the gray line is the path, and the red dots the "nodes" along the way:
For our robot - NavBot 3, the nodes are placed at 24 - 60 inch intervals depending on the surface roughness and layout of visible landmarks. The robot progresses from node to node, and each time takes a bearing from the local landmark to refine its position. For example, on a smooth floor surface with little irregularities, the bot can move 2 - 4 feet in a more or less straight line without too much effort. Even though the foam wheels are the same size, rotate exactly the same speed the robot will always veer off the path one way or another due to the steps and lines in the floor tiles. This can amount to several inches off course in some cases. This illustrates the issue:
To remedy this situation, the robot resets its position every node by setting the distance from a known unmovable landmark such as a wall or fixed cabinet. Then continues on to the next node. Therefore no errors are accumulated in its path and it remains on track to its destination. There is no limit to how far you can travel accurately by this method, barring a fixed landmark not being available for 5 feet or more. In this case, we can use the compass bearing to travel to the next node with a fair amount of accuracy. This method of correcting the spacing from landmarks (yellow lines) is shown here, in which at each node the measures are taken with the on board sonar of the distance to a fixed landmark:
Navbot 3's Task
No robot I have ever built could directly go from one part of the house to another directly. And certainly not one which can start and arrive within an inch and the path is the entire length of the house! Our task to demonstrate this navigation method is to start in the bathroom at the side of the bathtub, travel out into the hallway, into the living room, into the kitchen and stop within an inch or so over a node right next to the big Arcadia glass door. The robot then rotates 180 to face its solar panel at the sun, and parks. Here is a sketch of the robots journey:
Sensors to accomplish the job
Navbot 3 has the usual bumpers around its front, which are not used in this demonstration. What we now have added is a frontal sonar which can measure from an inch to approximately 5 feet with one inch resolution, a Devantech magnetic compass on a non ferrous stalk in its "head", and finally one wheel has a precision optical shalt encoder with 1024 pulses per revolution to measure distances traveled to better than an inch accuracy. While some may try to use these encoders on both wheels to attempt a long distance navigation, they do not work for any distance in a home because of severe slippage. That is why you must measure at each node to confirm you really went the proper distance, and take measures if the robot has not reached the next navigation point. On the wooden tile floor for example, the robot can veer off its position on the next node 6 feet away as much as 6 inches. Lets look at the process the robot goes through just to exit the bathroom:
Here you can see the robot starts at the bathtub, rotates 180 degrees to face the door out of the bathroom. It measures the spacings with the sonar - here marked in yellow lines at each node. Notice at node 4, the robot uses a corner to measure. This works well with sonar on the rough surfaced walls in our house which have a texture to them. The carpet is a small bath rug which really messes up the wheel odometery. The wheels slip and spin on this, and as soon as we clear the carpet, at node 1 we check to see if we have successfully made it past the carpet. Between node 3 and 4 is another extreme challenge. The threshold between the two rooms is a big bump to go over and often throws the robot askew. But by compass navigation during travel, we can be assured of traveling the right way even if thrown off course by the obstacle.
And the long run from bath to kitchen:
The long travel is over 25 feet. You can see as we pass certain wall obstacles we are not making any measures to the landmarks. Yeah, I know if they move the bucket to the wrong spot, the node measurement will be askew. But the robot must know how to deal with that (future project) to get to where its going. Note the use twice of measuring to the corners for a landmark. So far this has worked well every time! If the robot encounters an obstacle, it has a routine it will go through to bypass this node and get back on course.
When the robot is traveling this long straight route, it will be seen in the movie clip the robot sways back and forth over the rough wooden tile floor in a S curve trying to go a straight line. No matter how much effort programmers put into making BOTH wheels turn at exactly the same speed, it does not matter in a home environment! So thats why I concluded I only need one encoder on one wheel.
And finally from the kitchen to Arcadia door parking:
The final parking maneuver is tricky. Would I be able to use the glass Arcadia door for a landmark? What if it was open and the screen was there? Turns out that the base metal threshold reflects the beam, and this was a moot point. Also, note that at the final parking point, you will always need both an X and Y coordinate to really well position the robot over the finish location. Here, I had to use a corner of a beam to set the X value. The final results of 4 trials from one end of the house to the other was the parking was within one inch every time. The bot rotates to face the solar panel on its back towards the window when its done. And for now, the goal was accomplished!
Finally, the movie of the journey.
Because the process takes over 5 minutes, I decided against a standard long boring movie clip to show the robot in action. Instead, I have assembled a "stop action" frame graphic with a camera shot being taken every few seconds with a hand held standard DSLR. This was assembled into a small animated GIF and presented here. You can see the robot go through all of its motions to move, measure and park. The size was really an issue too. I had to shrink the movie to 320 size so the file you download when clicking was only 6mb. When I tried a 640 size, the file size was gigantic:
For any robot to perform a meaningful task in the home or office environment, a daily path with navigation nodes integrated into it will be essential. While the robot can still become confused in constantly changing moving areas, for the most part tasks such as watering plants, cleaning floors, and moving items about from one place to another can be done in relatively placid home settings. Future robots I plan will now have a method to accomplish this.