ROS功能包介绍
- action:放置功能包自定义的动作指令。
- config:放置功能包中的配置文件,由用户创建,文件名,可以不同。
- include:放置功能包需要的头文件。
- launch:放置功能包中的所以启动文件。
- msg:放置功能包自定义的消息类型。
- scripts:放置可以直接执行的python代码。
- src:放置需要编译的c++代码。
- srv:放置功能包自定义的服务类型。
- CMakeLists.txt:编译器编译功能包的规则。
- package.xml:功能包清单。
注: 工作空间中也有src文件夹且功能包src放在工作空间src中。
工作空间(workspace):是 一个存放工程开发相关文件的文件夹。
- src:代码空间(Source Space)存放所有ROS功能包的源码文件。
- build:编译空间(Build Space)存放工作空间编译中产生的缓存缓存信息和中间文件。
- devel:开发空间(Development Space)存放编译生成的可执行文件。
- install:安装空间(Install Space)编译成功后,可使用make install命令将可行文件安装到该空间中,运行该空间中的环境变量脚本,即可在终端中运行这些可执行文件。install文件夹不是必须要创建的。
节点(Node):软件模块。
节点管理器(ROS Master):控制中心,提供参数管理。
话题(Topic):异步通信机制,传输消息(Message)(单向传输)。
服务(Service):同步通信机制,传输请求/应答数据(双向传输)。
Launch语法
结构
<launch>
<node pkg="package-name" type="executable-name1" name="node-name1"/>
<node pkg="package-name" type="executable-name2" name="node-name2"/>
</launch>
- pkg =“mypackage” :节点所在的功能包名称。
- type=“nodetype” : 节点的可执行名称。
- name=“nodename” :节点运行是额名称。
- output=“screen”:控制节点的输出是否打印到终端屏幕上,默认输出为日志文档。
- respawn=“ture”:控制节点突然在运行中挂掉了是否自动重启,默认为false。
- required=“ture”:必要节点,当该节点终止时,launch中的其他节点也被终止。
- ns=“namespace”:为每个节点命名空间,避免冲突。
- args=“arguments”:节点需要通过指令配合使用