重置
重置CurrentTime
的属性velodyneROSMessageReader
对象的默认值
描述
重置(
重置veloReader
)CurrentTime
指定的属性velodyneROSMessageReader
对象的默认值。的值是默认值开始时间
财产的velodyneROSMessageReader
对象。
例子
与调速发电机ROS的消息
调速发电机ROS消息存储数据的格式,需要一些解释之前,可以用于进一步的处理。MATLAB®可以帮助你通过格式化调速发电机ROS消息,便于使用。在本例中,您可以探索VelodyneScan
从调速发电机激光雷达处理消息。
先决条件:处理基本的ROS消息
加载示例消息
负载调速发电机消息示例。这些消息从调速发电机激光雷达传感器收集的数据填充。
负载(“lidarData_ConstructionRoad.mat”)
VelodyneScan消息
VelodyneScan
消息是ROS的消息包含调速发电机激光雷达扫描数据包。你可以看到的标准ROS格式VelodyneScan
适当的消息通过创建一个空的消息类型。使用消息结构格式获得更好的性能。
emptyveloScan = rosmessage (“velodyne_msgs / VelodyneScan”,“DataFormat”,“结构”)
emptyveloScan =结构体字段:MessageType:“velodyne_msgs / VelodyneScan”标题:[1×1 struct]包:[0×1 struct]
既然你创建了一个空的消息,emptyveloScan
不包含任何有意义的数据。为了方便起见,加载lidarData_ConstructionRoad.mat
文件包含一组VelodyneScan
完全填充和存储的消息公司
变量。每个元素的公司
单元阵列是一个VelodyneScan
ROS消息结构体。在每个主数据VelodyneScan
消息的包
属性,它包含多个VelodynePacket
消息。你可以看到标准的ROS VelodynePacket消息通过创建一个空的消息格式适当的类型。
emptyveloPkt = rosmessage (“velodyne_msgs / VelodynePacket”,“DataFormat”,“结构”)
emptyveloPkt =结构体字段:MessageType:“velodyne_msgs / VelodynePacket”邮票:[1×1 struct]数据:[1206×1 uint8]
创建调速发电机ROS消息读者
的velodyneROSMessageReader
对象读取的点云数据VelodyneScan
ROS消息根据其指定的模型类型。注意,提供一个不正确的设备模型可能导致不当校准点云。这个示例使用的消息“HDL32E”
模型。
veloReader = velodyneROSMessageReader(短信息,“HDL32E”)
veloReader = velodyneROSMessageReader属性:VelodyneMessages:{28×1细胞}DeviceModel:“HDL32E”CalibrationFile:“M: 2021 _06_16_h16m50s15_job1697727_pass \ jobarchive \ Bdoc21b \ \ matlab工具箱\ \ \ pointclouds \工具\ velodyneFileReaderConfiguration \ HDL32E共享。xml的NumberOfFrames: 55持续时间:2.7477秒开始时间:1145.2秒EndTime: 1147.9秒时间戳:[1145.2秒1145.4 1145.2 1145.3秒1145.3秒秒秒1145.6 1145.4 1145.6秒1145.5 1145.5秒秒秒秒1145.8 1145.7 1145.8秒1145.7秒秒秒1145.9秒1145.9秒…]CurrentTime: 1145.2秒
提取点云
你可以从原始数据包消息中提取点云的帮助下velodyneROSMessageReader
对象。通过提供一个特定的帧数或时间戳,可以提取点云velodyneROSMessageReader
对象使用readFrame
对象的功能。如果你叫readFrame
没有一个帧数或时间戳,它提取中的下一个点云序列的基础上CurrentTime
财产。
创建一个标量表示持续时间1秒后第一个点云阅读。
timeDuration = veloReader。开始时间+秒(1);
阅读第一个点云记录或在给定的时间。
ptCloudObj = readFrame (veloReader timeDuration);
访问位置
在点云数据。
ptCloudLoc = ptCloudObj.Location;
重置CurrentTime
的属性veloReader
的默认值
重置(veloReader)
显示所有点云
你也可以遍历所有点云在输入调速发电机ROS的消息。
定义x - y -,和z -轴的限制pcplayer
在米。标签的轴。
xlimits = 60 [-60];ylimits = 60 [-60];zlimits = 20 [-20];
创建点云的球员。
球员= pcplayer (xlimits ylimits zlimits);
标签的轴。
包含(player.Axes“X”(m));ylabel (player.Axes“Y (m)”);zlabel (player.Axes“Z”(m));
第一个捕获感兴趣的点云在0.3秒到输入消息。设置CurrentTime
属性,时间开始阅读点云。
veloReader。CurrentTime= veloReader.StartTime + seconds(0.3);
显示点云流2秒。检查是否一个新的框架可用,继续过去的2秒,删除最后一个而
条件。遍历文件通过调用readFrame
阅读的点云。使用点云播放器显示它们。
而(hasFrame (veloReader) & & isOpen(球员)& & (veloReader。CurrentTime < veloReader。开始时间+ seconds(2))) ptCloudObj = readFrame(veloReader); view(player,ptCloudObj.Location,ptCloudObj.Intensity); pause(0.1);结束
输入参数
veloReader
- - - - - -调速发电机®ROS消息读者
velodyneROSMessageReader
对象
调速发电机ROS消息读者,作为一个指定velodyneROSMessageReader
对象。
版本历史
介绍了R2020b
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。万博1manbetx
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。