Prowlerbot patrols the perimeter detecting motion and sound. via letsmakerobots
Prowlerbot is designed around a BeagleBone Black as the primary behavior control system and several sub controllers to handle hard real-time work. The Beagle’s ARM7 handles all the decision making and complex programming. The concept was started a couple of years ago. The initial purpose was to create a home sentry robot that would patrol the house like a roving security motion sensor and sound the Alarm if motion is detected in it’s range of view.
Prowlerbot is mostly scratch constructed using AL for the structure. I use my home CNC system to create the milled metal parts and a manual lathe for the cylindrical parts. The locomotion system is based on two 68oz/in NEMA 17 stepper motors I got on sale for $10 each. To allow for largish wheels (3.625″ diameter) I included a belt drive system to raise the torque from the shaft at the expense of wheel speed. The results are impressive. The bot can climb substantial inclines and has no issue moving it’s now 9lb weight.
The steppers are driven from two L6470 driver chips configured to provide 1A of current to the motor coils. The L6470 handles motion control and acceleration so the main processor does not have to attend to the stepper motors at all. Movement is ‘fire-and-forget’.
A number of custom PCBs have been fabricated for the robot. The BeagleBone Black is plugged into a custom logic board that adds buffers and protection for GPIO, a few user LEDs, an RTC, and headers for connection to satellite boards. Power control PCBs were constructed to provide battery voltage sensing using an I2C ADC as well as an interface for allowing the BeagleBone to control power to the entire robot. A PCB was created using a PICAXE to handle the power switching with large MOSFET controlling power to the whole robot. This works in cooperation with a process on the Linux side to allow the robot to monitor it’s power and shutdown when batteries are low.
The robot is powered by LiPO 11.1V 4000mah batteries. Duration is not yet determined but it appears that 6-9 hours should be possible with the low duty cycle that the robot’s mission provides. The BeagleBone is the largest battery consumer after the motors. The entire robot is powered from the single battery. Stepper motors do not place the kinds of surge loads seen with conventional DC motors on the power supply and little effect is seen on the 3.3V and 5.0V supply rails when the motors are running.
Currently only sonar and IR proximity sensors are connected to the robot.Future plans include the addition of two PIR sensors to detect motion, temperature sensors, to monitor operating temperature, and light sensors to determine when to begin patrolling.
Prowlerbot uses the behavior-based or subsumption model for performing its mission. Programming is done using C++. Each behavior is an object and is added to an arbitration system. Each behavior gets a turn in order of priority to evaluate the sensors and determine if it needs to take action. The first behavior to signal it’s need to control wins. Any previous behavior is stopped and the new behavior is passed control of the robot. This allows complex activity to be built up from simple to define behaviors.
Prowlerbot is multi-process. Sensors are read by the pbsense program. They are updated at a rate of about 25 times per second. The data from the sensors is placed into shared memory. The pbotmain program handles the behavior of the robot and attaches to the shared memory to access sensor data. Data is always the most recent available when the behaviors are evaluating it. Behavior arbitration occurs 20 times per second.
Plans for this year are to finish the upper deck platform. Create professional PCBs for: Proximity IR sensors, PIR sensors, light sensors. PCB for Aurduino I2C sonar controller. Custom dual L6470 PCB to simplify connections to motor controllers. Better fusing (than none right now) for safety concerns.
Each Tuesday is BeagleBone Black Day here Adafruit! What is the BeagleBone? The BeagleBones are a line of affordable single-board Linux computers (SBCs) created by Texas Instruments. New to the Bone? Grab one of our Adafruit BeagleBone Black Starter Packs and check out our extensive resources available on the Adafruit Learning System including a guide to setting up the Adafruit BeagleBone IO Python Library. We have a number of Bone accessories including add-on shields (called “capes”) and USB devices to help you do even more with your SBC. Need a nice display to go along with your Bone? Check out our fine selection of HDMI displays, we’ve tested all of them with the Beagle Bone Black!