主要内容

ROS行动概述

客户到服务器关系

ROS操作具有与指定协议的客户端到服务器通信关系。这些操作使用ROS主题将目标消息从客户端发送到服务器。您可以使用操作客户端取消目标。在接收到目标后,服务器将对其进行处理并向客户端返回信息。此信息包括以下状态:e服务器、当前目标的状态、操作期间对该目标的反馈,以及目标完成时的最终结果消息。

使用sendGoal函数将目标发送到服务器。使用发送目标并等待其完成sendGoalAndWait。此函数使您能够返回结果消息、目标的最终状态和服务器的状态。当服务器执行目标时,回调函数,反馈,以提供与该目标相关的数据(请参见SimpleAteCtionClient.)。取消当前目标使用取消目标或者使用服务器上的所有目标CANCLALLGOALS..

执行操作工作流程

通常,在ROS网络上创建和执行ROS操作时,会执行以下步骤。

  • 安装ROS操作服务器。通过键入以下内容检查ROS网络上有哪些操作可用玫瑰行动列表在matlab.®命令窗口。

  • 使用rosactionclient要创建动作客户端并将其连接到服务器。指定ROS网络上当前可用的操作类型。使用waitForServer等待操作客户端连接到服务器。

  • 使用发送目标sendGoal.定义一个进球对应于操作类型的。使用创建操作客户端时rosactionclient,一个空白进球返回。您可以使用所需参数修改此消息。

  • 当目标状态变为'积极的',目标开始执行,目标结束激活FCN调用回调函数。有关修改此回调函数的详细信息,请参阅SimpleAteCtionClient..

  • 而目标状态保持不变'积极的',服务器继续执行目标。每当接收到新的反馈消息时,反馈回调函数会周期性地处理有关此目标的信息。使用反馈访问或处理从ROS服务器发送的消息数据。

  • 当目标实现时,服务器返回结果消息和状态结果CN回调以访问或处理结果消息和状态。

行动信息和功能

ROS操作使用ROS消息发送目标并接收有关其执行的反馈。在MATLAB中,您可以使用回调函数来访问或处理来自这些消息的反馈和结果信息。创建后SimpleAteCtionClient.对象,通过将函数句柄分配给对象上的属性来指定回调函数。您可以使用创建对象rosactionclient.

  • 守门员-目标消息包含有关目标的信息。若要执行操作,必须发送包含更新目标信息的目标消息(请参阅)sendGoal)。目标消息的类型取决于ROS操作的类型。

  • 激活FCN-在操作服务器上接收到目标后,其状态变为'待办的'直到服务器决定执行它。状态为'积极的'. 此时,MATLAB执行中定义的回调函数激活FCN财产的财产SimpleAteCtionClient.对象。没有与此功能关联的ROS消息或数据。默认情况下,此功能仅显示'目标是活跃的'在MATLAB命令行上以通知您的目标正在执行。

    默认功能句柄是:

    @(~)disp('目标是活跃的')
  • 反馈-反馈功能用于处理来自反馈消息的信息。反馈消息的类型取决于操作类型。在目标操作期间,只要收到新的反馈消息,反馈功能就会定期执行。默认情况下,该功能使用展示细节.您可以在反馈功能中对反馈消息进行其他处理。

    默认功能句柄是:

    @(〜,msg)disp([“反馈:”,showdetails(msg)])

    味精将反馈消息作为您定义的函数的输入参数。

  • 结果CN-结果函数在目标完成时执行。此函数的输入包括结果消息和执行状态。结果消息的类型取决于操作类型。此消息,味精和状态,s,与使用时获得的输出相同sendGoalAndWait。此功能还可用于在目标完成后触发相关流程。

    默认功能句柄是:

    @(~,s,msg)显示([“国家的结果”,char(s),': ',showdetails(msg)])

另见

|

相关话题