应用场景:
action通信相比于请求响应的模式,请求响应是一问一答,而action通信可以连续反馈机器人状态信息。
以导航为例子,导航过程中,如果在其上部署了服务通信,那么只有在导航结束的时候,才能产生响应结果,可能会导致用户的不良体验,像导航终止的需求就无法实现。如果使用action通信,那么可以连续反馈当前机器人的状态信息,导航终止时,再返回最终的执行结果。
action:如果它的实现模型是基于请求响应的,并且这是一个耗时操作,那么你就可以尝试使用action通信,例如:导航、机械臂。
概念和作用:
在ROS中提供了actionlib功能包集,用于实现 action 通信。action 是一种类似于服务通信的实现,其实现模型也包含请求和响应,但是不同的是,在请求和响应的过程中,服务端还可以连续的反馈当前任务进度,客户端可以接收连续反馈并且还可以取消任务。
两端交流方式
实现方式:1定义一个中间action文件2实现action客服端3实现action服务端
action文件和msg、srv文件 高度一致