主要内容

transformScan

基于相对位姿的激光扫描变换

描述

例子

transScan= transformScan (扫描relPose中指定的激光扫描扫描通过使用指定的相对姿态,relPose

例子

transRangestransAngles) = transformScan (范围relPose中指定的激光扫描范围通过使用指定的相对姿态,relPose

例子

全部折叠

创建一个lidarScan对象。指定范围和角度为向量。

refRanges = 5 * 1 (1300);refAngles = linspace(-π/ 2π/ 2300);refScan = lidarScan (refRanges refAngles);

翻译激光扫描(x, y)偏置的(0.5, 0.2)

transformedScan = transformScan(refScan,[0.5 0.2 0]);

将激光扫描旋转20度。

rotateScan = transformScan (refScan(0, 0,函数(20)]);

使用matchScans函数查找两个激光雷达扫描之间的相对变换。然后,将第二次扫描转换为第一次扫描的坐标系。

加载一对激光雷达扫描作为一对lidarScan对象。它们是同一场景的两个扫描,只是相对姿势发生了变化。

负载tb3_scanPair.mat情节(s1)情节(s2)

图中包含一个轴对象。轴对象与标题LiDAR扫描包含2个对象的类型线。

相对姿态由里程传感器估计,并作为变量提供,initGuess,因为(x yθ)

disp (initGuess)
-0.7000 0.1500 -0.3254

使用扫描匹配来找到两个激光扫描之间的相对位姿,并指定位姿的初始猜想。

构成= matchScans (s1, s2“InitialPose”, initGuess);disp(构成)
-0.7213 0.1160 -0.2854

将第二次扫描转换为第一次扫描的坐标框架。绘制两个扫描图,看看它们现在重叠了。

s2Transformed = transformScan (s2,姿势);情节(s1)情节(s2Transformed)

图中包含一个轴对象。轴对象与标题LiDAR扫描包含2个对象的类型线。

输入参数

全部折叠

激光雷达扫描读数,指定为lidarScan对象。

扫描数据的范围值,指定为以米为单位的矢量。这些量程值是在指定的位置到传感器的距离.向量的长度必须与对应向量的长度相同向量。

扫描数据的角度值,指定为弧度矢量。这些角度值是指定的特定角度范围.向量的长度必须与对应向量的长度相同范围向量。

当前扫描的相对位姿,指定为(x yθ),在那里(x, y)平移单位是米和吗θ是以弧度为单位的旋转。

输出参数

全部折叠

转换的激光雷达扫描读数,指定为lidarScan对象。

转换扫描的范围值,以米为单位返回。这些量程值是在指定的位置到传感器的距离transAngles.这个向量和它对应的向量长度相同transAngles向量。

转换扫描的角度值,以弧度矢量返回。这些角度值是指定的特定角度transRanges.这个向量和它对应的向量长度相同范围向量。

扩展功能

C / c++代码生成
使用MATLAB®Coder™生成C和c++代码。

介绍了R2017a