主要内容

使用ROS动作移动一个乌龟机器人

这个例子展示了如何使用/ turtlebot_move动作与龟机器人。的/ turtlebot_moveAction在机器人环境中选择一个位置,并试图将机器人移动到那个位置。

按照下面的步骤操作开始使用凉亭和模拟乌龟机器人来设置一个模拟的乌龟机器人。启动虚拟机后,启动虚拟机露台空使用桌面快捷方式打开终端窗口。

运行Turtlebot ROS动作服务器需要在ROS分发终端上使用此命令。

~ / start-turtlebot-move-action-server.sh

连接到ROS网络您必须在这个网络上设置一个ROS动作服务器。改变ipaddress发送到您的ROS网络地址。

ipaddress =“192.168.178.133”;rosinit (ipaddress, 11311);
使用NodeURI http://192.168.178.1:57929/初始化全局节点/matlab_global_node_88888

查看网络中可用的ROS动作。您应该看到/ turtlebot_move可用。

rosaction列表
/ turtlebot_move

创建一个简单的操作客户端来连接到操作服务器。指定操作名称。goalMsg是用于指定目标参数的目标消息。使用struct消息格式可以提高效率。

(客户端,goalMsg) = rosactionclient (“/ turtlebot_move”“turtlebot_actions / TurtlebotMove”“DataFormat”“结构”);waitForServer(客户端);

为目标设定参数。的goalMsg包含前进和转弯距离的属性。指定你希望机器人向前走多远和转弯的角度。这个例子让机器人向前移动了2米。

goalMsg。ForwardDistance =单(2);goalMsg。TurnDistance =单(0);

将反馈函数设置为空,以便在目标执行期间没有输出。离开FeedbackFcn作为获取关于目标执行的反馈信息的打印的默认值。

客户端。FeedbackFcn = [];

将目标消息发送到服务器。等待它执行并获得结果消息。

[resultMsg, ~, ~] = sendGoalAndWait(客户端,goalMsg)
resultMsg =结构体字段:MessageType: 'turtlebot_actions/TurtlebotMoveResult' TurnDistance: 0 ForwardDistance: 2.0078

断开ROS网络。

rosshutdown
使用NodeURI http://192.168.178.1:57929/关闭全局节点/matlab_global_node_88888