主要内容

getLaserScan

获取激光扫描传感器读数TurtleBot

描述

例子

扫描= getLaserScan (tbot等待TurtleBot发出的下一个激光扫描信息®通过接口对象连接,tbot,并返回激光扫描结果。如果5秒内没有收到消息,该函数将显示一个错误。

扫描scanMsg= getLaserScan(tbot还返回接收到的ROS激光扫描消息。

___= getLaserScan(tbot超时等待下一次激光扫描超时秒。如果在这段时间内没有收到新消息,该函数将显示一个错误。超时时间为零将不等待地返回最新接收到的消息。如果没有收到消息,该函数返回一个空矩阵扫描和一个空的信息scanMsg,如果指定。

例子

全部折叠

连接到TurtleBot机器人。改变“192.168.1.1”到机器人的IP地址。

龟形机器人(“192.168.1.1”);

让乌龟机器人做最新的激光扫描。

扫描= getLaserScan(tbot);

连接到TurtleBot机器人。改变“192.168.1.1”到机器人的IP地址。

龟形机器人(“192.168.1.1”);

从TurtleBot获得最新的激光扫描和信息。

[scan,scanMsg] = getLaserScan(tbot);

在笛卡尔坐标下读取激光扫描。激光扫描通常给出的范围和角度而不是xy坐标。

cart = readCartesian(扫描);

连接到TurtleBot机器人。改变“192.168.1.1”到机器人的IP地址。

龟形机器人(“192.168.1.1”);

从TurtleBot获得最新的激光扫描和信息。

[scan,scanMsg] = getLaserScan(tbot);

用绘图法绘制激光扫描图。

情节(scanMsg)

输入参数

全部折叠

TurtleBot接口对象,指定为turtlebot对象。该对象包含用于激活订阅者和访问与TurtleBot相关的主题名称的属性。属性包含TurtleBot不同订阅者的主题名称和活动状态。创建对象时使用turtlebot,可用的属性为:

龟形机器人
tbot = turtlebot与属性:Velocity: [1x1 struct] ColorImage: [1x1 struct] GrayImage: [1x1 struct] DepthImage: [1x1 struct] PointCloud: [1x1 struct] LaserScan: [1x1 struct] Odometry: [1x1 struct] OdometryReset: [1x1 struct] IMU: [1x1 struct] TransformFrames: {0x1 cell} TopicNames: {3x1 cell}

对于具有相关ROS数据消息的属性,您可以查看主题名称和订阅者的活动状态。给定的特定订阅者是活动的TopicName如果活跃的等于1。

tbot。速度
ans = TopicName: '/mobile_base/commands/velocity'激活:1

接收图像的超时时间,以秒为单位指定为标量。之后,函数返回一个错误超时秒。如果超时= 0时,函数返回最新的图像。如果TurtleBot没有最新消息,该函数将返回一个空白图像和空白图像消息。

输出参数

全部折叠

激光扫描读数,作为包含以下字段的结构返回:

  • 范围-包含以米为单位的距离读数的列向量。

  • -扫描角度的列向量范围被测量。正角是从x-轴以弧度表示。

范围而且向量的长度总是相同的。

“sensor_msgs /提升”ROS激光扫描消息,返回为提升对象句柄。

版本历史

在R2016a中引入