之前部落格已經介紹過一些在ROS系統上的Android環境的設定及專案的搭建。《ROS學習筆記之——基於ROS的Android開發》《基於linux系統安裝Android Studio》本博文來學習一下其整體框架
目錄
Using native ROS code on Android
Android的程式碼是基於rosjava使用者端和核心庫,準備與androidstudio和Google支援的androidgradle外掛無縫共同作業
android專案的官方原始碼可以在github(https://github.com/rosjava)上找到
在ROS Android開發時應該注意:
ROS Android的依賴圖如下圖所示
rosjava類似roscpp或rospy一樣。為ros通訊提供了一個使用者端庫(採用java語言),以及不斷增長的核心工具
rosjava的核心專案可以見:https://github.com/rosjava
Rosjava主要用於構建Android應用程式。
rosjava的目標是:
目前Java支援是針對ros ubuntu平臺上的openjdk。但它也同樣可以工作在其他java實現上,沒有什麼不一樣的地方
Gradle是用於管理單個和多個java專案構建的工具(類似於c++中的CMake)它提供了一種強大的指令碼語言以及對各種模組和擴充套件的外掛支援.
Gradle對rosjava構建的範圍擴充套件到了堆疊概念。它通常控制幾個相關軟體包的編譯和組裝。
maven 用於儲存gradle構建的二進位制結果,也用於處理系統依賴關係(又稱rosdeps)
它是一個完全跨平臺的解決方案,允許您檢索和部署java依賴項。
我們很少使用Catkin。它的任務是提供ros包資訊, 成為跨多個儲存庫構建序列的粘合劑,可能由不同的人維護。
(http://rosjava.github.io/rosjava_core/hydro/index.html)
rosjava_core是ROS的純Java實現.它提供了一個使用者端庫,使Java程式設計師能夠快速地與ROS的topic、services和Parameters互動。也提供了roscore的Java實現
在RosActivity類的基礎上構建android應用程式。
robot_activity功能包的介紹(http://wiki.ros.org/robot_activity).是一個ROS的包,實現了節點生命週期。這個想法是,當一個新的ROS節點時,你不必編寫大量的 bolier-plate程式碼在C++中
讓你的android應用程式與安裝機器人進行有效的互動。
Android應用程式比pc和ssh隧道更容易讓使用者(甚至開發者)使用他們的機器人.
Simultaneously bring up & tear down an android listener/robot talker pair.
http://wiki.ros.org/android_ndk
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)