ros2通信接口

通信接口

在ros2中主要使用的通信接口有三类,分别是:

  • 话题接口(文件类型:.msg)
  • 服务接口 (文件类型:.srv)
  • 动作接口(文件类型:.action)

实际上这些接口可以看作是一个结构体,或者说是一个类。主要就是为了方便数据传输。因为大多数时间传输的数据都是含有多个数据,每次传输一个数据显然是不合理的。因此定义这些通信接口可以使得传输的数据更加合理。同时也可以方便读者看懂。
当用户定义数据类型,编译后程序会生成相应的代码文件。事实上代码调用的是那些生成的代码文件需要注意的是需要配置编译文件(CMakeLists.txt文件)然后使用编译命令编译才能使接口文件顺利得被编译成相应的代码文件。 例如:

rosidl_generate_interfaces(${PROJECT_NAME}
  "myinterface.msg"			//这里是用户定义的话题接口文件
 )

话题接口

int32 a
int32 b

这个接口一般用于话题通信,其中a,b都是通信数据

服务接口

//请求数据
int32 a
int32 b
---
//应答数据
int32 ans

服务接口一般用于服务类的通信中

动作

//目标
bool enable
---
//结果
bool finish
---
//反馈
int32 state

需要注意的是在客户端中使用*add_done_callback(method)*方法接收结果时,服务器第一次发送的数据是关于连接成功或者失败的信息。因此为了避免运行错误可以对消息进行判断,或者定义两个回调方法,在运行过程中进行回调方法的修改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值