Introduction: Sparky - DIY Web-Based Telepresence Robot
Sparky uses Skype as the foundation for the video chat, as well as some custom software (and source code) we provide for basic wheel-driving servo controls. You can customize this code to add functionality to your robot - including more servos, gripper arms and sensors& You are limited only by your imagination and ingenuity.
Keep in mind that each robot will be different, so this guide is by no means complete instructions. Think of it as a starting point, a foundation upon which you design and build your own unique Sparky creation.
Step 1: Parts - Chassis and Drive Train
Chassis and Drive Train: Vex is popular educational robotic kit. Its a lot like a traditional Erector set, with the added inclusion of sophisticated servo motors, wheels and gears (VEX also includes its own programming language and computer board for making complete robots, but we are not using these for Sparky).
Step 2: Parts - Power
Power: A compact 12v, 7Ah hobby battery. Coupled with a run-of-the-mill, DC to AC power inverter, it provides enough juice to run the robot for a few hours on a single charge.
Step 3: Parts - Brain
Brain: A first-gen Mac Mini is cheap and offers great power and functionality in a tiny package including WiFi, Bluetooth, and enough ports to hook everything up (USB, Ethernet, FireWire, audio).
Step 4: Parts - Nervous System
Nervous System: To bridge the gap between the computer and the servo motors, Sparky uses a MAKE Controller board.
Step 5: Software
Software: Sparky uses Skype, the popular free VoIP and vide-chat software as the basis for the current telepresence set-up, but we have augmented its chat functionality with custom software that add servomotor control. These files can be modified so you can add any additional functions such as sensors, gripper arms and more.
Step 6: Other Components
LCD monitor, mouse, keyboard
Cables - USB, Firewire, Ethernet, power, video, audio
Adjustable power supply for boosting servo strength
Step 7: Tools
Allen wrench for Vex
Assorted zip ties
Step 8: CHASSIS & DRIVE TRAIN -1
Past versions of Sparkys chassis have been based on different materials, including welded steel, legos and more. The current version of Sparky takes advantage of the VEX Robotic Design System, using the Erector Set-like steel girders, plates and nuts/bolts, as well as the included gears, wheels and axles. This kits saves a lot of time while you figure out the exact dimensions of your bot. A couple of generic caster wheels provide agility in tight turns. You can build with similar toy-scale materials, or you can choose to fabricate a sturdier frame out of welded steel just like the original Sparky.
Step 9: CHASSIS & DRIVE TRAIN - 2
The VEX kit includes many great parts, including standard servos with a limited 180* range of motion, but also two full-rotation motors servos which spin completely around like DC motors. These are convenient because they simplify the requirements to create full-rotation wheel motion. (The original Sparky robot had 2 limited range servos, but these didn't drive the robot wheels directly. Instead they physically moved potentiometers that were connected to the original wheelchair controls a seemingly complex Rube Goldberg-like solution that has worked surprisingly well for years but still makes most engineers nervous!).
Step 10: CHASSIS & DRIVE TRAIN - 3
The VEX servos are not very powerful, but by using the enclosed gears, they can still provide enough torque to the wheels although with the sacrifice of speed. It works well enough on hard surfaces but struggles on carpet or even over small bumps. The next step might be to add some stronger full rotation servos, or even make the jump to DC motors although that would require additional programming as well.
Step 11: CHASSIS & DRIVE TRAIN - 4
Quite a bit of time has been spent reworking the VEX chassis to keep it as light as possible and still have all the parts fit. Particularly challenging was the choice of monitor. Originally I used a lightweight 7 LCD screen, but it had such low resolution that it was impossible to see well. Ultimately, an old 17 LCD did the trick, although with a considerable toll in added weight.
Another build issue is weight distribution. The battery, inverter and power supplies must be positioned so that their weight is centered between the wheels and not putting too much strain on either one. All of these issues combine to make a challenging puzzle of tightly packed components and zip-tied cables.
Step 12: COMPUTER & PERIPHERALS
One reason why the current Sparky is so small is due the inspirational size of the Mac Mini. It was a remarkable realization that the computing power needed to drive this project was becoming diminishingly small. Previous efforts included a full-sized G4 desktop, a Luxo Lamp iMac, and even the rarely-sighted Mac Cube. Ive even begun to poke around at the idea of an iPhone Sparky, but that has its own issues&
Connecting the computer hardware is straightforward. Looking at the back of the Mac from L to R, there is a power cable, Ethernet (to MAKE Controller), Firewire (iSight), monitor cable, USB (MAKE Controller), another USB (keyboard & mouse). All of the excess cabling, power bricks, etc& are zip-tied and wedged into the chassis. There are three AC power cords the Mac, LCD monitor and the MAKE board which all go into a 3-way splitter plugged into the DC-to-AC inverter, packed snuggly next to the 12 v. battery. The Ethernet and USB cable plug into the MAKE Controller, one for data, the other for power.
At this point, its a working WiFi-enabled computer, powered by battery, connected to the MAKE board and sitting on wheels (but not yet drivable). Now is a good time to test things. Fire it up and troubleshoot any issues with audio, video, WiFi, etc& Download and use Skype to make video calls. Be sure to clear all of these potential nuisances before moving on to the next phase.
Step 13: MAKE CONTROLLER
A controller board is required to make a physical connection between the Mac and the servo motors. The board receives commands from the computer and turns them into electrical impulses that spin the motors. It can also take in signals from sensors (infrared, touch, light) and send that data back to the computer. There are many different controllers available. One of the most popular is probably Arduino, an inexpensive, open-source controller board that many people favor.
I received a MAKE board a few years ago when it was barely out of the prototype stage. Newer versions of the board are similar, but probably a little simpler to set up. I highly recommend visiting the MakingThings site for recent firmware and other updates to the board.
One nice thing about the MAKE controller is all of the conveniences built right into it, such as a huge number of analog and digital ports for input and output. Best of all for Sparky are the 4 plug-and-play servo slots. The VEX servos plug right in to slots 0 and 1, saving a lot of time and effort over creating the connections from scratch. The MAKE board also has a convenient toggle for servo power, which can come directly off the MAKE board at 5v, or an external power supply can be connected to boost the juice up to 9v. Sparkys VEX motors are burdened with more weight than they are rated for, so the added power helps spin the wheels (The motors seem to have an internal cut-off circuit that prevents them from burning out if too much power is applied). If you are using Arduino or some other controller board, look online to find the info needed to drive servos. It should be pretty easy to find.
Step 14: SOFTWARE
Sparky actually uses requires two computers - the onboard Mac Mini, and some other computer that is web-enabled and video-chat ready. Think of this second computer as Sparkys control booth. I use an old powerbook and iSight camera.
Both computers require Skype. The Sparky project uses it for video chat, but also exploits its text chat function to shoehorn motor control commands through the Skype connection- so if Skype is connecting, the robot is drivable with no additional connection between them required.
How it works: In addition to Skype, Sparky requires custom plug-in software. The control booth plug-in comes with videogame-style, WASD controls mapped to the keyboard. Keystrokes from the booth are sent as text messages within Skype to Sparkys onboard Mac Mini, where another copy of the plug-in receives the text messages and translates them into motion commands sent to the MAKE controller, which sends power to the servos.
Here is the custom software
Here are software instructions
Step 15: BEING SPARKY
Driving Sparky is a unique experience, a blend of Martian rover sim and live social networking peppered with frequent technical fire drills. It makes people think about both their fears and attraction to the idea of a human-machine hybrid. But its amazing how quickly people seem to forget that they are speaking with a half-machine cyborg and within a few exchanges, Sparky is able to create a real, human connection between participants.
Over the years, versions of Sparky have served as a gallery tour guide, jazz singer and bandleader, party host and virtual Burning Man participant. But the potential for Sparky is far greater than these examples. What can you make Sparky do? Where would you take it? How do you see telepresence robots affecting the way you interact with the world?