Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
The main code provides a REST API that means control systems can be written independently of the main code. This allows a lot of flexibility and the possibility of some forms of automation or reactions to the environment (such as recognising when someone is standing infront of the droid, and triggering some form of reaction)
By default, there is always a web interface available at the Pi IP address, this gives control over scripts, simple servo operation, sounds, and also the ability to shutdown the Pi cleanly.
If R2 has an internet connection, then it is possible to do some basic communication via Telegram instant messenger
With the API in place, there are many different options for joysticks. There is a wrapper script to make the selection of which controller is active.
The PS3 controller allows for many combinations of buttons to trigger all sorts of effects and actions. The code included will read in config files for combinations and call the REST API to trigger them. It will also directly control the main drive motors.
This provides a simple and stealthy way to control R2. Using a PSMove controller most activities can be done with one hand. As with the PS3 controller, config files with button combinations is read in and triggers the r2_control REST API. The main drive is controlled using the analog stick.
Similar to the PS3 controller, but with fewer available key combinations, the Wii remote and nunchuck have the benefit that the remote can be hidden in an inside pocket of a jacket, and the nunchuck cable run down the sleeve to give a very discrete controller, to heighten the illusion of R2 and remove the site of an operator running him.