Return to Robotics Tutorials

Build your own Robot Remote Control

Unless a robot is tethered, most robots need some form of remote control. There are many easy options available to control a robot remotely. This article compares a few ways robots can be controlled.

Comparison of Robot Remote Controllers

When building a robot controller, there are countless options available. Here are a few that I have explored:

  • Infra-Red (IR) - The cheapest option overall is to implement an IR transmitter / receiver LED pair. These IR modules typically incorporate a modulation scheme that helps block out ambient IR light (eg. overhead fluorescent lights, sunlight). From eBay, you can find these transmitter / receiver pairs for approximately $3. A convenient membrane control pad (transmitter) is usually included. Most beginner robotic kits include an IR sensor.
    • The downside is the limited line-of-sight range (eg. 10-30 feet) and no proportional control.
  • Wii Nunchuk - The cheapest proportional control solution of all is the wired Wii Nunchuk controller ("Wiichuk"). For about U$4 from eBay, you get a handheld I2C-based controller containing a proportional joystick, a 3-axis accelerometer and a couple buttons. The form factor is well-suited for one-handed operation.
    • The integrated accelerometer is great for  robot arm control
    • Need to add a WiiChuck adapter to interface with the proprietary connector.
  • Smartphone with WiFi - Given the ease of adding WiFi support to a robot (especially for ones based on Raspberry Pi), it is tempting to create a controller that leverages your smartphone (iPhone or Android) as the control input. While it is easy to get going (assuming your robot has integrated WiFi), this approach has some significant disadvantages to consider.
    • WiFi range is often very limited, need to create a WiFi network / access point.
    • No tactile feedback on the control inputs. For example: drawing two joysticks on a smartphone display can work well if you are watching where your fingers are placed, but trying to navigate the controls without watching leads to incorrect positioning over the visual buttons, leading to incorrect input.
  • PS2 Transmitter
    PS2 Controller - I have tested several versions of the popular wireless PS2 Controllers to drive my 4WD rover. I have used the generic v3 PS2 controller, v4 and a Lynxmotion PS2. It includes two dual-axis proportional thumbsticks and a large number of buttons. The 2.4GHz transmitter is mated with a small SPI receiver which I found to be good for about 10-30 feet range. While it was relatively easy to get this going, I wouldn't recommend it for any serious robot projects. There are a few issues to consider with the PS2 controller other than its limited range:
    • Frequent connection issues: I frequently found it difficult to connect / reconnect the transmitter to receiver ("pair" them) without a lot of resets and luck. I have tested three different models with fresh batteries, so I tend to believe this to be a common issue.
    • Large controller dead-zone: These thumbstick controllers tend to have a large dead-zone which masks any directional input until the stick is moved a moderate distance from the center-point.
    • Limited thumbstick range: After moving out of the controller deadzone, there is very little range left in the thumbstick for proportional input before the maximum stick limits are reached. Therefore, it is very hard to get precise robot motor control from the dual-axis thumbsticks. To make matters worse, a differential drive robot (depending on drive algorithm) needs to have balanced left and right throttle input to drive straight. Unless a special differential drive algorithm is used, these controllers will make driving the robot straight very difficult.
  • Turnigy 9X Transmitter
    RC Transmitter - Most R/C controllers include a pair of dual-axis joysticks (gimbals) and a multitude of switches. Typically providing between four and nine channels, these integrated transmitters are often used to drive cars, airplanes, helis or drones. Older models tended to favor 27MHz or 72MHz, while more recent/advanced models use 2.4GHz.
    • When compared to the PS2 Controllers, the Radio Control transmitters provide a much more usable control input range, often with little deadzone.
    • Many transmitter / receiver pairs can operate in excess of a mile range. I purchased a 9-channel Turnigy TGY-9X for $49 and found it worked very well for robot control, though it can be a challenge to repurpose some of the additional channels for your own use (as they are intended for plane / heli controls). You may need to be creative in how the additional channels are mapped into your specific robot control needs.
    • Most RC receivers (such as Turnigy 9X8Cv2) provide a set of PWM output signals. These outputs are convenient if you are driving a servo motor directly (as you would in a RC airplane or helicopter), but most robots will require further CPU processing before passing on the control to a motor driver circuit. In that case you will need a way of sampling the PWM signals into a form that can be read by the Raspberry Pi, Arduino or other robot processor. I explained how you can convert the RC PWM signals into a usable control value on another page.
  • Custom Telemetry ZigBee controller
    Custom ZigBee Controller
    Custom Controller with ZigBee (XBee) - The most versatile controller of all is to create your own (with gimbals and switches) and leverage a wireless technology such as ZigBee. For an example of a custom touchscreen controller with ZigBee, see my robot telemetry controller.
    • ZigBee is an easy-to-use communications protocol that generally offers low-power consumption and low data rate (< 250kbps) operations. Though most modules are low-range (eg. < 300'), some of the higher-power models (eg. 60mW) can work at ranges over a mile.
    • With a custom controller, you can select the appropriate combination of joysticks (gimbals) and switches that suit your robot. An onboard microcontroller samples the control inputs and sends the data across the ZigBee network to the robot.
    • The big advantage of this approach is that you can provide two-way communication with the robot (commonly described as telemetry data). By seeing information from the robot on the controller, the user has far greater awareness of what the robot is doing and thinking!


Reader's Comments:

Please leave your comments or suggestions below!


Leave a comment or suggestion for this page:

(Never Shown - Optional)