主要内容

移动Turtlebot机器人使用ROS的行动

这个例子展示了如何使用/ turtlebot_moveTurtlebot机器人行动。的/ turtlebot_move行动需要机器人环境中的位置和机器人移动到指定的位置。

按以下步骤在从露台和模拟TurtleBot开始设置模拟TurtleBot。启动虚拟机后,发射露台空世界使用桌面快捷方式,打开终端窗口。

服务器运行Turtlebot ROS行动,ROS分销终端使用此命令。

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

连接到一个ROS网络。你必须有一个ROS行动在这个网络服务器设置。改变ipaddressROS网络的地址。

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

查看ROS行动网络上可用。您应该看到/ turtlebot_move可用。

rosaction列表
/ turtlebot_move

创建一个简单的操作客户端连接到操作服务器。指定动作名称。goalMsg是您指定的目标信息的目标参数。使用结构体消息格式更好的效率。

(客户端,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
关闭全局节点/ matlab_global_node_88888 NodeURI http://192.168.178.1:57929