We have covered Android - ROS applications provided from the ROS repository. So how can we create our own application using it? Let's take a look.
First, we have to create a separate workspace for our application. Here, it is named myandroid:
$ mkdir -p ~/myandroid/src
Switch to the workspace's src folder:
$ cd ~/myandroid/src
Create a package called android_foo that depends on android_core, rosjava_core, and std_msg:
$ catkin_create_android_pkg android_foo android_core rosjava_core std_msgs
Switch into android_foo and add sample libraries to check whether the project is building properly:
$ cd android_foo $ catkin_create_android_project -t 10 -p com.github.ros_java.android_foo.bar bar $ catkin_create_android_library_project -t 13 -p com.github.ros_java.android_foo.barlib barlib $ cd ../..
And finally, you can build the empty project using catkin_make:
$ catkin_make
If it is building properly, you can add a custom project, such as a bar project. The custom project should be inside the android_foo folder, and it should be included in the settings.gradle file, which is in the android_foo folder.
Here is how we can do that. You need to include our app, named my_ros_app, in this file to build it. For the application source code, you can modify one of the existing ROS-Android applications' code and write new lines:
include 'my_ros_app' include 'bar' include 'barlib'
Also, inside my_ros_app, you should include the ROS Android dependencies in the build.gradle file; otherwise, the package will not build properly. Here is a sample build.gradle file. You can also mention the minimum SDK, target SDK, and compiled SDK versions in the same file.
dependencies { compile 'org.ros.android_core:android_10:[0.2,0.3)' compile 'org.ros.android_core:android_15:[0.2,0.3)' } apply plugin: 'com.android.application' android { compileSdkVersion 15 defaultConfig { minSdkVersion 15 applicationId "org.ros.android.my_ros_app" targetSdkVersion 21 versionCode 1 versionName "1.0" } }
If you've entered all this information correctly, you can build your own custom ROS-Android application.