王奇志,楊曉曉
(北京交通大學(xué)計算機(jī)與信息技術(shù)學(xué)院,北京 100044)
機(jī)器人打乒乓球時,需要解決快速運動的乒乓球的跟蹤、軌跡預(yù)測問題,這些問題是機(jī)器人研究領(lǐng)域中的共性和關(guān)鍵問題。軌跡預(yù)測是對軌跡跟蹤過程在時間軸上的進(jìn)一步延伸。乒乓球機(jī)器人在擊球過程中,需要首先判斷和預(yù)測來球的軌跡,才能給運動控制系統(tǒng)以足夠的時間,驅(qū)動手臂去擊打球。因此,軌跡預(yù)測對于機(jī)器人擊球成功率至關(guān)重要。
軌跡預(yù)測算法主要分為兩類:基于運動學(xué)模型的方法和基于經(jīng)驗的方法。
文獻(xiàn)[1]采用近似的物理模型對乒乓球運動軌跡進(jìn)行預(yù)測,首先對乒乓球在各個軸向上進(jìn)行受力分析,列出乒乓球在空中飛行的軌跡方程。當(dāng)乒乓球與球臺發(fā)生碰撞時,以乒乓球與球臺碰撞前的速度為輸入,碰撞后的速度為輸出,建立碰撞模型。但是,該方法精確建模比較困難,需要大量的實驗以確定模型參數(shù)。
1997年,上海交通大學(xué)芮慶等人和日本大阪大學(xué)宮崎文夫教授合作,首先在理論上研究了關(guān)于乒乓球軌跡的預(yù)測和仿真算法,提出了一種采用局部加權(quán)線性回歸算法(Local Weight Regression)的乒乓球軌跡預(yù)測算法[2]。該方法的優(yōu)點是不需要對被控對象建立動力學(xué)模型,缺點是需要大量的有效樣本,并且無法區(qū)分乒乓球是否旋轉(zhuǎn),難以根據(jù)旋轉(zhuǎn)對預(yù)測結(jié)果進(jìn)行分析。
在軌跡預(yù)測中獲得反彈前的乒乓球的速度對于反彈后的軌跡預(yù)測至關(guān)重要。本文著重對文獻(xiàn)[1]的計算反彈前的速度的計算方法進(jìn)行改進(jìn),應(yīng)用Matlab 6.5對改進(jìn)算法的可行性進(jìn)行分析,同時為了直觀地分析預(yù)測軌跡,設(shè)計了基于OPENGL的3D 仿真平臺。
機(jī)器人對乒乓球的軌跡預(yù)測,基本分為四個步驟:
(1)軌跡跟蹤階段。將采集到的點進(jìn)行RANSAC去噪,然后采用基于最小二乘法的多項式擬合方法對運動軌跡進(jìn)行擬合,結(jié)合采集時間計算乒乓球在各個測量點的速度和加速度。
(2)反彈前的軌跡預(yù)測。對乒乓球飛行的物理機(jī)理進(jìn)行建模,獲得乒乓球飛行的微分方程,求解乒乓球的軌跡和速度。
(3)乒乓球與球臺的碰撞。主要是構(gòu)造乒乓球與球臺的碰撞模型。
(4)反彈后的軌跡預(yù)測。與反彈前軌跡預(yù)測采用相同的方法。
乒乓球在空氣中運動的過程中,主要受到兩個力的作用:重力G=mg 和空氣阻力F=kv2,其中m 為乒乓球的質(zhì)量,g 為重力加速度,k 為空氣阻力系數(shù)。飛行模型參見文獻(xiàn)[1]。
(1)水平方向上:
水平方向的Y 軸,具有和X 軸一致的位置預(yù)測表達(dá)式。
(2)垂直方向上:
要對乒乓球的軌跡做出準(zhǔn)確的預(yù)測,除了建立飛行過程精確運動方程之外,還需要對乒乓球與桌面的碰撞進(jìn)行建模,得到比較準(zhǔn)確的反彈模型。碰撞模型的建立參見文獻(xiàn)[1]。
反彈模型在X、Y 方向的速度變化用一階多項式來表示:
其中,kx、ky、bx、by是反彈參數(shù)。
垂直方向的反彈模型為:
其中,kz是反彈參數(shù)。
反彈模型對反彈前的初始點的速度敏感,沒有采用公式推導(dǎo)計算反彈前的速度,而是提出了將預(yù)測的軌跡用最小二乘法擬合求導(dǎo)得到反彈前的速度。從實驗結(jié)果可以看到預(yù)測效果很好。
在軌跡預(yù)測過程中,建立的方程表達(dá)式與初始點有關(guān),所以初始點的選取對軌跡預(yù)測的精確度影響很大。另一方面,由采集到的10個點進(jìn)行曲線擬合求導(dǎo),則計算的速度在一定程度上也會產(chǎn)生誤差,所以文獻(xiàn)[1]采用了基于位置負(fù)反饋的方法對求導(dǎo)得到的速度值進(jìn)行校正。利用預(yù)測與采樣點之間的偏差構(gòu)成反饋回路,調(diào)整過程為:
文獻(xiàn)[1]中K=0.005,為定值。本文中:
其中,K 是一個動態(tài)的系數(shù)。這樣:
表示預(yù)測的坐標(biāo)誤差與時間的比值,表示一個平均的速度誤差,它是一個動態(tài)修正的系數(shù)。
經(jīng)過多次實驗證明,提高了預(yù)測結(jié)果的精確度。如圖1所示,圖a1、圖b1、圖c1為固定比例系數(shù)時三個軸上的軌跡預(yù)測示意圖,右列為動態(tài)系數(shù)調(diào)節(jié)時三個軸上的軌跡預(yù)測示意圖。其中,星號表示跟蹤得到的乒乓球軌跡,圓圈表示預(yù)測的軌跡。
Figure 1 Chart of track prediction comparison(feedback regulation coefficient)圖1 軌跡預(yù)測對比圖(反饋調(diào)節(jié)系數(shù))
表1為固定比例系數(shù)時預(yù)測的坐標(biāo)及誤差,表2為動態(tài)系數(shù)反饋調(diào)節(jié)時預(yù)測的坐標(biāo)及誤差。由表1和表2可以看到,改進(jìn)后的系數(shù)預(yù)測更加準(zhǔn)確。
Table 1 Predicted coordinate and error of the fixed proportion coefficient表1 固定比例系數(shù)時預(yù)測的坐標(biāo)及誤差
Table 2 Predicted coordinate and error of the dynamic coefficient feedback regulation表2 動態(tài)系數(shù)反饋調(diào)節(jié)時預(yù)測的坐標(biāo)及誤差
反彈模型對反彈前的初始點的速度敏感,文獻(xiàn)[1]采用公式推導(dǎo)計算反彈前的速度,本文提出將已經(jīng)預(yù)測好的軌跡用最小二乘法擬合求導(dǎo)得到反彈前的速度。從實驗結(jié)果可以看到預(yù)測效果很好。圖2是軌跡預(yù)測對比圖,左列是用文獻(xiàn)[1]提出的方法進(jìn)行的預(yù)測,右列是用本文提出的方法來預(yù)測乒乓球反彈后的軌跡。
為了更直觀地看到預(yù)測效果,公式推導(dǎo)和曲線擬合求解反彈前速度和誤差如表3 和表4 所示。坐標(biāo)中的點是反彈后預(yù)測的連續(xù)四個坐標(biāo)值及其誤差值。
Table 3 Predicted coordinate and error of the formula calculating before a rally表3 公式推導(dǎo)計算反彈前速度時預(yù)測的坐標(biāo)及誤差
實驗結(jié)果如圖2所示,其中三幅圖的橫坐標(biāo)均為時間(s),星號表示實際的觀察位置,圓圈表示預(yù)測的位置。由于乒乓球拍的左右寬150mm,上下高156 mm,因此,對軌跡預(yù)測的誤差有一定的容忍度,實際誤差50mm 以內(nèi)可以滿足擊球作業(yè)的要求。從表2和表4可看出,X 軸、Y 軸、Z 軸三個坐標(biāo)軸的誤差總和均小于50 mm,所以預(yù)測效果符合控制要求。
Table 4 Predicted coordinate and error of the curve fitting before a rally表4 曲線擬合求解反彈前速度時預(yù)測的坐標(biāo)及誤差
通過OpenGL仿真平臺真實地再現(xiàn)預(yù)測軌跡和采樣軌跡。如圖3所示,圖中點狀線為采樣的軌跡,實線為預(yù)測的軌跡。根據(jù)這種具有真實感的對比,可以看到預(yù)測結(jié)果比較好。
Figure 2 Chart of track prediction comparison(calculating rebound before initial velocity)圖2 軌跡預(yù)測對比圖(計算反彈前初速度)
Figure 3 Chart of predicted trajectory and sampling trajectory圖3 真實再現(xiàn)預(yù)測軌跡和采樣軌跡
機(jī)器人打乒乓球的一個關(guān)鍵是對乒乓球的飛行軌跡進(jìn)行準(zhǔn)確的預(yù)測,進(jìn)而提前計算得到擊打點的位置和速度信息。本文主要是對乒乓球飛行軌跡預(yù)測中采用的運動學(xué)模型[1]的算法進(jìn)行改進(jìn)。實驗結(jié)果表明,比例系數(shù)的改進(jìn)以及反彈前初速度計算的改進(jìn)都能夠更加準(zhǔn)確地預(yù)測乒乓球的軌跡,滿足打乒乓球作業(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ù)測的仿真研究[J].機(jī)器人,1998,2.(5):373-377.
[3]張遠(yuǎn)輝.基于實時視覺的乒乓球機(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].吳斌,段海波,薛鳳武,譯.北京:中國電力出版社,2001.