Prowlerbot: The Return

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.

 

===================================================================================================

 

UPDATE 09/27/2014:

Finished the hub side of the new vex wheel hubs:

 

===================================================================================================

UPDATE 09/12/2014:

New VEX 4" Omni's have arrived to replace the goofy grey/green 2.75" wheels.  The new wheels allow for a nice hub to be machined that will better work with the rest of the robots metalic look.

 

 

 

 

Build photos:

Pulley system parts

 

Adding wheel lug screw holes:

 

Assembeled drive unit:

 

Milling rear wheel bracket:

 

Rear wheel bearings:

 

Miling the wheel rims:

 

Power Control PCBs (oshpark):

 

Main PCB w/BeagleBone and Power:

 


This is a companion discussion topic for the original entry at https://community.robotshop.com/robots/show/prowlerbot-the-return

Great concept! This thing

Great concept! This thing look massive, well machined and powerful. Duane is right - the rims are great. A few pictures of the building process would be nice. Cheers!

Thanks for the comments!

Yes, wheels were machined from AL after turning to match LEGO motorcyles tires.   One of the things I was most proud of on the bot.  Those wheels look awesome.   While I like the VEX omni wheels I may switch to the larger version.  They look… awkward now next to those nice AL front rims.   

My other pride point is the custom PCB main board.   That took several months to layout and check and while there were a couple of footprint errors and marginal operation on with the LED driver transistor circuits it worked with no green wires or hacking needed and power/signals look really clean on the scope,  Much nicer than feeding wires into screw terminals and breadboards.

I’ve taken many breaks from it over the past few years but it remains my goal to build a robot that is all mine from carpet to wireless mast.

Added some photo from the build starting back when it was just a few pulleys.

What bdk6 said!
The metalwork is excellent. Prowler is a work of both art and engineering.

I’ve done subsumption a while ago, and I’ll probably use it on my current bot. It worked out well for me, though I used Java. Probably C++, like you, this time. And I will eventually put a BBB on my current bot.

Looks like a fantastic

Looks like a fantastic build. What made you choose to use stepper motors for drive?

Custom Machine Work

Well if anyone has custom machine work they would like done send me a note.  If it’s not overly complex I may be able to knock something out for you for a reasonable price.

I want a mill :-DYour robot

I want a mill :smiley:

Your robot (and i believe that’s already said before) is an artwork. Those wheels…drive unit…shiny aluminium…well, just eyecatchers. Never worked with a BeagleBone but that’s not my interest here as I am (in this particulat project) more drawn to the mechanical parts.

**awesome millwork! **

Gotta love all the aluminum. Those wheels and pulleys, the UI sensor mounts, very inspiring! Really great post too. I’d love to see the CNC setup you have.