B.R.U.T.U.S. stands for "Bob-Rousing Underfoot Tactical Utility Surveyor", and is a teleoperated robotic platform that is capable of exploring and investigating a home, as well as being able to provide food and water to the cat when we are away. BRUTUS will also serve as an experiment to determine whether our cat can be trained to enjoy the company of a mechanical creature, using treats and cat toys as positive incentives.
The features I would like to include in this project are:
- Internet-capable control over WiFi
- Manipulator arm to interact with objects in the environment
- One or more webcams to allow teleoperational control of the robot
- Easy-to-use charging station, so you can park and charge the robot when the batteries run low
- Battery-level monitoring, for the above reason
- Flashlight for dark situations
- Speaker to talk to anyone who may interact with the robot
- Food/water/treat dispenser for Bob the Cat
- Laser-pointer on manipulator arm to play with Bob the Cat
The robot platform/chassis will most likely be laser-cut from plywood, as it is cheap and light-weight compared to acrylic sheet. No concrete design has been created at this point.
A version of jjshortcut's laser-cut robot arm will be used to create the manipulator arm. A different gripper will probably be used, or the current gripper will be modified to allow easier grasping of oddly-shaped objects.
CPU Host: Raspberry Pi
- The Raspberry Pi will be used to run the web-server that handles robot control and audio/video transmission. It will also be able to update the Arduino's program, if needed.
- Cost: $45 (purchased)
- A cheap USB webcam will serve as the robot's vision system, initially. More cameras can be easily added if needed/wanted.
- Cost: $6.75 (purchased)
Microcontroller: Arduino Uno
- The Arduino will be in charge of handling motor control, arm movements, food dispensing mechanisms, flashlight/laser control, and battery monitoring. The GPIO on the Raspberry Pi can be used for many of these features, but as I do not have a logic-level shifter on hand (but do have an Uno), this works out to be the simpler, cheaper solution.
- Cost: $15 (purchased)
Motor Driver: L293 Compact Motor Driver
- This is the same motor controller that will be used in the C.A.E.S.A.R. BOT. It's cheap, easy-to-use, and so handy.
- Cost: $4.29 (purchased)
- I have four MG995 55g servos that I will be using for the joints in the robot arm. A tiny 9g servo or two will be used to rotate the wrist and close the gripper.
- Cost: $15.50 total for the four MG995's (purchased)
- Cost: $4.97 total for two 9g servos (purchased)
- I still have a few extra Solarbotics GM9 Gear Motors left over from the Solarbotics order for the Mini-Sumo Robot Competition, so I will probably use two of those to drive the robot around.
- Cost: $5.75 x 2 motors (purchased)
- For the 5V electronics (Raspberry Pi and the USB devices, including the Arduino), I've decided to go with a rechargeable 10000mAh* USB battery. It claims to be able to source 2.1A of current on one USB port, which should be more than enough for the 5V electronics. (*they claim 10000mAh, but I seriously doubt it for the price)
- I have yet to decide on a battery source for the motors, but I will probably go with a cheap LiPo or NiMH rechargeable RC battery. I'm leaning towards NiMH for charging reasons, but I'll make that decision later.
- Cost: $24 for the USB battery (purchased)
Powered USB Hub
- In order to power the Arduino, webcam, WiFi module, and future USB devices, I cannot rely on the Raspberry Pi's USB power output. Without modification, the max current going into the Raspberry Pi's USB power input is 1A, with up to 700ma going to the Pi itself. To solve this, the USB devices, as well as the Raspberry Pi, will be connected to a USB hub powered by a USB battery. To prevent feedback voltage damage to the Raspberry Pi, the 5V line going to the Pi's USB host port will be cut.
- I will also need to make a USB-to-barrel-jack cable in order to connect the USB battery to the powered hub.
- The hub has seven ports; the following ports will be used for now:
- Port 1: Power to the Raspberry Pi
- Port 2: Webcam
- Port 3: Arduino
- Port 4: WiFi Module
- Ports 5-7: Currently unused
- Cost: $4.79 (purchased)
21:33, 27 August 2012 (CDT): I have installed the Raspbian Linux distro onto the Raspberry Pi, and setup my USB WiFi module and SSH. AVRDude has also been installed to allow for Arduino programming directly from the Raspberry Pi.
16:42, 28 August 2012 (CDT): Wrote up some quick Arduino code to control the arm movements and drive motors via Serial commands. Hopefully, I'll add some sort of acceleration to smooth out the movements, but I'm not sure if that will be necessary right now.
23:07, 30 August 2012 (CDT): Messed with setting up the webcam to work on Raspbian. I think I have all the drivers set up correctly now, but my wimpy 5W phone charger may be causing issues when trying to view the video stream.
18:50, 5 September 2012 (CDT): Received the powered USB hub and got the camera working with it and the Pi. The Raspberry Pi will not boot when powered by the hub plugged into the wall power adapter; I'm not sure what is causing that, other than maybe the 1A supply is really only pushing half that. Still need to find a program that will work with the camera and stream at a decent FPS, and then I will write robot control code for the Pi.