主要内容

sendgoal

将目标消息发送到动作服务器

描述

例子

sendgoal(客户,,,,目标向操作服务器发送目标消息。指定的动作客户端跟踪此目标。该功能不会等待执行目标并立即返回。

如果是ActionFCN,,,,反馈, 和结果定义了客户端的回调,当目标在操作服务器上处理目标时,将其调用。与先前发送的目标相关联的所有回调都是禁用的,但先前的目标并未取消。

例子

全部收缩

此示例显示了如何创建目标消息并将其发送到ROS网络上已经有效的ROS Action服务器。您必须创建一个ROS Action客户端才能连接到该服务器。要运行操作服务器,此命令用于ROS分布:

roslaunch turtlebot_actions server_turtlebot_move.launch

之后,使用石榴石使用正确的IP地址。

石榴石('192.168.17.129',11311)
初始化全局节点/matlab_global_node_27318带有nodeuri http://192.168.17.1:60260/

创建ROS动作客户端并获取目标消息。这Actclient对象连接到已经运行的ROS Action服务器。这目标是一个有效的目标消息。用您的特定目标更新消息参数。

[actclient,gotalmsg] = rosactionclient('/turtlebot_move');disp(gotalmsg)
ros turtlebotmovegoal带有属性的消息:MessageType:'Turtlebot_actions/turtlebotmovegoal'turndistance:0 forwarddistance:0使用ShowDetails显示消息的内容

您还可以使用罗斯梅斯和动作客户端对象。此消息将线性和角速度命令发送到Turtlebot®机器人。

gotalmsg = rosmessage(actclient);disp(gotalmsg)
ros turtlebotmovegoal带有属性的消息:MessageType:'Turtlebot_actions/turtlebotmovegoal'turndistance:0 forwarddistance:0使用ShowDetails显示消息的内容

修改目标消息参数,然后将目标发送到操作服务器。

partemsg.forwarddistance = 2;sendgoal(ActClient,Gotalmsg)

此示例显示了如何发送和取消ROS动作目标。操作类型必须在运行的操作服务器之前事先设置。

您必须设置'/fibonacci'动作类型。要运行此操作服务器,请在ROS系统上使用以下命令:

Rosrun ActionLib_tutorials fibonacci_server

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

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

石榴石('192.168.203.133',11311)
初始化nodeuri http://192.168.203.1:55284/初始化全局节点/matlab_global_node_18287
[actclient,gotalmsg] = rosactionclient('/fibonacci',,,,“ dataformat',,,,“结构”);Waitforserver(ActClient);

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

gotalmsg.order = int32(4);[resultmsg,resultstate] = sendgoalandwait(actclient,gotalmsg)
resultmsg =带有字段的结构:MSSAGETYPE:“ ActionLib_Tutorials/fibonacciresult'序列:[0 1 1 1 2 3]
结果州='成功'
Rosshowdetails(resultmsg)
ans ='MessageType:actionlib_tutorials/fibonacciresult序列:[0,1,1,2,3]'

在不等待的情况下发送新的目标消息。

gotalmsg.order = int32(5);sendgoal(ActClient,Gotalmsg)

取消ROS动作客户端的目标,Actclient

取消行动(ActClient)

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

取消行人(ActClient)

删除操作客户端。

删除(ActClient)

与ROS网络断开连接。

Rosshutdown
使用Nodeuri http://192.168.203.1:55284/关闭全局节点/matlab_global_node_18287

输入参数

全部收缩

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

ROS动作目标消息,指定为信息对象处理或结构。使用您的目标详细信息更新此消息,然后使用它发送给ROS Action客户端sendgoal或者sendgoalandwait

笔记

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

要立即使用消息结构,请设置“ dataformat”名称值参数“结构”。有关更多信息,请参阅ROS消息结构

扩展功能

版本历史记录

在R2019b中引入

展开全部

将来发行的行为变化