ROS学习

ROS的通信机制:

点对点的通信机制

ROS组件化工具包:

3D可视化工具——rviz

物理仿真环境——gazebo

数据记录工具——rosbag

Qt工具箱——rqt_*

5·ROS系统实现一一计算图

(1)节点(Node)一软件模块

(2)节点管理器(ROSMaster)一一控制中心,提供参数管理

(3)话题(Topic)一异步通信机制,传输消息(Message)

(4)服务(Service)一同步通信机制,传输请求/应答数据

5.ROS系统实现——话题通信机制

① TaIker注册

② Listener注册

③ ROSMaster进行信息匹配

④ Listener发送连接请求

⑤ Talker确认连接请求

⑥ 建立网络连接

⑦ TaIker向Listener发布数据

5.ROS系统实现——服务通信机制

① TaIker注册

② Listener注册

③ ROSMaster进行信息匹配

④  建立网络连接

⑤ TaIker向Listener发布数据

5.ROS系统实现——参数通信机制

① TaIker设置变量

② Listener查询参数值

③ ROSMaster向Listener发送参数值

5.ROS系统实现——话题与服务的区别

5.ROS系统实现——文件系统

1、功能包清单(Packagemanifest):记录功能包的基本信息,包含作者信息、许可信息、依赖选项、编译标志等。

2、元功能包(MetaPackages):组织多个用于同一目的功能包。

3、元功能包清单(MetaPackages):类似于功能包清单,不同之处在于元功能包清单中可能会包含运行时需要依赖的

功能包或者声明一些引用的标签。

4、消息类型(Message):消息是ROS节点之间发布/订阅的通信信息,可以使用ROS系统提供的消息类型,也可以使

用.msg文件在功能包的msg文件夹下自定义需要的消息类型。

5、服务类型(Service):服务类型定义了ROS服务器/客户端通信模型下的请求与应答数据类型,可以使用ROS系统

提供的服务类型,也可以使用.srv文件在功能包的.srv文件夹中进行定义。

6、代码(Code):放置功能包节点源代码的文件夹。

5.ROS系统实现——开源社区

1、发行版(Distribution):ROS发行版包括一系列带有版本号、可以直接安装的功能包。

2、软件源(Repository):ROS依赖于共享网络上的开源代码,不同的组织机构可以开发或者共享自己的机器人软件。

3、ROSwiki:记录ROS信息文档的主要论坛。

4、邮件列表(Mailinglist):交流ROS更新的主要渠道,同时也可以交流ROS开发的各种疑问。

5、ROS Answers:咨询ROS相关问题的网站。

6、博客(Blog):发布ROS社区中的新闻、图片、视频(http://www.ros.org/news)

image