Control of mobile robot with Android Platform
Control of ROS Compatible Mobile Robot with Android Platform using ROSJAVA
Under supervision of:
Prof. Dr.-Ing. Klaus-Dieter Kuhnert
Dipl. -Inform. Klaus Müller
Charan Ram Akupati
Matrikel Nr: 1059977
Mobile robot is an autonomous vehicle which has wide range of applications in industrial and domestic sector. With the help of data acquired from various sensors, a mobile robot can be implied to monitor various applications in the industries. The concept of mobile robotics is having vital applications in improving security conditions. Various mobile robots can be employed in addressing challenges of unstructured environments.
The advancement of wireless communications made human life more flexible. In the recent trend of communications mobile operating systems such as iOS, Android, running on embedded devices (mobile phones, laptop computers, and Ipad) has made their dominant contributions. Among the available mobile operating systems, Android OS is considered as a user-friendly open source.
One can control robots manually or with remote (automatic) control. Automatic control over the robots by using user-friendly devices (smartphones) widen the accessibility into different applications. Android smartphones that are integrated with variety of sensors can be used to control the robots.
In this project, an Android application has been designed to control the "Phaethon" field mobile robot using an accelerometer sensor, which was developed at the University of Siegen, Germany.
The main objective of this project is to develop an android application to control ROS compatible mobile Robot using ROSJAVA based on android smart phone accelerometer. Laser scanner data should be displayed on the android smart phone GUI. Buttons and seekbars should be implement on GUI in order to start and stop the robot, and also to adjust the speed and steering of robot respectively.
The Phaethon robot is operating with Robot Operating System (ROS) framework. ROSJAVA is the java implementation of ROS to develop Android applications. Two rosjava nodes have been developed in new Android application in order to control the robot with android smart phone's accelerometer. The android device and mobile robot should connected to the same network as shown in the fig.1 for communication through wi-Fi technology.
Figure 1: Network setup of Mobile Robot and Android Phone
Fig.2 shows the GUI developed for this application, graph layout was implemented to display laser scanner range data. Two buttons and seekbars were created to start and stop the robot, and to adjust the speed and steering of the robot respectively.
Figure 2: Displaying Laser Scanner Data on GUI
Testing and Results
Once the android application is started by giving the IP address of computer on mobile robot, on start button click, if the android device is tilted then the robot moves based on accelerometer values. From the fig.3, the device is tilted to right and the robot is steering towards the right. In the same way, if the device is tilted towards left, then the robot moves towards the left. And the user can adjust the steering angle by changing angle seekbar. The robot stops at emergency by clicking on the stop button.
Figure 3: Steering robot towards right direction
If the Android device is tilted in the forward direction then the robot moves forward based on accelerometer values as shown in the fig.4. And in the same way, if the device is tilted in backward direction, then the robot moves backward. User can adjust the speed of the robot by changing the speed seekbar as shown in the fig.2.
Figure 4: Driving the robot in forward direction