开始使用TurtleBot支持包金宝app
简介
本示例演示如何与TurtleBot®机器人进行交互。你可以从机器人的传感器中获取传感器数据,并发送命令来控制机器人的运动。
所有功能都可以与Gazebo中的模拟机器人或物理TurtleBot一起工作。
如果您使用的是真正的TurtleBot,请遵循硬件设置步骤开始一个真正的乌龟机器人.
或者,您也可以下载已经安装了ROS和Gazebo的虚拟机映像。此虚拟机基于Ubuntu®Linux®,并已预先配置以支持此示例。金宝app按照设置步骤进行操作开始凉亭和模拟乌龟机器人,并启动
Gazebo TurtleBot World
访问一个模拟TurtleBot。
连接到TurtleBot
将示例IP地址192.168.1.1替换为TurtleBot的IP地址,连接机器人。
ipaddress =“192.168.1.1”
Tbot = turtlebot(ipaddress)
此调用创建一个turtlebot
可用于检索传感器数据和控制机器人运动的对象。
获取传感器数据
通过测程传感器获取机器人的位置和方向。
姿态= getOdometry(tbot)
中的capability属性表示每个TurtleBot传感器或控制命令turtlebot
类。例如,测程法
属性包含关于机器人的里程计传感器的信息。
tbot。测程法
每个能力属性有两个字段。的TopicName
字段显示用于接收传感器数据或发送控制命令的ROS主题。的活跃的
字段允许显式启用或禁用数据流。
显式启用彩色图像订阅者。注意,为方便起见,彩色图像订阅者在您第一次调用时自动启用getColorImage
.
tbot.ColorImage.Active = true;
相同的行为适用于以得到
.每个功能属性都有一个相关联的getPROP
或记者
函数,道具
引用属性名。
从TurtleBot相机获取彩色图像并显示它。的getColorImage
函数等待新图像的时间最长为5秒。
colorImg = getColorImage(tbot);图;imshow (colorImg);
您可以通过指定一个可选的超时值(以秒为单位)来更改函数应该等待彩色图像的最大时间。等待最多10秒,才会有新图像。
colorImg = getColorImage(tbot, 20);
禁用彩色图像订阅者。如果您想保存网络带宽或脱机处理传感器数据,这可能很有用。
tbot.ColorImage.Active = false;
控制机器人运动
你还可以发送命令来控制机器人的运动。以每秒0.3米的速度向前移动机器人。
setVelocity (tbot, 0.3);
现在等待机器人完成移动,然后得到一个新的里程表读数。
暂停(1)姿态= getOdometry(tbot)
您可以重置里程表,然后再次尝试运动。resetOdometry
将机器人位置和机器人方向分别设置为[0,0,0]。
当你向前移动机器人时,你可以期望只有X位置值发生变化,而Y和Z值应该接近0。
setVelocity(tbot, 0.3);暂停(1)姿态= getOdometry(tbot)
你会注意到setVelocity
只向机器人发送一个命令,它就会很快停止移动。要命令TurtleBot在指定的时间段内继续运动,可以使用另一种语法。
以圆周运动移动机器人5秒。
setVelocity(tbot, 0.3, 0.6,“时间”10);
在经过的时间结束时,速度0被发送给机器人。从机器人的深度传感器获取点云来验证机器人的位置。
[pcloud, pcloudmsg] = getPointCloud(tbot);图;scatter3 (pcloudmsg)
方法的第二个返回参数getPointCloud
函数是可选的,它允许您访问接收到的ROS消息。看到使用专门的ROS消息获取更多信息。所有其他函数都以得到
还将ROS消息作为第二个可选输出返回。
断开与机器人的连接
从机器人断开通过清除tbot
变量。
明确tbot