基于互联网的摄像测量系统(三)

描述

13

测试方案和测量结果

测量一个边长为1米的正方形,取三个顶点分别作为O、A、B点。

在O点上方,用细线悬挂激光笔,激光笔常亮向下指示,静止时激光笔的光点和O点重合。

将两个D8M摄像头子卡插到DE10-Nano开发板上,放于A、B两点,作为摄像节点A和摄像节点B。

第三个DE10-Nano开发板作为终端节点。

使用HDMI线将三个HDMI显示器分别连接到摄像节点A、B和终端节点DE10-Nano开发板上的HDMI接口。

编写摄像节点程序和终端节点程序,并分别放到摄像节点A、B和终端节点DE10-Nano开发板中的SoC Linux系统中(也可直接使用友晶提供的完整解决方案)。

用交换机组件局域网实现两个摄像节点和终端节点之间的网络互联。

摄像头

先用OTG转接线将USB HUB连接到DE10-Nano开发板的USB OTG接口,然后再将鼠标和键盘连接到USB HUB上,输入vi 指令编辑配置文件,修改A的IP地址为192.168.1.10,然后输入:wq保存并退出;输入reboot重启Linux。

摄像头

摄像头

同样地,设置摄像节点B的IP为192.168.1.11,终端节点的IP为192.168.1.12。

第二步是运行摄像节点A、B的软件,首先输入insmod dma_buffer.ko加载驱动;然后输入./camera_side_v2运行摄像节点程序,后面的第一个参数是摄像节点A或B,第二个参数是终端节点的IP,第三个参数是摄像节点A、B的IP。运行完成之后会弹出一个窗口,在这个窗口中会显示摄像节点A、B拍摄到的画面。

摄像头

摄像头

接下来输入python3 main_ui.py运行终端节点软件,后面的这三个参数分别是192.168.1.10 192.168.1.11 192.168.1.12摄像节点A、B和终端节点的IP。

运行完成之后会弹出一个窗口,这是摄像节点A、B拍摄到的画面,这里是消息显示窗口,这里会显示测量的结果,下面是三个按钮。

摄像头

摄像头

拉动激光笔偏离静止点,要保证激光笔经过O点做直线运动,然后点击Start按钮开始测量,在消息窗口会显示计时的秒数,大约10s后,会在result窗口显示出测量结果:线长为70.56cm,角度为61°,实际的线长为70cm,角度为60°,线长的误差为0.56cm,角度的误差为1°。

摄像头

可以通过点击Show Camera A Data按钮和Show Camera B Data按钮来查看摄像节点采集到的数据集以及拟合出的曲线图。

这个是摄像节点A的数据点和曲线图:

摄像头

这个是摄像节点B的数据点和曲线图:

摄像头

另外还给出了摄像节点A、B计算出的振幅、周期和线长,可以看到,摄像节点A的振幅>摄像节点B的位移,所以我们最终选择摄像节点A计算出的线长70.56cm。

题目要求能够测量的线长范围为50cm ~ 150cm,角度范围为0° ~ 90°,我们这里采取了线长为59、101和139的线长进行测量,可以看到,测量线长的误差绝对值在1cm以内,测量角度的误差绝对值在3°以内,且测量时间约为10s左右,满足题目的要求。

摄像头

审核编辑:黄飞

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分