话题topic与服务service
topic是一个单向通信,是需求方向应答方不断地发射请求;
service是双向通信,需求方向应答方发送一个请求(request),应答方受到request后向需求方发送message。
如上图,Camera Node是Camera数据的发布方,负责从Camera里获取图像数据,并发送image data消息,而image Processing Node这个节点 负责处理图像数据,则是在订阅该数据,并不断接受camera node 发送的数据。Image Display Node则订阅该信息,并负责在远端展示。
上述模型是订阅模型,初始化时,Image Processing Node和Image Display Node订阅了Image data message话题,程序启动后,Camera Node 会不断播发该话题,而Image Processing Node 和 Image Display Node则会不断获取该信息。
话题消息定义基本格式是.msg
服务则是同步通信机制,在话题通信模式下,发布方不断向外发送消息,但是可能因为信号阻塞等原因,导致接收方暂时无法获得消息或者接受有延迟,导致发送方播发数据和接收方获取到的数据存在差异,这就是异步消息机制。但通常,我们发送方需要了解接收方是否接收到消息,基本机制是,发送方发送消息数据后,等待一段时间以捕获到接收方的反馈,如果超过该等待时间则会继续播放下条消息,或者弹出异常;当在指定时间段内收到接收方的反馈,则会继续播发下条消息,保证二者消息的同步。
利用.srv定义通信服务结构
这种情况常用于配置服务,即后端根据需求向前端设备发送request,然后前端根据request对消息进行调整,并作出应答,这种一般只是进行一次。
参数配置
这里的参数相当于全局共享的字典;
它可以通过网络共享访问,可以储存多个变量;
且储存的变量是静态,不可更改;
public static final var data1=value1;
public static final var data2=value2;
public static final var data3=value3;
...
文件系统
元功能包:包含多个相同功能的功能包——>功能包:包含源代码,数据定义,配置文件。功能包清单等——>功能包清单:主要负责描述该功能包。