Android™ Based Robotics provides an inexpensive platform for robotic control, coupling the powerful capabilities of Android smartphones with off-the-shelf robotic components. Example uses include academic research in cognition and robotics, robotics competitions, classroom instruction, and personal projects.

Background





Research Projects

Dynamic Path Planning





Neuromodulation, Attention and Localization Using a Novel Android™ Robotic Platform





Tutorials

UCI Rescue Robotics Ground Robot

Our source files contain code for Android apps to control both robots.





Source Files

We created a public organization on GitHub to regroup the source code of different Android based robotic projects, called UCI-ABR.



GitHub Android Based Robotics: UCI-ABR

Forum / Discussion Group: android-based-robotics



We invite people to add their own projects in order to share their knowledge with others and create a larger community.



ABR_TEST_IOIO

Simple Android App used to test your IOIO. Use this app to control a servo or motor (PWM output) with a slider, read and display values from an analog sensor (e.g. IR), and switch on/off the LED (digital output). Good example to see how you can create a separate class file for the IOIO thread.

Source code: ABR_TEST_IOIO.

ABR_RescueRobotics

App used to run UCI Rescue Robotics ground robot at the Rescue Robotics event hosted by VitalLink in 2015

Source code: ABR_RescueRobotics.

ABR_Controller

Control the UCI Rescue Robotics ground robot over bluetooth using joysticks.

Source code: ABR_Controller.

ABR_ClientServerRemote

Control the UCI Rescue Robotics ground robot using two Android phones communicating through wifi. One phone controls the robot over Bluetooth connection while streaming video information to the remote phone. The remote phone issues commands for movement and camera pan/tilt.

Source code: ABR_ClientServerRemote.

ABR_RC_car

Use your phone to control a RC car remotely over Bluetooth. App uses the accelerometer to set pwm commands in order to control the servo and motor of the car. Good example to see how you can get values from the phone sensors (accelerometer, gyroscope, compass).

Source code: ABR_RC_car.

ABR_client (beta)

Android App used to connect to a TCP server (ABR_server) and allow streaming of data and remote control. Start and connect Android client to the server using the IP address of the server and port number (e.g. 9000). Good example to see how you can connect and send/receive data to/from a TCP server, send data over UDP sockets, capture frames from the phone’s camera for streaming.

ON GOING PROGRESS: this app still needs debugging, comments, optimization...

Source code: ABR_client.

ABR_server (beta)

QT (c++) project: Server running on PC. This server can receive connections from multiple phones and display video feedback and sensory information. It can also be used to control remotely robots.

ON GOING PROGRESS: this program still needs debugging, comments, optimization...

Source code: ABR_server.

Resources

Android

IOIO

QT

For The Android Car

Java Slick library: Slick 2D

Discussion google group: IOIO discussion