Telepresence Robot

Telepresence robot build details

Telepresence has been around for a while, with telerobotics only recently coming into commercial applications.  This is ArchReactor's effort at a DIY Telepresence bot build from easily, and cheaply, obtainable materials, such as an Arduino, an unused PC and webcam, and various other spare parts.
 
The starting point of the robot is a power wheelchair base obtained from craigslist.  The original plan was to tap into the chair's own controller, but this proved quite complex, and in trying the controller was damaged. A replacement controller was rather expensive, so we opted to instead get a common motor controller to directly drive the motors.  
 
The basic process is this:
  • Strip the wheelchair to its basics.
  • Remove the electric brakes from the motors (more on this later)
  • Re-wire the 2 12V batteries from serial (24V) to paralell (12V) to increase runtime.
  • Add a "pole" to bring the monitor and webcam up to standing eye level.
  • Add supporting electronics.
  • Write software.
We were able to separate the seat mount from the seat and re-use that for the monitor pole.  This also allows easy removal of the pole for transport.  
 
The brakes were a minor challenge, they work opposite from bike or car brakes in that they are applied by default with a strong spring and use a strong electromagnet to release them.  This is needed in a device made to carry 300lbs so that it won't roll down a hill if the battery dies while it's being used.  We're not putting a lot of weight on the base so the motor gearing is plenty to keep it from rolling, and the brakes use a lot of power, which we'll need to run a PC and monitor.  Guides for accessing the brakes are available on-line for most wheel chairs, and the design of ours allowed simply removing them and reassembling the gearbox.

The Pictures

View album on Imgur

The parts

Here's the parts we used.  Most of this is substitutable for equivalents or more appropriate parts for your build. See photos at end of this page.

  • Pronto wheelchair
  • Sabertooth 2x25 motor controller
  • Arduino Mega (an Uno will also work with the current code)
  • ITead Sensor shield (a proto shield would work fine)
  • several high power plugs salvaged from power backup batteries (such as APC UPS)
  • a common light switch and box for a motor power "kill switch"
  • an AMD E-series powered NetTop media PC.
  • a 15" LCD
  • length of iron pipe threaded on both ends with "floor plates" for mounting
  • 12VDC to 120VAC power inverter to run the PC
  • Wifi-N router (the Nettop's wifi was found unreliable, and this also allows us to demo when no internet is available.
  • IR receiver and remote salvaged from a non-functional digital picture frame
  • "power bus" terminal strip
  • keyboard mounting tray
Build is fairly straightforward, mount to look like the robot you want, and wire as per best practices and motor controler instructions.  Our is designed so that th pole, and PC and monitor and kill switch, easily unplug to separate from the base.  The kill switch unplugging means that the motors cannot accidentally be energized durring transport.  The motor electronics also easy unplug so that the motors or the controller can easily be remove for maintaince and debugging.
 
Notes: The AMD E-series is just barely sufficient for the task.  A laptop would simplify the design and lower the power profile for better runtimes, we did not have one on-hand.
 

The Software

The system use WebRTC so that no special software or client plugin is needed, just a new enough Chrome or Firefox browser, including Chrome for Android. 
Basic design is this:
  • Server component in Node.js that handles commands to the Arduino via USB and negotiates WebRTC connections using Socket.io.
  • Web interface using JQuery to handle robot driving control
The Node server only brokers the WebRTC connections, so it's fairly lightweight (keep this in mind for later).  The WebRTC standard implemented in the browers talks directly to each other, so it's not difficult to make go on a LAN, but getting it to work behind firewalls requires something called an ICE server.  Our current code does not use an ICE server and so only works on LANs, which is OK for now as we demonstrate the technology and improve drivability.  It's actually quite difficult to remotely drive it now, and the wheelchair base is powerful enough to hurt someone if things go wrong.
 
The Node and browser code is heavily based on the WebRTC Codelab walkthrough.  Additional messaging channels and serial IO code were added to drive the robot.
 
Our current code, and installation instructions, are available at ArchReactor's GitHub page.  It's been tested on Windows 8.1 x64 and Ubuntu Linux 14.04 x86. Please use the github "issues" features to report any problems.  UPDATE:  As of 5/12/2015 rRaspberryPi is also tested for the Node server only.  Raspbians Node is too old, and the latest Node is too new.  A manual install of Node 0.10.16 is the only version verified to work due to ARM compatability with the Serialport module.
 

The Future

Performance and power use are both issues.  Since the node server doesn't use a lot of resources the plan is to use a small linux system, such as Raspberry PI or Intel Edison, for the server and robot control (possibly removing the Arduino too), then use an Android tablet for the "head".  This would also make it easier to add a pan and tilt mechanism to the head so it can look around without driving.  Being able to look down and see the wheels will make remote driving a lot easier and less risky.

 

 

Posted by
Chris Weiss's picture
Chris Weiss
on Monday, June 8th, 2015
| More

Agenda

Sunday, April 22nd

  1. Open Build Something!
    • Start time: 07:00pm
    • End time: 10:00pm
    • Where: 2215 Scott Ave, St. Louis, MO 63103, USA
    • Come stop by and visit! Open build night to work on projects and hang out!

    • View this event in Google Calendar

Tuesday, April 24th

  1. Class: 3D Printer Basics

Thursday, April 26th

  1. Armoring Class: Riveting Basics
    • Start time: 06:00pm
    • End time: 09:00pm
    • Where: Arch Reactor, 2215 Scott Ave, St. Louis, MO 63103, USA
    • This is the first of a monthly class series on Armoring, with an emphasis on SCA (Society For Creative Anachronism) legal armor. These classes will be co-hosted by Amberly Brown and Mike Martin and open to anyone with an interest in Armor for SCA, LARP, cosplay, etc.Riveting Basics:

      • What type of rivet should you use for different materials.
      • Tips and tricks for riveting in tight places.
      • How to rivet joints and other flexible connections.
      • Discussion, hands-on examples, and open time to work on your project with two experienced SCA fighters and armorers.
      • Rivets and some strapping leather will be available (copper, hardened aluminum, and brass rivets. Black leather) but if you have your own, please bring it.
      • No cost, but donations to AR are always welcome.
    • View this event in Google Calendar

Friday, April 27th

  1. 3D Printer Meetup

Saturday, April 28th

  1. Sewing Cat Trap Covers & Stuffing Catnip Mice
    • Start time: 10:00am
    • End time: 02:00pm
    • Where: 2215 Scott Ave, St. Louis, MO 63103, USA, Arch Reactor
    • Please join members and supporters of St. Louis Feral Cat Outreach at Arch Reactor (2215 Scott Ave, 63103, behind UPS) to help sew trap-covers which they will use when trapping kitties (for trap/neuter/return activities) and members of Stray Haven Feline Rescue to stuff catnip mice, on Saturday, April 28. We'll start about 10 and some of us will be there until at least 2pm, possibly later.

      For sewing trap covers, two or three sewing machines will be supplied but feel free to bring your own. We have plenty of table space for both sewing and cutting. For Mouse-stuffing, mice, fluff, and catnip will be supplied.

      Can't sew? Come help cut and pin or stuff mice or just help keep us organized!

      If you have fleece to donate, please bring it along (best if at least 30" x 36" pieces but we can make it work if smaller. Any other large pieces of fabric (like old, sturdy bed sheets) can also work for trap covers.

      The time of this event is flexible, so feel free to come late, leave early, or stay later than 2pm.

      Arch Reactor will be hosting monthly Board Game Day starting around noon but we have plenty of space to accommodate both groups simultaneously. If you like gaming, please feel free to join in that event which will run until at least 10pm, possibly much later.

      Soda and bottled water are available for modest donation. TJs pizza available for lunch if you wish for $10 each with a wide variety of flavors in stock or feel free to bring in a sack lunch. Microwave also available.

    • View this event in Google Calendar
  2. April BoardGame Night * ArchReactor
    • Start time: 12:00pm
    • End time: 11:30pm
    • Where: 2215 Scott Ave, St. Louis, MO 63103, USA, Archreactor, Arch Reactor
    • Come On Out and Play games With us. If you don't know games that's OK we are friendly and love to teach. If you do, bring your Favorites along and let get a Game in.

      We'll have Food there, and I'll happily take 5$ in exchange for letting you eat all day.

      We start at Noonish and Play until you Leave or after Midnight, whichever comes last. :)

    • View this event in Google Calendar