主要内容

sendGoalAndWait

发送目标消息并等待结果

描述

例子

resultMsg= sendGoalAndWait (客户端goalMsg使用指定的操作客户端向操作服务器发送目标消息,并等待操作服务器返回结果消息。新闻Ctrl + C中止等待。

resultMsg= sendGoalAndWait (客户端goalMsg超时超时时间,以秒为单位。如果服务器在超时时间内没有返回结果,函数将显示错误。

resultMsg状态状态) = sendGoalAndWait (___使用前面任何一种语法返回最终目标状态和关联的状态文本。的状态包含有关目标执行是否成功的信息。

例子

全部折叠

这个示例展示了如何发送和取消ROS操作的目标。操作类型必须在操作服务器运行之前设置。

你一定设置了“/斐波那契”动作类型。要运行此操作服务器,请在ROS系统上使用以下命令:

rosrun actionlib_tutorials fibonacci_server

首先,设置一个ROS操作客户端。然后,发送一个带有修改参数的目标消息。最后,取消操作服务器上的目标和所有目标。

连接指定IP地址的ROS网络。创建一个连接到ROS网络的ROS动作客户端rosactionclient.指定操作名称。等待客户端连接到服务器。

rosinit (“192.168.203.133”, 11311)
使用NodeURI http://192.168.203.1:55284/初始化全局节点/matlab_global_node_18287
[actClient, goalMsg] = rosactionclient (“/斐波那契”“DataFormat”“结构”);waitForServer (actClient);

发送一个带有修改参数的目标消息。等待目标完成执行。

goalMsg。订单= int32 (4);[resultMsg, resultState] = sendGoalAndWait (actClient goalMsg)
resultMsg =结构体字段:actionlib_tutorials/FibonacciResult' Sequence: [0 1 1 2 3]
resultState = '成功'
rosShowDetails (resultMsg)
ans = ' MessageType: actionlib_tutorials/FibonacciResult Sequence: [0,1,1,2,3]'

发送一个新的目标消息,无需等待。

goalMsg。订单= int32 (5);sendGoal (actClient goalMsg)

取消ROS操作客户端的目标,actClient

cancelGoal (actClient)

取消操作服务器上的所有目标actClient连接到。

cancelAllGoals (actClient)

删除操作客户端。

删除(actClient)

断开ROS网络。

rosshutdown
使用NodeURI http://192.168.203.1:55284/关闭全局节点/matlab_global_node_18287

输入参数

全部折叠

ROS操作客户端,指定为SimpleActionClient对象句柄。这个简单的操作客户端允许您每次跟踪一个目标。

ROS行动目标消息,指定为消息对象句柄或结构。使用目标详细信息更新此消息,并将其发送到ROS操作客户端sendGoalsendGoalAndWait

请注意

在未来的版本中,ROS工具箱ROS消息将使用消息结构而不是对象。

要现在使用消息结构,请设置“DataFormat”名称-值参数“结构”.有关更多信息,请参见ROS消息结构

接收结果消息的超时时间,指定为标量(单位为秒)。如果客户端在指定时间内没有收到新的结果,则返回错误提示。

输出参数

全部折叠

结果消息,作为ROS返回消息对象或结构。结果消息包含动作服务器发送的结果数据。该数据取决于操作类型。

请注意

在未来的版本中,ROS工具箱ROS消息将使用消息结构而不是对象。

要现在使用消息结构,请设置“DataFormat”名称-值参数“结构”.有关更多信息,请参见ROS消息结构

最终目标状态,返回为下列状态之一:

  • “等待”-目标已收到,但尚未被接受或拒绝。

  • “活跃”-目标已被接受并正在服务器上运行。

  • “成功”—目标执行成功。

  • “抢占”—操作客户端在完成执行之前取消了目标。

  • “失败”—目标在完成执行之前被终止。操作服务器通常会中止一个目标。

  • “拒绝”这个进球没有被接受“等待”状态。操作服务器通常会触发此状态。

  • “回忆”-一个客户取消了目标,当它在“等待”状态。

  • 《迷失》—操作客户端出现内部错误。

服务器与最终目标状态关联的状态文本,作为字符向量返回。

兼容性的考虑

全部展开

行为将在未来的版本中改变

介绍了R2019b