# wheelphone — GCtronic wiki

> Wheelphone, a robotic platform for mobile phones.
>
> Generated 2026-10-08 13:11 UTC from https://www.gctronic.com/doc/index.php. Pages in this file: 8.
>
> When answering questions from this file, use only its content, cite the page and section you rely on together with its direct link (the "Link:" line under each section heading), and say explicitly when the answer is not here.

## Contents

- Wheelphone (https://www.gctronic.com/doc/index.php?title=Wheelphone)
- Getting started (https://www.gctronic.com/doc/index.php?title=Getting_started)
- Hands-on (https://www.gctronic.com/doc/index.php?title=Hands-on)
- Android software (https://www.gctronic.com/doc/index.php?title=Android_software)
- IPhone software (https://www.gctronic.com/doc/index.php?title=IPhone_software)
- Wheelphone-images (https://www.gctronic.com/doc/index.php?title=Wheelphone-images)
- Wheelphone-videos (https://www.gctronic.com/doc/index.php?title=Wheelphone-videos)
- Wheelphone technical specifications (https://www.gctronic.com/doc/index.php?title=Wheelphone_technical_specifications)

---

# Wheelphone

Source: https://www.gctronic.com/doc/index.php?title=Wheelphone
Last edited: 2026-04-22T09:32:10Z

# Features

Link: https://www.gctronic.com/doc/index.php?title=Wheelphone#Features

- compatible with **Android** phones (USB communication) and **iPhone** (sound cable)
- telepresence (with Skype and robot remote control) ![phones-video-call-icon.png](https://www.gctronic.com/doc/images/2/2a/phones-video-call-icon.png)
- avoid obstacles ![phones-video-call-icon.png](https://www.gctronic.com/doc/images/2/2a/phones-video-call-icon.png)
- doesn't fall from table ![phones-video-call-icon.png](https://www.gctronic.com/doc/images/2/2a/phones-video-call-icon.png)
- runs on carpet ![phones-video-call-icon.png](https://www.gctronic.com/doc/images/2/2a/phones-video-call-icon.png)
- docking station ![phones-video-call-icon.png](https://www.gctronic.com/doc/images/2/2a/phones-video-call-icon.png)
- charges phone
- available examples (apps) source code

For more technical specifications refer to the page [Wheelphone technical specifications](http://www.gctronic.com/doc/index.php?title=Wheelphone_technical_specifications)

# Getting started

Link: https://www.gctronic.com/doc/index.php?title=Wheelphone#Getting_started

Informations on how to start playing with the Wheelphone robot can be found in the following page [Getting started](http://www.gctronic.com/doc/index.php?title=Getting_started).

# Software

Link: https://www.gctronic.com/doc/index.php?title=Wheelphone#Software

You can find the software related to the **Android** platform on the following page [**Android software**](http://www.gctronic.com/doc/index.php?title=Android_software).
You can find the software related to the **iPhone** platform on the follwing page [**iPhone software**](http://www.gctronic.com/doc/index.php?title=IPhone_software).

# Media

Link: https://www.gctronic.com/doc/index.php?title=Wheelphone#Media

You can find images of the Wheelphone in the following page: [Wheelphone images](http://www.gctronic.com/doc/index.php?title=Wheelphone-images).
You can find various videos of the Wheelphone in the following page: [Wheelphone videos](http://www.gctronic.com/doc/index.php?title=Wheelphone-videos).

# Hands-on

Link: https://www.gctronic.com/doc/index.php?title=Wheelphone#Hands-on

If you're interested in doing some mechanical experiments to play with the Wheelphone robot visit the section [Hands-on](http://www.gctronic.com/doc/index.php?title=Hands-on).

---

# Getting started

Source: https://www.gctronic.com/doc/index.php?title=Getting_started
Last edited: 2026-04-22T09:25:34Z

[Wheelphone main wiki](http://www.gctronic.com/doc/index.php?title=Wheelphone)

# Package content

Link: https://www.gctronic.com/doc/index.php?title=Getting_started#Package_content

In the package you will receive:

- the Wheelphone robot
- iPhone adapters (iPhone 4 to micro USB and iPhone 5 to micro USB)
- a wide-angle lens

![wheelphone-package.jpg](https://www.gctronic.com/doc/images/6/65/wheelphone-package.jpg)

You can optionally order an android phone with all the Wheelphone apps pre-installed and the charging station. Refers to the [shop](https://www.gctronic.com/shop.php#Wheelphone%20robot).

# First steps

Link: https://www.gctronic.com/doc/index.php?title=Getting_started#First_steps

The Wheelphone robot comes with two cables directly connected to it: one is the sound cable and the other is the micro USB cable.

- if you have an Android phone: the micro USB cable is used to communicate with the robot most of the time. At the moment only when the robot need to be controlled through Skype the sound cable is used instead of the USB cable. The robot (when ON) charges the phone with the micro USB.
- if you have an iPhone: the sound cable will be used to transfer data between the robot and the iPhone, instead the micro USB cable will be used to charge the robot.

1. Download and install in your phone one (or more) of the applications available for the Wheelphone robot:

- Android: you can either download the apps from [Google Play](https://play.google.com/store/search?q=wheelphone&c=apps) or from the Wheelphone wiki, refers to section [Android software](http://www.gctronic.com/doc/index.php?title=Android_software). If you navigate the wiki you need to click the link named *app-name.apk* in order to install an application; when the download finishes, click on it to start the actual installation.
- iPhone: you can either download the apps from the AppStore or from the Wheelphone wiki, refers to section [iPhone software](http://www.gctronic.com/doc/index.php?title=iPhone_software).

2. Connect the phone to the robot:

- Android: connect the micro USB cable coming from the robot to the phone

![wheelphone-gs-2-android.jpg](https://www.gctronic.com/doc/images/c/ca/wheelphone-gs-2-android.jpg)

- iPhone: connect the sound cable to the earphone jack and the micro USB cable to the iPhone using the correct adapter (iPhone4 or iPhone5)

![wheelphone-gs-2-iphone.jpg](https://www.gctronic.com/doc/images/c/c9/wheelphone-gs-2-iphone.jpg)

3. Once the cable is connected you need to place the phone on the back-side of the robot. In order to hold the phone in place you have two bendable *arms* that need to be adapted to the phone size. Before inserting the phone, bend the arms a little more than the phone thickness, paying attention also to the phone width. Once the arms are bent slide in the phone from the top to the bottom until the connector is near the ground (pay attention to not touch the ground). Put the remaining wires under the robot case to avoid them to float around. A good test to know whether the phone is well mounted or not is to put the robot upside down.
![wheelphone-gs-3-1.jpg](https://www.gctronic.com/doc/images/7/77/wheelphone-gs-3-1.jpg) ![wheelphone-gs-3-2.jpg](https://www.gctronic.com/doc/images/a/ab/wheelphone-gs-3-2.jpg) ![wheelphone-gs-3-3.jpg](https://www.gctronic.com/doc/images/b/bc/wheelphone-gs-3-3.jpg) ![wheelphone-gs-3-4.jpg](https://www.gctronic.com/doc/images/c/cd/wheelphone-gs-3-4.jpg) ![wheelphone-gs-3-5.jpg](https://www.gctronic.com/doc/images/1/15/wheelphone-gs-3-5.jpg) ![wheelphone-gs-3-6.jpg](https://www.gctronic.com/doc/images/b/bc/wheelphone-gs-3-6.jpg) ![wheelphone-gs-3-7.jpg](https://www.gctronic.com/doc/images/a/a4/wheelphone-gs-3-7.jpg) ![wheelphone-gs-3-8.jpg](https://www.gctronic.com/doc/images/2/21/wheelphone-gs-3-8.jpg)

If the arms give you problems in touching the screen and interacting with the application you can also apply an "*S*" bend to the arms as illustrated in the following image, the phone will still remain well attached to the robot if the bendable arms aren't too loose:
![WP-bendable-arms.jpg](https://www.gctronic.com/doc/images/8/84/WP-bendable-arms.jpg)

4. Now that your phone is sturdy mounted on the robot, you can switch it on (the switch is positioned on the front side of the robot)

5. Start the desired application:

- Android: a pop-up window should appear on the screen, listing all the available apps compatible with the Wheelphone; click one of them to start it.

![app-list.png](https://www.gctronic.com/doc/images/d/d0/app-list.png) ![wheelphone-gs-5-2.jpg](https://www.gctronic.com/doc/images/0/0b/wheelphone-gs-5-2.jpg)
If nothing happens, that is the list of compatible apps isn't visualized when the robot is turned on, then try to switch off the robot, wait a couple of seconds and switch on the robot again.

If you receive the following message instead of the app list when the robot is turned on, then try to switch off the robot, wait a couple of seconds and switch on the robot again.
![usb-comm-error.png](https://www.gctronic.com/doc/images/2/2a/usb-comm-error.png)

- iPhone: you can select the application to start from the ones you installed

6. Start another application:

- Android: you need to stop the current application (back button), switch off the robot, wait a couple of seconds and switch it on again, now the list of available apps should appear on the screen
- iPhone: simply stop the current one and start another one

# Charging

Link: https://www.gctronic.com/doc/index.php?title=Getting_started#Charging

There are two ways to charge the Wheelphone, you can use the micro USB female connector or use its own charger unit thanks to the 2 golden contacts in front of the device.

If you leave the phone connected to the robot through the micro USB cable (for the iPhone use the adapter) you need to turn on the robot in order to charge also the phone; if the robot is switched off only the robot will be charged.

Please note that the charger unit is twice faster (1A) than in the USB mode (500mA). Furthermore, in order to quickly charge the robot and the phone simultaneously, it's recommended to supply them with two separate power systems.

Have a look to the light during charging, one red LED close to the USB mini connector should turn on until the end of the charge, then a green LED indicates that the charge is completed.

# Robot firmware update

Link: https://www.gctronic.com/doc/index.php?title=Getting_started#Robot_firmware_update

In case you need to update the robot firmware, see below the steps. Note that the phone has to be connected to Internet where it will get the new firmware.

1. install the [bootloader application](https://projects.gctronic.com/wheelphone/WheelphoneBootloader.apk) on an Android phone (you can't upgrade the firmware with an iPhone)
2. turn off the robot and connect the phone through the micro USB cable
3. put the robot in charge; it's essential that the robot is in charge because this way it enter "upgrade mode" when turned on
4. switch on the robot (while in charge); the bootloader application on the phone starts (press ok if it doesn't start automatically)
5. the update is started automatically, wait until you see *update complete*; if after a while you do not see *update complete* restart the process from point 2
6. if all gone right then you need to close the bootloader application on the phone, switch off the robot and unplug the charge cable. Now you can use the robot normally.

---

# Hands-on

Source: https://www.gctronic.com/doc/index.php?title=Hands-on
Last edited: 2026-04-22T09:05:27Z

[Wheelphone main wiki](http://www.gctronic.com/doc/index.php?title=Wheelphone)

# Phone inclination

Link: https://www.gctronic.com/doc/index.php?title=Hands-on#Phone_inclination

In some applications you need that the phone mounted on the robot has a longer view with the back camera and this can be accomplished adding a small piece of plastic with which you can adjust the tilt. In our lab we designed a simple extension that let choose between two inclinations, the following figures compares the normal inclination (no extension) and the others two (with the extension in one side and the other side):

![inclination1.jpg](https://www.gctronic.com/doc/images/1/16/inclination1.jpg) ![inclination2.jpg](https://www.gctronic.com/doc/images/8/8b/inclination2.jpg) ![inclination3.jpg](https://www.gctronic.com/doc/images/9/99/inclination3.jpg)

The installation is very easy: just insert it in the case of the robot.
![inclination-ext.jpg](https://www.gctronic.com/doc/images/7/7d/inclination-ext.jpg)

An application that works better with this extension is the [markers navigation app](https://www.gctronic.com/doc/index.php/Android_software#Wheelphone_markers_navigation) that need to detect markers at long distance.

# Extra stabilization

Link: https://www.gctronic.com/doc/index.php?title=Hands-on#Extra_stabilization

Nowadays phones are always bigger and this is normally an advantage for the user, but the Wheelphone could get in troubles loosing the balance easier. For this reason a little weight can be placed on front of the robot to let it be more stable, especially when little ground obstacles need to be overcome. The following figure shows the plastic container (filled with lead) positioned on front of the robot thanks to the "lego connectors":

![WP-stabilization1.jpg](https://www.gctronic.com/doc/images/9/9d/WP-stabilization1.jpg) ![WP-stabilization2.jpg](https://www.gctronic.com/doc/images/3/3f/WP-stabilization2.jpg) ![WP-stabilization3.jpg](https://www.gctronic.com/doc/images/6/60/WP-stabilization3.jpg)

The plastic container is covered with some nice pictures, but you can put whatever images you like.

# Play with lego

Link: https://www.gctronic.com/doc/index.php?title=Hands-on#Play_with_lego

The Wheelphone robot has some "lego connectors" around in the case (i.e. in the bottom side near the ground sensors, in the front side over the proximity sensors, in the wheels, ...). The following figures show some lego pieces attached to the Wheelphone, e.g. you can attach two arms and play with a ball, or you can send some message to your friends, ...your fantasy is the limit.
![WP-lego1.jpg](https://www.gctronic.com/doc/images/6/6f/WP-lego1.jpg) ![WP-lego2.jpg](https://www.gctronic.com/doc/images/8/89/WP-lego2.jpg) ![WP-lego3.jpg](https://www.gctronic.com/doc/images/7/7d/WP-lego3.jpg)

# Artist extension

Link: https://www.gctronic.com/doc/index.php?title=Hands-on#Artist_extension

Brings out your artistic side with this extension that let you attach a pen in the back side of the robot. The installation is very easy, the piece must be framed to the case as shown below:
![WP-artist1.jpg](https://www.gctronic.com/doc/images/3/34/WP-artist1.jpg) ![WP-artist2.jpg](https://www.gctronic.com/doc/images/6/6b/WP-artist2.jpg)

The following video shows an example:

[Video](https://www.youtube.com/howyoutubeworks/user-settings/privacy/)

It's not a perfect heart, it's art ;-)

# Magnetic drag

Link: https://www.gctronic.com/doc/index.php?title=Hands-on#Magnetic_drag

The same plastic extension used to *work* with a pen can be used to drag some others thinks thanks to a magnetic connection; insert a little magnet inside the hole as shown in the following first picture, then you are able to be for example a locomitve:
![WP-magnetic-drag1.jpg](https://www.gctronic.com/doc/images/7/79/WP-magnetic-drag1.jpg) ![WP-magnetic-drag2.jpg](https://www.gctronic.com/doc/images/a/aa/WP-magnetic-drag2.jpg) ![WP-magnetic-drag3.jpg](https://www.gctronic.com/doc/images/0/0c/WP-magnetic-drag3.jpg)

# Video recording

Link: https://www.gctronic.com/doc/index.php?title=Hands-on#Video_recording

If you are interested in recording a video directly on the phone that is connected to the robot, thus having the perspective of the robot while is moving, you can follow these steps:

1. connect the phone to the robot and start the [monitor](https://www.gctronic.com/doc/index.php/Android_software#Monitor_advanced) application
2. take the robot in your hands and give the robot a desired speed and enable obstacle avoidance (and cliff avoidance if you are moving on a table)
3. press the *home* button of the phone
4. start the *camera app* from the Android system and start recording
5. place the robot on the ground and let it move around
6. when you are satisfied take the robot, stop the recording and turn off the robot

---

# Android software

Source: https://www.gctronic.com/doc/index.php?title=Android_software
Last edited: 2026-07-22T11:48:20Z

[Wheelphone main wiki](http://www.gctronic.com/doc/index.php?title=Wheelphone)

# Apps shortcut list

Link: https://www.gctronic.com/doc/index.php?title=Android_software#Apps_shortcut_list

- [Basic demos, simple behaviour](https://www.gctronic.com/doc/index.php/Android_software#Basic_demos):
  - [Monitor application advanced](https://www.gctronic.com/doc/index.php/Android_software#Monitor_advanced): Visualize all the sensor information on the phone and implement "move-around-on-table" behavior. [Wheelphone.apk](https://projects.gctronic.com/wheelphone/Wheelphone.apk), [![google-play.png](https://www.gctronic.com/doc/images/4/43/google-play.png)Wheelphone](https://play.google.com/store/apps/details?id=com.wheelphone.wheelphone&feature=search_result#?t=W251bGwsMSwyLDEsImNvbS53aGVlbHBob25lLndoZWVscGhvbmUiXQ..).
  - [Wheelpone odometry](https://www.gctronic.com/doc/index.php/Android_software#Wheelphone_odometry): odometry debug [WheelphoneOdometry.apk](https://projects.gctronic.com/wheelphone/WheelphoneOdomMotion-rev163.apk)
  - [Wheelpone tag detection](https://www.gctronic.com/doc/index.php/Android_software#Wheelphone_tag_detection): marker detection debug [WheelphoneTagDetection.apk](https://projects.gctronic.com/wheelphone/WheelphoneTargetDebug-rev181.apk)
  - [Wheelphone follow](https://www.gctronic.com/doc/index.php/Android_software#Wheelphone_Follow): Follow the leader application. It allows the robot to follow an object in front of it, using the front facing proximity sensors. [Wheelphone_follow.apk](https://projects.gctronic.com/wheelphone/Wheelphone_follow-rev156.apk)
  - [Wheelphone recorder](https://www.gctronic.com/doc/index.php/Android_software#Wheelphone_Recorder): record video while moving. [WheelphoneRecorder.apk](https://projects.gctronic.com/wheelphone/Wheelphone_recorder-rev159.apk)
  - [Wheelphone faceme](https://www.gctronic.com/doc/index.php/Android_software#Wheelphone_Faceme): Face-tracking application. It keeps track of the position of one face using the front facing camera, then controls the robot to try to face always the tracked face. [WheelphoneFaceme.apk](https://projects.gctronic.com/wheelphone/Wheelphone_faceme-rev155.apk)
  - [Wheelphone blob follow](https://www.gctronic.com/doc/index.php/Android_software#Blob_following): the Wheelphone robot follows a blob chosen by the user through the interface. [WheelphoneBlobDetection.apk](https://projects.gctronic.com/wheelphone/WheelphoneBlobDetection-rev160.apk)
  - [Wheelphone line follow](https://www.gctronic.com/doc/index.php/Android_software#Line_following): it allows the robot to follow a black (or white) line on the floor using the ground sensors. [WheelphoneLineFollowing.apk](https://projects.gctronic.com/wheelphone/WheelphoneLineFollowing-rev162.apk)

- [Interactive apps](https://www.gctronic.com/doc/index.php/Android_software#Interactive_demos):
  - [Wheelphone Pet](https://www.gctronic.com/doc/index.php/Android_software#Wheelphone_Pet): PET application. It makes the robot behave like a pet. A behavior module allows it to show expressions and behave accordingly. Additionally has a face-tracking and text-to-speech modules to be able to interact with the environment. [WheelphonePet.apk](https://projects.gctronic.com/wheelphone/WheelphonePet.apk) [![google-play.png](https://www.gctronic.com/doc/images/4/43/google-play.png)WheelphonePet](https://play.google.com/store/apps/details?id=com.wheelphone.pet)
  - [Wheelphone Alarm](https://www.gctronic.com/doc/index.php/Android_software#Wheelphone_Alarm): Application that interfaces with the Wheelphone to provide a playful experience when the alarm rings. [WheelphoneAlarm.apk](https://projects.gctronic.com/wheelphone/WheelphoneAlarm.apk), [![google-play.png](https://www.gctronic.com/doc/images/4/43/google-play.png)WheelphoneAlarm](https://play.google.com/store/apps/details?id=com.wheelphone.alarm)

- [Navigation apps](https://www.gctronic.com/doc/index.php/Android_software#Navigation):
  - [Wheelphone markers navigation](https://www.gctronic.com/doc/index.php/Android_software#Wheelphone_markers_navigation): markers based navigation. [WheelphoneTargetNavigation.apk](https://projects.gctronic.com/wheelphone/WheelphoneTargetNavigation.apk) [![google-play.png](https://www.gctronic.com/doc/images/4/43/google-play.png)WheelphoneTargetNavigation](https://play.google.com/store/apps/details?id=com.wheelphone.targetNavigation)
  - [Wheelphone Navigator](https://www.gctronic.com/doc/index.php/Android_software#Wheelphone_Navigator): environment navigation application. It allows the robot to navigate an environment looking for targets while avoiding obstacles. It has two modules to avoid the obstacles: (1)the robot’s front proximity sensors and (2)the camera + Optical Flow. [WheelphoneNavigator.apk](https://projects.gctronic.com/wheelphone/WheelphoneNavigator.apk) [![google-play.png](https://www.gctronic.com/doc/images/4/43/google-play.png)WheelphoneNavigator](https://play.google.com/store/apps/details?id=com.wheelphone)

- [ROS demo](https://www.gctronic.com/doc/index.php/Android_software#ROS): the robot publishes sensors and image data and the computer subscribes to them
  - phone-side: [WheelphoneROS.apk](https://projects.gctronic.com/wheelphone/WheelphoneROS.apk), [![google-play.png](https://www.gctronic.com/doc/images/4/43/google-play.png)Wheelphone ROS](https://play.google.com/store/apps/details?id=com.wheelphone.ros&feature=search_result#?t=W251bGwsMSwxLDEsImNvbS53aGVlbHBob25lLnJvcyJd).
  - pc-side: [ros pc-side binary files](https://projects.gctronic.com/wheelphone/pc-side-node-rev161-08.10.13.zip).

- [Autonomous docking](https://www.gctronic.com/doc/index.php/Android_software#Autonomous_docking):
  - [WheelphoneBlobDocking.apk](https://projects.gctronic.com/wheelphone/WheelphoneBlobDocking.apk), [![google-play.png](https://www.gctronic.com/doc/images/4/43/google-play.png)Wheelphone blob docking](https://play.google.com/store/apps/details?id=com.gctronic.android.blobDocking&feature=search_result#?t=W251bGwsMSwxLDEsImNvbS5nY3Ryb25pYy5hbmRyb2lkLmJsb2JEb2NraW5nIl0.)
  - [WheelphoneTargetDocking.apk](https://projects.gctronic.com/wheelphone/WheelphoneTargetDocking.apk), [![google-play.png](https://www.gctronic.com/doc/images/4/43/google-play.png)Wheelphone target docking](https://play.google.com/store/apps/details?id=com.wheelphone.targetDocking&hl=en)

- [Remote control](https://www.gctronic.com/doc/index.php/Android_software#Remote_control):
  - [telepresence with Skype](https://www.gctronic.com/doc/index.php/Android_software#Telepresence_with_Skype).
  - [remote control (audio, video, movement)](https://www.gctronic.com/doc/index.php/Android_software#Wheelphone_remote):[WheelphoneRemote.apk](https://projects.gctronic.com/wheelphone/WheelphoneRemote.apk), [![google-play.png](https://www.gctronic.com/doc/images/4/43/google-play.png)Wheelphone remote](https://play.google.com/store/apps/details?id=com.wheelphone.remote&feature=search_result#?t=W251bGwsMSwxLDEsImNvbS53aGVlbHBob25lLnJlbW90ZSJd).
  - [remote control (only movement)](https://www.gctronic.com/doc/index.php/Android_software#Wheelphone_remote_mini): [WheelphoneRemoteMini.apk](https://projects.gctronic.com/wheelphone/WheelphoneRemoteMini.apk), [![google-play.png](https://www.gctronic.com/doc/images/4/43/google-play.png)Wheelphone remote mini](https://play.google.com/store/apps/details?id=com.wheelphone.remotemini&feature=search_result#?t=W251bGwsMSwxLDEsImNvbS53aGVlbHBob25lLnJlbW90ZW1pbmkiXQ..).

# Supported phones

Link: https://www.gctronic.com/doc/index.php?title=Android_software#Supported_phones

Some phones are reported to not work due to missed system libraries; you can test if your phone should be supported with the following application: [features.apk](https://projects.gctronic.com/wheelphone/features.apk). From the list of features that is shown the *android.hardware.usb.accessory* must be present. If you are intereseted you can find the source code from the following link [features.zip](https://projects.gctronic.com/wheelphone/features.zip)
Moreover the phone must be configured in order to accept installation of applications coming from different sources than Play Store.

Here is a list of phones that are tested to be working:

- Sony Ericsson Xperia arc LT15i (Android 2.3.4)
- Sony Ericsson Xperia Mini (Android 2.3.4, Android 4.0.4)
- Sony Ericsson Xperia tipo ST21i2 (Android 4.0.4)
- LG Nexus 4 (Android 4.2+)
- Samsung Galaxy S2 (Android 4.0.3)
- Samsung Galaxy S3 Mini (Android 4.1.1)
- Samsung Galaxy S3 (Android 4.1.2)
- Samsung Galaxy S4 (Android 4.2.2)
- Samsung Galaxy S Duos (Android 4.0.4)
- Huawei Ascend Y300 (Android 4.1.1)
- Huawei Ascend Y530 (Android 4.3)

Phones running Android 4.1 (or later) works with the new Android Open Accessory Protocol Version 2.0, thus you need to update to the latest robot firmware (>= rev43).

Let us know if your phone is working at the following address:
![mail.gif](https://www.gctronic.com/doc/images/a/ab/mail.gif)

# Wheelphone library

Link: https://www.gctronic.com/doc/index.php?title=Android_software#Wheelphone_library

Wheelphone library to be used in android applications development to communicate with the robot (get sensors data and send commands).
The source code is available from the following repository:

```
svn checkout https://github.com/gctronic/wheelphone-library/trunk/android-wheelphone-library android-wheelphone-library-read-only
```

Alternatively you can download directly the jar file to be included in your project [WheelphoneLibrary.jar](https://projects.gctronic.com/wheelphone/WheelphoneLibrary-rev15.jar).
You can find the API documentation in the *doc* folder or you can download it from [WheelphoneLibrary.pdf](https://projects.gctronic.com/wheelphone/WheelphoneLibrary-rev87-31.05.13.pdf).

# ROS

Link: https://www.gctronic.com/doc/index.php?title=Android_software#ROS

## Android side

Link: https://www.gctronic.com/doc/index.php?title=Android_software#Android_side

### ROS Fuerte

Link: https://www.gctronic.com/doc/index.php?title=Android_software#ROS_Fuerte

**APK**
The android application can be downloaded from the Google Play store [![google-play.png](https://www.gctronic.com/doc/images/4/43/google-play.png)Wheelphone ROS](https://play.google.com/store/apps/details?id=com.wheelphone.ros&feature=search_result#?t=W251bGwsMSwxLDEsImNvbS53aGVlbHBob25lLnJvcyJd), or directly from [WheelphoneROS.apk](https://projects.gctronic.com/wheelphone/WheelphoneROS.apk).

**Source**
The source code is available from the following repository:

```
svn checkout https://github.com/gctronic/wheelphone-applications/trunk/android-applications/WheelphoneROS WheelphoneROS
```

It's based on the *android_tutorial_pubsub* contained in the *android package*.

**Requirements building**

- [android_core](https://docs.rosjava.googlecode.com/hg/android_core/html/index.html)

**How To**
1) once the application is started the IP address of the computer running *roscore* need to be inserted, then press *OK*
![Screenshot-WP-ROS1.png](https://www.gctronic.com/doc/images/1/14/Screenshot-WP-ROS1.png)
2) on top of the window you should see "Connected" and right after the camera image that is sent to the computer; after some seconds you should receive the sensors values and the camera image in the computer. If you see "Robot disconnected" you need to restart the application
![Screenshot-WP-ROS2.png](https://www.gctronic.com/doc/images/9/9b/Screenshot-WP-ROS2.png)

### ROS Hydro

Link: https://www.gctronic.com/doc/index.php?title=Android_software#ROS_Hydro

**APK**
The android application can be downloaded from directly from [WheelphoneROShydro.apk](https://projects.gctronic.com/wheelphone/WheelphoneROShydro.apk).

**Source**
The source code is available from the following repository:

```
svn checkout https://github.com/gctronic/wheelphone-applications/trunk/android-applications/wheelphone_ros wheelphone_ros
```

**How to build**

1. download and install Andorid Studio + SDK, refer to <https://wiki.ros.org/android/Android%20Studio/Download>
2. sudo apt-get install ros-hydro-catkin ros-hydro-ros ros-hydro-rosjava python-wstool
3. download android core frome the repo <https://github.com/rosjava/android_core/tree/hydro> and extract it to your preferred dir (e.g. ~/hydro_workspace/android)
4. open Android Studio (run studio.sh) and open a project pointing to "~/hydro_workspace/android/android_core/settings.gradle" (refer to previous dir path); build the project (this can take a while...)
5. download the "wheelphone_ros" project (svn repo) and put it inside the "android_core" directory
6. modify the file "settings.gradle" inside the "android_core" directory in order to include also the "wheelphone_ros" project
7. close and reopen Android Studio; the wheelphone project should be available for building

Alternatively you can download directly a virtual machine which includes all the system requirements you need to start playing with ROS and Wheelphone from the following link ROSHydro-WP.ova (contact us to have access to this VM), based on the VM from <https://nootrix.com/2014/04/virtualized-ros-hydro/>; this is the easiest way!

**How to run**
1) once the application is started the IP address of the computer running *roscore* need to be inserted, then press *Connect*
![Screenshot-WP-ROShydro.png](https://www.gctronic.com/doc/images/3/3f/Screenshot-WP-ROShydro.png)
2) on top of the window you should see "Connected" and right after the camera image that is sent to the computer; after some seconds you should receive the sensors values and the camera image in the computer. If you see "Robot disconnected" you need to restart the application
![Screenshot-WP-ROS2.png](https://www.gctronic.com/doc/images/9/9b/Screenshot-WP-ROS2.png)

**Useful links**

- [ROS Hydro Android](https://wiki.ros.org/android/Tutorials/hydro)
- [ROS Hydro Android Development Environment](https://wiki.ros.org/android/Tutorials/hydro/Installation%20-%20Ros%20Development%20Environment)
- <https://wiki.ros.org/android/Android%20Studio>
- <https://developer.android.com/sdk/installing/studio-build.html>
- <https://code.google.com/p/rosjava-tf/>
- <https://github.com/rosjava/rosjava_mvn_repo>

## PC side

Link: https://www.gctronic.com/doc/index.php?title=Android_software#PC_side

**Summary**
This is a monitor interface of the Wheelphone based on ROS:
![ros-gui.png](https://www.gctronic.com/doc/images/0/05/ros-gui.png)
You can move the robot through the interface or through the keyboard: arrow keys to move and enter to stop.
Here is the nodes involved in ROS:
![ros-rxgraph.jpg](https://www.gctronic.com/doc/images/8/81/ros-rxgraph.jpg)
A video of the this demo can be seen here [video](https://www.gctronic.com/doc/index.php/Wheelphone-videos#Remote_control_with_ROS).

### ROS Fuerte

Link: https://www.gctronic.com/doc/index.php?title=Android_software#ROS_Fuerte_2

**Requirements running**

- [ROS Fuerte](https://www.ros.org) (previous version not tested)
- [rosjava](https://code.google.com/p/rosjava/), refers also to the [rosjava_core documentation](https://docs.rosjava.googlecode.com/hg/rosjava_core/html/index.html)

**Source**
The source code is available from [rosjava_tutorial_pubsub.zip](https://projects.gctronic.com/wheelphone/rosjava_tutorial_pubsub-rev160-08.10.13.zip). It's based on the *rosjava_tutorial_pubsub* contained in the *rosjava package*.

**How To**
Follow these steps to start the PC-side node:

1. download the [ros pc-side binary files](https://projects.gctronic.com/wheelphone/pc-side-node-rev161-08.10.13.zip)
2. modify the script *start-ros.sh* in the *bin* directory with the correct IP address of the host computer
3. execute *start-ros.sh* (if the script isn't executable type *chmod +x -R path-to/bin* where bin is the bin directory of the zip)

### ROS Hydro

Link: https://www.gctronic.com/doc/index.php?title=Android_software#ROS_Hydro_2

**Requirements**

- [ROS Hydro](https://wiki.ros.org/hydro); you can download a virtual machine with ROS Hydro already installed (Ubuntu) from here <https://nootrix.com/2014/04/virtualized-ros-hydro/>
- [rosjava](https://wiki.ros.org/rosjava); type the following commands in a terminal to install rosjava:
  - sudo apt-get update
  - sudo apt-get install openjdk-6-jre
  - sudo apt-get install ros-hydro-rosjava

Alternatively you can download directly a virtual machine which includes all the system requirements you need to start playing with ROS and Wheelphone from the following link ROSHydro-WP.ova (contact us to have access to this VM), based on the VM from <https://nootrix.com/2014/04/virtualized-ros-hydro/>; this is the easiest way!

**How To Build**

1. cd ~/hydro_workspace/
2. mkdir -p rosjava/src
3. cd src
4. catkin_create_rosjava_pkg rosjava_catkin_package_wheelphone
5. cd ..
6. catkin_make
7. source devel/setup.bash
8. cd src/rosjava_catkin_package_wheelphone
9. catkin_create_rosjava_project my_pub_sub_tutorial
10. cd ../..
11. catkin_make
12. download the [pc-side project](https://projects.gctronic.com/wheelphone/my_pub_sub_tutorial.zip) and substitute the "my_pub_sub_tutorial" directory with the content of the zip
13. cd ~/hydro_workspace/rosjava
14. catkin_make

**How To Run**

1. open a terminal and type:
   1. export ROS_MASTER_URI=<https://IP:11311> (IP should be the host machine IP, e.g. 192.168.1.10)
   2. export ROS_IP=IP (the same IP as before)
2. open a second terminal and type the previous two commands
3. in the first terminal type "roscore"
4. in the second terminal type:
   1. cd ~/hydro_workspace/rosjava/src/rosjava_catkin_package_wheelphone/my_pub_sub_tutorial
   2. cd build/install/my_pub_sub_tutorial/bin
   3. ./my_pub_sub_tutorial com.github.rosjava_catkin_package_wheelphone.my_pub_sub_tutorial.Listener

**Useful links**

- [rosjava](https://wiki.ros.org/rosjava)
- [rosjava installation](https://wiki.ros.org/rosjava/Tutorials/hydro/Installation)
- [Creating rosjava packages](https://wiki.ros.org/rosjava_build_tools/Tutorials/hydro/Creating%20Rosjava%20Packages)
- [Writing a simple publisher and subscriber](https://wiki.ros.org/rosjava_build_tools/Tutorials/hydro/WritingPublisherSubscriber%28Java%29)
- [rosjava github](https://github.com/rosjava)

### ROS Tools

Link: https://www.gctronic.com/doc/index.php?title=Android_software#ROS_Tools

- you can use [rviz](https://wiki.ros.org/rviz) to visualize odometry information, type "rosrun rviz rviz" and open one of the following configuration files depending on your ROS version [fuerte config](https://projects.gctronic.com/wheelphone/rviz-fuerte.zip) [hydro config](https://projects.gctronic.com/wheelphone/rviz-hydro.zip).
- you can use [rxgraph (fuerte)](https://wiki.ros.org/rxgraph) or [rqt_graph (hydro)](https://wiki.ros.org/rqt_graph) to visualize a diagram of the nodes and topics available in ROS simply type "rxgraph" or "rqt_graph" in a terminal

# Navigation

Link: https://www.gctronic.com/doc/index.php?title=Android_software#Navigation

## Wheelphone markers navigation

Link: https://www.gctronic.com/doc/index.php?title=Android_software#Wheelphone_markers_navigation

**Summary**
Wheelphone makes a tour of the apartment taking snapshot pictures and then returns back to the charging station.
This application shows the potentiality of the Wheelphone robot in an home environment. With the help of some target points identified with different markers, the Wheelphone robot is able to navigate from one room to the other localizing itself; moreover it takes pictures and uploads them to a web page. When the Wheelphone battery is low it can automatically charge itself thanks to the docking station.
There are two tabs: one illustrates some sensors values, the target detection information (direction and orientation), the current state of the robot and some others information; the second one shows the camera view and when a frame target is detected a nice augmented reality letter is visualized.
The application is designed for the following sequence:

1. the robot moves around looking for the docking station; once detected it approaches the docking station and charges itself for a while
2. the robot goes out of the charger, takes a picture and then looks around for the first marker (living room); once detected it goes towards the marker until it reaches it, rotates 180 degrees and takes a picture
3. the robot looks for the next target (kitchen); once detected it goes towards the marker and takes a picture. Then the sequence is repeated.

In the "Robot" tab you can see the HTTP address to which to connect in order to see the pictures taken by the robot.
Frame target detection is performed using the Vuforia Augmented Reality SDK (license agreements: <https://developer.vuforia.com/legal/license>).

A nice video of the demo can be seen here [video](https://www.gctronic.com/doc/index.php/Wheelphone-videos#Wheelphone_navigation_and_automatic_docking_with_markers).
The following image shows the history of a complete tour taken from the HTTP page published by the Wheelphone:
![AppartTagSequenceHistory.png](https://www.gctronic.com/doc/images/9/9c/AppartTagSequenceHistory.png)

The markers used in the demo can be donwloaded from here: [charger station](https://projects.gctronic.com/wheelphone/frameMarkerChargerStation.pdf), [living room](https://projects.gctronic.com/wheelphone/frameMarkerLivingRoom.pdf), [kitchen](https://projects.gctronic.com/wheelphone/frameMarkerKitchen.pdf).
A similar application was developed also for iPhone, have a look [here](https://www.gctronic.com/doc/index.php/IPhone_software#iWheel_semester_project) for more information.

**APK**
The android application can be downloaded from the Google Play store [![google-play.png](https://www.gctronic.com/doc/images/4/43/google-play.png)Wheelphone markers navigation](https://play.google.com/store/apps/details?id=com.wheelphone.targetNavigation&hl=it), or directly from [WheelphoneTargetNavigation.apk](https://projects.gctronic.com/wheelphone/WheelphoneTargetNavigation.apk).

**Source**
The source code is available from the following repository:

```
svn checkout https://github.com/gctronic/wheelphone-applications/trunk/android-applications/WheelphoneTargetNavigation WheelphoneTargetNavigation
```

A version of the application without rendering on the phone display (no 3D letter visualized on target position) is available from the following repositoriy; this version was created since the rendering causes the application to be unstable:

```
svn checkout https://github.com/gctronic/wheelphone-applications/trunk/android-applications/WheelphoneTargetNavigation_no_rendering WheelphoneTargetNavigation_no_rendering
```

**How To**
1) prepare the docking station with the marker [charger station](https://projects.gctronic.com/wheelphone/frameMarkerChargerStation.pdf), the "navigation targets" with markers [living room](https://projects.gctronic.com/wheelphone/frameMarkerLivingRoom.pdf) and [kitchen](https://projects.gctronic.com/wheelphone/frameMarkerKitchen.pdf) and place them in a triangular shape in such a way that form the docking station the robot is able to detect the "living room", from the "living room" the robot is able to detect the "kitchen" and from the kitchen the robot is able to detect the docking station, like shown in the following figures:
![MarkerOnDocking.jpg](https://www.gctronic.com/doc/images/f/f6/MarkerOnDocking.jpg) ![MarkerOnSupport.jpg](https://www.gctronic.com/doc/images/9/9a/MarkerOnSupport.jpg) ![TargetNavigationEnv.jpg](https://www.gctronic.com/doc/images/d/d4/TargetNavigationEnv.jpg)
2) once the application is started you should see "Connected" on top of the window, otherwise you need to restart the application (back button, turn off the robot, turn on the robot, select the app from the list)
3) the robot start searching (pivot rotation) the marker id 2 (living room); when the robot finds the marker it goes towards it until it is near, then it rotates for about 180 degrees saying what target it found and then takes a picture that will be automatically updated on the web page. In case the marker isn't found then after 30 seconds the robot start searching the next target
4) the searching sequence is: target id 2 (living room), target id 3 (kitchen), target id 0/1 (charger station). When the robot is approaching the charging station it need two id, one big to be detected at long distances and one small used to center itself to the docking station when it is near the charger. If the robot fails to connect to the charger station, then it applies some movements to try making a good contact with the charger; anyway in case after a while it hasn't reach the contact then it search for the next target. In case of success it charges itself for a while (user definable), then it goes out of the charger, rotates for about 180 degrees saying what target it found and then takes a picture.

The following figure explains the values and parameters available in the application:
![WPTargetNavigation-howto.png](https://www.gctronic.com/doc/images/8/80/WPTargetNavigation-howto.png)

## Wheelphone Navigator

Link: https://www.gctronic.com/doc/index.php?title=Android_software#Wheelphone_Navigator

**Summary**
This is a navigation application. It allows the robot to navigate an environment looking for targets while avoiding obstacles. It has two modules to avoid the obstacles: (1)the robot’s front proximity sensors and (2)the camera + Optical Flow.

**Requirements building**

- Eclipse: 4.2
- Android SDK API level: 18 (JELLY_BEAN_MR2)
- Android NDK: r9 [Android NDK](https://developer.android.com/tools/sdk/ndk/index.html)
- OpenCV: 2.4.6 [OpenCV Android SDK](https://opencv.org/android)

**Requirements running**

- Android API version: 14 (ICE_CREAM_SANDWICH)
- Back camera
- OpenCV: 2.4.6 [OpenCV mangager](https://play.google.com/store/apps/details?id=org.opencv.engine) (Android app)

**Building process**

- This application has some JNI code (C/C++), so it is necessary to have the android NDK to compile the C/C++ code. Once you have the NDK, the C/C++ code can be compiled by running (while at the jni folder of the project):

```
${NDKROOT}/ndk-build –B
```

***Note:*** Make sure that the NDKROOT and OPENCVROOT environment variables are set to the NDK and OpenCV SDK paths respectively.

**APK**
[WheelphoneNavigator.apk](https://projects.gctronic.com/wheelphone/WheelphoneNavigator.apk) [![google-play.png](https://www.gctronic.com/doc/images/4/43/google-play.png)WheelphoneNavigator](https://play.google.com/store/apps/details?id=com.wheelphone)

**Source**

```
svn checkout https://github.com/gctronic/wheelphone-applications/trunk/android-applications/Wheelphone_navigator Wheelphone_navigator
```

**How To**
How to interact with the application: add at least two targets and then tap on “start”. This makes the robot go between all the targets in its list, while avoiding the obstacles.

# Autonomous docking

Link: https://www.gctronic.com/doc/index.php?title=Android_software#Autonomous_docking

## Wheelphone blob docking

Link: https://www.gctronic.com/doc/index.php?title=Android_software#Wheelphone_blob_docking

**Summary**
This demo uses OpenCV to detect a colored blob placed on the charging station; the blob is used to give the robot a direction to follow to reach the docking station. When the robot is near the docking it detect a black line (placed on the ground) and follow it to correctly orient itself towards the charging contacts. The project contains also a stripped version of [Spydroid](https://code.google.com/p/spydroid-ipcamera/) (only HTTP server) that let the user start and stop the demo remotely from a PC or another phone.

**Requirements building**
Developer requirements (for building the project):

- [OpenCV Android SDK](https://opencv.org/android)

**Requirements running**
User requirements (to run the application on the phone):

- the OpenCV package is required to run the application on the phone; on Google Play you can find [*OpenCV Manager*](https://play.google.com/store/apps/details?id=org.opencv.engine&feature=search_result#?t=W251bGwsMSwxLDEsIm9yZy5vcGVuY3YuZW5naW5lIl0.) that let you install easily the needed library

**APK**
The android application can be downloaded from the Google Play store [![google-play.png](https://www.gctronic.com/doc/images/4/43/google-play.png)Wheelphone blob docking](https://play.google.com/store/apps/details?id=com.gctronic.android.blobDocking&feature=search_result#?t=W251bGwsMSwxLDEsImNvbS5nY3Ryb25pYy5hbmRyb2lkLmJsb2JEb2NraW5nIl0.), or directly from [WheelphoneBlobDocking.apk](https://projects.gctronic.com/wheelphone/WheelphoneBlobDocking.apk).

**Source**
The source code is available from the following repository:

```
svn checkout https://github.com/gctronic/wheelphone-applications/trunk/android-applications/WheelphoneBlobDocking WheelphoneBlobDocking
```

**How To**
1) once the application is started the robot start moving around with obstacle avoidance enabled looking for a docking station
2) take the robot in your hands and press the "Blob tab" that show you the camera view. Point the robot to the docking station and touch on the screen to select the blob to follow as shown in the following figure:
![Screenshot-WPBlobDocking1.png](https://www.gctronic.com/doc/images/8/84/Screenshot-WPBlobDocking1.png)
3) place the robot on the ground and press the "Calibrate sensors" button to calibrate the robot in your environment; be sure to remove any object near the robot
4) set a threshold corresponding to the value of the ground sensors related to the black line used to centering to the docking station; if the ground sensor value < threshold then the black line is detected
5) place the robot away from the charger (1 or 2 meters) and let it try to dock itself; when the robot reaches the charging station it will stay there

There is also a web page you can navigate with any browser inserting the address given in the "Robot tab"; in this page you'll see 5 motion commands (forward, backward, left, right, stop); stop is used to stop the robot, the others to start the robot.

## Wheelphone target docking

Link: https://www.gctronic.com/doc/index.php?title=Android_software#Wheelphone_target_docking

**Summary**
This demo uses the Vuforia Augmented Reality SDK to detect a frame target placed on the charging station; the target is used to give the robot a direction to follow to reach the docking station. With this library you get also the orientation of the robot respect to the target, that is respect to the charger; with this information it's easier for the robot to be aligned to the charging station before reaching it. The project contains also a stripped version of [Spydroid](https://code.google.com/p/spydroid-ipcamera/) (only HTTP server) that let the user start and stop the demo remotely from a PC or another phone.
A video of the this demo can be seen here [video](https://www.gctronic.com/doc/index.php/Wheelphone-videos#Wheelphone_automatic_docking_with_marker).

**Requirments building**
Developer requirements (for building the project):

- [Vuforia Augmented Reality SDK](https://developer.vuforia.com/resources/sdk/android)

**APK**
The android application can be downloaded from the Google Play store [![google-play.png](https://www.gctronic.com/doc/images/4/43/google-play.png)Wheelphone target docking](https://play.google.com/store/apps/details?id=com.wheelphone.targetDocking&hl=en), or directly from [WheelphoneTargetDocking.apk](https://projects.gctronic.com/wheelphone/WheelphoneTargetDocking.apk).

**Source**
The source code is available from the following repository:

```
svn checkout https://github.com/gctronic/wheelphone-applications/trunk/android-applications/WheelphoneTargetDocking WheelphoneTargetDocking
```

**How To**
1) prepare the docking station with the marker [charger station](https://projects.gctronic.com/wheelphone/frameMarkerChargerStation.pdf) as shown in the following figure:
![MarkerOnDocking.jpg](https://www.gctronic.com/doc/images/f/f6/MarkerOnDocking.jpg)
2) once the application is started you should see "Connected" on top of the window, otherwise you need to restart the application (back button, turn off the robot, turn on the robot, select the app from the list)
3) the robot starts searching for the charging station rotating on place at little steps
4) take the robot on your hands, place it on the ground and press "Calibrate sensors" (remove any object near the robot); if the phone camera is not centered you can also set a camera offset (move the slider in the position of the phone camera)
5) place the robot away from the charger (1 or 2 meters) and let it try to dock itself; when the robot reaches the charging station it will stay there

There is also a web page you can navigate with any browser inserting the address given in the "Robot tab"; in this page you'll see 5 motion commands (forward, backward, left, right, stop); stop is used to stop the robot, the others to start the robot.

The "Target tab" shows the camera view and when a marker is detected a nice augmented reality letter is visualized; this can be used to know the maximum distance at which the charging station can be still detected.

# Remote control

Link: https://www.gctronic.com/doc/index.php?title=Android_software#Remote_control

## Telepresence with Skype

Link: https://www.gctronic.com/doc/index.php?title=Android_software#Telepresence_with_Skype

**Summary**
Wheelphone allows worldwide telepresence simply using Skype. One can have a real time video feedback from a remote place where the robot is moving. To control the Wheelphone robot movement, just open the Skype numpad and pilot the robot while seeing the real time images.
A video of the this demo can be seen here [video](https://www.gctronic.com/doc/index.php/Wheelphone-videos#Wheelphone_robot_telepresence_with_Skype_.28iPhone_and_Android.29).

**How To**

1. start Skype application on the phone and login
2. connect the sound cable to the phone in order to send commands from Skype to the robot; make sure that Skype recognizes the robot as earphone, if this isn't the case try to disconnect and reconnect the audio cable
3. remove the micro USB cable from the phone because USB communication has priority over the audio communication at the moment
4. enable the "Answer call automatically" option in the Skype settings in order to automatically respond to incoming call and be able to immediately control the robot
5. start the Skype application in the computer (or alternatively from another phone), login and make a video call to the account you use on the phone connected to the robot (if you are in the same room disable the microphone)
6. now you should be able to get the robot view; open the Skype numpad on the computer side and use it to move the robot, the commands are shown in the following figure:

![skype-dialpad-cmd.jpg](https://www.gctronic.com/doc/images/8/8f/skype-dialpad-cmd.jpg)

## Wheelphone remote

Link: https://www.gctronic.com/doc/index.php?title=Android_software#Wheelphone_remote

**Summary**
The robot can be easily controlled via a browser after having configured the computer and the robot to be in the same wifi network. The project is based on the *spydroid (v6.0)* application, refer to <https://code.google.com/p/spydroid-ipcamera/> for more information.

**APK**
The android application can be downloaded from the Google Play store [![google-play.png](https://www.gctronic.com/doc/images/4/43/google-play.png)Wheelphone remote](https://play.google.com/store/apps/details?id=com.wheelphone.remote&feature=search_result#?t=W251bGwsMSwxLDEsImNvbS53aGVlbHBob25lLnJlbW90ZSJd), or directly from [WheelphoneRemote.apk](https://projects.gctronic.com/wheelphone/WheelphoneRemote.apk).

**Source**
The source code is available from the following repository:

```
svn checkout https://github.com/gctronic/wheelphone-applications/trunk/android-applications/WheelphoneRemote WheelphoneRemote
```

**How To**
1) make sure to have the latest [VLC plugin](https://addons.videolan.org/) installed on the computer; unfortunately there is no VLC plugin for mobile phone so at the moment the video cannot be visualized if a connection *phone to robot* is performed (only movment commands are available).
2) connect the phone and the computer within the same network
3) once the application is started you'll see the address to be inserted in the browser to be able to control the robot; open a browser and insert the address; if all is working well you'll see the following html page:
![Screenshot-WPRemote.png](https://www.gctronic.com/doc/images/d/d5/Screenshot-WPRemote.png)
4) click on the "Connect" button in the html page and you should receive the video stream; on the right you've some commands to send to the robot, i.e. sounds, motions, ...

## Wheelphone remote mini

Link: https://www.gctronic.com/doc/index.php?title=Android_software#Wheelphone_remote_mini

**Summary**
This is a stripped version of *Wheelphone remote* that contains only an HTTP server used to receive the motion commands for the robot. It is implemented to have a minimal interface to pilot the robot both from the PC and another phone.
Moreover the [Vuforia Augmented Reality SDK](https://developer.vuforia.com/) is used to track a marker when it is in the robot view (pivot rotation at the moment).

**APK**
The android application can be downloaded from the [![google-play.png](https://www.gctronic.com/doc/images/4/43/google-play.png)Wheelphone remote mini](https://play.google.com/store/apps/details?id=com.wheelphone.remotemini&feature=search_result#?t=W251bGwsMSwxLDEsImNvbS53aGVlbHBob25lLnJlbW90ZW1pbmkiXQ..), or directly from [WheelphoneRemoteMini.apk](https://projects.gctronic.com/wheelphone/WheelphoneRemoteMini.apk).

**Source**
The source code is available from the following repository:

```
svn checkout https://github.com/gctronic/wheelphone-applications/trunk/android-applications/WheelphoneRemoteMini WheelphoneRemoteMini
```

it is based on the [Spydroid application](https://code.google.com/p/spydroid-ipcamera/).

**How To**
1) connect the phone and the computer within the same network
2) once the application is started you'll see the address to be inserted in the browser to be able to control the robot; open a browser and insert the address; if all is working well you'll see the following html page:
![Screenshot1-WPRemoteMini.jpg](https://www.gctronic.com/doc/images/0/05/Screenshot1-WPRemoteMini.jpg)
3) press the "Start animation" button to start the visualization of various images that will change based on the commands sent to the robot through the html page; coupled with the images there will be also sounds related to motion commands

If you try to raise the Wheelphone robot, or place an object near the front proximity sensors you'll see a reaction from the robot.

Moreover you can place a marker (ID0 or ID1) on front of the robot and the robot will start to follow it (pivot rotation only), moreover information about the target will be shown on the screen, like in the following figure:
![Screenshot2-WPRemoteMini.jpg](https://www.gctronic.com/doc/images/3/3d/Screenshot2-WPRemoteMini.jpg)

## Telepresence with Skype and Wheelphone remote mini

Link: https://www.gctronic.com/doc/index.php?title=Android_software#Telepresence_with_Skype_and_Wheelphone_remote_mini

**Summary**
Wheelphone allows worldwide telepresence by using Skype for audio/video coupled with the Wheelphone remote mini application to issue motion commands.
In order to access the Wheelphone remote mini webserver from Internet, we configured the port forwarding rule on the router through the "UPnP - Internet Gateway Device" protocol; this is done automatically by
an application (see following section for the source code).

**Source**
The source code of the "UPnP-IGD" application is available from [UPnP-IGD.zip](https://projects.gctronic.com/wheelphone/UPnP-IGD.zip). This application setup a forwarding rule to the current device on port 8080.

**How To**

1. start Skype application on the phone and login
2. connect the micro USB cable to the phone and start the Wheelphone remote mini application
3. enable the "Answer call automatically" option in the Skype settings in order to automatically respond to incoming call and be able to immediately control the robot; if this option is not available you would need to answer manually the call
4. start the application "UPnP-IGD" (it requires that UPnP protocol is enabled in the router); the application will show the public address to enter in order to reach the Wheelphone remote mini webserver
5. start the Skype application in the computer (or alternatively from another phone), login and make a video call to the account you use on the phone connected to the robot
6. on the same computer open a browser and enter the public address given by the "UPnP-IGD" application
7. now you should be able to get the robot view from skype and you can control the robot through the browser

# Interactive demos

Link: https://www.gctronic.com/doc/index.php?title=Android_software#Interactive_demos

## Wheelphone Pet

Link: https://www.gctronic.com/doc/index.php?title=Android_software#Wheelphone_Pet

**Summary**
This is a PET application. It makes the robot behave like a pet. A behavior module allows it to show expressions and behave accordingly. Additionally has a face-tracking and text-to-speech modules to be able to interact with the environment.

**Requirements building**

- Eclipse: 4.2
- Android SDK API level: 18 (JELLY_BEAN_MR2)
- Android NDK: r9 [Android NDK](https://developer.android.com/tools/sdk/ndk/index.html)

**Building process:**

- This application has some JNI code (C/C++), so it is necessary to have the android NDK to compile the C/C++ code. Once you have the NDK, the C/C++ code can be compiled by running (while at the jni folder of the project):

```
${NDKROOT}/ndk-build –B
```

***Note:*** Make sure that the NDKROOT environment variable is set to the NDK path

**Requirements running**

- Android API version: 14 (ICE_CREAM_SANDWICH)
- Front facing camera

**APK**
[WheelphonePet.apk](https://projects.gctronic.com/wheelphone/WheelphonePet.apk) [![google-play.png](https://www.gctronic.com/doc/images/4/43/google-play.png)WheelphonePet](https://play.google.com/store/apps/details?id=com.wheelphone.pet)

**Source**

```
svn checkout https://github.com/gctronic/wheelphone-applications/trunk/android-applications/Wheelphone_pet Wheelphone_pet
```

**State:**

- Speech recognition has been partially implemented using googles API. It would be better to use cmusphinx.
- The FaceExpressions module, used to express the robot state, could be extended to support animations instead of static images. For this purpose, libgdx can be used.

**How To**
How to interact with the application: start the application and stand where the phone can see your face.

## Wheelphone Alarm

Link: https://www.gctronic.com/doc/index.php?title=Android_software#Wheelphone_Alarm

**Summary**
This is an alarm application that interfaces with the Wheelphone to provide a playful experience when the alarm rings.

**Requirements building**

- Eclipse: 4.2
- Android SDK API level: 18 (JELLY_BEAN_MR2)

**Building process:**

- Nothing special: download the code, import to Eclipse and run.

**Requirements running**

- Android API version: 14 (ICE_CREAM_SANDWICH)
- Proximity sensor on the phone

**APK**
[Wheelphone alarm](https://projects.gctronic.com/wheelphone/WheelphoneAlarm.apk) [![google-play.png](https://www.gctronic.com/doc/images/4/43/google-play.png)WheelphoneAlarm](https://play.google.com/store/apps/details?id=com.wheelphone.alarm)

**Source**

```
svn checkout https://github.com/gctronic/wheelphone-applications/trunk/android-applications/Wheelphone_alarm Wheelphone_alarm
```

**State:**
It is a concept app, so it actually does not actually ring.

**How To**
It is possible to set the alarm time, the escape speed and a delay in which the robot will be stopped before starting escaping around when ringing. The alarm can be set to anytime within the next 24 hours.
When the alarm is ringing, the phone proximity sensor will also detect the approaching hand and will make the robot run away from the hand. In order to setup an alarm follow these steps:

1. once the application is started you should see "Connected" on top of the window, otherwise you need to restart the application (back button, turn off the robot, turn on the robot, select the app from the list)
2. setup an alarm (or use the "quick alarm" button to set an alarm in the next 5 seconds); choose also the desired escape speed and waiting time
3. press the *home* button to leave the application running in the background, this way you can still use your phone to do others thinks; be aware not to press the *back* button because you'll terminate the application
4. press the *power* button to put the phone in sleep and put the phone on its charger station (hint: place the robot near your bed)
5. wake up!

The alarm song that is played is the one chosen in the system.

# Basic demos

Link: https://www.gctronic.com/doc/index.php?title=Android_software#Basic_demos

## Monitor advanced

Link: https://www.gctronic.com/doc/index.php?title=Android_software#Monitor_advanced

**Summary**
This is the Wheelphone demo that shows you all the sensors values (proximity, ground, battery) and let you move the robot and sets some onboard behaviors. This is the first application that you will probably install to start playing with the robot.

**APK**
The android application can be downloaded from the Google Play store [![google-play.png](https://www.gctronic.com/doc/images/4/43/google-play.png)Wheelphone](https://play.google.com/store/apps/details?id=com.wheelphone.wheelphone&feature=search_result#?t=W251bGwsMSwyLDEsImNvbS53aGVlbHBob25lLndoZWVscGhvbmUiXQ..), or directly from [Wheelphone.apk](https://projects.gctronic.com/wheelphone/Wheelphone.apk).

**Source**
The source code is available from the following repository:

```
svn checkout https://github.com/gctronic/wheelphone-applications/trunk/android-applications/Wheelphone Wheelphone
```

**How To**
The application has two tabs, in left one the sensors information are displayed, in the right one you can choose to start the "stay-on-the-table" behavior that basically let the robot move safely on any table (not a black one though) without the risk to falling down (put the robot on the table before starting the behavior).

## Wheelphone odometry

Link: https://www.gctronic.com/doc/index.php?title=Android_software#Wheelphone_odometry

**Summary**
This is a demo that can be used as a starting point to work with the odometry information received from the robot. The application let the robot either rotate in place by an angle (degrees) specified by the user or move forward/backward for a distance (cm) specified by the user.

**APK**
The android application can be downloaded directly from [WheelphoneOdomMotion.apk](https://projects.gctronic.com/wheelphone/WheelphoneOdomMotion-rev163.apk).

**Source**
The source code is available from the following repository:

```
svn checkout https://github.com/gctronic/wheelphone-applications/trunk/android-applications/WheelphoneOdomMotion WheelphoneOdomMotion
```

**How To**

1. once the application is started you should see "Connected" on top of the window, otherwise you need to restart the application (back button, turn off the robot, turn on the robot, select the app from the list)
2. set the movement speed in the "Settings" section (given in mm/s)
3. now you can decide whether to do a rotation (robot rotates on place for the given degrees) or a linear movement (robot goes forward for the given distance in cm); set the desired value and press the related "GO" button based on the motion you want to do
4. if you want to stop the robot you can press the "Stop robot" button in any moment

The following figure show the interface of the application:
![Screenshot-WPOdometryMotion.png](https://www.gctronic.com/doc/images/c/c7/Screenshot-WPOdometryMotion.png)

In the "Robot status" section are visualized: current left and right speed given to the robot (mm/s); the absolute position X (mm, pointing forward), Y (mm, pointing left), theta (degrees); the battery level

## Wheelphone tag detection

Link: https://www.gctronic.com/doc/index.php?title=Android_software#Wheelphone_tag_detection

**Summary**
This is a demo that can be used as a starting point to work with the vuforia tag detection library (<https://developer.vuforia.com/>). You can use this application to get useful information about the tag detected such as distance and angle; you can analyse the performance of the tag detection for instance setting a speed and seeing the maximum speed at which the robot can still detect the tag rotating in place, or seeing the maximum distance at which the phone can detect the tag.

**APK**
The android application can be downloaded directly from [WheelphoneTargetDebug.apk](https://projects.gctronic.com/wheelphone/WheelphoneTargetDebug-rev181.apk).

**Source**
The source code is available from the following repository:

```
svn checkout https://github.com/gctronic/wheelphone-applications/trunk/android-applications/WheelphoneTargetDebug WheelphoneTargetDebug
```

**How To**

1. once the application is started you should see "Connected" on top of the window, otherwise you need to restart the application (back button, turn off the robot, turn on the robot, select the app from the list)
2. now you can either take the robot in your hands and manually debug target detection or set motors speed and see how perform target detection at various speeds (e.g. max rotation speed in which the marker is still detected)

Actually you can also start the application without being connected to the robot only for tracking debugging purposes.

The following figure show the interface of the application:
![Screenshot-TargetDebug.png](https://www.gctronic.com/doc/images/2/25/Screenshot-TargetDebug.png)

- in the "Speed status" you can set the motors speed (mm/s)
- in the "Target status" you have the current marker id detected (from 0 to 49), the X and Y screen coordinates of the marker center, the distance (scene units) from the marker, the orientation of the robot (degrees) and the angle between the robot and the target (degrees); moreover you receive timing informations about the tracking processing (min, max, current, average in ms)
- in the "Robot status" you can enable/disable speed control and soft acceleration and you have the battery value
- in the "Phone status" you get information about CPU and RAM usage

## Wheelphone Follow

Link: https://www.gctronic.com/doc/index.php?title=Android_software#Wheelphone_Follow

**Summary**
This is a follow the leader application. It allows the robot to follow an object in front of it using the front facing proximity sensors.

**Requirements building**

- Eclipse: 4.2
- Android SDK API level: 18 (JELLY_BEAN_MR2)

**Building process:**

- Nothing special: download the code, import to Eclipse and run.

**Requirements running**

- Android API version: 14 (ICE_CREAM_SANDWICH)

**APK**
[Wheelphone follow](https://projects.gctronic.com/wheelphone/Wheelphone_follow-rev156.apk)

**Source**

```
svn checkout https://github.com/gctronic/wheelphone-applications/trunk/android-applications/Wheelphone_follow Wheelphone_follow
```

**How To**
Start the application and place something within 5cm in front of the robot. This will make the robot start following the object.

## Wheelphone Recorder

Link: https://www.gctronic.com/doc/index.php?title=Android_software#Wheelphone_Recorder

**Summary**
This is a recording application. It makes the robot record while it moves. The purpose of this application is to provide the perspective of the robot while it is moving.
 **Be aware that this application is not stable, take it as a starting point.**
For a workaround on how to record a video directly from the robot refer to section [].

**Requirements building**

- Eclipse: 4.2
- Android SDK API level: 18 (JELLY_BEAN_MR2)

**Requirements running**

- Android API version: 14 (ICE_CREAM_SANDWICH)
- Back camera

**Building process:**

- Nothing special: download the code, import to Eclipse and run.

**APK**
[Wheelphone recorder](https://projects.gctronic.com/wheelphone/Wheelphone_recorder-rev159.apk)

**Source**

```
svn checkout https://github.com/gctronic/wheelphone-applications/trunk/android-applications/Wheelphone_recorder Wheelphone_recorder
```

**How To**
Tap on the screen to start and stop the recording/movement. The recorded video is QUALITY_480P (720 x 480 MP4), saved into the sdcard in the following path: /DCIM/wheelphone_capture.mp4.

## Wheelphone Faceme

Link: https://www.gctronic.com/doc/index.php?title=Android_software#Wheelphone_Faceme

**Summary**
This is face-tracking application. It keeps track of the position of one face using the front facing camera, then controls the robot to try to face always the tracked face.

**Requirements building**

- Eclipse: 4.2
- Android SDK API level: 18 (JELLY_BEAN_MR2)
- Android NDK: r9 [Android NDK](https://developer.android.com/tools/sdk/ndk/index.html)

**Building process:**

- This application has some JNI code (C/C++), so it is necessary to have the android NDK to compile the C/C++ code. Once you have the NDK, the C/C++ code can be compiled by running (while at the jni folder of the project):

```
${NDKROOT}/ndk-build –B
```

***Note:*** Make sure that the NDKROOT environment variable is set to the NDK path

**Requirements running**

- Android API version: 14 (ICE_CREAM_SANDWICH)
- Front facing camera

**APK**
[Wheelphone faceme](https://projects.gctronic.com/wheelphone/Wheelphone_faceme-rev155.apk)

**Source**

```
svn checkout https://github.com/gctronic/wheelphone-applications/trunk/android-applications/Wheelphone_faceme Wheelphone_faceme
```

**State:**
Could be extended to allow setting the rotation/acceleration constant, and draw a square on top of the tracked face.

**How To**
How to interact with the application: start the application and stand where the phone can see your face.

## Blob following

Link: https://www.gctronic.com/doc/index.php?title=Android_software#Blob_following

**Summary**
The demo shows the potentiality of having a mobile phone attached to the robot, in this example the phone is responsible of detecting a color blob and to send commands to the robot in order to follow it.
A video of the this demo can be seen here [video](https://www.gctronic.com/doc/index.php/Wheelphone-videos#Wheelphone_following_a_color_blob.2C_based_on_OpenCV).

**Requirements building**
Developer requirements (for building the project):

- [OpenCV Android SDK](https://opencv.org/android)

**Requirements running**
User requirements (to run the application on the phone):

- the OpenCV package is required to run the application on the phone; on Google Play you can find [*OpenCV Manager*](https://play.google.com/store/apps/details?id=org.opencv.engine&feature=search_result#?t=W251bGwsMSwxLDEsIm9yZy5vcGVuY3YuZW5naW5lIl0.) that let you install easily the needed library

**APK**
The android application can be downloaded from [WheelphoneBlobDetection.apk](https://projects.gctronic.com/wheelphone/WheelphoneBlobDetection-rev160.apk).

**Source**
The source code is available from the following repository:

```
svn checkout https://github.com/gctronic/wheelphone-applications/trunk/android-applications/WheelphoneBlobDetection WheelphoneBlobDetection
```

It's based on the *blob-detection* example contained in the *OpenCV-2.4.2-android-sdk*.

**How To**
Once the application is started you will see that all the values are 0; that's normal, you have to select the blob to follow in order to start the hunting. Select the "Blob tab" and touch on the blob you want to follow; the robot should start moving, otherwise you need to restart the application (back button, turn off the robot, turn on the robot, select the app from the list).
The following figures show the interface of the application:
![Screenshot1-BlobFollow.png](https://www.gctronic.com/doc/images/8/8f/Screenshot1-BlobFollow.png) ![Screenshot2-BlobFollow.png](https://www.gctronic.com/doc/images/9/90/Screenshot2-BlobFollow.png)

## Line following

Link: https://www.gctronic.com/doc/index.php?title=Android_software#Line_following

**Summary**
This demo shows one of the possible behaviors that can be programmed on the phone, in particular it instructs the robot to follow a line. The threshold and logic (follow a black or a white line) can be choosen from the application.

**APK**
The android application can be downloaded from [WheelphoneLineFollowing.apk](https://projects.gctronic.com/wheelphone/WheelphoneLineFollowing-rev162.apk).

**Source**
The source code is available from the following repository:

```
svn checkout https://github.com/gctronic/wheelphone-applications/trunk/android-applications/WheelphoneLineFollowing WheelphoneLineFollowing
```

**How To**

1. once the application is started you should see "Connected" on top of the window, otherwise you need to restart the application (back button, turn off the robot, turn on the robot, select the app from the list)
2. the robot start moving immediately, thus take it in your hands for doing some settings
3. set the base speed of the robot in the bottom of the window, section "Settings"
4. set the threshold of the black line you want to follow, basically when the ground value is smaller than the threshold it means that a line is detected; use the ground sensors values reported in the "Ground sensors" section to help you choose the best value
5. place the robot on the ground and press the button "Calibrate sensors", remove all object near the robot before doing that; this is needed to be sure that the front proximity sensors are well calibrated since the onboard obstacle avoidance is also enabled by default
6. put the robot near a black line and check that it can follow it

The following figure shows the interface of the application:
![Screenshot-LineFollow.png](https://www.gctronic.com/doc/images/3/35/Screenshot-LineFollow.png)

# Webots

Link: https://www.gctronic.com/doc/index.php?title=Android_software#Webots

Webots allows you to simulate the Wheelphone robot and program different behaviors for the robot in simulation before transferring them onto the real robot. You can download the Wheelphone simulation files from [wheelphone.zip](https://www.cyberbotics.com/files/wheelphone/wheelphone.zip) (which includes several demo programs) as well as the corresponding student [report](https://www.cyberbotics.com/files/wheelphone/report.pdf).

# Bootloader

Link: https://www.gctronic.com/doc/index.php?title=Android_software#Bootloader

The robot firmware can be easily updated through this app when a new version is available. Refer to the [getting started](https://www.gctronic.com/doc/index.php/Getting_started#Robot_firmware_update) guide for more information on how to update your robot.
The project is based on the example *Web Bootloader Demo - OpenAccessory Framework* contained in the [Microchip Libraries for Applications](https://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2680&dDocName=en547784).

## Newest firmware

Link: https://www.gctronic.com/doc/index.php?title=Android_software#Newest_firmware

This bootloader version has to be used to update the robot to the last developed firmware with all new features and bugs corrected. Pay attention that this version breaks compatibility with old applications, section [Apps shortcut list](https://www.gctronic.com/doc/index.php/Android_software#Apps_shortcut_list) shows the list of compatible applications that depend on the Wheelphone library.
**APK**
The android application can be downloaded directly from [WheelphoneBootloader.apk](https://projects.gctronic.com/wheelphone/WheelphoneBootloader.apk) (firmware rev 3.0).

**Source**
The source code is available from the following repository:

```
svn checkout https://github.com/gctronic/wheelphone-applications/trunk/android-applications/WheelphoneBootloader WheelphoneBootloader
```

## Older firmwares

Link: https://www.gctronic.com/doc/index.php?title=Android_software#Older_firmwares

This bootloader has to be used to return to the old firmware that is compatible with the applications developed before the Wheelphone Library release.
The android application can be downloaded from [wheelphone-bootloader.apk](https://projects.gctronic.com/wheelphone/wheelphone-bootloader-rev2-rev96-12.06.13.apk) (firmware rev 2.0).
The source code of the application can be download from [wheelphone-bootloader.zip](https://projects.gctronic.com/wheelphone/wheelphone-bootloader-rev2-rev96-12.06.13.zip) (Eclipse project)

## Hardware revision 0.1

Link: https://www.gctronic.com/doc/index.php?title=Android_software#Hardware_revision_0.1

This bootloader has to be used for robots numbered from 10 to 15; the firmware that will be uploaded to the robot is the same as described in section [Newest firmware](https://www.gctronic.com/doc/index.php/Android_software#Newest_firmware).
The android application can be downloaded from [wheelphone-bootloader.apk](https://projects.gctronic.com/wheelphone/wheelphone-bootloader-hw0.1-rev98-13.06.13.zip.apk) (firmware rev 2.0).
The source code of the application can be download from [wheelphone-bootloader.zip](https://projects.gctronic.com/wheelphone/wheelphone-bootloader-hw0.1-rev98-13.06.13.zip) (Eclipse project)

# Calibration

Link: https://www.gctronic.com/doc/index.php?title=Android_software#Calibration

Since the motors can be slightly different a calibration can improve the behavior of the robot in terms of speed.
An autonomous calibration process is implemented onboard: basically a calibration is performed for both the right and left wheels in three modes that are forward with speed control enabled, forward with speed control disabled and backward with speed control disabled. In order to let the robot calibrate istelf a white sheet in which a black line is drawed is needed; the robot will measure the time between detection of the line at various speed. The calibration sheet can be downloaded from the following link [calibration-sheet.pdf](https://projects.gctronic.com/wheelphone/calibration-sheet.pdf).
A small application was developed to accomplish the calibration that can be downloaded from [WheelphoneCalibration.apk](https://projects.gctronic.com/wheelphone/WheelphoneCalibration-rev186.apk); simply follow the directions given.
The source code is available from the following repository:

```
svn checkout https://github.com/gctronic/wheelphone-applications/trunk/android-applications/WheelphoneCalibration WheelphoneCalibration
```

![wp-calibration-left.png](https://www.gctronic.com/doc/images/7/74/wp-calibration-left.png) ![wp-calibration-right.png](https://www.gctronic.com/doc/images/d/da/wp-calibration-right.png)

---

# IPhone software

Source: https://www.gctronic.com/doc/index.php?title=IPhone_software
Last edited: 2026-04-22T09:08:52Z

[Wheelphone main wiki](http://www.gctronic.com/doc/index.php?title=Wheelphone)

# Tested phones

Link: https://www.gctronic.com/doc/index.php?title=IPhone_software#Tested_phones

The communication between the Wheelphone robot and the phone is accomplished using the sound interface (through sound cable of classic headphones), thus the software should run theoretically in all iPhone versions. Anyway here is a list of tested ones:

- iPhone 3
- iPhone 4
- iPhone 5
- iPod Touch

# Remote control

Link: https://www.gctronic.com/doc/index.php?title=IPhone_software#Remote_control

## Telepresence with Skype

Link: https://www.gctronic.com/doc/index.php?title=IPhone_software#Telepresence_with_Skype

Wheelphone allows worldwide telepresence simply using Skype. One can have a real time video feedback from a remote place where the robot is moving.
In addition to your Skype account, you only need to create another different one for the wheelphone. Now, to control the Wheelphone robot movement, just open the Skype numpad and pilot the robot while seeing the real time images.
![skype-dialpad-cmd.jpg](https://www.gctronic.com/doc/images/8/8f/skype-dialpad-cmd.jpg)
The sound cable has to be connected to the phone in order to send commands from Skype to the robot; make sure that Skype recognizes the robot as earphone, if this isn't the case try to disconnect and reconnect the audio cable.

# Wheelphone library

Link: https://www.gctronic.com/doc/index.php?title=IPhone_software#Wheelphone_library

Wheelphone library to be used in iOS applications development to communicate with the robot (get sensors data and send commands).
The source code is available from the following repository:

```
svn checkout https://github.com/gctronic/wheelphone-library/trunk/ios-wheelphone-library ios-wheelphone-library-read-only
```

# Basic demo

Link: https://www.gctronic.com/doc/index.php?title=IPhone_software#Basic_demo

This is a basic demo that shows how it's possible to send data from the iphone to the robot. Basically pre-recorded DTMF tones are sent to the robot that distinguish them as different commands. The app let you move the robot, calibrate the sensors and sets some behaviors.

![basic-wheelphone-demo-iphone-screenshot.png](https://www.gctronic.com/doc/images/d/d5/basic-wheelphone-demo-iphone-screenshot.png)

The iOS application can be downloaded from the [App Store](https://itunes.apple.com/us/app/wheelphone/id619822093?mt=8).
The source code is available from the following repository:

```
svn checkout https://github.com/gctronic/wheelphone-applications/trunk/ios-applications/WheelphoneBasic WheelphoneBasic-read-only
```

# Monitor application

Link: https://www.gctronic.com/doc/index.php?title=IPhone_software#Monitor_application

This is the Wheelphone demo that shows you all the sensors values (proximity, ground, battery) and let you start two behaviors controlled from the phone: line following and cliff detection. This is one of the first applications that you will probably install to start playing with the robot.

![ios-monitor.png](https://www.gctronic.com/doc/images/f/fa/ios-monitor.png)

The iOS application can be downloaded from the [App Store](https://itunes.apple.com/us/app/wp-monitor/id786102580?mt=8).
The source code is available from the following repository:

```
svn checkout https://github.com/gctronic/wheelphone-applications/trunk/ios-applications/WheelphoneMonitor WheelphoneMonitor-read-only
```

# iWheel semester project

Link: https://www.gctronic.com/doc/index.php?title=IPhone_software#iWheel_semester_project

The aim of the project is to use the Wheelphone to navigate in an indoor environment. The project starts by exploiting the odometry information given by the robot, then it improves the accuracy of the odometry by integrating the sensors of the phone and at the end some external tags are used to get absolute information within the environment.

The first application let the robot perform a square path using various navigation methods (open loop, robot odomtery, phone sensors), the user can then compare the results:

- the iOS application can be downloaded from the [App Store](https://itunes.apple.com/us/app/wheelphone-square-motion/id948588383?mt=8).
- the source code is available from the following repository:

```
svn checkout https://github.com/gctronic/wheelphone-applications/trunk/ios-applications/WPSquareMotion WPSquareMotion-read-only
```

In the second application the Wheelphone makes a tour of the apartment taking snapshot pictures and then returns back to the charging station.
This application shows the potentiality of the Wheelphone robot in an home environment. With the help of some target points identified with different markers, the Wheelphone robot is able to navigate from one room to the other localizing itself; moreover it takes pictures and uploads them to a web page. When the Wheelphone battery is low it can automatically charge itself thanks to the docking station.
A nice video of the demo can be seen here [video](https://www.gctronic.com/doc/index.php/Wheelphone-videos#Wheelphone_navigation_and_automatic_docking_with_markers_with_iPhone).

- the iOS application can be downloaded from the [App Store](https://itunes.apple.com/us/app/wheelphone-markers-navigation/id949865537?mt=8).
- the source code is available from the following repository:

```
svn checkout https://github.com/gctronic/wheelphone-applications/trunk/ios-applications/WPMarkersNavigation WPMarkersNavigation -read-only
```

A similar application was developed also for Android phones, have a look [here](https://www.gctronic.com/doc/index.php/Android_software#Wheelphone_markers_navigation) for more information.

---

# Wheelphone-images

Source: https://www.gctronic.com/doc/index.php?title=Wheelphone-images
Last edited: 2026-04-22T09:45:49Z

[Wheelphone main wiki](http://www.gctronic.com/doc/index.php?title=Wheelphone)

| wheelphone-front-view.jpg | wheelphone-alone.jpg | wheelphone-iphone3.jpg |
| --- | --- | --- |
| wheelphone-iphone4.jpg | wheelphone-fleet.jpg | wheelphone-iphone4-app.jpg |
| wheelphone-full-package.jpg | wheelphone-left-side3.jpg | wheelphone-left-side2.jpg |

---

# Wheelphone-videos

Source: https://www.gctronic.com/doc/index.php?title=Wheelphone-videos
Last edited: 2018-02-28T08:52:34Z

[Wheelphone main wiki](http://www.gctronic.com/doc/index.php?title=Wheelphone)

#### Wheelphone robot capabilities

Link: https://www.gctronic.com/doc/index.php?title=Wheelphone-videos#Wheelphone_robot_capabilities

[Video](https://www.youtube.com/howyoutubeworks/user-settings/privacy/)

#### Wheelphone navigation and automatic docking with markers

Link: https://www.gctronic.com/doc/index.php?title=Wheelphone-videos#Wheelphone_navigation_and_automatic_docking_with_markers

[Video](https://www.youtube.com/howyoutubeworks/user-settings/privacy/)

#### Wheelphone navigation and automatic docking with markers with iPhone

Link: https://www.gctronic.com/doc/index.php?title=Wheelphone-videos#Wheelphone_navigation_and_automatic_docking_with_markers_with_iPhone

[Video](https://www.youtube.com/howyoutubeworks/user-settings/privacy/)

#### Wheelphone automatic docking with marker

Link: https://www.gctronic.com/doc/index.php?title=Wheelphone-videos#Wheelphone_automatic_docking_with_marker

[Video](https://www.youtube.com/howyoutubeworks/user-settings/privacy/)

[Video](https://www.youtube.com/howyoutubeworks/user-settings/privacy/)

#### Wheelphone robot telepresence with Skype (**iPhone** and **Android**)

Link: https://www.gctronic.com/doc/index.php?title=Wheelphone-videos#Wheelphone_robot_telepresence_with_Skype_(iPhone_and_Android)

[Video](https://www.youtube.com/howyoutubeworks/user-settings/privacy/)

#### Simulation of wheelphone in Webots

Link: https://www.gctronic.com/doc/index.php?title=Wheelphone-videos#Simulation_of_wheelphone_in_Webots

[Video](https://www.youtube.com/howyoutubeworks/user-settings/privacy/)

#### Wheelphone following a color blob, based on OpenCV

Link: https://www.gctronic.com/doc/index.php?title=Wheelphone-videos#Wheelphone_following_a_color_blob,_based_on_OpenCV

[Video](https://www.youtube.com/howyoutubeworks/user-settings/privacy/)

#### Wheelphone follows an apple

Link: https://www.gctronic.com/doc/index.php?title=Wheelphone-videos#Wheelphone_follows_an_apple

[Video](https://www.youtube.com/howyoutubeworks/user-settings/privacy/)

#### Wheelphone follows his Lord

Link: https://www.gctronic.com/doc/index.php?title=Wheelphone-videos#Wheelphone_follows_his_Lord

[Video](https://www.youtube.com/howyoutubeworks/user-settings/privacy/)

#### Remote control with ROS

Link: https://www.gctronic.com/doc/index.php?title=Wheelphone-videos#Remote_control_with_ROS

[Video](https://www.youtube.com/howyoutubeworks/user-settings/privacy/)

#### Wheelphone overcomes obstacles

Link: https://www.gctronic.com/doc/index.php?title=Wheelphone-videos#Wheelphone_overcomes_obstacles

[Video](https://www.youtube.com/howyoutubeworks/user-settings/privacy/)

#### iWheel project

Link: https://www.gctronic.com/doc/index.php?title=Wheelphone-videos#iWheel_project

[Video](https://www.youtube.com/howyoutubeworks/user-settings/privacy/)

---

# Wheelphone technical specifications

Source: https://www.gctronic.com/doc/index.php?title=Wheelphone_technical_specifications
Last edited: 2026-04-22T09:34:28Z

[Wheelphone main wiki](http://www.gctronic.com/doc/index.php?title=Wheelphone)

# Hardware

Link: https://www.gctronic.com/doc/index.php?title=Wheelphone_technical_specifications#Hardware

The following figure shows the main components of the Wheelphone robot and where they are physically placed:
![wheelphone-schema.jpg](https://www.gctronic.com/doc/images/b/bd/wheelphone-schema.jpg)

# Detailed features

Link: https://www.gctronic.com/doc/index.php?title=Wheelphone_technical_specifications#Detailed_features

| **Feature** | **Technical information** |
| --- | --- |
| Size, weight | 92 mm width, 102 mm length, 68 mm height, 200 g |
| Battery, autonomy | LiPo rechargeable battery (1600 mAh, 3.7 V). About 3.5 hours autonomy (motors running at middle speed continuously). Recharging time about 1h45 |
| 2 options to charge | with a micro USB female connector in front of the robot, 500mA with 2 golden contacts in front and the relative docking station, 1000mA |
| Processor | Microchip PIC24FJ64GB004 @ 16MHz (8 MIPS); 16 bit microcontroller ... and the one of the phone |
| Memory | RAM: 8 KB; Flash: 64 KB ... and the one of the phone |
| Motors | 2 DC motors with gear; speed controlled (forward direction) with backEMF |
| Speed | Max: 30 cm/s |
| Mechanical structure | Molded plastic case, adaptable phone holder |
| IR sensors | 4 infra-red sensors measuring ambient light and proximity of objects up to 6 cm (placed on the front-side of the robot)  4 ground sensors detecting cliffs or color differences (placed on the bottom-front-side of the robot) |
| LEDs | 1 red/green LED (charging/charged indicator) |
| Communication | Android: USB high speed; iPhone: sound cable. Both reaches 20 Hz sensor refresh |
| Additional connectors | 1 USB connector (type A) as alternative to the micro USB cable |
| Programming | Android SDK, iOS SDK |
