发现以前学习东西总是将所需要的知识从书上、网上等各种途径拿到手用到自己所需要的地方,偶尔将其记录在笔记上没有将其公开,这样的坏处是没有经过自己的一个整理,没有对这个知识点的沉淀以及得到广大网友的验证以及批评指正。
ROS机器人操作系统这几年开始变得流行,是一种用于机器人的开源次级操作系统,提供类似操作系统提供的功能,如硬件抽象,底层设备控制,常用功能实现,进程间消息以及数据包管理。但它更像是一个软件平台,在平台上方便做各种算法的设计开发。在老师和师兄的指导下开始了ROS的学习之路,开始对着《机器人操作系统(ROS)浅析》这本书将小乌龟跑了一遍。基本对节点、消息、话题、服务这些概念有所了解,以及对节点管理器、启动文件、编程方法等有所了解。
【几个概念】
1、功能包(package)
它是一组用于实现特定功能的相关文件的集合,包括可执行文件和其他支持文件,其类似于我们用VS之类的IDE所创建的工程。通过catkin_create_pkg package-name 所创建的包自动包含CMakeLists.txt和package.xml两个文件
2、节点管理器
节点启动之前必须先打开节点管理器,否则将报错,如下。
启动节点管理器用如下命令
roscore
不带任何参数, 使用Ctrl+c终止节点管理器
3、节点
ros程序的运行实例。类似于运行的一个进程。
节点的启动使用命令
$ rosrun package-name executable-name
也可以在启动文件中一次启动多个节点
4、话题和消息
ros各个节点之间的通信机制采用消息传递的形式。一个节点通过发布一种话题的消息供其它节点订阅。节点之间相互不知道消息来自于谁以及被谁订阅。他们之间的关系是多对多
5、服务
相对于消息传递多对多的机制不适用于请求/回复的方式,ros提供一种一对一 的机制,即一个用于请求,一个用于回复