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)])