客户端
ROS
与
Android
之间的通信可以基于
rosjava
、
rosbridge
进行;
rosjava
仅支持到
ROS Indigo
版本;
rosbridge
通过
WebSocket
以
JSON
格式的
API
为非
ROS
环境提供
ROS
通信支
持
,
包括对话题和服务的各种操作
,
适合局域网场景;
在广域网场景中,采用
C/S/C
架构,客户端和设备均基于
MQTT
、
HTTP
等
协议接入服务器;
应用层
ROS
的系统代码根据维护者和分布可以分为
main
、
universe
两部分
main
部分为核心部分,提供了
ROS
的基本框架和工具,主要由
Willow
Garage
公司设计、提供以及维护
universe
部分则由社区进行开发和维护,一部分是工具代码如
OpenCV
、
PCL
等,这类代码通常是对第三方工具的封装,另一部分是应用层代码,主
要针对特定问题如人脸识别等开发
应用层
GitHub
仓库:
ROS Android
、
ROS Controls
、
ROS Core
、
ROS Drivers
、
ROS Java
、
ROS Planning
、
ROS Simulation
、
ROS Visualization
等。
ROS Controls
提供了硬件相关的控制器、接口等功能;
ROS Core
提供标准消息、编译系统、
roscpp
、
rospy
、
actionlib
、
pluginlib
、
nodelet
等功能;
ROS Drivers
提供了传感器和其他硬件的驱动;
ROS Planning
提供了导航和路径规划等功能;
ROS Visualization
提供了可视化工具如
rviz
、
rqt
等;