论文部分内容阅读
【摘 要】 在传统的刚性桁架机械手在很多控制不是特别精准的场合并不适用。本文主要介绍需要将目标物品在空间快速移动的综合控制系统的设计,主要解决的问题是在大尺度空间范围内快速移动的对象的解决方案。
【关键词】 三维;伺服电机;实时解算;插补原理
1,前言
足球赛事的现场直播给电视观众留下了深刻的印象,无论是进球后的慢镜头回放、越位或犯规及队员们的各种动作,都从电视中看得一清二楚。我们发现有很多镜头是摄像机近距离跟着球员拍摄,我们知道对于足球比赛赛场,除了裁判员之外,拍摄人员是不能进入现场拍摄的,而且从技术角度讲,仅仅靠拍摄人员远距离拍摄,也达不到跟踪的效果,那么这种拍摄效果是怎么实现的呢?答案就是在整个场地的上空确实有一架摄像机可以再空中自由移动,并且可以快速移动,实现很多定点拍摄无法拍出的效果。这就需要有一套三维空间控制系统来带动这台摄像机进行移动,有点类似于数控加工中心的刀头的横纵导轨上移动的效果。但是想在足球场内吊着一架摄像机转播,又不能遮挡视线,执行机构就需要选择高强度缆绳牵引的方式,而它的控制方式也与传统的机械手臂的控制方式不同。
2,系统组成
本系统由工控机作为控制中心,是整个系统的控制核心。输入设备为摄像师手中的操作杆。通过控制柜将工控机的指令放大并传递给各伺服电机控制器来控制伺服电机。四个伺服电机通过四卷扬分别带动系在一起的四根绳子的一端来控制目标摄像机。其中卷扬具有固定基座,可以牢固的固定在场地上,并且具有减速机,以便放大伺服电机扭矩。同时每根绳子末端的外置编码器将绳子伸出的实际长度反馈给工控机形成闭环控制,以提高控制的精度。
3,系统设计
3.1,控制系统流程如下,当控制人员操作手柄时,手柄会输出方向及幅度的大小信息给工控机。然后工控机会将手柄输出方向信息解算成摄像机的坐标信息ΔX、ΔY、ΔZ,同时将手柄幅度信息解算为摄像机的移动速度信息。然后工控机会实时的将ΔX、ΔY、ΔZ信息解算为各个伺服电机的位移,最后将位移和速度信息发给各个伺服电机控制其来控制伺服电机转动。
3.2,具体解算流程:此系统的解算流程可以用一个二维空间吊舱的模型来解释,
假设当前摄像机的位置1坐标为(X,Y),伺服到摄像机的距离分别MO1、MO2。当手柄给出指令需要将摄像机的位置移动到(X+ΔX,Y+ΔY)位置2,两个伺服电机MO1、MO2的距离为L。那么从位置1到位置2的移动过程中,伺服电机MO1与MO2伸长或者缩回的距离ΔMO1、ΔMO2为:
ΔMO1=
ΔMO2=
在实际运用中要考虑一个问题,因为伺服带动的卷扬每旋转一圈,绳子的伸长量会根据身子缠绕直径大小发生变化,那就是伺服电机的转动并不能真实反应绳子的实际伸长值。为了避免累计误差及让计算机掌握摄像机的实际位置,我们的控制方式是类似于数控机床的插补原理。具体实现过程是:当操作手柄发出指令后,先有计算机解算一下運动方向,控制伺服电机先运动一个(ΔXX,ΔYY)距离,然后根据每个卷扬外的外置编码器传回的绳子的实际数值来计算目标物体在整个坐标系内真正运动的距离(ΔX,ΔY),然后在综合控制手柄的输入信息与目标物体的实际坐标来计算下一个ΔT时间段内每个伺服电机需要走的距离,这次运动到位后在根据每个卷扬外的外置编码器传回的绳子的实际数值来解算新的(ΔX,ΔY)来确定新的实际位置,在控制手柄停止发出指令之前,计算机就通过这样的循环来控制目标物体移动。 其中ΔT的大小取决于计算机的运算速度,越小控制精度越高,但计算机运算量巨大,要在实际调试过程中进行试探摸索。
在以上控制过程中,有一个计算是一般C语言程序无法完成的,那就是在通过编码器解算目标物体的时候,需要解一个以ΔX、ΔY为变量的二元高次方程。因此需要将以上公式中的ΔX,ΔY当作未知量进行解方程。面对这样的二元多次方程靠手工计算显然是一个很难完成的任务,而且这是一个二维的模型,真正的三维模型所列出的公式应该是三元9次方程,想通过手算借这个方程恐怕不可能实现。这里我们借助MLTLLB数学软件来帮忙,MLTLLB是美国MLthWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。通过软件来解决此问题,准确高效,解算过程如下:
如下为matlab程序
[ΔX,ΔY]=solve('((x+ΔX)^2+(y+ΔY)^2)^(1/2)-(x^2+y^2)^(1/2)=ΔMO1' , '((L-x-ΔX)^2+(y+ΔY)^2)^(1/2)-((L-x)^2+y^2)^(1/2)=ΔMO2','ΔX','ΔY')
经过软件解算后的结果是一个二元矩阵,但是我们只需要取其中一个作为程序运算使用
[ΔX,ΔY]=
[y^2*ΔMO1^2-2*L^2*ΔMO2^4*ΔMO1^2+L^2*ΔMO2^2*ΔMO1^4+ΔMO2^6*y^2+y^2*ΔMO2^2*ΔMO1^4+4*y^2*ΔMO2^2*L^2*x*******************ΔMO1^2-4*L*x*ΔMO2^4*y^2-2*L*x*ΔMO2^6-4*L*x^3*ΔMO2^4-2*ΔMO1^4*L*x*ΔMO2^2+x^2*ΔMO2^6)^(1/2))^(1/2)+4*ΔMO1^2*L^2-4*L^2*ΔMO2^2-4*y^2*ΔMO1^2-4*ΔMO1^2*L*x+12*L*x*ΔMO2^2-4*y^2*ΔMO2^2-4*x^2*ΔMO1^2-ΔMO1^4+2*ΔMO1^2*ΔMO2^2-ΔMO2^4-4*x^2*ΔMO2^2)^(1/2))/L,
(-y*L-1/2*(4*L^2*y^2-4*(8*L^2*x^2*ΔMO2^4-4*L^3*x*ΔMO2^4+L^2*ΔMO2^6+4*L^2*x^4*ΔMO2^2-8*L^3*x^3*****************************x*ΔMO2^2-4*y^2*ΔMO2^2-4*x^2*ΔMO1^2-ΔMO1^4+2*ΔMO1^2*ΔMO2^2-ΔMO2^4-4*x^2*ΔMO2^2)^(1/2))/L]]
(备注:由于此段解算结果约16880个字符,占用篇幅过大,本文只部分引用)
由于此系统采用C语言作为变成语言,必须要将此公式进行一次换算,即将此公式翻译成计算机程序的格式,用C语言来表达,让计算机能够运算。具体换算过程涉及上位机程序,此处暂不讨论。
4,结论
这个项目涉及的机械电器以及软件等多学科知识,一个综合性非常强的自动化控制系统。本文在软件原理上仅以二维模型来介绍三维空间摄像机的控制原理,目的是为其他同类产品的设计提供一些思路。此项技术已经相对比较成熟,在一些大型活动及体育赛事的转播中应用广泛。
参考文献:
[1] 常晓玲,电气控制系统与可编程控制器[M].机械工业出版社,2005.
[2] 张志涌,精通MATLAB [M]. 北京航空航天大学出版社 ,2000.
[3] 颜嘉男,伺服电机应用技术 [M]. 科学出版社,2010.
[4] 林锐,高质量程序设计指南:C++/C语言 [M]. 电子工业出版社,2012
[5] 明日科技,C语言常用算法分析 [M]. 清华大学出版社,2012
【关键词】 三维;伺服电机;实时解算;插补原理
1,前言
足球赛事的现场直播给电视观众留下了深刻的印象,无论是进球后的慢镜头回放、越位或犯规及队员们的各种动作,都从电视中看得一清二楚。我们发现有很多镜头是摄像机近距离跟着球员拍摄,我们知道对于足球比赛赛场,除了裁判员之外,拍摄人员是不能进入现场拍摄的,而且从技术角度讲,仅仅靠拍摄人员远距离拍摄,也达不到跟踪的效果,那么这种拍摄效果是怎么实现的呢?答案就是在整个场地的上空确实有一架摄像机可以再空中自由移动,并且可以快速移动,实现很多定点拍摄无法拍出的效果。这就需要有一套三维空间控制系统来带动这台摄像机进行移动,有点类似于数控加工中心的刀头的横纵导轨上移动的效果。但是想在足球场内吊着一架摄像机转播,又不能遮挡视线,执行机构就需要选择高强度缆绳牵引的方式,而它的控制方式也与传统的机械手臂的控制方式不同。
2,系统组成
本系统由工控机作为控制中心,是整个系统的控制核心。输入设备为摄像师手中的操作杆。通过控制柜将工控机的指令放大并传递给各伺服电机控制器来控制伺服电机。四个伺服电机通过四卷扬分别带动系在一起的四根绳子的一端来控制目标摄像机。其中卷扬具有固定基座,可以牢固的固定在场地上,并且具有减速机,以便放大伺服电机扭矩。同时每根绳子末端的外置编码器将绳子伸出的实际长度反馈给工控机形成闭环控制,以提高控制的精度。
3,系统设计
3.1,控制系统流程如下,当控制人员操作手柄时,手柄会输出方向及幅度的大小信息给工控机。然后工控机会将手柄输出方向信息解算成摄像机的坐标信息ΔX、ΔY、ΔZ,同时将手柄幅度信息解算为摄像机的移动速度信息。然后工控机会实时的将ΔX、ΔY、ΔZ信息解算为各个伺服电机的位移,最后将位移和速度信息发给各个伺服电机控制其来控制伺服电机转动。
3.2,具体解算流程:此系统的解算流程可以用一个二维空间吊舱的模型来解释,
假设当前摄像机的位置1坐标为(X,Y),伺服到摄像机的距离分别MO1、MO2。当手柄给出指令需要将摄像机的位置移动到(X+ΔX,Y+ΔY)位置2,两个伺服电机MO1、MO2的距离为L。那么从位置1到位置2的移动过程中,伺服电机MO1与MO2伸长或者缩回的距离ΔMO1、ΔMO2为:
ΔMO1=
ΔMO2=
在实际运用中要考虑一个问题,因为伺服带动的卷扬每旋转一圈,绳子的伸长量会根据身子缠绕直径大小发生变化,那就是伺服电机的转动并不能真实反应绳子的实际伸长值。为了避免累计误差及让计算机掌握摄像机的实际位置,我们的控制方式是类似于数控机床的插补原理。具体实现过程是:当操作手柄发出指令后,先有计算机解算一下運动方向,控制伺服电机先运动一个(ΔXX,ΔYY)距离,然后根据每个卷扬外的外置编码器传回的绳子的实际数值来计算目标物体在整个坐标系内真正运动的距离(ΔX,ΔY),然后在综合控制手柄的输入信息与目标物体的实际坐标来计算下一个ΔT时间段内每个伺服电机需要走的距离,这次运动到位后在根据每个卷扬外的外置编码器传回的绳子的实际数值来解算新的(ΔX,ΔY)来确定新的实际位置,在控制手柄停止发出指令之前,计算机就通过这样的循环来控制目标物体移动。 其中ΔT的大小取决于计算机的运算速度,越小控制精度越高,但计算机运算量巨大,要在实际调试过程中进行试探摸索。
在以上控制过程中,有一个计算是一般C语言程序无法完成的,那就是在通过编码器解算目标物体的时候,需要解一个以ΔX、ΔY为变量的二元高次方程。因此需要将以上公式中的ΔX,ΔY当作未知量进行解方程。面对这样的二元多次方程靠手工计算显然是一个很难完成的任务,而且这是一个二维的模型,真正的三维模型所列出的公式应该是三元9次方程,想通过手算借这个方程恐怕不可能实现。这里我们借助MLTLLB数学软件来帮忙,MLTLLB是美国MLthWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。通过软件来解决此问题,准确高效,解算过程如下:
如下为matlab程序
[ΔX,ΔY]=solve('((x+ΔX)^2+(y+ΔY)^2)^(1/2)-(x^2+y^2)^(1/2)=ΔMO1' , '((L-x-ΔX)^2+(y+ΔY)^2)^(1/2)-((L-x)^2+y^2)^(1/2)=ΔMO2','ΔX','ΔY')
经过软件解算后的结果是一个二元矩阵,但是我们只需要取其中一个作为程序运算使用
[ΔX,ΔY]=
[y^2*ΔMO1^2-2*L^2*ΔMO2^4*ΔMO1^2+L^2*ΔMO2^2*ΔMO1^4+ΔMO2^6*y^2+y^2*ΔMO2^2*ΔMO1^4+4*y^2*ΔMO2^2*L^2*x*******************ΔMO1^2-4*L*x*ΔMO2^4*y^2-2*L*x*ΔMO2^6-4*L*x^3*ΔMO2^4-2*ΔMO1^4*L*x*ΔMO2^2+x^2*ΔMO2^6)^(1/2))^(1/2)+4*ΔMO1^2*L^2-4*L^2*ΔMO2^2-4*y^2*ΔMO1^2-4*ΔMO1^2*L*x+12*L*x*ΔMO2^2-4*y^2*ΔMO2^2-4*x^2*ΔMO1^2-ΔMO1^4+2*ΔMO1^2*ΔMO2^2-ΔMO2^4-4*x^2*ΔMO2^2)^(1/2))/L,
(-y*L-1/2*(4*L^2*y^2-4*(8*L^2*x^2*ΔMO2^4-4*L^3*x*ΔMO2^4+L^2*ΔMO2^6+4*L^2*x^4*ΔMO2^2-8*L^3*x^3*****************************x*ΔMO2^2-4*y^2*ΔMO2^2-4*x^2*ΔMO1^2-ΔMO1^4+2*ΔMO1^2*ΔMO2^2-ΔMO2^4-4*x^2*ΔMO2^2)^(1/2))/L]]
(备注:由于此段解算结果约16880个字符,占用篇幅过大,本文只部分引用)
由于此系统采用C语言作为变成语言,必须要将此公式进行一次换算,即将此公式翻译成计算机程序的格式,用C语言来表达,让计算机能够运算。具体换算过程涉及上位机程序,此处暂不讨论。
4,结论
这个项目涉及的机械电器以及软件等多学科知识,一个综合性非常强的自动化控制系统。本文在软件原理上仅以二维模型来介绍三维空间摄像机的控制原理,目的是为其他同类产品的设计提供一些思路。此项技术已经相对比较成熟,在一些大型活动及体育赛事的转播中应用广泛。
参考文献:
[1] 常晓玲,电气控制系统与可编程控制器[M].机械工业出版社,2005.
[2] 张志涌,精通MATLAB [M]. 北京航空航天大学出版社 ,2000.
[3] 颜嘉男,伺服电机应用技术 [M]. 科学出版社,2010.
[4] 林锐,高质量程序设计指南:C++/C语言 [M]. 电子工业出版社,2012
[5] 明日科技,C语言常用算法分析 [M]. 清华大学出版社,2012