主要内容

开始使用TurtleBot支持包万博1manbetx

这个案例展示了如何接口与TurtleBot®机器人。你可以从机器人的传感器获取传感器数据和发送命令来控制机器人的运动。

所有功能是模拟机器人在露台或物理TurtleBot。

  • 如果您使用的是一个真正的TurtleBot,遵循硬件设置步骤开始一个真正的TurtleBot

  • 或者,您可以下载一个虚拟机映像安装已经ROS和露台。这个虚拟机是基于Ubuntu Linux®®和预配置支持这个例子。万博1manbetx按照安装步骤从露台和模拟TurtleBot开始,发射露台的办公室访问一个模拟TurtleBot世界。

连接到TurtleBot

连接到机器人代替示例IP地址的IP地址TurtleBot。这将创建一个turtlebot对象可以用来获取传感器数据来控制机器人的运动。

ipaddress =“192.168.192.132”;tbot = turtlebot (ipaddress)
tbot = turtlebot属性:速度:[1×1 struct] ColorImage: [1×1 struct] GrayImage: [1×1 struct] DepthImage: [1×1 struct] PointCloud: [1×1 struct]提升:[1×1 struct]测程法:[1×1 struct] OdometryReset: [1×1 struct] IMU: [1×1 struct] TransformFrames:{0×1细胞}TopicNames:{32×1细胞}

指定命令速度主题名称。

tbot.Velocity。TopicName =' / cmd_vel ';

获得传感器数据

得到机器人的位置和姿态的测距传感器。

构成= getOdometry (tbot)
提出了=结构体字段:位置:[3.0898 e-05 9.9519 e-05 -0.0010]取向:[6.2384 e-04 0.0032 - -3.3232 e-06]

每个TurtleBot传感器或控制命令的功能属性表示turtlebot类。例如,测程法属性包含关于机器人的测距传感器的信息。

tbot.Odometry
ans =结构体字段:TopicName: /奥多姆的活动:1

每个功能属性有两个字段。的TopicName字段显示了ROS主题用于接收传感器数据或发送控制命令。的活跃的字段允许您显式地启用或禁用数据流。

彩色图像用户显式地启用。注意,为了方便起见,彩色图像用户启用自动当你第一次电话getColorImage

tbot.ColorImage。积极= true;

同样的行为也适用于所有功能开始得到。每个属性都有一个关联的能力getPROP记者函数,道具指的是属性名。

得到一个从TurtleBot相机和彩色图像显示它。的getColorImage函数等待5秒的新形象。

[colorImg] = getColorImage (tbot);图imshow (colorImg)

你可以改变的最长时间的函数应该等待一个彩色图像通过指定一个可选的超时值(以秒为单位)。等待10秒的新形象。

colorImg = getColorImage (tbot 20);

禁用彩色图像订户。这可能是有用的,如果你想节省网络带宽或过程传感器数据离线。

tbot.ColorImage。积极= false;

控制机器人运动

你也可以发送命令来控制机器人的运动。移动机器人前进的速度0.3米/秒。

setVelocity (tbot, 0.3);

现在等到机器人完成移动,然后得到一个新的测程法阅读。

暂停(1)构成= getOdometry (tbot)
提出了=结构体字段:位置:[0.1464 - -8.5454 e-04 -0.0010]取向:[-0.0057 0.0032 -3.0712 e-06]

你可以重置测程法然后运动再试。resetOdometry设置机器人位置和机器人方向分别为(0,0,0)。

机器人前进时,你只能期待X位置值改变,而Y和Z值应接近0。

resetOdometry (tbot) setVelocity (tbot, 0.3);暂停(1)构成= getOdometry (tbot)
提出了=结构体字段:位置:[1.0262 -0.0066 -0.0010]取向:[-0.0075 0.0032 -4.0146 e-06]

请注意,setVelocity只向机器人发送一个命令停止移动的很快。命令TurtleBot继续运动的指定时间内,您可以使用另一种语法。

移动机器人在一个圆周运动为5秒。

setVelocity (tbot, 0.3, 0.6,“时间”10);

末端的运行时间,发送速度为0的机器人。末端的运行时间,发送速度为0的机器人。从机器人的深度传感器获取点云来验证机器人在哪里。

[pcloud, pcloudmsg] = getPointCloud (tbot);图;scatter3 (pcloudmsg)

第二个输出参数pcloudmsg是可选的,并且给你收到ROS的信息访问。看到使用专门的ROS的消息为更多的信息。从所有其他功能得到还返回ROS消息作为第二,可选的输出。

断开与机器人

断开与清理的机器人tbot从工作空间变量。

清晰的tbot