此示例显示了通过使用的键盘控制TurtleBot®examplehelperturtlebotcommunicator.
班级。说明书描述了如何设置对象以及如何启动键盘控件。启动功能时会显示如何使用键盘控件的说明。要更改函数的参数,请编辑examplehelperturtlebotkeyboardControl.
功能或者ExampleHelperTurtleBotKeyInput
班级。有关使用MATLAB®使用TurtleBot的介绍,请参阅入门示例(开始使用真正的turtlebot或开始使用凉亭和模拟乌龟机器人的)
先决条件:与Turtlebot沟通那探索Turtlebot的基本行为
此示例概述了使用其本地ROS界面与TurtleBot一起使用。基于Turtlebot的机器人的R金宝appOS工具箱™支持包提供了一个更简化的Turtlebot2硬件的界面。
安装支持包,打开金宝app加载项>获取硬件支持包金宝app在matlab上家标签并选择ROS工具箱支持包装为土金宝app耳其机器人。或者,使用罗萨迪恩斯
命令。
确保你在Gazebo®模拟或真实硬件上运行一个TurtleBot。指开始使用凉亭和模拟乌龟机器人或开始使用真正的turtlebot对于启动过程。如果您使用的是模拟,凉亭办公室
对探索有利。
初始化ROS。通过替换连接到TurtleBotIP地址
使用Turtlebot的IP地址。
ipaddress =“http://192.168.178.133:11311”;罗斯尼特(ipaddress)
使用NodeURI http://192.168.178.1:55912/初始化全局节点/matlab_global_node_59490
如果您使用的是真正的TurtleBot2硬件,请确保您启动了Kinect®摄像头。在TurtleBot的终端上运行如下命令:
罗斯利克turtlebot_bringup.3dsensor.launch.
在TurtleBot版本之间可能存在一些功能、传感器和主题名称的差异。在控制它时,一定要检查使用的版本和预期的主题。
Turtlebotversion = 3;%凉亭办公室世界使用TurtleBot3汉堡模型
订阅OCOMORY和激光扫描主题,并确保您可以在这些主题上接收消息。使用结构消息格式进行通信以获得更好的性能。
句柄。odomSub = rossubscriber (“/ odom”那“缓冲区大小”,25,“dataformat”那“结构”);接收(Handles.odomsub,3);handles.lasersub = Rossubscriber(“/扫描”那“缓冲区大小”5,“dataformat”那“结构”);接收(Handles.lasersub,3);
创建一个用于控制机器人速度的发布者。
如果turtlebotversion == 3 veltopic =“/ cmd_vel”;别的veltopic =“/ mobile_base /命令/速度”;结尾handles.velpub = rospublisher(veltopic,“dataformat”那“结构”);
跑过examplehelperturtlebotkeyboardControl.
功能,允许您使用键盘控制Turtlebot。将插入的代码示例标记为代码(突出显示并按'ALT + ENTER')以执行该函数。
exampleHelperTurtleBotKeyboardControl(处理);
以下是指令窗口,世界剧情和凉亭世界的样本,后者是用户的一些键盘洞穴:
如果你太快地移动了turtlebot,因为在高速下的内径术语中的相对不准确性,障碍物绘图可能会变得凌乱。这是一个凌乱的世界情节的一个例子:
显示了围绕办公空间移动的真正火炬的样本图:
一旦通过按下函数问:
,清除主机上的发布者和订户。
清晰的
用Rosshutdown.
一旦完成了ROS网络。关闭全球节点并断开来自Turtlebot的连接。
Rosshutdown.
使用NodeURI http://192.168.178.1:55912/关闭全局节点/matlab_global_node_59490
参考下一个例子:用turtlebot和vfh避免避免