Ansys Zemax | 使用 OpticStudio 进行闪光激光雷达系统建模(上)

news2024/12/23 11:06:33

前言

在消费类电子产品领域,工程师可利用激光雷达实现众多功能,如面部识别和3D映射等。尽管激光雷达系统的应用非常广泛而且截然不同,但是 “闪光激光雷达” 解决方案通常都适用于在使用固态光学元件的目标场景中生成可检测的点阵列。凭借具有针对小型封装结构但可获取三维空间数据方面的优势,固态激光雷达系统在智能手机和笔记本电脑等消费类电子产品中日益普及。在这个系列的文章中,我们将探讨如何使用OpticStudio对此类系统进行建模,包括从序列初始设计到集成机械外壳的整个流程。该文章为闪光激光雷达系统建模系列文章的第一篇。

下载

联系工作人员获取附件

简介

激光雷达系统在工业界中有着多种场景下的应用,对应于不同种类的激光雷达系统(比如用于扫描元件或确定视野的系统等),本示例将主要探索如何使用衍射光学元件来复制光源阵列在目标场景中的投影。成像透镜系统随后可观察到投影的光源阵列,以获取投射光线的飞行时间信息,进而生成投影点的深度信息。

在这篇文章中,我们将介绍用于闪光激光雷达系统发射和接收模块的序列模式系统背景和特征。在后续的文章中,我们将介绍完整的系统建模和光机封装。

闪光激光雷达的应用

此类激光雷达系统的工作原理主要依靠一组放置在光源阵列(如 VCSEL 阵列等)前方的准直光学元件,这些准直透镜投射光源阵列的光线追迹至包含几何实体或者动态捕捉的场景中。在准直透镜后面放置的衍射光学元件将沿 X 方向、Y 方向和对角线方向创建该 VCSEL 阵列的多个投影(在本例中为 3x3 的网格)。

照明模块将生成一个点阵列,将光线投影到目标区域,随后成像系统将观察到照亮的区域,以检测投影阵列并获取场景的深度信息。

设想一下,我们探索的激光雷达系统可用于追迹现实世界的几何结构及其运动情况,以便叠加获得在计算机中生成的图像。此外,我们还可以将激光雷达用作 AR 头戴设备模块的一部分,其中用户可以通过激光雷达模块的观察进行手势识别并与 CGI 进行交互。

对于照明的区域,我们的目标区域是 1 米远(略大于一臂长)之外的 480mm x 480mm(大约为 19 英寸 x 19 英寸)的区域。我们可以这样想象,如果我们将该激光雷达系统瞄准一张桌子或书桌,并想要追迹其表面的几何结构以及它上面的任何物品时,这样的覆盖区域十分合理。此外,我们还可以假设用户将能够与他们直接视线范围内的虚拟元件进行交互。

照明系统

首先,我们来定义照明模块的需求。由于照明区域可看做光源阵列区域的投影,因此非常关键的一点是确保我们的准直光学元件与所使用的光源能够相匹配。如果我们假设光源阵列的有效区域为 1.6mm x 1.6mm,那么我们可以确定透镜所需的焦距为:

为了在 OpticStudio 中定义模型,可以假设光源以 0.94 微米为波长的发射 NA 为 0.2 的光束。透镜经过优化可在视场上产生准直输出,以确保光源阵列区域的点能够在目标场景中具有合理的尺寸。鉴于闪光激光雷达系统的案例基础,为了实现紧凑的、可批量生产的设计,选择小尺寸的塑料材料也至关重要(对应文件提供为 “FlashLidar_Emitter.ZAR”)。

目前,我们可以将每个视场点的发射都看作为单个二极管的发射,其光线将被投影到所观察的场景中。在这个阶段,由于光束将在远场中被观察到,并且这个系统主要受几何像差的影响,因此我们可以将基于几何光线的结果作为观察场景中的光斑性能的良好指标。然后,几何图像分析(Geometric Image Analysis)工具可用于可视化距离照明模块大约一米远的光斑情况:

上面的每个几何图像分析窗口都显示了点光源在 55mm x 55mm 的区域上,从物面到“场景”像面的传播结果。非零衍射级次将在被观察场景的中心阶周围向 X 和 Y 方向产生更多的光斑图案,从而扩展激光雷达系统的视场。

在这个模型中,我们将使用一对交叉的衍射光栅来创建额外的投影。因此,我们将需要计算线性光栅图案所需的空间频率,以确保一阶衍射投影到的区域不会与零阶衍射的相重叠:

所允许的最小衍射角 θd 是视场水平半视场的两倍。当 fc = 10mm,物体高度为 0.8mm 时,零阶的半视场 θhoriz, 为4.57⁰,这可以帮助我们确定光栅刻线之间所需的距离 d(以微米为单位):

由于 OpticStudio 中的原生衍射光栅表面将光栅的空间频率作为设置参数,因此我们可以使用空间频率 0.17 刻线/微米 来设置该光栅。我们可以在 OpticStudio 中对这个计算进行验证,通过在序列模式中添加衍射光栅表面,以查看它是否能够为不同级次之间提供足够的距离:

为了检查投影区域之间是否存在任何重叠(这可能会导致不同衍射级次之间的光点相互叠加),我们可以结合使用几何图像分析工具以及多重结构编辑器进行分析。我们可以定义两种结构,一种显示中心阶,而另一种显示沿 X 轴的一阶。经过修改的“填充”版 “SQUARE.IMA”(在所有 OpticStudio 的安装中提供)可用于演示光源有效区域在远场中的投影是否有任何潜在的重叠。根据当前的空间频率定义,我们可以看到有一些重叠存在:

为了解决这个问题,我们可以稍微增加衍射光栅表面的空间频率,从而增大衍射角。当快速编辑到 0.2 刻线/微米时,可以产生更清晰的分离:

在当前阶段,我们将把实例文件保存为 “FlashLidar_Emitter_DiffGrat.ZAR”。虽然这是二极管阵列将涵盖的整体区域的输出,但实际的照明模块将使用一系列二极管作为点光源,因此照明图案将成为一系列的点。GIA 检查的目的是确保当我们在非序列模式中更直接地定义光源时,不同衍射级次之间的光点不会重叠。

成像系统

为了获取照明投影中的深度信息,需要一个成像系统对场景进行观察,并通过计算每个光点的往返飞行时间,将图像数据转换为深度数据。根据之前的计算,我们知道中心阶的半水平和垂直视场大约是 4.57°。由于衍射元件各级次在该中心阶周围产生投影,这将使成像系统所需的视场在水平和垂直半视场上增加到约 9.14°(即约为中心阶半视场值的两倍)。所以,成像系统所需的半视场在水平和垂直方向上为 13.71°,或在对角线方向上约为 19.39°:

因此,成像模块需要约为 20°的最小视场。同样地,由于激光雷达系统的用例,使用具有小尺寸塑料元件进行紧凑型设计至关重要。透镜如下图所示,作为示例文件 “FlashLidar_Receiver.ZAR”:

该透镜的名义设计视场大于 20° (约为30°-36°),以确保成像系统的优化能够产生物理上可实现的元件。例如,这有助于更好地控制非球面元件的边缘厚度,并确保元件之间有安装空隙。此外,透镜的名义设计具有无限的物面距离,因为其可能需要包含多种工作距离进行使用。

由于这种设计旨在实现紧凑的尺寸,成像系统必须平衡该标准与它对视场相关像差的影响,如畸变和场曲。该设计采用了类似于 Cooke 三片式透镜的结构,即在两个低折射率的正透镜之间有一个高折射率的负透镜。所有元件上都具有非球面系数,允许通过第一个透镜校正球差,而第三个透镜可作为场镜,以改善畸变和场曲的性能。此外,模型中最后还包含一个平板玻璃,该平板玻璃可作为覆盖接收器模块图像传感器的盖板。

为了确保成像系统的性能符合我们的需求,我们可以查看 100 lp/mm 时的 FFT MTF 图:

我们可以在 MTF 中观察到系统接近衍射极限的光学性能。为了检查,我们可以通过该系统计算成像到探测器上的光斑尺寸,以检查图像质量。我们将转到序列发射器模块,并查看“ 场景像面” 上由点列图确定的光斑尺寸:

假设观察到的最小光斑对应从光源阵列发射出来最中心点光源的结果。因此,我们可以将中心视场点的 RMS 半径设置为 2.089 毫米,并得到探测器上成像的光斑的最终尺寸:

该透镜成像的光斑空间频率约为 72 lp/mm,其轴上 MTF 为 72.2%,我们将其作为检测该光斑成像质量是否充分的对比度参数。

结论

在这篇文章中,我们介绍了闪光激光雷达系统如何运行的背景,并将系统的两个组成部分通过序列模式系统进行建模。在为激光雷达发射器的衍射元件进行建模时,我们采用了一阶方法,以生成不同的投影级次,并评估和避免光源投影中存在任何潜在的重叠。此外,我们还讨论并验证了成像模块是否具有我们所需的充足性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/25926.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

教育行业数据可视化应用方案与实践

教育行业背景介绍 随着信息技术发展,教育领域中的学习方式、教学模式、教学内容均已发生重大变革,以云计算、人工智能、物联网、大数据等技术的结合,“智慧教育”的需求也变的紧迫,需要围绕“智慧教育”而产生的产品和解决方案也…

课程思政案例----简道云零代码应用开发实训平台

为了更好推动零代码开发课程的思政建设,在传递大数据相关知识和技能的同时帮助学生塑造正确的世界观、人生观和价值观。我们整理了与简道云平台结合的应用案例,开放给全国各大高校使用。 1、杨卫红:一位55岁不懂代码的农经员,为家…

Windows下将文件夹映射为磁盘

Windows下将文件夹映射为磁盘背景描述方法一:使用命令方法二:映射网络驱动器背景描述 公司发的新电脑,只有普通用户权限,所以可想而知磁盘只有一个C盘,但是以前习惯性的将一些软件啥的放在D盘中,所以把C盘…

打好“三场仗”,数据库新晋厂商石原子胜券在握

纵观数字经济时代,数据规模呈爆发式增长,国产化替代加速发展。据中国信通院《数据库发展研究报告(2021年)》预测,预计到2025年,全球数据库市场规模将达到798亿美元,其中,中国数据库市场总规模将达到688亿元…

js文件模块化引用问题(JavaScript modules)

有个前端项目,需要用到配置文件。这个配置文件实在是太大了,就想拆成多个小的,然后一一引入,组合成一个完整的配置文件。 如果是vue代码,这种情况根本是手到擒来,不费吹灰之力,而该前端项目是个…

(WRF-UCM)高精度城市化气象动力模拟技术

气候变化及应对是政府、科学界及商业界关注的焦点。气候是多个领域(生态、水资源、风资源及碳中和等问题)的主要驱动因素,合理认知气候变化有利于解释生态环境变化机理及过程,而了解现在、未来气候变化则是进行生态、环境及能源评…

vs2022 编译遇见编译器堆空间不足,解决办法(针对CMAKE工程)

1、原因: 就是编译工程文件太大,导致堆栈溢出。原始vs默认的编译器是32位,我们设置为64位就可解决部分问题。 具体可能造成的原因可以参考: 错误 C1060 |微软学习 (microsoft.com) 2、解决: 1、需要提前安装cmake…

iOS关于搜索不规则瀑布流布局的实现小结

最近在项目开发中遇到了不规则搜索布局的问题。 之前常用的解决方案是用一个tableview用一个循环动态的加载,唯一的缺点是需要动态的移除,其实也已经足够。ios搜索历史记录不规则布局-IOS代码类资源-CSDN下载,需要的话可以下载使用。请教了一…

双向链表的实现

这里以结构体的方式来实现链表,也可以使用类。结构体在没有修饰符的情况下,默认是共有访问。如有不对,希望能指出。 目录 一、链表和结点结构体的声明 (ListNode.h) 二、链表各个功能的实现 1、增 (1) 构造函数(创建链表头结点…

简历上写着“精通 MySQL”,阿里面试官非要跟我死磕,最后还是给我发了 offer

事情是这样的 前段时间因为想要跳槽就去面试了下阿里,大家也都清楚,精通这个词在简历上属于很难把握住的一个词,如果你在你的简历上面写着你精通 XX 技术,那面试官就会默认你是真的很会,刨根问底问到你崩溃。 我之前…

【踩坑】工作中真实踩坑,一个or让sql变慢7倍

工作中真实踩坑,一个or让sql变慢1000倍1.情况说明2.解释计划3.or改成union4.总结1.情况说明 测试环境,有两张表,分别是讲师表t_train_lecturer(后面简称B表),和讲师的授课时长表t_train_activity(后面简称A表&#xf…

opencv 图像平滑

高通滤波可以找到图像的边缘。低通滤波可以去除噪音,模糊图像。 自定义滤波器 cv2.filter2D() import cv2 import numpy as np from matplotlib import pyplot as pltimg cv2.imread(img1.png) imgcv2.cvtColor(img,cv2.COLOR_BGR2RGB) kernel np.ones((5, 5), n…

2022年11月10篇论文推荐

随着最大的人工智能研究会议(NeurIPS 2022)即将到来,我们进入了2022年的最后阶段。让我们回顾一下人工智能世界最近发生了什么。 在介绍推荐论文之前,先说一个很有意思的项目: img-to-music:想象图像听起来是什么样的模型! https://hugging…

人工智能和自动驾驶业务将是百度未来的最强增长动力

来源:猛兽财经 作者:猛兽财经 虽然百度(BIDU)长期以来一直缺乏增长动力,但猛兽财经认为现在可能是投资百度股票的时候了。因为我们认为百度在未来有几个可以实现强劲增长的动力。首先,百度可以利用其在中国自动驾驶市场的领先地位…

如何验证ARP缓存表最多能缓存多少条动态条目

ARP协议原理、ARP缓存表目的,这些在我的文章中已经反复提及过多次了。ARP缓存表里有静态和动态条目两种,静态的是写死的,没有老化时间,不会随着时间的流逝而自动删除。动态条目是缓存的,有老化时间timeout,如果长时间没有刷新,老化时间到了就会自动删除。老化时间是一个…

智能服务机器人产品及解决方案

产品概述 随着人工智能(AI)领域技术的不断发展和演进,面向人工智能的领域应用也越来越被更多的企业关注。信迈作为中国领先的创新型软件及信息技术服务商,一直致力于人工智能领域技术的探索和实践。 信迈凭借自身雄厚的技术能力…

Cookie注入和X-Forwarded-For注入

💪💪Cookie注入和X-Forwarded-For注入一 .Cookie注入1.创建漏洞环境2.漏洞攻击2.1判断是否有注入2.2信息收集2.3注入获取数据库名2.4注入获取表名2.5注入获取列名2.6注入获取信息3.sql靶场实战二. X-Forwarded-For注入1.创建漏洞环境2.漏洞攻击2.1判断是…

浅析Betaflight中的OSD叠加程序【MAX7456AT7456】

前言:想要对OSD下手已经不是头一次了,前几次都浅尝辄止。一个是能力不够,BetaFlight的代码体系太庞大了,看不懂也摘不出来。 这次要做一款带osd功能的接收机(用在遥控车上),所以又来打飞控程序…

[附源码]java毕业设计校园快递管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

1万属性,100亿数据,每秒10万吞吐,架构如何设计?

有一类业务场景,没有固定的schema存储,却有着海量的数据行数,架构上如何来实现这类业务的存储与检索呢?58最核心的数据“帖子”的架构实现技术细节,今天和大家聊一聊。一、背景描述及业务介绍什么是58最核心的数据&…