读这篇文档之前请确定你熟悉了ROS,了解了其工作原理以及安装好了ROS……

首先介绍下rosjava_core,它是用纯JAVA实现ROS。它提供了一个客户端库是JAVA程序可以快速的调用ROSTopics,Services, and Parameters

他其中一个最重要的特点就是对Android的友好性,可以在Android上进行rosjava的开发。所以我重点讲讲android_core,一个集合rosjava组件和范例的ROS开发应用。

Android_core提供了android库程序来帮助ROS应用开发。这些库程序就是android_gingerbreadandroid_honeycomb_mr2

android_gingerbread库程序,它支持的最低版本为APIlevel9。它提供了最基本的RosActivityNodeMainExecutorService(主要用来获取master和节点的管理),从而执行和管理NodeMain的生命周期,这样就可以像PCROS那样工作。载入eclipse以MasterChooser命名,顾名思义就是对Master进行操作,是最重要的库程序。这个库中还包含了其他支持,包括camerapublisher,image view,orientation publisher。里面有范例程序,你可以运行看看这些支持是怎么工作的。

android_honeycomb_mr2所支持的最低版本为APIlevel 13,这个库程序主要用于2D构图和导航,2D激光扫描可视化还有虚拟操作杆,在现阶段暂时用不到。

1.安装

一开始按照官网的文档安装

$ sudo apt-get install python-pip$ sudo pip install --upgrade rosinstall$ mkdir ~/ros_workspace$ cd ~/ros_workspace$ rosws init$ rosws merge /opt/ros/fuerte/.rosinstall$ rosws merge http://rosjava.googlecode.com/hg/.rosinstall$ rosws update$ source setup.bash

不过我没成功……所以这里推荐另一个方法:

1) 首先设置个工作空间,比如:

mkdir work

cd work

androidupdateproject -p ./myproject --library../../android_core/android_honeycomb_mr2


2) 得到软件源

rosinstall. /opt/ros/groovyhttps://bitbucket.org/osrf/rosandroid/raw/default/rosjava-android.rosinstall

从网上获得rosjava_core,然后等待一会,你就会看到,比如我的:


rosinstalloperating on /home/season/work from specifications in rosinstall files /opt/ros/groovy,https://bitbucket.org/osrf/rosandroid/raw/default/rosjava-android.rosinstall

(Over-)Writing/home/season/work/.rosinstall

[rosjava_core]Fetching git://github.com/rosjava/rosjava_core.git (version groovy-devel) to/home/season/work/rosjava_core

[rosjava_core]Done.

[android_core]Fetching git://github.com/rosjava/android_core.git (version groovy-devel) to/home/season/work/android_core

[android_core]Done.

[osrf_rosandroid]Fetching https://bitbucket.org/osrf/rosandroid (version default) to/home/season/work/osrf_rosandroid

正在请求全部修改

正在增加修改集

正在增加清单

正在增加文件改变

已增加56 个修改集,包含 389 个改变,修改了 259 个文件

updatingto branch default

165files updated, 0 files merged, 0 files removed, 0 files unresolved

0files updated, 0 files merged, 0 files removed, 0 files unresolved

[osrf_rosandroid]Done.

(Over-)Writingsetup.sh, setup.bash, and setup.zsh in /home/season/work

rosinstallupdate complete.

Now,type 'source /home/season/work/setup.bash' to set up your environment.

Addthat to the bottom of your ~/.bashrc to set it up every time.

If youare not using bash please see http://www.ros.org/wiki/rosinstall/NonBashShells


从中你可以看到接下来需要干什么设置……

3)在rosinstall建立的设置文件中设置源

.setup.bash

这里要把work目录写入环境,方法类似于ROS环境配置,不然roscdrosjava_core roscd android_core都会出现错误……


4)编译rosjava

roscdrosjava_core

./gradlewinstall


5)从android_core中编译一些函数库

roscdandroid_core

#注:你也许需要根据android api版本使用`--target`选项来调整。如果已经开始运行了,则需要关闭gradle。

androidupdate project --path ./android_gingerbread_mr1/ --target android-17

androidupdate project --path ./android_honeycomb_mr2/ --target android-17

cdandroid_gingerbread_mr1

../gradlewdebug

cd../android_honeycomb_mr2

../gradlewdebug


2.测试

2.1准备

1)链接android设备到你的电脑,确保链接通顺。

2)确保你的android设备链接到相同网络作为linux设备(比如相同的wifi网络)

3)在你的linux设备,启动roscore:

roscore

2.2建立和加载一个指导应用程序

来个android_tutorial_camera应用范例试一试。其他程序的编译方法和这个一样。

1)安装应用程序:

roscdandroid_core

androidupdate project --path ./android_tutorial_camera/ --target android-17

2)编译:

cdandroid_tutorial_camera

../gradlewdebug

3)加载到你的设备上:

adb -dinstall -r ./bin/MainActivity-debug.apk

2.3运行范例程序

1)首先在你的android手机上运行照相机指导程序

2)这个程序界面很简单,上面有:http://localhost:11311/比如http://192.168.2.4:11311,点OK,启动摄像头。

3)在你的linux电脑上运行

rosrunimage_viewimage_view image:=camera/image_image_transport:=compressed

这个时候会跳出一个小窗口,你就会从你的电脑上看到手机摄像头拍摄的画面。

很麻烦?的确是!现在android都在eclipse上开发,上述方法的确太烦了,所以下面我就介绍下eclipse上的android_core开发

3eclipse配置

1)按照前面的安装说明运行,包括通过gradle构建。

2)在eclipse中构建工作空间,比如:

/home/myusername/rosjava_workspace

3)如果需要,点击“Goto Workbench”图标。

4)安装ADT插件:http://developer.android.com/sdk/installing/installing-adt.html
5)如果你不能,安装ADT插件的平台和包:

http://developer.android.com/sdk/installing/adding-packages.html

6)载入需要的android_gingerbread_mr1包(:

File->Import->Android->ExistingAndroid Code Into Workspace->[Root directory of android_core]->Finish

7)点击MasterChooser文件夹(这个无所谓,不改反而方便识别):

File->Rename->"AndroidGingerbread MR1"->OK

8)载入你的应用

File->New->Android->AndroidProject from Existing Source->[Root directory of mynewapp]->Finish

9)如果你想要,重命名你的应用。设置library为Android Gingerbread MR1(MasterChooser)

10)点击”Run”按钮,在android手机或者仿真器上来构建和配置。

至此,如果你需要开发android上ROS,和正常的android开发一样,只需要设置library为MasterChooser就可了。


by:season

   

更多相关文章

  1. Android图像处理简介の使用内置Camera应用程序进行图像捕获
  2. 什么组成了Android应用程序?
  3. Android NFC 应用程序记录ARR
  4. 如何唯一的标识一台Android设备?
  5. Android开机自启动程序设置及控制方法
  6. 第一个Android程序
  7. Android音频系统之USB设备通路(Android 5.1)

随机推荐

  1. Android(安卓)JNI(实现自己的JNI_OnLoad函
  2. Animations使用 (四)
  3. Android(安卓)Drawable 详解(教你画画!)
  4. android自动化测试工具简介
  5. Android震动实现
  6. Android(安卓)universal-Image-Loader原
  7. Android(安卓)异步消息处理机制 让你深入
  8. Android: Your JS Engine is not always
  9. Android开源框架源码鉴赏:Okhttp
  10. Android(安卓)获取应用的icon、名字、版