动作通信的Python实现
现在,我们通过针对以下案例需求进行Python的实现,以更加深入了解动作通信。
案例需求&案例分析
需求:编写动作服务端,动作客户端提交一个整型数据N,动作服务端接收请求数据并累加1-N之间的所有整数,将最终结果返回给动作客户端,且每累加一次都需要计算当前运算进度并反馈给动作客户端。
分析:在上述需求中,我们需要关注以下三个要素:
- 动作客户端;
- 动作服务端;
- 消息载体。
流程简介
案例实现前需要自定义动作接口。
现在,我们通过针对以下案例需求进行Python的实现,以更加深入了解动作通信。
需求:编写动作服务端,动作客户端提交一个整型数据N,动作服务端接收请求数据并累加1-N之间的所有整数,将最终结果返回给动作客户端,且每累加一次都需要计算当前运算进度并反馈给动作客户端。
分析:在上述需求中,我们需要关注以下三个要素:
案例实现前需要自定义动作接口。
现在,我们通过针对以下案例需求进行C++的实现,以更加深入了解动作通信。
需求:编写动作通信,动作客户端提交一个整型数据N,动作服务端接收请求数据并累加1-N之间的所有整数,将最终结果返回给动作客户端,且每累加一次都需要计算当前运算进度并反馈给动作客户端。
分析:在上述需求中,我们需要关注以下三个要素:
案例实现前需要自定义动作接口。
动作通信 (Action Communication) 同样是一种基于 请求响应
的方式,以实现不同节点之间数据传输的通信模式。其中发送请求数据的对象称为 客户端,接受请求并发送数据相应的对象称之为 服务端。为了与前文的 服务通信 相区分,将这里的客户端称为动作客户端,服务端称为动作服务端。
实现自定义动作接口消息的流程与实现自定义话题接口消息的流程类似,其主要步骤如下:
.action
文件;因此,我们现在会在之前创建的接口功能包 base_interfaces_demo
里,尝试编写一个 .action
文件。该文件中包含请求数据(两个整型字段)与响应数据(一个整型字段)。
版权声明:本文为博主转载文章,遵循 CC 4.0 BY 版权协议。因为自测有用转载至此,以下为原文链接👇
原文链接:https://blog.csdn.net/weixin_44023934/article/details/121242176
该方法是可以跳过 sudo rosdep init 初始化命令设置的,前提是安装ros,rosdep update 是安装一些依赖库,比如在 Cartographer、ORB-SLAM 等算法需要使用到一些依赖库,是必须安装的,如果不是有需要的,只是使用 ros 一般依赖,是不需要 rosdep update 的
现在,我们通过针对以下案例需求进行Python的实现,以更加深入了解服务通信。
需求:编写服务通信,客户端可以提交两个整数到服务端,服务端接收请求并解析两个整数求和,然后将结果响应回客户端。
分析:在上述需求中,我们需要关注以下三个要素:
案例实现前需要自定义服务接口。
在接口准备完毕后,服务通信实现的主要步骤如下:
现在,我们通过针对以下案例需求进行C++的实现,以更加深入了解服务通信。
需求:编写服务通信,客户端可以提交两个整数到服务端,服务端接收请求并解析两个整数求和,然后将结果响应回客户端。
分析:在上述需求中,我们需要关注以下三个要素:
案例实现前需要自定义服务接口。
在接口准备完毕后,服务通信实现的主要步骤如下:
服务通信是一种基于 请求响应
的方式实现不同节点之间数据传输的通信模模式。发送请求数据的对象称为客户端,接受请求并发送数据相应的对象称之为服务端,与话题通信一样,客户端和服务端也通过话题(Topic)相关联,但是客户端和服务端可以互相进行数据传输交互。因此在服务通信中,消息的流向是双向的。
在服务通信中,服务端与客户端是一种一对多的关系。也就是说,在同一服务话题下,可以存在多个客户端,但只能存在一个服务端。每个客户端都可以向服务端发送请求,也即与该单个服务端之间建立独立的相互通信。
实现自定义服务接口消息的流程与实现自定义话题接口消息的流程类似,其主要步骤如下:
.srv
文件;因此,我们现在会在之前创建的接口功能包 base_interfaces_demo
里,尝试编写一个 .srv
文件。该文件中包含请求数据(两个整型字段)与响应数据(一个整型字段)。
实现自定义话题接口消息的流程与在功能包中编写可执行程序的流程相似,其主要步骤如下:
.msg
文件;因此,我们现在会在之前创建的接口功能包 base_interfaces_demo
里,尝试编写一个 .msg
文件。该文件中包含学生的姓名、年龄、身高等字段。