接口
在通信过程中,需要传输数据,就必然涉及到数据载体,也即要以特定格式传输数据。在 ROS2 中,数据载体称之为接口(interfaces)
- 但是在使用接口之前,需要先弄清楚为什么需要接口?因为虽然ROS2里面存在
std_msgs
但是也仅仅包括的是下面的基础类别:
1 | int8, int16, int32, int64 (或者无符号类型: uint*) |
在实际使用的时候,根据任务的不同需求,我们自己来创建和定义自己的数据载体。
通信时使用的数据载体一般需要使用接口文件定义。常用的接口文件有三种:msg 文件
、srv 文件
与 action文件
(分别对应三种通信方式:话题通信、服务通信和动作通信)。每种文件都可以按照一定格式定义特定数据类型.(简单来说就是使用基本类型以及其他类型(比如输入可能是Image类型,输出是这个Image中人脸的位置)来创建对应的接口文件)的“变量”。
1 | 1.msg 文件:msg 文件是用于定义话题通信中数据载体的接口文件,一个典型的.msg 文件示例如下。 |
PS: 在创建接口文件的时候,一般建议创建专门的接口功能包定义接口文件,然后在其他功能包中去依赖这个自定义接口的功能包(需要注意的是,目前为止无法在 Python 功能包中定义接口文件)