基于双目视觉系统的乒乓球抓取机械手臂报告Word格式文档下载.docx
- 文档编号:18625020
- 上传时间:2022-12-29
- 格式:DOCX
- 页数:28
- 大小:7.65MB
基于双目视觉系统的乒乓球抓取机械手臂报告Word格式文档下载.docx
《基于双目视觉系统的乒乓球抓取机械手臂报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于双目视觉系统的乒乓球抓取机械手臂报告Word格式文档下载.docx(28页珍藏版)》请在冰豆网上搜索。
2.1初步构思9
2.2舵机和控制模块的选型9
2.3舵机的重复定位精度11
三、图像获取和处理12
3.1初步思路和相关理论12
3.2相机选型16
3.3相机标定16
3.4乒乓球识别和定位19
3.5坐标转换21
四、运动学求解24
五、系统工作流程及总结27
5.1系统框图27
5.2总结和致谢27
一、机械结构
1.1初步构思
由于项目要求的抓取乒乓球的工作空间是一个直径为600mm的圆,大家的第一想法都是将机械手臂放在圆心处,那么仅需要三个自由度便可以实现功能(末端抓取装置的开闭自由度不能计做机器人自由度),即基座、大臂和小臂的三个旋转自由度,如图1所示。
图1机械手臂结构简图
考虑到机器本身的体积和运动学上的死点,作业空间应是一个圆环。
设小球所在位置为(x,y,z),有如下公式:
可以简化为如下方程:
可以编写MATLAB程序求得近似解,由计算结果及实际情况可设定各角度的范围。
1.2模型建立
起初我们不太了解舵机的安装方式,于是在网上购买了一个多自由度的机械手臂以供参考,如图2所示。
图2六自由度机械手臂
可对此机械臂进行改造便能满足本项目的要求,也省去了很多加工上的麻烦,方便经济。
据此建立的三维模型如图3所示。
图3三维模型
1.3机械手臂的组装和改进
利用购买的机械臂中的一些零部件和自行联系厂商加工的用亚克力板制成的大小臂,搭建了如图4所示的机械手臂结构。
图4初步的机械手臂结构
经测试舵机扭矩足够,且机械爪到达区域能够覆盖直径600mm的圆。
其中抓取装置如图5所示。
图5抓取装置1
这个抓取装置是在购买的机械手爪上安装了两个和乒乓球直径相等的小圆片制成的。
然而在后续的测试过程中,发现用亚克力板制作而成的大小臂刚度太差,于是换用铝合金来加工得到新的大小臂。
上图中的抓取装置为铝合金制成,还带有一个重60克的舵机,整体重量较大,且手爪装在整个机械臂的末端,重量的增加对舵机造成的负荷也最为严重。
而且开口角度和抓取面积较小,对精度要求高,要实现抓球难度大。
综合考虑后,购买了下图中的塑料和金属手爪,利用它们的零件和两块亚克力大圆板制成新的抓取装置,张角和抓取面积都增大了不少。
图6塑料手爪
图7金属手爪
图8抓取装置2
图9最终的机械手臂结构
二、控制部分
2.1初步构思
第一次讨论时,组员提出的驱动方案主要有三种:
1、双边对拉:
采用钢丝绳对拉、或者采用齿轮齿条对拉;
2、挖掘机式:
通过一个气缸驱动一只手臂关节;
3、电机驱动:
大臂小臂等均采用电机驱动。
电机驱动中又有伺服电机、步进电机等。
还可以加入角度传感器角度负反馈系统,确保机械手臂抓取的精准性。
在后续工作进行中,考虑到实现难度、价格和精度要求等因素,我们最终采用了精度尚可且控制简单、价格相对便宜的舵机作为控制器件,且无需反馈装置。
但是舵机只能实现180度的角度控制,所以需要把机械臂放置在工作圆外才能覆盖整个工作空间。
2.2舵机和控制模块的选型
经过一番浏览、比较后,我们最终选用了LDX-335MG数字舵机,其主要参数如下:
重量
60g
尺寸
40*20*40.5mm
速度
0.16sec/60°
7.4V
堵转扭矩
15kg/cm6V;
17kg/cm7.4V
工作电压
6-7.4V
空载电流
100mA
此款金属齿轮舵机扭力大,速度快,非常耐高温,难烧坏,特别适合做机械手臂或机器人。
当发生堵转的时候,舵机内部会直接保护,停止工作,极大的保证了舵机的使用寿命
控制模块则采用下图所示的miniUSB16路舵机控制器。
图10miniUSB16路舵机控制器
其规格参数如下。
2.2舵机角度控制的实现方法
舵机的控制一般需要一个20ms的时基脉冲,该脉冲的高电平部分一般为0.5ms~2.5ms范围内的角度控制脉冲部分。
以180度角度舵机为例,那么对应的控制关系是这样的:
0.5ms——0度;
1.0ms——45度;
1.5ms——90度;
2.0ms——135度;
2.5ms——180度,成线性关系。
根据相关资料,发现可以利用串口通讯给舵机控制版发送指令来控制舵机的转角。
舵机控制板是串口通讯的(TTL电平),可以使用任何串口设备给它发指令,从而控制舵机。
串口的波特率为9600,无校验位,8位数据位,1位停止位,无控制流。
命令格式说明:
如#1P1500T100\r\n,数字1为舵机控制板上的S1通道;
数字1500是控制舵机的角度(范围为500-2500),以线性关系对应着控制舵机的0-180度;
数字100是时间(单位为ms),即从当前的位置,旋转到命令中的位置,所需要的时间;
最后\r\n是一个特殊字符,不能用串口调试助手直接发送出来。
以上命令的意思就是:
S1上插的舵机,在100ms的时间内。
从现在的位置旋转到90度。
所以我们最终采用的控制方法是使用Matlab发送串口命令给控制板,这样简单方便,编程也比较容易,而且可以和总程序集成在一起。
程序实例如下图,具体代码见附件。
至于控制多个舵机先后转动,只需对程序略加修改,再在每个舵机的转动之间加上一个延时函数pause即可。
2.3舵机的重复定位精度
测量方法:
将一根亚克力板固定在舵机的舵盘上,控制舵机多次转到相同的角度,并在每次转到位后沿着板子的边缘画线,如下图所示。
图11舵机的重复定位精度
由上图可见,同一角度得到的线条终端误差在2mm以内,又转动半径为245mm,可得重复定位的误差在2mm/245mm=0.5°
以内。
所以舵机的重复定位精度还是比较高的。
三、图像获取和处理
3.1初步思路和相关理论
组内的祝凯同学接触过视觉相关的知识,他提出采用双目立体视觉系统来进行乒乓球的定位。
双目立体视觉的基本原理是通过位置不同的2台摄像机,或者同一台摄像机移动一段距离拍摄同一副场景,通过场景中物理空间点在两幅图像中的视差来获取该点的三维坐标信息。
双目立体视觉测量方法相对于其它定位方法来说具有效率高、成本低、搭建简单方便、精度合适,非常适合于现场的在线、非接触测量。
双目视觉原理图如图所示。
图12双目视觉原理图
当左右摄像机规格相同且平行放置时,它们的内部参数相同且光轴是相互平行的。
设左右摄像机的成像平面像素坐标系分别为
和
,取世界坐标系XOY的坐标原点为左摄像机镜头与其光轴的交点,即左摄像机光心位置。
设需要获取三维信息的目标点P在世界坐标系下的坐标为
,它在左右摄像机成像平面上的成像点分别为
。
根据三角形相似定理可得下式:
式中B为左右摄像相机的光轴基线距离,单位为mm;
为两个摄像相机的焦距,单位为pixel。
可以推得目标点在世界坐标系的三维坐标计算公式为:
在双目立体视觉系统中涉及到多个坐标系,弄清楚它们的定义和相互之间的转换关系十分重要。
1、图像像素坐标系
图像在计算中的存储形式是1个二维数组,类似于矩阵。
如果图像的分辨率为m
n,则该数组有m行,n列。
图像像素坐标系下某个点的横坐标代表其在图像中的行数,纵坐标代表其所处位置的列数,它们的单位均为像素,一般情况下图像像素坐标系的原点
取图像左上角位置。
2、图像物理坐标系
图像物理坐标系代表的是该图像平面的物理尺度,它的基本单位是mm,表征图像上某个点在图像中的实际物理位置。
一般取图像的几何中心
点为该坐标系的原点,x轴与y轴分别与成像平面像素坐标系的两轴平行、方向一致。
图像像素坐标系与图像物理坐标系的相对关系如图所示,设图像物理坐标系原点
在像素坐标系下的坐标为
,并且像素坐标系相邻两个像素点的实际物理距离分别为
,图像上某个点在像素坐标系中的坐标系为
,在物理坐标系中的坐标为
,它们之间有着如下关系:
矩阵表示为:
图13图像物理坐标系和像素坐标系
3、相机坐标系
相机坐标系是指摄像机本身的几何坐标系,该坐标系的原点
为摄像机镜头的光心,取相机光轴作为该坐标系的Z轴,其X轴与Y轴跟前面前文提到的图像物理坐标系的x轴和y轴平行。
相机坐标系与像素坐标系以及物理坐标系之间的关系如图所示,其中光心
到图像物理坐标系原点
的距离即为相机的焦距
,图像上某个点在相机坐标系下的坐标表示为
图14相机坐标系
4、世界坐标系
世界坐标系即地球坐标系,在设定外部世界坐标系时,可以根据需要任意设置世界坐标系的位置和方向。
设图像中某个点在世界坐标系下的坐标为
,该点在相机坐标系下的坐标为
,则存在如下的变换关系:
式中R代表一个旋转矩阵,T代表一个平移向量。
3.2相机选型
综合考虑性能和经济因素后,我们选用了这样一款工业相机,其外形和参数见下。
图15工业相机
此款相机采用USB2.0标准接口输出,速度达480Mb/s,与PC对接,实时显示图像。
200万像素,分辨率最高达1600*1200。
使用USB供电,无需外接电源。
尺寸为40*50*50mm。
3.3相机标定
前面讨论相机各个坐标系时把相机的成像机理当作简单的小孔成像模型,实际上摄像机光学系统并不可能是理想小孔成像模型,所以它存在着透镜畸变,导致物体点在摄像机成像面上实际所成的像与理想的像之间存在有光学畸变误差。
对双目立体视觉系统来说,影响较大的畸变误差有径向畸变和切向畸变。
径向畸变是由于镜头不是理想小孔所导致的,切向畸变则是由于镜头跟CCD平面没有垂直所引起的。
为了知道相机的畸变参数以及前面讨论的几个坐标系之间的转换关系,需要得到相机的内外参数矩阵,这是实现双目立体视觉的前提,因此需要对选型的相机进行标定,本文中采用张氏标定法进行标定实验。
实验前必须先把两个相机固定好,保证它们的相对位置不改变,如下图所示。
图16相机固定装置
实验时准备一个12X9的棋盘格板,如图所示。
图17棋盘格标定
移动平板的位置并改变棋盘格图形与相机平面的夹角,使用左右摄像机共拍摄20组图像,将拍摄的图像导入Matlab标定工具箱中。
读取完左右相机的图像之后,使用Matlab工具箱的角点提取工具提取棋盘格的角点,通过提取的角点数据进行相机标定,得到左右相机的标定结果。
随后对左右相机进行立体标定,得到立体标定结果。
通过相机标定实验获得了左右相机的内部参数矩阵以及两个相机之间的外部参数矩阵。
表格1左相机标定结果
参数
数值
[3623.393883849.50590]±
[30.8960130.90655]
cc
[607.75427412.44044]±
[13.2085233.30570]
[-0.847852.141610.032260.000770.00000]±
[0.094965.291210.004850.002070.00000]
err
[0.129810.12742]
表格2右相机标定结果
[3599.275323836.49794]±
[28.9886329.54948]
[619.41469242.08431]±
[19.3828031.87518]
[-1.0384612.244330.019870.002380.00000]±
[0.114248.839300.005440.002790.00000]
[0.130680.12296]
表格3立体标定结果
om
[-0.008460.00136-0.00246]±
[0.009180.003900.00018]
T
[-61.63464-0.50638-15.07194]±
[1.228691.333112.22837]
两个相机的空间位置关系如图所示,从图中不难看出两个相机光轴几乎平行。
3.4乒乓球识别和定位
利用Matlab可以轻松获取相机拍摄到的视频并保存图像,对其进行处理。
在获取乒乓球圆心坐标时,我们起初的思路是:
原图灰度图二值图中值滤波canny边缘检测算子提取轮廓regionprops函数得到形心。
然而此方法在图像没有阴影时才能达到较好的效果,一旦阴影比较严重就很难奏效,如图所示。
图18无阴影图像处理
图19有阴影图像处理
后来在网上查阅了一些资料,对算法进行改进,将得到的图像从RGB空间转换到HSV空间,提取出S即饱和度的信息后,再用Hough圆检测,便可以很快准确地得出圆心的像素坐标,如图所示。
图20乒乓球心像素坐标提取过程
3.5坐标转换
在上一节中我们得到了乒乓球心的像素坐标,然而我们最终需要的是它在世界坐标系中的坐标值,为此需要进行坐标转换。
首先是从像素坐标系到相机坐标系的转换。
在Matlab标定工具箱中有这样一个函数:
stereo_triangulation。
其输入参数为左右图像的像素坐标(xL,xR)以及标定得到的相机内参数,输出为圆心在左右相机参考坐标系下的坐标(XL,XR)。
两者关系:
XR=R*XL+T,其中R=rodrigues(om)。
然后是从相机坐标系转换到世界坐标系。
我们建立的世界坐标系是以机械手臂底座的旋转中心为原点的。
要确定转换关系,必须先将相机和机械手臂的相对位置关系固定下来,为此我们制作了一个相机支架,定制了一块亚克力板装在支架的底部,再把机械手臂装在亚克力板上,如下图所示。
图21相机支架
图22机械手臂固定底座
假设空间点P在世界坐标系下的齐次坐标是(Xw,Yw,Zw,1)T,(这里T是上标转置),在相机坐标下的齐次坐标是(Xc,Yc,Zc,1)T,则存在如下的关系:
上式中R是3×
3的正交单位矩阵(也称为旋转矩阵),t是三维的平移向量。
矢量0=(0,0,0),M1是4×
4矩阵。
十二个未知数,需要十二个方程来求解,故至少需要测出四个点在两个坐标系下的坐标值。
标定步骤:
先在几个已知世界坐标的点放置硬币,拍摄图像,用前述方法得到其圆心的相机坐标值,推算出R和T。
图23世界坐标标定图
再在其他点放置硬币,拍摄图像,得到其相机坐标值,用所求得的R和T导出其世界坐标值。
与实际坐标进行比较,发现多数误差不超过10mm,少数也在20mm内,大体符合要求。
四、运动学求解
所谓远动学计算也就是通过前述方法得到的球心世界坐标值推算出各个关节上舵机的转角。
设:
θ1:
底座舵机的转角;
θ2:
底座和大臂连接关节处舵机的转角;
θ3:
大臂和小臂连接关节处舵机的转角。
建立的世界坐标系如下图所示。
图24世界坐标系示意图
图中,P为乒乓球中心,坐标为(x,y)。
则
在OPZ平面中,机械结构的几何关系如图所示。
图25机械结构的几何关系示意图
设L1:
大臂的长度;
L2:
小臂和手爪的长度;
R:
乒乓球的半径;
h:
大臂第一个关节中心距地面的距离。
则有:
五、系统工作流程及总结
5.1系统框图
图26整体系统框图
相机拍摄的图像通过USB传输给计算机,Matlab程序获取图像并对其进行处理,得到乒乓球的个数和球心的像素坐标。
再结合标定得到的相机内外参数和刚体变换矩阵等数据将像素坐标转换为世界坐标。
通过世界坐标值解算出各关节舵机的旋转角度,以串口通信的方式发送控制指令给舵机控制板,从而控制机械手臂运动到所需的位置完成抓取动作。
抓取小球后,机械手臂会回到某个设定好的工作区域外的点,松开手爪,放置小球。
如此循环,直到抓取完工作空间内所有的乒乓球为止。
整套程序包括主程序和子程序见附件。
5.2总结和致谢
本次复杂机电系统设计课程的总结和感悟:
1、确定好题目后,应该及早开始准备工作,以免到最后出现时间太紧迫的情况。
2、提出的方案要尽可能明确,对方案的细节尤其是可行性也要清楚,不能做到一半才发现这条路走不通,白白浪费时间和精力。
3、组员间要保持有效的沟通,分工要明确,互相帮助和督促。
4、做好时间规划很重要,最后才发现很多时间都浪费在等待购买的材料上了。
5、在不熟悉的领域遇到种种问题很正常,应该保持耐心,一方面自主学习,另一方面也要多向懂的人请教。
6、良好的机械结构设计是基础,这部分不过关,其他部分做得再好也是空中楼阁。
我们小组的抓球机械手臂即使后来换用了铝合金,减轻了手爪重量,还是有明显的刚度不足现象,运行过程中抖动得比较厉害,严重影响精度和抓取的牢固程度。
这里面固然有经验不足,考虑问题不全面的原因,但如果能做一些强度刚度的校核计算,可能就不会出现这种情况了。
7、在抓取装置的设计上也欠考虑。
仅用两块平板,球和板之间只是点接触,即使经过打磨增加了粗糙程度,也很难稳定的把球抓住,尤其是在精度不够高,机械臂有抖动的情况下。
可以考虑采用带有一定弧度的夹持装置或者在圆板上粘附一层海绵增加吸附力,提高抓球的稳定性。
8、最后,感谢学校和学院给我们提供了这么一个好机会锻炼自己的自主学习,学以致用、动手实践和团结协作的能力。
纸上得来终觉浅,绝知此事要躬行。
这些宝贵的经验和能力是我们以往在课本上学不到的,而这恰恰是在科研、工作中所必需的。
感谢罗老师在整个项目进展过程中给予我们的热心指导,对于一些可能很简单的问题都耐心为我们讲解,没有您细心的指导和督促我们不可能完成这个项目。
感谢助教老师对我们的支持工作。
感谢各位组员的通力协作,此次课程项目的完成离不开每一个人出的努力和汗水!
报销清单
序号
项目
单价
数量
金额
1
亚克力板
300
2
Arduino开发套件
159
3
TR213舵机
70
4
16路舵机控制板
148
5
电源适配器
132
6
金属加持器
50
7
LDX-335MG数字舵机
89
445
8
机械臂结构支架
207
9
7.4V900mAh锂电池
10
锂电池充电器
11
铝板加工
12
铝材
500
1000
13
有机玻璃
600
14
LED电源
90
15
灵量软条二代
195
16
210
420
17
T型螺丝
1.37
20
27.4
18
外角件
3.652
36.52
19
铝型材
32.74
261.92
图像处理模块1
21
图像处理模块2
150
总计
5441.84
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 双目 视觉 系统 乒乓球 抓取 机械 手臂 报告