The Gomi Guide to Mobile Telepresence

We at Gomi Style are pleased to announce the launch of our new sister site: SparkyJr.com.

sparky_cp_logo

Sparky Jr. is a one-stop shop for everything you need to make your own DIY videochat robot. We give you free software, instructions, templates and more – Plus a whole community of people making their own telepresence robots and rovers.  Post your projects, ask questions, and see what others are making.

The Sparky project has been featured in Make Magazine, on PRI’s Studio 360 radio show, and been presented at AFI’s DigiFest, The San Jose Museum of Art, the SFMoMA and museums and galleries throughout the country.

Click Now and join the growing community of DIY Telepresence robot builders

more about “Broadcast Yourself.“, posted with vodpod

SPARKY:. The name Sparky is based on an acronym for “Self Portrait Artifact –Roving Chassis I”  an art project started in the early 90’s. Since that time Sparky has evolved from an oversized RC toy with a couple of “baby monitor” video cameras into a fully web-enabled autonomous telepresence robot. There have been many different versions over the years, using a wide range of technologies and solutions, but always with the same goal – to provide a mobile live telepresence and remote autonomous roving. Most of the gear required for this project is available off-the-shelf, and we provide the free open-source software.  Join the Sparky social network to keep in the loop.

Watch Sparky on History Channel’s Modern Marvels.

Sparky 1, 1994

Sparky 1, 1994

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 it’s 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.

Sparky 2 prototype, 2005

Sparky 1.5

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?

Hopefully this little guide will inspire you to build your own Sparky robot and take it in new directions that no one else has considered. Join the Sparky social network. If you do make a Sparky, send us in pics and video and we’ll post it to the site.

Step by Step Plans to build a DIY Sparky

Programer John Celenza performs as Sparky, the web-enabled telepresence robot

Programer John Celenza as Sparky 2

Sparky 2 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.

Join the Sparky social network now

+++++++++++++++++++++++++++++++++++++++

PARTS LIST

Partially assembled Vex parts

Chassis and Drive Train:  Vex is popular educational robotic kit. It’s a lot like a traditional Erector set, with the added inclusion of sophisticated servo motors, wheels and gears (VEX also includes it’s own programming language and computer board for making complete robots, but we are not using these for Sparky).

Battery and DC-to-AC converter are good for a few hours juice.

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.

Mac Mini

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).

My favorite controller board.

Nervous System: To bridge the gap between the computer and the servo motors, Sparky uses a MAKE Controller board.

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.

Other Components:
LCD monitor, mouse, keyboard
Webcam
Cables – USB, Firewire, Ethernet, power, video, audio
Adjustable power supply for boosting servo strength
Caster wheels

Tools:
Allen wrench for Vex
Screwdriver
Snips
Assorted zip ties

+++++++++++++++++++++++++++++++++++++++

CHASSIS & DRIVE TRAIN

Generic casters aid agility

Past versions of Sparky’s 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.

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!).

Vex servo, gears and wheel assembly

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.

An old LCD, just like yours...

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.

+++++++++++++++++++++++++++++++++++++++

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. I’ve even begun to poke around at the idea of an iPhone Sparky, but that has it’s 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, it’s 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.

Join Sparky Jr. – The DIY robot community sitesparky_cp_logoFree Software, Instructions, Hardware, Links and more…

+++++++++++++++++++++++++++++++++++++++

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.

Switching the servo power jumper

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. Sparky’s 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.

+++++++++++++++++++++++++++++++++++++++

SOFTWARE

The control booth

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 Sparky’s “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 Sparky’s 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 are some instructions:

Overview
——–
There are several pieces of software that need to be installed and configured:

Sparky Software Kit 1.0
New BSD License
Author: John Celenza

1) Sparky Skype Listener Plugin — runs along with Skype and listens
for incoming text messages with motor commands
2) Sparky MakeBoard Controller — communicates with the Skype
Listener, parses abstract motor commands, sends low-level commands to
MakeBoard
3) Sparky Controller Skype Plugin — runs along with Skype on any Mac
OSX 10.4 and greater machine which you want to use drive your robot

Once you have these software packages installed and configured, you
are ready to go

1) Sparky Skype Listener Plugin
——————————-

+ Download/Install Skype onto the robot computer
+ Download the Sparky Skpe Listener Plugin from
http://code.google.com/p/sparkyrobotcontroller/.
+ Drop this plugin application anywhere on your system, the Desktop is
perfectly fine
+ Whenever you use your robot, you will want to start Skype, then
start the listener plugin
+ Once the listener plugin begins running, press the “Connect” button.
You should see a success message. If you do not, make sure you have
started Skype.

2) Sparky MakeBoard Controller
——————————
Pre-reqs:
You will need to know a little about the “Terminal” program to install
the listener and prepare it to run automatically on startup
Your make board must be connected by ethernet and be configured to run
at 192.168.0.200

+ Download the MakeBoard Controller files from
http://code.google.com/p/sparkyrobotcontroller
+ There are 3 files to download, put these in /Sparky on your robot system:
control.hdf — confiuration file that maps a control string like
“move_left” to servo actions
controld.php — PHP script that listens for commands from the Skype plugin
shell_check_sprarky.php — PHP script the makes sure controld.php is
always running

+ edit control.hdf to configure the move commands as your wish. By
default, these commands are support:
move_straight
move_straight_slow
move_left
move_left_slow
move_right
move_right_slow
move_reverse
move_reverse_slow
stop
+ add the check script to your cron scheduler so controld.php starts
on system startup:
open a Terminal (From Applications->Utilities->Terminal)
type “crontab -e” — this will start the VI editor, if you do not
know how to use VI, try looking on Google, or just follow these steps:
move to the last line of the file with arrow-keys
type “i”
paste: “* * * * * php /Sparky/shell_check_sparky.php &> /dev/null”
type “:wq” (which should appear at the bottom of the screen)

3) Sparky Controller Skype Plugin
———————————
On the machine from which you want to drive your robot, first install
Skype. Then goto #URL# and download the “Sparky Controller Skype
Plugin”.
Install this plugin application anywhere on your system, the Desktop is fine.
When you start Skype, start this application second. Then click
“Connect”, you should see a confirmation that the plugin is connected
to your Skype software.

Opertation Instructions
———————–
Follow these steps to get your robot running once you have installed
all of the software.

On the robot
————
1) Make sure you have a working wireless network that the robot can join
2) Start up your robot
3) Once booted and network connected, start Skype
4) After Skype fully loads and logs in, start the Sparky Skype Listener Plugin
5) Press the “Connect” button on the Skype Listener Plugin, you should
see a success message if the plugin could connect to Skype.

That should do it*! When someone calls the robot, it’ll automatically answer!

*WHACKY BUG NOTE — always click (focus) the text chat window in Skype
as the last action after making contact with a human driver. You may
need to open a text chat window from the “Windows” menu.

On the controller
—————–
1) Start Skype and log in
2) Start the “Sparky Controller Skype Plugin” and click connect, you
should see a success message if the plugin could connect to Skype.
3) Call your ready robot and start driving!

++++++++++++++++++++++++++++++++++++++

Join Sparky Jr. – The DIY robot community sitesparky_cp_logoFree Software, Instructions, Hardware, Links and more…

20 Responses to “Sparky”

  1. GearGuy Says:

    Can’t wait to try this on my own!

  2. DanCoyote Says:

    Rock on Sparky! Sparky has been party host, exploratorium style explainer, jazz singer, burning man participant and changes shape, gender and processor power faster than a speeding electric motorcycle!

    What can’t Sparky do?

    Cheers!

    Desert Critter


  3. [...] Build instructions, including a custom Skype plug-in to control the robot via text messages, here. Read more | Permalink | Comments | Read more articles in Robotics | Digg this! No tags for this post. [...]

  4. skype the best Says:

    very cool :)


  5. [...] Sparky « GOMI Style The name Sparky is based on an acronym for “Self Portrait Artifact – Roving Chassis I” an awkward title for an art project begun in the early 90’s.  Since that time Sparky has evolved from an oversized RC toy with a couple of “baby monitor” video cameras into a fully web-enabled autonomous telepresence robot.  There have been many different versions over the years, using a wide range of technologies and solutions, but always with the same goal – to provide a platform for live video telepresence and remote autonomous roving.  Most of the gear required for this project is available off-the-shelf and much of what I used was already in my shop from previous projects –hopefully you will have some similar gear, but be prepared to improvise, dumpster dive or hit Craigslist for missing parts. [...]


  6. [...] are free instructions and software available atGomiStyle.com, so you can build your own Sparky robot using stuff you probably already [...]

  7. Justin Says:

    Hey guys,

    I have been trying to build my own but I am having trouble with the Make Controller.

    Both Skype plugins are communicating with each other but I am getting no response from the motors. I am trying to track down where the communication is getting lost. I am afraid there might be a problem with the cron. How can I test if it is working. I am also getting this error in my console from the SkypeAPITest.

    “Can’t send Skype command: aCommandString ==nil”

    Any suggestions?

  8. Cliff Says:

    What did you take to move the original SPARKY? WheelchairMotors or what? I can understand the programming, but not the mechanics to move something of 80 pounds weight!? Please give me a hint!!!! PLEEEAAAZE!

  9. Kevin Groce Says:

    Wheelchair motors did the tick on the original sparky if I am not mistaken.

  10. Kevin Groce Says:

    What’s the reason you need OSX 10.4 ?

    I have an old g3 Ibook 800mhz

    I would love to use for this project!

    I tried skype and it runs like a dream!


  11. Hi Kevin-

    Thanks for the comments. The custom plugin was built for a duel intel mac, not a PowerPC. But the code is pretty basic and can be rewritten or modified for older processors, so it can be done with a g3. Let me know if you go for it.

    -Marque


  12. [...] 2, along with a step-by-step video are freely available on the project page and on Marque’s site, Gomi Style, so you can build your [...]


  13. [...] 2, along with a step-by-step video are freely available on the project page and on Marque’s site, Gomi Style, so you can build your [...]

  14. Adi Says:

    ok. I want a sparky. preferably one that stands tall. I’m too lazy to built one. Is there anyone that provides Sparky building services?

  15. Lupe Botha Says:

    Detailed article can i translate into Italian for our blogs visitors? Thanks

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.