ROS学习笔记
下载
使用鱼香ROS,一键下载十分好评~
学习地址
官网网站:ros.wiki
调试
- 打开终端,输入
roscore
,发现最后输出start core service
,说明安装成功 - 尝试小海龟,打开另一个终端,输入
rosrun turtlesim turtlesim_node
,出现小海龟的窗口,说明成功 - 其他小海龟玩法:小海龟画圆
关于文件结构
-
最高层是 home 中自己建的 workspace,在里面应该有三大部分:
build devel src
,其中 src 是我们 写代码的地方,build是存放运行过程中产生的文件的地方,devel是存放可执行文件的地方。 -
要想成功运行,src 中应包含
CMakeLists.txt
。这是告诉计算机编译规则的文件,依赖于 cmake,不过正常安装ros时会同时配置 cmake。 -
在 src 中是一些 package,package 里面有新的 CMakeLists.txt,还有必要的 package.xml,其余有 src子文件夹,里面就是依赖于 roscpp 与 rospy 的代码,还有 include 文件夹,里面是头文件。
关于 ros 结构
参考 ros wiki 里面的教程,这里完全是 ros1 的内容
- node,节点,是存放信息的地方,与输入输出端口一一对应,比如一个 node 节点可以对应一个激光测距仪。
- master,为计算图的其余部分提供名称注册和查找。没有Master,节点将无法找到彼此、交换消息或调用服务。
- Parameter Server,参数服务器,允许数据按密钥存储在中心位置,目前是master的一部分。
- massage,节点通过传递消息相互通信。消息只是一个数据结构,由键入的字段组成。支持标准基元类型(整数、浮点、布尔等)以及基元类型的数组。消息可以包含任意嵌套的结构和数组(很像C结构)。
- topic,节点通过将消息发布到给定的主题来发送消息。主题是用于标识消息内容的名称。单个主题可能有多个并发发布者和订阅者,单个节点可以发布和/或订阅多个主题。可以将主题视为强类型的消息总线。每条总线都有一个名称,只要消息类型正确,任何人都可以连接到总线发送或接收消息。
- services,发布/订阅模型是一种非常灵活的通信范式,但它的多对多单向传输不适合分布式系统中经常需要的请求/回复交互。请求/回复是通过服务完成的,服务由一对消息结构定义:一个用于请求,一个用于回复。提供节点以名称提供服务,客户端通过发送请求消息并等待回复来使用该服务。ROS客户端库通常将这种交互呈现给程序员,就像它是一个远程过程调用一样。
- bag,包是一种用于保存和播放ROS消息数据的格式。