uploaded 3/26/04 Ostracode: A small shrimp like bivalved crustacean occupying both fresh and salt water. Movie 1: Round the room - This demonstrates IR object avoidance and navigation Movie 2: Screen door escape and Cat interaction - The IR detector would not see the screen door, but the stasis sensor engages and corrects the stuck condition. For the most part, the cat doesn't mind the robot unless it is touched by it.
Ostracode is a completely autonomous mobile robot which travels exploring the upstairs level in our house. He is powered by twin processors, a Parallax B2-SX and a PIC12F629 microprocessors. Two Fituba servo motors power his movements, and an 8 AA pack Nickel Metal Hydride battery pack putting out 10.5 volts powers him. His weight is balanced toward the rear with the battery pack, and there you'll find the third caster type non driven wheel. A fourth encoder wheel rides exactly in the middle of the drive wheels and is used by the PIC to determine if he is slipping while driving forward.
Sensory input is from 4 front and rear microswitch bumpers, 4 Modulated IR Panasonic proximity detectors, two under and two over the mid section. Also, two front facing Cadmium Sulfide photocells provide for day/ night detection and photo tropic tracking. This is my fifth robotic project, the first being a 16F84A PIC microcontroller bot called "Twitchy", the second was the "Aurora Cam" Robotic Camera, the third Boe-Bot, Fourth "PIC BOT" with crude Subsumption architecture, and finally this robotic crustacean.
Details
Behaviors:
- Wanders constantly, avoids any obstacles in path, be it laying on the floor or taller. Moves forward normally and when it encounters an obstacle it responds by an avoidance program, chirps randomly using a synthesized cricket sound, the speed of chirping dependent on the encounter situation.
- When he is stuck and the sensors are not seeing an impact, a crude Subsumption Architecture kicks in and he can initiate an escape routine which has been very successful.
- He has numerous "escape" routines to get him out of a tight situation, such as under a table or chair.
- At night, he determines several times it is truly dark by rotating 180 and measuring the light again. If the threshold is well below normal room lighting, he heads for the nearest wall until he touches, backs off three inches, spins 180 to face outward, and t hen shuts himself down for the night. He then checks every 10 minutes to see if its getting light out.
- A crude SA causes him to become phototropic - light seeking when his battery voltage gets to about half level.
Development Environment:
For the BS2-SX the standard latest version of the Parallax Basic Stamp software was used. Dealing with the 8 "Banks" of program space is painful, but it does give 8K of storage. For the PIC processor, the program was written in PICbasic by Micro Engineering Labs, and compiled to HEX. Programming the chip I used Microchips PicStart Plus programmer and the provided software MPLAB.
Left: Frontal View showing details inside of twin disc housings. Inside you can see the dual front facing modulated IR tranceivers I made up from angle brackets and IR LEDs, and Panasonic Detectors. Everything must be grounded to keep the 38.5 KHz from getting into the amps and receiver circuit!
Right: Top view showing the removable cover, with 4 brass thumb screws. A window cut into the lid allows seeing the display board, with indicators for battery voltage, right or left activation, and Photocell readings using red, blue and green LEDs.
Left: Underneath on the left are the rear bumpers which are only used when in escape back up mode to make sure you stop if you hit while backing up. Twin hacked Fitubo servos drive the base, and on the right the huge microswitches with 2 inch long levers have .032 music wire whiskers on them that are captive on the ends with nylon lace cord to keep from catching objects while the robot is rotating.
Right: Close up of the rolling fourth wheel used for slip detection. A photo interupter looks at the wheel which when the bot is moving is generating 0 - 5v pulses into the PIC. By counting the pulses for one second, you can determine if the robot is stuck. If the counts are less than 2, he performs a backup escape manuever. Over 2 and he continues forward. Its simple, took only a dozen lines of basic code, and works extremely well. The wheel is hinged so it always is pressing against the uneven floor.
Left: Underside view of fourth wheel which MUST be located between the drive wheels for best results. This makes it impossible to side slip while turning. Yes, thats dental floss holding the whisker from ripping off...
Right: With power on, the status of the internal systems can be seen through a window on the top. In the center, a crude bar graph shows the battery voltage indicated by a quad LM339 compartor set for 10,9,8,7v. Right left IR impact lights are both on (he was aiming at the paper backing) and the blue LEDs, one on the upper left shows which CdS photocell is the brightest at the time.
This will certainly be my LAST robotic project with the Stamp type microcontrollers. I have moved to Microchip PIC processors because of thier extreme speed, huge varieties available, internal functions and CO$T. I use them at work for designing complex robotic applications. My next project we just started, is P.A.A.M.I. I will require bunches of cheap paralell processors to implement this new robot and the PIC's are perfect for the task.
Robotics Main Page HOME