tag 标签: 立体视觉

相关博文
  • 热度 6
    2023-6-26 10:23
    659 次阅读|
    0 个评论
    全面详解机器视觉三维成像方法及应用
    ▍引言 机器视觉三维成像目前应用最多的光学成像法包括:飞行时间法、激光扫描法、激光投影成像、立体视觉成像等。 ▍飞行时间3D成像 飞行时间(TOF)相机每个像素利用光飞行的时间差来获取物体的深度。 目前较成熟的飞行时间面阵相机商业化产品包括Mesa Imaging AG SR-4000,PMD Technologies Cam Cube 3.0,微软Kinect V2等。 TOF成像可用于大视野、远距离、低精度、低成本的3D图像采集,其特点是:检测速度快、视野范围较大、工作距离远、价格便宜,但精度低,易受环境光的干扰。例如Camcueb3.0可靠的深度精度(<3mm @ 4m),每个像素对应一个3D数据。 ▍扫描3D成像 扫描3D成像方法可分为扫描测距、主动三角法、色散共焦法。 扫描测距利用一条准直光束通过测距扫描整个目标表面实现3D测量,测量精度较高;主动三角法基于三角测量原理,利用准直光束、一条或多条平面光束扫描目标表面完成3D成像,如图2所示。但测量复杂结构面形时容易产生遮挡,需要通过合理规划末端路径与姿态来解决。 色散共焦法通过分析反射光束的光谱,获得对应光谱光的聚集位置, 如图3。色散共焦法适合测量透明物体、高反与光滑表面的物体。但缺点是速度慢、效率低;用于机械手臂末端时,可实现高精度3D测量,但不适合机械手臂实时3D引导与定位,因此应用场合有限。 线结构光扫描三维点云生成示意图 色散共焦扫描三维成像示意图 ▍结构光投影3D成像 结构光投影三维成像是目前机器3D视觉感知的主要方式。 结构光成像系统是由若干个投影仪和相机组成。 基本工作原理是:投影仪向目标物体投射特定的结构光照明图案,由相机摄取被目标调制后的图像,再通过图像处理和视觉模型求出目标物体的三维信息。 根据结构光投影次数划分,结构光投影三维成像可以分成 单次投影3D和多次投影3D方法。 单次投影3D主要采用空间复用编码和频率复用编码形式实现。由于单次投影曝光和成像时间短,抗振动性能好,适合运动物体的3D成像。但是深度垂直方向上的空间分辨率受到目标视场、镜头倍率和相机像素等因素的影响,大视场情况下不容易提升。 多次投影3D具有较高空间分辨率,能有效地解决表面斜率阶跃变化和空洞等问题。但也有如下不足之处: 1)对于连续相移投影方法,3D重构的精度容易受到投影仪、相机的非线性和环境变化的影响; 2)抗振动性能差,不合适测量连续运动的物体; 3)实时性差;不过随着投影仪投射频率和CCD/CMOS图像传感器采集速度的提高,多次投影方法实时3D成像的性能也在逐步改进。 对于粗糙表面,结构光可以直接投射到物体表面进行视觉成像;但对于大反射率光滑表面和镜面物体3D成像,结构光投影不能直接投射到被成像表面,需要借助镜面偏折法。 偏折法对于复杂面型的测量,通常需要借助多次投影方法,因此和多次投影方法有同样的缺点。另外偏折法对曲率变化大的表面测量有一定的难度,因为条纹偏折后反射角的变化率是被测表面曲率变化率的2倍,因此对被测物体表面的曲率变化比较敏感,很容易产生遮挡难题。 ▍立体视觉3D成像 立体视觉一般情况下是指从不同的视点获取两幅或多幅图像重构目标物体3D结构或深度信息。 立体视觉三维成像示意图 立体视觉可分为被动成像和主动成像两种形式。 被动视觉成像依赖相机接收到的由目标场景产生的光辐射信息,常用于特定条件下的3D成像场合,如室内等光线变动不大的场景,或几何规则明显,控制点比较容易确定的工业零部件等。 主动立体视觉是利用光调制(如编码结构光、激光调制等)照射目标场景,对目标场景表面的点进行编码标记,然后对获取的场景图像进行解码,以便可靠地求得图像之间的匹配点,再通过三角法求解场景的3D结构。主动立体视觉的优点是抗干扰性能强、对环境兼容性强(如通过带通滤波消除环境光干扰),3D测量精度、重复性和可靠性高;缺点是对于结构复杂的场景容易产生遮挡等问题。 ▍三维成像工业应用 基于结构光测量技术和3D物体识别技术开发的机器人3D视觉引导系统,可对较大测量深度范围内散乱堆放的零件进行全自由的定位和拾取。 相比传统的2D视觉定位方式只能对固定深度零件进行识别且只能获取零件的部分自由度的位置信息,具有更高的应用柔性和更大的检测范围。可为机床上下料、零件分拣、码垛堆叠等工业问题提供有效的自动化解决方案。 机器视觉3D引导系统框架 ▍3D重建和识别技术 3D扫描仪可获准确并且快速地获取场景的点云图像,通过3D识别算法,可实现在对点云图中的多种目标物体进行识别和位姿估计。 ▍3D重建和识别效率 ▍多种材质识别效果测试 基于重建算法和识别算法,可对不同材质的零件进行稳定的重建和识别,即便是反光比较严重的铝材料及黑色零件都能获得较好的重建和识别效果,可适用于广泛的工业场景。 ▍机器人路径规划 获得零件信息后,要成功拾取零件还需要完成以下几件事: ▍性能比较 类似于飞行时间相机、光场相机这类的相机,可以归类为单相机3D成像范围,它们体积小,实时性好,适合随动成像眼在手系统执行3D测量、定位和实时引导。但是,飞行时间相机、光场相机短期内还难以用来构建普通的随动成像眼在手系统,主要原因如下: 1.飞行时间相机空间分辨率和3D精度低,不适合高精度测量、定位与引导。 2.对于光场相机,目前商业化的工业级产品只有为数不多的几家,如德国Raytrix,虽然性能较好,精度适中,但价格贵,使用成本太高。 结构光投影3D系统,精度和成本适中,有较好的应用市场前景。它由若干个相机-投影仪组成的,如果把投影仪当作一个逆向的相机,可以认为该系统是一个双目或多目3D三角测量系统。 被动立体视觉3D成像,目前在工业领域也得到较好应用,但应用场合有限。因为单目立体视觉实现有难度,双目和多目立体视觉要求目标物体纹理或几何特征清晰。 结构光投影3D、双目立体视觉3D都存在下列缺点:体积较大,容易产生遮挡。针对这个问题虽然可以增加投影仪或相机覆盖被遮挡的区域,但会增加成像系统的体积,减小应用的灵活性。 ▍总结 虽然光学3D视觉成像测量方法种类繁多,但能够安装在工业机器人上,组成一种合适的随动成像眼在手系统,对位置变动的目标执行3D成像测量、引导机器人手臂准确定位和实施精准操作的方法有限。 从工业应用的角度来说,我们更关心的是3D视觉传感器的精度、速度、体积与重量。鉴于机器人末端能够承受的端载荷有限,允许传感器占用的空间有限,传感器在满足成像精度的条件下,重量越轻体积越小也就越实用。 对于随动成像眼在手系统,最佳3D成像方法是采用被动单目(单相机)3D成像方法,这样不仅体积小、重量轻,也解决了双目和多目多视图遮挡难题 。 关注公众号“优特美尔商城”,获取更多电子元器件知识、电路讲解、型号资料、电子资讯,欢迎留言讨论。
  • 热度 8
    2022-8-23 16:48
    705 次阅读|
    0 个评论
    如何通过立体视觉构建小巧轻便的深度感知系统 有多种 3D 传感器方案来实现深度感知系统,包括立体视觉相机、激光雷达和TOF(飞行时间)相机。每个选择都有其优缺点,其中,嵌入式深度感知立体系统成本低,坚固耐用,适合户外使用,并且能够提供高分辨率的彩色点云。 【导读】有多种 3D 传感器 方案来实现深度感知系统,包括立体视觉相机、激光雷达和TOF(飞行时间)相机。每个选择都有其优缺点,其中,嵌入式深度感知立体系统成本低,坚固耐用,适合 户外 使用,并且能够提供高分辨率的彩色点云。 目前市场上有各种现成的立体感知系统。有时系统工程师需求根据精度、基线(两个相机间距)、视野和分辨率等因素,构建定制系统来满足特定的应用需求。 在本文中,我们首先介绍了立体视觉系统的主要部分,并提供了有关使用硬件组成和开源软件制作定制立体相机的说明。由于此设置专注于嵌入式系统,因此它将实时计算任何场景的深度图,而无需电脑主机。在另一篇文章中,我们将讨论如何在空间较少的情况下构建定制立体视觉系统,以便与电脑主机一起使用。 立体视觉概述 立体视觉是通过从两个视角比较场景中的信息,从数字图像中提取 3D 信息。物体在两个图像平面中的相对位置可提供关于物体距离相机的深度的信息。 立体视觉系统概述如图 1 所示,包括以下关键步骤: 校准:相机校准包括内部校准和外部校准。内部校准确定图像中心、焦距和失真参数,而外部校准确定相机的 3D 位置。这在许多计算机视觉应用中是至关重要的一步,尤其是在需要有关场景的计量信息(例如深度)时。我们将在下文第 5 节详细讨论校准步骤。 纠正:立体纠正是指将图像平面重新投影到与相机中心之间的线平行的公共平面上的过程。纠正后,对应点位于同一行,大大降低了匹配的成本和模糊度。此步骤在提供的代码中完成,用于构建您自己的系统。 立体匹配:这是指在左右图像之间匹配像素的过程,从而产生视差图像。提供的代码中将使用半全局匹配 (SGM) 算法来构建您自己的系统。 三角测量:三角测量是指在给定 3D 空间中的点投影到两个图像上的情况下确定该点的过程。视差图像将转换为 3D 点云。 图 1:立体视觉系统概述 设计示例 我们来看一个立体声系统设计示例。以下是移动机器人在具有快速移动物体的动态环境中的应用要求。有关场景大小为 2 m,相机到场景的距离为 3 m,在 3 m 处所需的精度为 1 cm。 有关立体精度的更多详细信息,请参阅本文。深度误差由下式给出:ΔZ=Z²/Bf * Δd,这取决于以下因素: ● Z 是范围 ● B 是基线 ● f 是以像素为单位的焦距,与相机视野和图像分辨率有关 有多种设计选项可以满足这些要求。根据上述场景大小和距离要求,我们可以确定特定传感器的镜头焦距。结合基线,我们可以使用上述公式计算 3 m 处的预期深度误差,以验证其是否满足精度要求。 图 2 显示了两个选项,使用基线较长的低分辨率相机或基线较短的高分辨率相机。第一个选项是较大的相机,但计算需求较低,而第二个选项是更紧凑的相机,但计算需求较高。对于此应用,我们选择了第二个选项,因为紧凑的尺寸更适合移动机器人,我们可以使用适用于 TX2 的 Quartet 嵌入式解决方案,该解决方案具有强大的板载 GPU 来满足处理需求。 图 2:示例应用的立体声系统设计选项 硬件要求 在本例中,我们使用 IMX273 Sony Pregius 全局快门传感器将两台 Blackfly S 板级 160 万像素相机安装在 12 cm 基线处的 3D 印刷杆上。这两台相机都有类似的 6 mm S 接口 镜头。相机使用两条 FPC 电缆连接到“适用于 TX2 的 Quartet 嵌入式解决方案”定制载板。为了同步左右相机以同时捕捉图像,制作了一条连接两个相机的同步电缆。图 3 显示了我们定制的嵌入式立体声系统的前后视图。 图 3:定制嵌入式立体声系统的前后视图 下表列出了所有硬件组件: 应调整两个镜头,以将相机聚焦在您的应用所需的距离范围内。拧紧每个镜头上的螺钉(图 4 中以红色圈出)以保持对焦。 图 4:显示镜头螺钉的立体声系统侧视图 软件要求 a. Spinnaker Teledyne FLIR Spinnaker SDK 已预装在适用于 TX2 的 Quartet 嵌入式解决方案中。Spinnaker 需要与相机进行通信。 b. 支持 CUDA 的 OpenCV 4.5.2 SGM(我们正在使用的立体匹配算法)需要 OpenCV 4.5.1 或更高版本。下载包含本文代码的 zip 文件,并将其解压缩到 StereoDepth 文件夹。安装 OpenCV 的脚本是 OpenCVInstaller.sh。在终端中键入以下命令: ● cd ~/StereoDepth ● chmod +x OpenCVInstaller.sh ● ./OpenCVInstaller.sh 安装程序将要求您输入管理员密码。安装程序将开始安装 OpenCV 4.5.2。下载和构建 OpenCV 可能需要几个小时。 校准 抓取和校准立体图像的代码可在 “Calibration” 文件夹中找到。使用 SpinView GUI 识别左右相机的序列号。在我们的设置中,右相机是主相机,左相机是从相机。将主从相机序列号复制到文件 grabStereoImages.cpp 第 60 和 61 行。在终端中使用以下命令构建可执行文件: ● cd ~/StereoDepth/Calibration ● mkdir build ● mkdir -p images/{left, right} ● cd build ● cmake .. ● make 从此链接打印出棋盘状图案,并将其贴在平面上用作校准目标。为了在校准时获得最佳效果,在 SpinView 中将 Exposure Auto 设置为 Off 并调整曝光,使棋盘状图案清晰且白色方块不会过度曝光,如图 5 所示。收集校准图像后,增益和曝光可在 SpinView 中设置为自动。 图 5:SpinView GUI 设置 要开始收集图像,请键入 ./grabStereoImages 代码应以大约 1 帧/秒的速度开始收集图像。左侧图像存储在 images/left 文件夹中,右侧图像存储在 images/right 文件夹中。移动目标,使其出现在图像的每个角落。您可以旋转目标,从近处和远处拍摄图像。默认情况下,该程序捕获 100 个图像对,但可以使用命令行参数进行更改: ./grabStereoImages 20 这将仅收集 20 对图像。请注意,这将覆盖之前写入文件夹中的所有图像。部分示例校准图像如图 6 所示。 图 6:示例校准图像 收集图像后,通过键入以下内容运行校准 Python 代码: ● cd ~/StereoDepth/Calibration ● python cameraCalibration.py 这将生成 2 个名为 “intrinsics.yml” 和 “extrinsics.yml” 的文件,其中包含立体声系统的内部和外部参数。该代码默认采用 30mm 棋盘方格,但可以根据需要进行编辑。在校准结束时,它会显示 RMS 误差,表明校准的好坏。良好校准的典型 RMS 误差应低于 0.5 像素。 实时深度图 实时计算视差的代码位于 “Depth” 文件夹中。将相机序列号复制到文件 live_disparity.cpp 第 230 和 231 行。在终端中使用以下命令构建可执行文件: ● cd ~/StereoDepth/Depth ● mkdir build ● cd build ● cmake .. ● make 将校准步骤中获得的 “intrinsics.yml” 和 “extrinsics.yml” 文件复制到此文件夹。要运行实时深度图演示,请键入 ./live_disparity 它将显示左相机图像(原始未纠正图像)和深度图(我们的最终输出)。部分示例输出如图 7 所示。与相机的距离根据深度图右侧的图例进行颜色编码。深度图中的黑色区域意味着在该区域中没有发现视差数据。得益于 NVIDIA Jetson TX2 GPU,它在 1440 × 1080 的分辨率下可运行高达 5 帧/秒,在 720 × 540 的分辨率下可运行高达 13 帧/秒。 买电子元器件现货上唯样商城 要查看特定点的深度,请在深度图中单击该点,深度将会显示出来,如图 7 中最后一个示例所示。 图 7:对左相机图像和相应的深度图进行采样。底部深度图还会显示特定点的深度。 摘要 使用立体视觉来形成深度信息感知的优势众多,包括在户外工作良好,能够提供高分辨率的深度图,可通过低成本的现成组件制作。当您需要开发一个定制化的嵌入式立体感知系统,根据此处提供的说明进行操作,也将是一个相对简单的任务。
  • 热度 30
    2014-2-18 11:49
    1237 次阅读|
    0 个评论
    0 引言 智能车环境感知系统的一个重要任务就是实时地提供车辆在行使过程中的位置信息。机器视觉因其有信号探测范围宽、获取信息完整、符合人类认知习惯、维护成本低、不产生环境污染等多优点,已在智能车环境感知系统中广泛采用。机器视觉车辆环境感知系统中的主要任务是完成道路及目标的识别和跟踪,为智能车行使提供必须的本车位置信息和周围环境距离信息。 对于现实情况下的道路,一般可以将其分为两大类,即:结构化道路和非结构化道路。结构化道路上有明显的道路标记,且这些标记具有较强的几何特征,道路路面主要是由这些标记界分确定的,如高速公路上道路中间黄色的连续标志线或白色的间断标志线以及两旁白色的连续标志线;非结构化道路上没有明显的道路标记,在二维图像中道路路面与非路面主要依靠纹理与色彩而区分的,如没有标记的水泥路、野外土路或石板路等。 弯道图像包含丰富的道路信息和环境信息,解释了道路周围场景。弯道检测是从道路图像中检测出弯曲车道线的边界,这也是对弯道理解的基础。建立弯道模型;提取车道线像素点;拟合车道线模型属于目前较常采用的认知方法,并在特定的结构化道路体现出较好的检测效果。文献 介绍了弯道检测在车道偏离预警、弯道限速以及弯道防碰撞预警等领域的应用情况,并提出了弯道检测应该建立三维车道线模型,提高适用性。 均采用的Hough变换求出车道线直线方程,从而确定对应直线段上的最低点和最高点,然后根据相应准则判断曲线道路的弯曲方向,最后分段拟合车道线的直线段和曲线段实现车道线的二维重建。 弯道检测不仅需要识别出道路边界线,还需要判断道路弯曲方向,确定转弯的曲率半径。常用的车道检测方法可分为2大类:基于道路特征和基于道路模型的方法。目前国外主要常用基于道路模型的方法,即将弯道检测转化为各种曲线模型中数学参数的求解问题。省略弯道曲线模型建立和数学参数的复杂求解过程,本文采用立体视觉感知环境的三维信息,利用它的视差原理对所获取室内道路周边环境图像中角点特征的位置恢复其三维信息来判断车体的弯道转向和偏航角度。建立了视觉信息直接控制车体驱动偏离角与偏离距离视觉伺服控制系统,初步采用了BP控制策略,利用Simulink仿真环境实现了针对未知弯道曲率的智能车转弯控制运动。 【分页导航】 第1页: Simulink仿真智能车转弯控制 第2页: 立体视觉系统模型 第3页: 室内环境特征向量的提取与匹配 第4页: 运动估计 第5页: 车体定位参数计算 第6页: 弯道控制策略 第7页: 控制仿真实验 1 室内道路环境信息的视觉感知 1.1 立体视觉系统模型 采用针孔成像模型将图像中任何点的投影位置与实际点的物理位置建立连线关系,摄像机光心O与空间P点间的连线OP与图像平面的交点即为图像投影的位置(u,v)。用齐次坐标和矩阵表示上述透视投影关系为: 本文采用的双目平行相机的模型如图1所示,C1与C2摄像机的焦距相等,各内部参数也相等,而且两个相机的光轴互相平行,x轴互相重合,y轴互相平行,因此,将第一个摄像机沿x轴平移一段距离b后与第二个摄像机完全重合。假设C1坐标系为O1 x1 y1 z1,C2坐标系为O2 x2 y2 z2,则在上述摄像机配置下,若任何空间点P的坐标在C1坐标系下为(x1),y1,z1,在C2坐标系下为(x1)-b,y1,z1。由中心摄影的比例关系可得: 其中(u1,v1)、(u2,v2)分别为P1与P2的图像坐标。由P1与P2的图像坐标(u2,v2)、(u2,v2)可求出空间点P的三维坐标(x1,y1,z1)。 【分页导航】 第1页: Simulink仿真智能车转弯控制 第2页: 立体视觉系统模型 第3页: 室内环境特征向量的提取与匹配 第4页: 运动估计 第5页: 车体定位参数计算 第6页: 弯道控制策略 第7页: 控制仿真实验 1.2 室内环境特征向量的提取与匹配 由于噪声、光照变化、遮挡和透视畸变等因素的影响,空间同一点投影到两个摄像机的图像平面上形成的对应点的特性可能不同,对在一幅图像中的一个特征点或者一小块子图像,在另一幅图像中可能存在好几个相似的候选匹配。因此需要另外的信息或者约束作为辅助判据,以便能得到惟一准确的匹配。最近邻法是一种有效的为每个特征点寻找匹配点的方法。最近邻点被定义为与特征点的不变描述子向量之间的欧氏距离最短的点。 假定参考图像P的SIFT特征点集合为:FP ={FP (1),FP (2),-,FP (m)},m为图像P的特征点的个数;待匹配图像Q的特征点的个数为N,SIFT特征点集合为FQ ={FQ (1),FQ (2),-,FQ (m)}。当在建立参考图像中的特征点和待匹配图像的特征筛选对应匹配关系时,应按照图2所示的算法进行对称性测试,只有当两个匹配集中的对应点完全一致时,才视为有效匹配。 SIFT特征向量生成后,利用特征点向量的欧式距离来作为两幅图像中特征点的相似性判定度量。最近邻法是一种有效的为每个特征点寻找匹配点的方法。 最近邻点被定义为与特征点的不变描述子向量之间的欧氏距离最短的点。对特征点集合FP中的每个点,逐一计算其与特征点集合FQ中每个点的距离,得到特征点之间的距离集合D。将距离集合D中的元素进行排序,得到最近邻距离dmin和次近邻距离dn–nim。SIFT算法通过判断最近邻和次近邻距离的比值: 来区分正确匹配对和错误匹配对。 对于正确的匹配对,其最近邻距离dmin要远远小于次近邻距离dn-nim,即DistanceRatio-1;而错误的匹配对,由于特征空间的维数很高,其最近邻距离dmin与次近邻距离dn-nim差距不大,即DistanceRatio≈1。所以可取一个距离比阈值Threh∈(0,1)来区分正确匹配对和错误匹配对。 【分页导航】 第1页: Simulink仿真智能车转弯控制 第2页: 立体视觉系统模型 第3页: 室内环境特征向量的提取与匹配 第4页: 运动估计 第5页: 车体定位参数计算 第6页: 弯道控制策略 第7页: 控制仿真实验 1.3 运动估计 进行特征点立体匹配和跟踪匹配如图2所示,对当前时刻t获得图像对(ImgL1和ImgL2)进行SIFT特征匹配之后获得道路环境匹配特征点Ni个,再对相邻时刻t+1获得的Ni+1个特征点计算欧式距离,寻找t与t+1时刻获取图像中相同的特征点,得到一系列匹配点在车体运动前后的三维坐标。 本文实验环境是在室内,在假定室内环境为理想的水平面的基础上,同一特征点三维坐标中y坐标保持基本不变,即车体运动参数仅在x-z坐标平面内发生变化。 图3中点P(x1,y1,z1)为所提取环境特征点,在t时刻立体匹配后得到其在摄像头坐标系下的三维坐标,由于摄像头固定安装在小车上,因此通过坐标系的旋转与平移变换可将点P的三维坐标转换到小车坐标系ΣBt下表示。同理,t+1时刻所获取的图像中相同点P的(u,v)二维坐标发生变化,经坐标转换后可得到小车坐标系ΣBt+1下表示。 小车t时刻位于位置A时,特征点P在坐标系ΣBt为参考位置的三维坐标是 ,y1,z1T,当经过t+1时刻后移动到空间位置B时,同一特征点P在以B为参考位置的三维坐标为 t+1,yt+1,zt+1T,所以得到: 当这些位置满足3个及以上相同的匹配特征点时,小车所在坐标系间的平移与旋转向量就可以通过以上方程获得。 【分页导航】 第1页: Simulink仿真智能车转弯控制 第2页: 立体视觉系统模型 第3页: 室内环境特征向量的提取与匹配 第4页: 运动估计 第5页: 车体定位参数计算 第6页: 弯道控制策略 第7页: 控制仿真实验 2 车体的转弯控制 2.1 车体定位参数计算 环境特征点投影到车体坐标系下表示后,即为所有的环境坐标均统一在世界坐标系下的表示。如图4所示,其中小车前进方向为zw轴,xw水平垂直于zw,方向向右,其交点为原点Ow。直线为lmid为道路中间线,lmid与zw的夹角为φ,即为车辆的偏航角。点Ow到左车道线lL的距离为DL,到右车道线lR的距离为DR,可行驶区域的道路宽度为w = DL+DR。 【分页导航】 第1页: Simulink仿真智能车转弯控制 第2页: 立体视觉系统模型 第3页: 室内环境特征向量的提取与匹配 第4页: 运动估计 第5页: 车体定位参数计算 第6页: 弯道控制策略 第7页: 控制仿真实验 2.2 弯道控制策略 2.2.1 控制策略 机器人的底层运动控制是非常重要的一个环节,机器人运动控制的好坏直接决定了能否有效执行决策意图,准确无误地沿着预定轨迹行进,完成导航任务。传统的定位控制中,PI、PID是广泛采用的控制方法,这些方法比较成熟,但却具有一定的局限性。对被控系统的参数变化比较敏感,难以克服系统中非线性因素的影响。本文采用BP神经网络控制器在行使过程中经学习对网络进行训练,以适应当前的环境路况来调整车的左右轮速控制量。智能车左右轮速的大小,和车体偏离道路中间线lmid的距离d和车运动时方向偏离中间线的角度φ有关。小车控制输入为d,φ,输出为VL,VR。 基于双目立体视觉获取得到的三维信息,即为经左右图像SIFT特征点匹配,在摄像头坐标系中获取前景环境中各关键点的坐标信息。选取关键点中与机器人基坐标系原点高度靠近的点,并且该点的个数需大于3,之后,采用最小二乘法拟合可得行驶区域的边界直线,即确定了车体定位参数中左、右车道线lL、lR。直线与图像右边界存在交点,即可判断出弯道转向。同时,拟合确定的左车道线与图像下边缘的交点Pl0为第一个控制点;以图像右边界与拟合直线的交点处为第二个控制点Pln。图5表示为前景环境中对特征点的匹配结果图和判断可行驶区域。 对序列图像进行实时处理时,由于摄像机采集系统速度为30帧/s,车速在不超过33cm/s的情况下,采集一帧图像智能车向前行驶约小于1cm,连续采集的两帧图像中所判断的车道左右车道线和弯道方向偏差不会太大。 【分页导航】 第1页: Simulink仿真智能车转弯控制 第2页: 立体视觉系统模型 第3页: 室内环境特征向量的提取与匹配 第4页: 运动估计 第5页: 车体定位参数计算 第6页: 弯道控制策略 第7页: 控制仿真实验 2.2.2 控制仿真实验 实验采用BP神经网络作为控制对偏离角φ进行仿真实验。在Simulink环境下搭建的系统模型中BP神经网络的搭建如图6所示。U为经由视觉信息得到的偏航角φ作为系统输入量,输出Y为小车质心速度V。小车左、右轮速可在判断弯道转向的前提下,由两轮速差VD经计算得出。若如图5所示,弯道转向向右: 利用Simulink库中Signal Builder产生变化的Signal仿真实际环境中视觉系统得到的当前车体的偏移量。 小车经左右轮差速转弯运动中质心位置实际偏转角度作为网络的输入,经训练学习反馈回系统的控制输入端。图7为控制仿真结果图,由图示可知该方法基本完成了对信号的控制跟踪,由此说明了利用双目立体视觉所获得的信息,并采用BP网络自学习对道路的变化可适用于不同弯道的道路,避免了传统PID控制方法因弯道曲率变化使得小车转弯控制失败。 3 结论 借助机器视觉系统判断小车可行驶区域,同时还可清晰地判断出弯曲线路的走向,避免了弯道方向的复杂判别方法,且该方法普遍适用于不同的道路环境,特别是非结构化的道路环境,也增强了算法的实用性和鲁棒性。但目前对双目摄像机进行精确匹配和标定仍然是个技术难题;神经网络训练方法在选取训练样本数据和精确定位车辆位置方面也比较困难,这将是进一步研究的主要关键问题。 【分页导航】 第1页: Simulink仿真智能车转弯控制 第2页: 立体视觉系统模型 第3页: 室内环境特征向量的提取与匹配 第4页: 运动估计 第5页: 车体定位参数计算 第6页: 弯道控制策略 第7页: 控制仿真实验
相关资源