主要内容

3 d立体视觉大满贯无人机导航模拟

视觉大满贯是一个过程,计算相机的位置和姿态对其周围环境,同时环境的映射。开发一个视觉SLAM算法和评估其在不同条件下的性能是一项非常具有挑战性的任务。最大的挑战之一是产生地面真理的相机传感器,特别是在户外环境中。使用模拟下可以测试各种场景和相机的配置,同时提供精确的地面实况。

这个例子演示了使用虚幻引擎®仿真开发视觉大满贯算法对无人机配备一块立体相机在一个城市的场景。有关视觉的实现大满贯的更多信息管道立体相机[1],请参阅立体视觉同步定位和映射的例子。

建立模拟环境

首先,设置一个场景的仿真环境,可以用来测试视觉算法。使用场景描述一个典型的城市街区与无人机作为被测试车辆。

接下来,选择一个无人机遵循的轨迹。你可以按照选择路径点虚幻引擎模拟(自动驾驶工具箱)例子交互式地选择一个锚点序列,然后使用helperSelectSceneWaypoints函数来生成参考轨迹无人机。这个示例使用记录参考轨迹如下所示:

%负荷参考路径data =负载(“uavStereoSLAMData.mat”);pos = data.pos;%的位置orientEuler = data.orientEuler;%取向

UAVTrajectoryVSLAM.png

的UAVVisualSLAMIn3DSimulation万博1manbetx仿真软件®配置模型与美国街区现场使用模拟3 d场景配置(无人机工具箱)块。该模型无人机在现场使用的地方模拟3 d无人机(无人机工具箱)块。立体相机组成的两个模拟3 d相机(无人机工具箱)块是附着在无人机。的对话框模拟3 d相机(无人机工具箱)块,用越来越多的选项卡来调整摄像机的位置。使用参数相机的选项卡配置属性来模拟不同的相机。估计的intrinsic立体相机,你想模拟,使用使用立体相机校准器应用应用程序。

%立体相机参数focalLength = (1109、1109);%的像素principalPoint = (640、360);%的像素(x, y)图象尺寸= (720、1280);%在像素(mrows, ncols)基线= 0.5;%在米%打开模型modelName =“UAVVisualSLAMIn3DSimulation”;open_system (modelName);

vSLAMModelUAV.PNG

实现立体视觉算法

辅助立体视觉大满贯系统块实现了立体视觉大满贯管道,包括以下步骤:

  • 地图初始化:管道首先初始化图像的三维地图分一对立体相机使用差异产生的地图。左边的图像存储为第一个关键帧。

  • 跟踪:一旦初始化地图,为每一个新的立体相机的姿势估计通过匹配特性在左边图像特征在过去的关键帧。估计相机姿势精制通过跟踪当地地图。

  • 当地的地图:如果当前左图像被确定为一个关键帧,新的3 d地图点计算从立体的差距。在这个阶段,包调整用于最小化reprojection错误通过调整相机的姿势和3 d点。

  • 循环关闭:为每个关键帧检测到循环通过比较它与以前的所有关键帧使用bag-of-features方法。一旦检测到循环闭合,构成图进行了优化完善相机带来的所有关键帧。

算法的实现细节,请参阅立体视觉同步定位和映射的例子。

立体视觉大满贯仿真运行

模拟模型和可视化结果。的视频查看器块显示立体图像的输出。的点云的球员显示重建的三维地图估计相机轨迹。

如果~ ispc错误(“虚幻引擎模拟只支持微软”万博1manbetx+ char (174) +“Windows”+ char (174) +“。”);结束%设置随机种子得到一致的结果rng (0);%运行仿真sim (modelName);

图点云播放器包含一个坐标轴对象。坐标轴对象包含2散射类型的对象,线。这些对象代表映射点,估计轨迹。

循环之间的边缘添加关键帧:2和91

stereoImageUAV.png

关闭模式。

close_system (modelName);

引用

[1]Mur-Artal,劳尔和胡安·d·缓慢的。“ORB-SLAM2:单眼的开源大满贯系统,音响,和RGB-D相机。”IEEE机器人33岁的没有。5 (2017):1255 - 1262。