自制激光雷达(激光扫描)

news/2024/11/22 18:44:47/

 之前在玩网上看到有大佬自己做三维建模的东西,就学习了一下自己也来做一个,造价不到200的成品如下,扫描出来出来的样子大概能看。。。接下来分享下怎么做的。

实物图
扫描图

平面测距

 首先我们要了解一下激光雷达怎么做到平面测距,现在激光平面测距主要有相位测距,TOF测距和三角测距,我选择的是三角测距,因为对于3D的环境用相位和TOF的话要对多点同时进行激光的控制,或多或少用上振镜,调制器什么的,时间和财力有限就没选这两条路。

平面测量原理
 红色的是光路,CG是摄像头里面的CMOS成像镜面,AF就是最开始的图中的白色架子,F是镜头的焦点,简而言之一束光打到B反射后成像在D,是要得到CD的长度就可以算出距离q。下面上公示:

在这里插入图片描述

  1. 其实AB和CF是平行的,所以才有第一个公式的比例关系
  2. f是镜头的焦距,在选镜头的时候就知道了,这是个已知数
  3. s是支架的长度,就是开头图片中白色支架的长度,这个也是自己设计的是已知数
  4. x是CD的距离 = 像素点个数x像素点宽度,只要能在软件中读出来像素个数,算出x也不难
  5. β是激光出射光路和支架的角度,这个也是实现设计好的,打个比方焦距是3.6mm,CMOS镜面是一行1280个点,一个点3um的宽度,CMOS镜面一般的宽度就是1.92mm,那这个角度就是61.93°

 有了这么多变量算距离应该不是什么难事了,公式里的f是镜头的焦距,选镜头的时候就知道了是个已知数,距离表述里L和q是两种表述距离的方法,一个是物体到激光器的距离,一个是物体到支架的垂直距离,二选一即可,最后一个公式测距精度和测量距离的关系,测量距离越远精度越差,这个公式是用来选择器件用的。

三维测量

在这里插入图片描述
 通过平面测量我们可以知道CH或者CE的长度,激光用的是线激光,打出去是一条AD的线,我们需要测量线上每一个点到ε平面的距离,比如B点,同样用等腰三角形的原理在成像图片上算出B’C’就行。
在这里插入图片描述
 算出线激光上每个点到ε平面的距离,在让这条激光扫过房间就可以建模了。

器件选择

支架长度和镜头焦距

 这两个参数的放在一起说,他们是一对对的,一组参数就确定了一组精度,可视角度,可视距离以及。。。颜值。支架的间距太宽的话真的太丑了。

在这里插入图片描述

 我列了一个表有关不同参数搭配时的系统性能,间距就是上一节的S,角度是上一节中的β。我自己看了一下钱包选择了选中的那行参数O(∩_∩)O哈哈~我们可以看到图中有些搭配在5cm出的精度非常高甚至可以用于简单的工业检测,事实也确实是这样,我在后期改造已个一个近程扫描的设备确实可以达到这个精度。

 这里还要注意镜头的选择不能一味追求精度,还要考虑垂直可视角度,不然选了16mm的镜头,5米处的垂直测量范围只够扫一个垃圾桶。

超薄步进电机

 这个玩意儿淘宝随便选一个,不多介绍。

光源

 淘宝50的808nm红外一字线激光emmm,就这个,记得给镜头贴个808nm的滤光片就行了

硬件电路

在这里插入图片描述
 这边板子的外形是根据三脚架的台面设计的,还有四个螺丝孔固定,中间的孔是过步进电机的转轴的。
 这边其实考虑过上FPGA不过PCB空间有限,还是把图像处理交给了电脑。如果用FPGA onboard处理图像,直接把距离数据给电脑,扫描速度至少能快3倍。

软件

 软件这边的框架是VS的MFC+OpenCV+PCL,opencv负责处理图像,PCL负责点云显示,还有一个Matlab用来矫正摄像头畸变。算法用的是插值和灰度重心法找点,这边代码较多不可能贴上来了。
 调试的时候就是这个样子的。

在这里插入图片描述

在这里插入图片描述

200¥扫描仪总成

在这里插入图片描述

总结

 把大概的制作流程介绍了一下,没有附上全部的代码和细节,白嫖党可能要自行脑补补全细节了。也是给有兴趣的人提供一点思路,可以在这个基础上做一个同时采集点的颜色的功能。我这个做的也有很多弊端,没有上FPGA是一个遗憾,只能扫描180°也是个遗憾,应为一些走线问题不能360转,也曾想过用解除铜片的方式传数据,但是没有时间做可靠性验证就没有上。光源亮度不能调也是个败笔,极大地影响了测量精度。
 最短测量距离附近的精度很高,改进后真的可以工业用。
 文中所有图片和文字都是自己写的自己拍的,如果大家有在正规论文中看到一模一样的图不要慌不要说我侵权,那就是我自己写的o( ̄︶ ̄)o,请各位转载或引用时注意相关规范。


http://www.ppmy.cn/news/274932.html

相关文章

四、Cargrapher单激光雷达建图(通用)

目录 1、雷达ROS-SRC包使用(以思岚为例) 1.1 首先从官网/Github/Ros-wiki 中找到自己雷达所对应的SRC 1.2 下载后 1.3 编译与使用 2、cartographer结合lidar建图 2.1 lidar修改及需要确定的信息 2.2 cartographer需要修改的信息 2.3 结果 1、雷达RO…

激光雷达建图之cartographer建图

环境:ubuntu20.04 双系统 ros:noetic (1)按照官网的方式安装,主要安装包括三个部分:cartographer、cartographer_ros、ceres-solver。如果完全按照官网进行安装,前两个没什么问题,但如果自己的电脑不进行翻墙的话&…

Wiki.js 安装 linux(图解)

wiki.js是个开源的知识库系统,官方的docker安装总是出现各种问题, 官方也有给windows的安装包 wiki.js github 一、基础环境 1.nodejs环境 注意,wikijs2.0版本最高支持nodejs16 wikijs3.0支持nodejs18 参考这篇:nodejs编译安装…

算法学习day15

文章目录 102. 二叉树层序遍历思路递归 226 翻转二叉树递归迭代 101 对称二叉树递归 总结 102. 二叉树层序遍历 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点) 示例 1: 输入…

深度学习架构-Tensorflow

19考题 深度学习基本概念 人工智能是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能的目的 就是让计算机能够像人一样思考。 强人工智能:就是要使机器学习人的理解、学习和执行任务的能力。 弱人工智能&#xf…

【Python】Python系列教程-- Python3 标准库概览(三十)

文章目录 前言操作系统接口文件通配符命令行参数字符串正则匹配数学访问互联网日期和时间数据压缩性能度量测试模块 前言 往期回顾: Python系列教程–Python3介绍(一)Python系列教程–Python3 环境搭建(二)Python系列…

适合平板用的Android版本,安卓平板专享 推荐五款Pad版应用浏览器

平板市场,硝烟四起,各品牌展开混战,杀得是你死我活,都想要自己分到手的蛋糕多一点。同样的,网络浏览器市场也竞争激烈,各软件商争相抢出Pad版或HD版浏览器,让用户的选择多了起来。今天&#xff…

平板电脑推荐 资深游戏玩家最爱的这款5G平板来了!

一说到打游戏,对于喜欢通过玩游戏放松心情或者是用游戏来获取更刺激的娱乐体验的资深游戏玩家来说,如果网络运行不畅通有卡顿、画质不清晰到人物一运动就出现像素点,就会产生极大的难受感,一股郁闷之气油然而生。笔者玩游戏就没有…