《ROS机器人编程》第四章_ROS的重要概念
2020-09-09

更新!整理出《ROS机器人编程》第四章ppt讲义版,请对照书籍P40-89页学习。配套视频教学文档可在YouTube上查看。


1.jpg


2.jpg


3.jpg


4.jpg


【说明】

节点:易于单元(节点)测试,有助于ROS生态系统->与其他开发人员共享程序。

节点应该有多小?>考虑重用节点


5.jpg


【说明】根据其用途,有4种类型的消息。

*1:1发布者和订阅者通信也可以用于主题,
和1:N,N:1,N:N通信也可以根据用途而定。


6.jpg


【说明】双向沟通

只有一次

一个服务被分成服务服务器和服务客户端,其中服务服务器只在有请求(request) 的时候才响应(response),而服务客户端会在发送请求后接收响应。与话题不同,服务是一次性消息通信。因此,当服务的请求和响应完成时,两个连接的节点将被断开。该服务通常被用作请求机器人执行特定操作时使用的命令,或者用于根据特定条件需要产生事件的节点。由于它是一次性的通信方式,又因为它在网络上的负载很小,所以它也被用作代替话题的手段,因此是一种非常有用的通信手段。


7.jpg


【说明】服务+反馈

需要更长时间的任务

动作消息通信是在如下情况使用的消息通信方式:服务器收到请求后直到响应所需的时间较长,且需要中途反馈值。这与服务非常相似,服务具有与请求和响应分别对应的目标(goal)和结果(result)。除此之外动作中还多了反馈(feedback)。收到请求后需要很长时间才能响应,又需要中间值时,使用这个反馈发送相关的数据。消息传输方案本身与异步方式的话题(topic)相同。反馈在动作客户端(action client)和动作服务器(action server)之间执行异步双向消息通信,其中动作客户端设置动作目标 (goal),而动作服务器根据目标执行指定的工作,并将动作反馈和动作结果发送给动作客户端。例如,如图4-4所示,当客户端将家庭服务器设置为服务器时,服务器会时时地通知客户端洗碗、洗衣和清洁等进度,最后将结果值发送给客户端。与服务不同,动作通常用于指导复杂的机器人任务,例如发送一个目标值之后,还可以在任意时刻发送取消目标的命令。


8.jpg


9.jpg


10.jpg


11.jpg


12.jpg


13.jpg


14.jpg


15.jpg


16.jpg


17.jpg


18.jpg


19.jpg


20.jpg


21.jpg


22.jpg


23.jpg


【说明】平移速度

转速

命令+包+节点


24.jpg


25.jpg


26.jpg


【说明】如第2章所述,为了最大化用户的可重用性,ROS是以节点的形式开发的,而节点是根据其目的细分的可执行程序的最小单位。节点则通过消息(message)与其他的节点交换数据,最终成为一个大型的程序。这里的关键概念是节点之间的消息通信,它分为三种。单向消息发送/接收方式的话题(topic);双向消息请求/响应方式的服务 (service);双向消息目标(goal)/结果(result)/反馈(feedback)方式的动作 (action)。另外,节点中使用的参数可以从外部进行修改。这在大的框架中也可以被看作消息通信。


27.jpg


28.jpg


29.jpg


30.jpg


31.jpg


32.jpg


33.jpg


34.jpg


35.jpg


36.jpg


37.jpg


38.jpg


39.jpg


40.jpg


41.jpg


原创声明:本篇文档为原创文档。欢迎转发转载,请注明出处。

Donghu Robot Laboratory, 2nd Floor, Baogu Innovation and Entrepreneurship Center,Wuhan City,Hubei Province,China
Tel:027-87522899,027-87522877

合作与咨询

渠道商务合作:18062020215

售前技术咨询:13807184032

售后服务热线:18062020228

网站备案号:鄂ICP备17004685号-1 | 技术支持 | 联系我们 | 服务条款与隐私权 | 网站地图