service是同步的通信机制,a和b间通过sevice机制通信,假设a是客户端访问b服务器端,a远程调用b上的某个函数,a程序得等b服务器响应后才能作其他的事情(运行其他程序),如果b服务器长期无响应,那么a啥也别做了,一直等下去吧,无法取消。显然效率低下,原因在于service时同步通信机制。
ros提供了另外一种通信机制action,可以在远程调用服务器上某程序后,转而执行其他的程序,周期性的获得服务器上的信息,或者取消发送到服务器上的某远程调用,机制灵活,异步通信。
本文探讨了ROS中Service和Action两种通信机制的区别。Service采用同步通信方式,客户端需等待服务器响应;而Action则支持异步通信,允许客户端在等待响应期间执行其他任务,并能周期性获取状态更新或取消请求。
service是同步的通信机制,a和b间通过sevice机制通信,假设a是客户端访问b服务器端,a远程调用b上的某个函数,a程序得等b服务器响应后才能作其他的事情(运行其他程序),如果b服务器长期无响应,那么a啥也别做了,一直等下去吧,无法取消。显然效率低下,原因在于service时同步通信机制。
ros提供了另外一种通信机制action,可以在远程调用服务器上某程序后,转而执行其他的程序,周期性的获得服务器上的信息,或者取消发送到服务器上的某远程调用,机制灵活,异步通信。
1812
3807
2800

被折叠的 条评论
为什么被折叠?