之前博客已經介紹過一些在ROS系統上的Android環境的配置及專案的搭建,《ROS學習筆記之——基于ROS的Android開發》《基于linux系統安裝Android Studio》本博文來學習一下其整體框架
目錄
ROS Android
概述
ROSJAVA
概述
rosjava的構建環境
java
Gradle
Maven
Catkin
rosjava_core
Ros Android 應用
RosActivity
Android Interactions(互動)
Android Pairings(配對)
Using native ROS code on Android
參考資料
ROS Android
Android的代碼是基于rosjava客戶端和核心庫,準備與androidstudio和Google支持的androidgradle插件無縫協作
android專案的官方源代碼可以在github(https://github.com/rosjava)上找到
概述
在ROS Android開發時應該注意:
- 避免在本地編譯你的專案需要的每個依賴
- 將堆疊添加到作業區,用一個呼叫以正確的順序編譯所有內容(即注意堆疊間的依賴關系)
- 兼容的命令列和IDE作業流
ROS Android的依賴圖如下圖所示

- android_core - Damon Kohler的android開發的核心庫,
- android_extras - 各種額外功能(例如hokuyo、qrcodes)
- android_apps - 機器人應用程式管理的開發庫和應用程式(turtlebot)
- android_remocons - 機器人的遠程控制客戶端
ROSJAVA
rosjava類似roscpp或rospy一樣,為ros通信提供了一個客戶端庫(采用java語言),以及不斷增長的核心工具
rosjava的核心專案可以見:https://github.com/rosjava
Rosjava主要用于構建Android應用程式,
概述
rosjava的目標是:
- 為ros人員提供一種構建、打包和使用rosjava包的方法,將rosjava與其他ros工具集成(如roslaunch等),
- 也為非ros的人提供了一種方法,只需將rosjava二進制檔案鏈接到ros機器人上,他們不需要去ros構建環境——讓他們可以直接訪問maven存盤庫,
rosjava的構建環境
java
目前Java支持是針對ros ubuntu平臺上的openjdk,但它也同樣可以作業在其他java實作上,沒有什么不一樣的地方
Gradle
Gradle是用于管理單個和多個java專案構建的工具(類似于c++中的CMake)它提供了一種強大的腳本語言以及對各種模塊和擴展的插件支持.
Gradle對rosjava構建的范圍擴展到了堆疊概念,它通常控制幾個相關軟體包的編譯和組裝,
Maven
maven 用于存盤gradle構建的二進制結果,也用于處理系統依賴關系(又稱rosdeps)
它是一個完全跨平臺的解決方案,允許您檢索和部署java依賴項,
Catkin
我們很少使用Catkin,它的任務是提供ros包資訊, 成為跨多個存盤庫構建序列的粘合劑,可能由不同的人維護,
rosjava_core
(http://rosjava.github.io/rosjava_core/hydro/index.html)
rosjava_core是ROS的純Java實作.它提供了一個客戶端庫,使Java程式員能夠快速地與ROS的topic、services和Parameters互動,也提供了roscore的Java實作
Ros Android 應用
RosActivity
在RosActivity類的基礎上構建android應用程式,
robot_activity功能包的介紹(http://wiki.ros.org/robot_activity).是一個ROS的包,實作了節點生命周期,這個想法是,當一個新的ROS節點時,你不必撰寫大量的 bolier-plate代碼在C++中

Android Interactions(互動)
讓你的android應用程式與安裝機器人進行有效的互動,
Android應用程式比pc和ssh隧道更容易讓用戶(甚至開發者)使用他們的機器人.
Android Pairings(配對)
Simultaneously bring up & tear down an android listener/robot talker pair.
Using native ROS code on Android
http://wiki.ros.org/android_ndk
參考資料
http://wiki.ros.org/android
http://wiki.ros.org/rosjava
http://wiki.ros.org/android_core
https://github.com/rosjava/rosjava_mvn_repo(半官方包)
https://github.com/turtlebot/turtlebot_android(simple apps for turtlebot development.)
https://github.com/ekumenlabs/base_controller(Android controllers for the Kobuki and the Husky robots.)
http://wiki.ros.org/rosjava/Tutorials/kinetic/No%20Ros%20Installation(沒有ros的情況下,用Android配置ros的app)
https://index.ros.org/doc/ros2/(ROS2)
https://www.cnblogs.com/hiram-zhang/p/10410171.html(Android手機端與robot端ROS網路通信)
http://wiki.ros.org/ApplicationsPlatform/Clients/Android/Tutorials/Getting%20Started(Building A ROS Android App)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/154088.html
標籤:其他
下一篇:Android生命周期
