王奇志,楊曉曉
(北京交通大學(xué)計(jì)算機(jī)與信息技術(shù)學(xué)院,北京 100044)
機(jī)器人打乒乓球時(shí),需要解決快速運(yùn)動(dòng)的乒乓球的跟蹤、軌跡預(yù)測(cè)問(wèn)題,這些問(wèn)題是機(jī)器人研究領(lǐng)域中的共性和關(guān)鍵問(wèn)題。軌跡預(yù)測(cè)是對(duì)軌跡跟蹤過(guò)程在時(shí)間軸上的進(jìn)一步延伸。乒乓球機(jī)器人在擊球過(guò)程中,需要首先判斷和預(yù)測(cè)來(lái)球的軌跡,才能給運(yùn)動(dòng)控制系統(tǒng)以足夠的時(shí)間,驅(qū)動(dòng)手臂去擊打球。因此,軌跡預(yù)測(cè)對(duì)于機(jī)器人擊球成功率至關(guān)重要。
軌跡預(yù)測(cè)算法主要分為兩類:基于運(yùn)動(dòng)學(xué)模型的方法和基于經(jīng)驗(yàn)的方法。
文獻(xiàn)[1]采用近似的物理模型對(duì)乒乓球運(yùn)動(dòng)軌跡進(jìn)行預(yù)測(cè),首先對(duì)乒乓球在各個(gè)軸向上進(jìn)行受力分析,列出乒乓球在空中飛行的軌跡方程。當(dāng)乒乓球與球臺(tái)發(fā)生碰撞時(shí),以乒乓球與球臺(tái)碰撞前的速度為輸入,碰撞后的速度為輸出,建立碰撞模型。但是,該方法精確建模比較困難,需要大量的實(shí)驗(yàn)以確定模型參數(shù)。
1997年,上海交通大學(xué)芮慶等人和日本大阪大學(xué)宮崎文夫教授合作,首先在理論上研究了關(guān)于乒乓球軌跡的預(yù)測(cè)和仿真算法,提出了一種采用局部加權(quán)線性回歸算法(Local Weight Regression)的乒乓球軌跡預(yù)測(cè)算法[2]。該方法的優(yōu)點(diǎn)是不需要對(duì)被控對(duì)象建立動(dòng)力學(xué)模型,缺點(diǎn)是需要大量的有效樣本,并且無(wú)法區(qū)分乒乓球是否旋轉(zhuǎn),難以根據(jù)旋轉(zhuǎn)對(duì)預(yù)測(cè)結(jié)果進(jìn)行分析。
在軌跡預(yù)測(cè)中獲得反彈前的乒乓球的速度對(duì)于反彈后的軌跡預(yù)測(cè)至關(guān)重要。本文著重對(duì)文獻(xiàn)[1]的計(jì)算反彈前的速度的計(jì)算方法進(jìn)行改進(jìn),應(yīng)用Matlab 6.5對(duì)改進(jìn)算法的可行性進(jìn)行分析,同時(shí)為了直觀地分析預(yù)測(cè)軌跡,設(shè)計(jì)了基于OPENGL的3D 仿真平臺(tái)。
機(jī)器人對(duì)乒乓球的軌跡預(yù)測(cè),基本分為四個(gè)步驟:
(1)軌跡跟蹤階段。將采集到的點(diǎn)進(jìn)行RANSAC去噪,然后采用基于最小二乘法的多項(xiàng)式擬合方法對(duì)運(yùn)動(dòng)軌跡進(jìn)行擬合,結(jié)合采集時(shí)間計(jì)算乒乓球在各個(gè)測(cè)量點(diǎn)的速度和加速度。
(2)反彈前的軌跡預(yù)測(cè)。對(duì)乒乓球飛行的物理機(jī)理進(jìn)行建模,獲得乒乓球飛行的微分方程,求解乒乓球的軌跡和速度。
(3)乒乓球與球臺(tái)的碰撞。主要是構(gòu)造乒乓球與球臺(tái)的碰撞模型。
(4)反彈后的軌跡預(yù)測(cè)。與反彈前軌跡預(yù)測(cè)采用相同的方法。
乒乓球在空氣中運(yùn)動(dòng)的過(guò)程中,主要受到兩個(gè)力的作用:重力G=mg 和空氣阻力F=kv2,其中m 為乒乓球的質(zhì)量,g 為重力加速度,k 為空氣阻力系數(shù)。飛行模型參見文獻(xiàn)[1]。
(1)水平方向上:
水平方向的Y 軸,具有和X 軸一致的位置預(yù)測(cè)表達(dá)式。
(2)垂直方向上:
要對(duì)乒乓球的軌跡做出準(zhǔn)確的預(yù)測(cè),除了建立飛行過(guò)程精確運(yùn)動(dòng)方程之外,還需要對(duì)乒乓球與桌面的碰撞進(jìn)行建模,得到比較準(zhǔn)確的反彈模型。碰撞模型的建立參見文獻(xiàn)[1]。
反彈模型在X、Y 方向的速度變化用一階多項(xiàng)式來(lái)表示:
其中,kx、ky、bx、by是反彈參數(shù)。
垂直方向的反彈模型為:
其中,kz是反彈參數(shù)。
反彈模型對(duì)反彈前的初始點(diǎn)的速度敏感,沒有采用公式推導(dǎo)計(jì)算反彈前的速度,而是提出了將預(yù)測(cè)的軌跡用最小二乘法擬合求導(dǎo)得到反彈前的速度。從實(shí)驗(yàn)結(jié)果可以看到預(yù)測(cè)效果很好。
在軌跡預(yù)測(cè)過(guò)程中,建立的方程表達(dá)式與初始點(diǎn)有關(guān),所以初始點(diǎn)的選取對(duì)軌跡預(yù)測(cè)的精確度影響很大。另一方面,由采集到的10個(gè)點(diǎn)進(jìn)行曲線擬合求導(dǎo),則計(jì)算的速度在一定程度上也會(huì)產(chǎn)生誤差,所以文獻(xiàn)[1]采用了基于位置負(fù)反饋的方法對(duì)求導(dǎo)得到的速度值進(jìn)行校正。利用預(yù)測(cè)與采樣點(diǎn)之間的偏差構(gòu)成反饋回路,調(diào)整過(guò)程為:
文獻(xiàn)[1]中K=0.005,為定值。本文中:
其中,K 是一個(gè)動(dòng)態(tài)的系數(shù)。這樣:
表示預(yù)測(cè)的坐標(biāo)誤差與時(shí)間的比值,表示一個(gè)平均的速度誤差,它是一個(gè)動(dòng)態(tài)修正的系數(shù)。
經(jīng)過(guò)多次實(shí)驗(yàn)證明,提高了預(yù)測(cè)結(jié)果的精確度。如圖1所示,圖a1、圖b1、圖c1為固定比例系數(shù)時(shí)三個(gè)軸上的軌跡預(yù)測(cè)示意圖,右列為動(dòng)態(tài)系數(shù)調(diào)節(jié)時(shí)三個(gè)軸上的軌跡預(yù)測(cè)示意圖。其中,星號(hào)表示跟蹤得到的乒乓球軌跡,圓圈表示預(yù)測(cè)的軌跡。
Figure 1 Chart of track prediction comparison(feedback regulation coefficient)圖1 軌跡預(yù)測(cè)對(duì)比圖(反饋調(diào)節(jié)系數(shù))
表1為固定比例系數(shù)時(shí)預(yù)測(cè)的坐標(biāo)及誤差,表2為動(dòng)態(tài)系數(shù)反饋調(diào)節(jié)時(shí)預(yù)測(cè)的坐標(biāo)及誤差。由表1和表2可以看到,改進(jìn)后的系數(shù)預(yù)測(cè)更加準(zhǔn)確。
Table 1 Predicted coordinate and error of the fixed proportion coefficient表1 固定比例系數(shù)時(shí)預(yù)測(cè)的坐標(biāo)及誤差
Table 2 Predicted coordinate and error of the dynamic coefficient feedback regulation表2 動(dòng)態(tài)系數(shù)反饋調(diào)節(jié)時(shí)預(yù)測(cè)的坐標(biāo)及誤差
反彈模型對(duì)反彈前的初始點(diǎn)的速度敏感,文獻(xiàn)[1]采用公式推導(dǎo)計(jì)算反彈前的速度,本文提出將已經(jīng)預(yù)測(cè)好的軌跡用最小二乘法擬合求導(dǎo)得到反彈前的速度。從實(shí)驗(yàn)結(jié)果可以看到預(yù)測(cè)效果很好。圖2是軌跡預(yù)測(cè)對(duì)比圖,左列是用文獻(xiàn)[1]提出的方法進(jìn)行的預(yù)測(cè),右列是用本文提出的方法來(lái)預(yù)測(cè)乒乓球反彈后的軌跡。
為了更直觀地看到預(yù)測(cè)效果,公式推導(dǎo)和曲線擬合求解反彈前速度和誤差如表3 和表4 所示。坐標(biāo)中的點(diǎn)是反彈后預(yù)測(cè)的連續(xù)四個(gè)坐標(biāo)值及其誤差值。
Table 3 Predicted coordinate and error of the formula calculating before a rally表3 公式推導(dǎo)計(jì)算反彈前速度時(shí)預(yù)測(cè)的坐標(biāo)及誤差
實(shí)驗(yàn)結(jié)果如圖2所示,其中三幅圖的橫坐標(biāo)均為時(shí)間(s),星號(hào)表示實(shí)際的觀察位置,圓圈表示預(yù)測(cè)的位置。由于乒乓球拍的左右寬150mm,上下高156 mm,因此,對(duì)軌跡預(yù)測(cè)的誤差有一定的容忍度,實(shí)際誤差50mm 以內(nèi)可以滿足擊球作業(yè)的要求。從表2和表4可看出,X 軸、Y 軸、Z 軸三個(gè)坐標(biāo)軸的誤差總和均小于50 mm,所以預(yù)測(cè)效果符合控制要求。
Table 4 Predicted coordinate and error of the curve fitting before a rally表4 曲線擬合求解反彈前速度時(shí)預(yù)測(cè)的坐標(biāo)及誤差
通過(guò)OpenGL仿真平臺(tái)真實(shí)地再現(xiàn)預(yù)測(cè)軌跡和采樣軌跡。如圖3所示,圖中點(diǎn)狀線為采樣的軌跡,實(shí)線為預(yù)測(cè)的軌跡。根據(jù)這種具有真實(shí)感的對(duì)比,可以看到預(yù)測(cè)結(jié)果比較好。
Figure 2 Chart of track prediction comparison(calculating rebound before initial velocity)圖2 軌跡預(yù)測(cè)對(duì)比圖(計(jì)算反彈前初速度)
Figure 3 Chart of predicted trajectory and sampling trajectory圖3 真實(shí)再現(xiàn)預(yù)測(cè)軌跡和采樣軌跡
機(jī)器人打乒乓球的一個(gè)關(guān)鍵是對(duì)乒乓球的飛行軌跡進(jìn)行準(zhǔn)確的預(yù)測(cè),進(jìn)而提前計(jì)算得到擊打點(diǎn)的位置和速度信息。本文主要是對(duì)乒乓球飛行軌跡預(yù)測(cè)中采用的運(yùn)動(dòng)學(xué)模型[1]的算法進(jìn)行改進(jìn)。實(shí)驗(yàn)結(jié)果表明,比例系數(shù)的改進(jìn)以及反彈前初速度計(jì)算的改進(jìn)都能夠更加準(zhǔn)確地預(yù)測(cè)乒乓球的軌跡,滿足打乒乓球作業(yè)的要求。
[1]Zhang Zheng-tao,Xu De,Yu Jun-zhi.Research and latest development of ping-pong robot player[C]∥Proc of the 7th World Congress on Intelligent Control and Automation,2008:4881-4886.
[2]Rui Qing,Hu Zong-wu.Research of using LWR learning table tennis orbit prediction simulation[J].Robot,1998,2.(5):373-377.(in Chinese)
[3]Zhang Yuan-hui.Based on real-time visual table tennis robot calibration and tracking technology[D].Hangzhou:Zhejiang University,2009.(in Chinese).
[4]Anderson R L.Understanding and applying a robot ping-pong player's expert controller[C]∥Proc of IEEE International Conference on Robotics and Automation,1989:1284-1289.
[5]Hashimoto H,Ozaki F,Asano K,et al.Development of a ping-pong robot system using 7degrees of freedom direct drive arm[C]∥Proc of SPIE 0856,IECON'87,1987.dio:10.1117/1912.943015.
[6]Shreiner D,Woo M,Neider J,et al.OpenGL programming guide:The official guide to learning OpenGL[M].Fourth ed.Deng Zhen-xiang,translation.Beijing:The people post and Telecommunications Press,2005.(in Chinese)
[7]Woo M,Neider A,Davis T,et al.OpenGL programming guide[M].Seventh ed.translated by Wu bin,Duan hai-bo,Xue feng-wu.Beijing:China Electric Power Press,2001.(in Chinese)
附中文參考文獻(xiàn):
[2]芮慶,胡宗武.用LWR 學(xué)習(xí)進(jìn)行乒乓球軌道預(yù)測(cè)的仿真研究[J].機(jī)器人,1998,2.(5):373-377.
[3]張遠(yuǎn)輝.基于實(shí)時(shí)視覺的乒乓球機(jī)器人標(biāo)定和軌跡跟蹤技術(shù)[D].杭州:浙江大學(xué),2009.
[6]Shreiner D,Woo M,Neider J,et al.OpenGL編程指南[M].第四版.鄧鄭祥,譯.北京:人民郵電出版社,2005.
[7]Woo M,Neider A,Davis T,et al.OpenGL 編程權(quán)威指南[M].吳斌,段海波,薛鳳武,譯.北京:中國(guó)電力出版社,2001.