移动Turtlebot机器人使用ROS的行动
这个例子展示了如何使用/ turtlebot_move
Turtlebot机器人行动。的/ turtlebot_move
行动需要机器人环境中的位置和机器人移动到指定的位置。
按以下步骤在从露台和模拟TurtleBot开始设置模拟TurtleBot。启动虚拟机后,发射露台空世界使用桌面快捷方式,打开终端窗口。
服务器运行Turtlebot ROS行动,ROS分销终端使用此命令。
~ / start-turtlebot-move-action-server.sh
连接到一个ROS网络。你必须有一个ROS行动在这个网络服务器设置。改变ipaddress
ROS网络的地址。
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