什么是ROS
ROS全称 Robot Operating System, 即机器人操作系统,诞生于斯坦福大学,是目前机器人和无人驾驶汽车的常用框架
ROS的特征
ROS主要有五大特征:
- 它支持分布式:在部署多机之间的消息通讯时,ROS提供了一个天然的支持。
- 它是跨语言,它并不关注每个节点之间是用什么语言来写的。你只需要按照ROS提供的一些接口完成消息的订阅和分发即可以完成一个消息之间的通信。
- 它是一个轻量级的ROS程序,用户只需要关注自己核心模块的算法逻辑,不需要关注底层是如何通信、如何断开通信、如何进行Service
和Param之间的一些交互的。 - 它是一个开源的框架,大家都可以往ROS里面贡献自己的一些想法和代码。
- 点对点:两个Node之间进行消息通讯是一个点对点的行为。
ROS的核心概念
ROS的核心思想主要分为四大方面:
- 松耦合:ROS是一个松耦合的框架,松耦合就是各个节点之间的通信是一个解耦合的关系。
- 节点:一个算法模块,比如自动驾驶系统里面的感知模块、定位模块、决策模块或者控制模块,这些模块就是一个简单的算法集合,在ROS里面被称为一个节点。
- 节点管理器:在ROS里面被定义为Master,用来集中式管理各个独立的、松耦合、无序节点之间的逻辑关系,它是轻量级的介入,当各个节点启动完成以后,他们在通信连接完成之前起到中转也就是类似于交换机的作用。
- Topic:两个节点之间的通信主题。Topic内部使用的数据格式是Message。Message是一系统简单的数据类型或者是一些自定义的复杂数据类型,所组装成的一个描述文件
ROS常用命令
Roscore:启动一个节点管理器。
节点常用命令:
Rosnode list:可以列出当前系统里面所存在的节点。
Rosnode info:查看某一节点的具体的一些信息。
Topic常用命令:
Rostopic list:可以查看所存在Topic的一些列表。
Rostopic info:可以查看到发送这个Topic的发送方,订阅这个Topic的订阅方。
Rostopic type:查看Topic内部所使用的MSG的数据结构。
Rostopic pub:调试计算节点模块的一些基本功能。