基于Maya軟件的機(jī)構(gòu)運(yùn)動(dòng)軌跡規(guī)劃方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及運(yùn)動(dòng)軌跡規(guī)劃領(lǐng)域,尤其涉及一種基于Maya軟件的機(jī)構(gòu)運(yùn)動(dòng)軌跡規(guī)劃 方法。
【背景技術(shù)】
[0002] 機(jī)械機(jī)構(gòu)如游樂(lè)場(chǎng)的游樂(lè)設(shè)施往往既有平移又有旋轉(zhuǎn)運(yùn)動(dòng),為順利達(dá)到目標(biāo)位 置,機(jī)構(gòu)在運(yùn)動(dòng)過(guò)程中需要沿預(yù)定的軌道避開障礙物運(yùn)動(dòng),因而通常需要預(yù)先對(duì)機(jī)構(gòu)的運(yùn) 動(dòng)軌跡進(jìn)行規(guī)劃。請(qǐng)參照?qǐng)D1,按照現(xiàn)有的運(yùn)動(dòng)軌跡規(guī)劃方法,機(jī)構(gòu)的加速度的變化在某些 地方存在不連續(xù)的情況,導(dǎo)致機(jī)構(gòu)按照規(guī)劃的軌跡運(yùn)動(dòng)時(shí),某些位置產(chǎn)生抖動(dòng),影響運(yùn)動(dòng)效 果和客戶體驗(yàn)。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明實(shí)施例所要解決的技術(shù)問(wèn)題在于,提供一種基于Maya軟件的機(jī)構(gòu)運(yùn)動(dòng)軌跡 規(guī)劃方法,以使機(jī)構(gòu)按照規(guī)劃的運(yùn)動(dòng)軌跡運(yùn)動(dòng)時(shí)無(wú)抖動(dòng),具有運(yùn)行平穩(wěn),用戶體驗(yàn)佳的技術(shù) 效果。
[0004] 為了解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例提出了一種基于Maya軟件的機(jī)構(gòu)運(yùn)動(dòng)軌跡 規(guī)劃方法,包括以下步驟:
[0005] 建模步驟:在Maya軟件中,建立機(jī)構(gòu)及其運(yùn)動(dòng)環(huán)境的三維模型,通過(guò)關(guān)鍵幀動(dòng)畫設(shè) 置關(guān)鍵幀,生成機(jī)構(gòu)的運(yùn)動(dòng)曲線;
[0006]目標(biāo)函數(shù)構(gòu)建步驟:采用一次多項(xiàng)式和五次多項(xiàng)式交替混合的方式對(duì)運(yùn)動(dòng)曲線進(jìn) 行參數(shù)化描述以構(gòu)建目標(biāo)函數(shù),并以建模步驟中的關(guān)鍵幀作為輸入,插值得到機(jī)構(gòu)在每一 幀的運(yùn)動(dòng)數(shù)據(jù);
[0007] 計(jì)算步驟:對(duì)目標(biāo)函數(shù)求一階導(dǎo)數(shù)、二階導(dǎo)數(shù),以分別得到機(jī)構(gòu)在每一幀的速度、 加速度;及
[0008] 規(guī)劃步驟:根據(jù)預(yù)設(shè)的速度及加速度限制,判斷計(jì)算步驟得到的速度及加速度是 否超過(guò)限制,若均未超過(guò),目標(biāo)函數(shù)構(gòu)建步驟得到運(yùn)動(dòng)數(shù)據(jù)即作為機(jī)構(gòu)的目標(biāo)運(yùn)動(dòng)曲線數(shù) 據(jù),否則,增加超過(guò)部分所對(duì)應(yīng)關(guān)鍵幀的時(shí)間,再重復(fù)目標(biāo)函數(shù)構(gòu)建步驟、計(jì)算步驟及規(guī)劃 步驟,直到得到不超限的速度及加速度。
[0009] 進(jìn)一步地,關(guān)鍵幀由時(shí)間tk,k= 1,…,n及其對(duì)應(yīng)的幀值xk,k= 1,…,n來(lái)確定,其 中,X為角位移或線位移。
[0010] 進(jìn)一步地,運(yùn)動(dòng)曲線中相鄰兩個(gè)關(guān)鍵幀構(gòu)成運(yùn)動(dòng)段,對(duì)于運(yùn)動(dòng)段k中的線性運(yùn)動(dòng)段 構(gòu)造第一目標(biāo)函數(shù)f(x)=xk,k=l,…,n,按照所述運(yùn)動(dòng)段k的運(yùn)動(dòng)距離與時(shí)間,即相鄰兩關(guān) 鍵幀的幀值之差xk+i_xk,k=l,'"n-l及對(duì)應(yīng)的時(shí)間差tk+i_tk,k=l,…n-1,計(jì)算得到平均速 度,并將其作為該運(yùn)動(dòng)段線性運(yùn)動(dòng)的速度毛#,= 1,···《 -1。
[0011] 進(jìn)一步地,對(duì)相鄰兩個(gè)運(yùn)動(dòng)段即運(yùn)動(dòng)段k和運(yùn)動(dòng)段k+Ι中的線性運(yùn)動(dòng)段的銜接過(guò)渡 段,按照設(shè)定的加速時(shí)間ta。。,構(gòu)造第二目標(biāo)函數(shù)舛〇 = /V +Γ,+1?2 + F,其中 的待定系數(shù)A、B、C、D、E及F由起始位置·%41 -ii4l /2,起始速度4+1,起始加速度〇,終止 位置%+1 +之+2 xlt / 2,終止速度心+2,終止加速度〇來(lái)計(jì)算確定,其中,t表示時(shí)間。
[0012] 進(jìn)一步地,計(jì)算步驟與規(guī)劃步驟之間,或者規(guī)劃步驟之后還包括:
[0013] 檢驗(yàn)步驟:對(duì)計(jì)算步驟得到的加速度求導(dǎo),得到機(jī)構(gòu)在每一幀的角加加速度,并生 成橫軸為時(shí)間,縱軸為角加加速度的角加加速度變化圖,若圖中不存在角加加速度正負(fù)值 的突變,則運(yùn)動(dòng)軌跡規(guī)劃成功。
[0014] 進(jìn)一步地,所述機(jī)構(gòu)為組成車體的旋轉(zhuǎn)座、第一旋轉(zhuǎn)臂、第二旋轉(zhuǎn)臂及座椅中的一 種或多種,其中,旋轉(zhuǎn)座旋轉(zhuǎn)地安裝于基座上,基座底部設(shè)有運(yùn)行于軌道上的輪子,旋轉(zhuǎn)座、 第一旋轉(zhuǎn)臂、第二旋轉(zhuǎn)臂及座椅依次活動(dòng)連接。
[0015] 進(jìn)一步地,第一旋轉(zhuǎn)臂的速度范圍為-16m/s~16m/s,加速度范圍為-45m/s~2~ 45m/s~2〇
[0016] 本發(fā)明實(shí)施例通過(guò)在規(guī)劃?rùn)C(jī)構(gòu)運(yùn)動(dòng)軌跡時(shí),采用線性運(yùn)動(dòng)與五次多項(xiàng)式插值運(yùn)動(dòng) 交替混合的方式,實(shí)現(xiàn)了在兩種運(yùn)動(dòng)方式過(guò)渡時(shí)速度與加速度的連續(xù)性,并且實(shí)現(xiàn)了在整 個(gè)運(yùn)動(dòng)過(guò)程中加速度變化的連續(xù)性,避免機(jī)構(gòu)運(yùn)動(dòng)過(guò)程中產(chǎn)生抖動(dòng)。
【附圖說(shuō)明】
[0017] 圖1是按照現(xiàn)有運(yùn)動(dòng)軌跡規(guī)劃方法生成的機(jī)構(gòu)對(duì)應(yīng)的加速度變化示意圖。
[0018] 圖2是本發(fā)明實(shí)施例的車體結(jié)構(gòu)示意圖。
[0019] 圖3是本發(fā)明實(shí)施例的基于Maya軟件的機(jī)構(gòu)運(yùn)動(dòng)軌跡規(guī)劃方法流程示意圖。
[0020] 圖4是本發(fā)明實(shí)施例的通過(guò)Maya軟件關(guān)鍵幀動(dòng)畫生成的第一旋轉(zhuǎn)臂運(yùn)動(dòng)軌跡圖。
[0021] 圖5是本發(fā)明實(shí)施例一次多項(xiàng)式和五次多項(xiàng)式擬合生成的運(yùn)動(dòng)曲線示意圖。
[0022] 圖6是本發(fā)明實(shí)施例的第一旋轉(zhuǎn)臂對(duì)應(yīng)的速度變化示意圖。
[0023] 圖7是本發(fā)明實(shí)施例的第一旋轉(zhuǎn)臂對(duì)應(yīng)的加速度變化示意圖。
[0024] 圖8是本發(fā)明實(shí)施例的第一旋轉(zhuǎn)臂對(duì)應(yīng)的加加速度變化示意圖。
[0025] 附圖標(biāo)號(hào)說(shuō)明
[0026] 旋轉(zhuǎn)座10
[0027] 第一旋轉(zhuǎn)臂20
[0028] 第二旋轉(zhuǎn)臂30
[0029] 座椅 40
[0030] 基座 50
[0031] 軌道 1〇〇
[0032] 建模步驟S1
[0033]目標(biāo)函數(shù)構(gòu)建步驟S2 [0034] 計(jì)算步驟S3
[0035] 檢驗(yàn)步驟S4
[0036] 規(guī)劃步驟S5。
【具體實(shí)施方式】
[0037] 需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相 互結(jié)合,下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明。需要說(shuō)明的是,本說(shuō)明書 中所有曲線圖的橫軸表示時(shí)間,單位為幀,運(yùn)動(dòng)幀率為100f/s。
[0038] 請(qǐng)參照?qǐng)D2,本發(fā)明實(shí)施例所提到的機(jī)構(gòu)為組成娛樂(lè)載人車的車體的旋轉(zhuǎn)座10、第 一旋轉(zhuǎn)臂20、第二旋轉(zhuǎn)臂30及座椅40中的一種或多種(本說(shuō)明書的機(jī)構(gòu)以第一旋轉(zhuǎn)臂20為 例進(jìn)行說(shuō)明)。具體地,所述旋轉(zhuǎn)座10旋轉(zhuǎn)地安裝于所述娛樂(lè)載人車的基座50上,基座50底 部設(shè)有運(yùn)行于軌道100上的輪子,旋轉(zhuǎn)座10、第一旋轉(zhuǎn)臂20、第二旋轉(zhuǎn)臂30及座椅40依次活 動(dòng)連接。其中,第一旋轉(zhuǎn)臂20可沿垂直于紙面的旋轉(zhuǎn)軸旋轉(zhuǎn),運(yùn)動(dòng)行程為-12deg~7deg,速 度范圍為-16m/s~16m/s,加速度范圍為_45m/s~2~45m/s~2。
[0039] 本發(fā)明實(shí)施例在規(guī)劃?rùn)C(jī)構(gòu)運(yùn)動(dòng)軌跡時(shí),先利用Maya軟件對(duì)機(jī)構(gòu)及運(yùn)動(dòng)環(huán)境建模, 再用關(guān)鍵幀動(dòng)畫的方法得到機(jī)構(gòu)的運(yùn)動(dòng)曲線,動(dòng)態(tài)仿真機(jī)構(gòu)按運(yùn)動(dòng)曲線運(yùn)動(dòng)的視覺效果, 利用曲線編輯器交互修改關(guān)鍵位置,通過(guò)采用一次多項(xiàng)式與五次多項(xiàng)式運(yùn)動(dòng)交替混合的方 式,實(shí)現(xiàn)在兩種運(yùn)動(dòng)方式過(guò)渡時(shí)速度與加速度的連續(xù)性,并且實(shí)現(xiàn)在整個(gè)運(yùn)動(dòng)過(guò)程中加速 度變化的連續(xù)性,以使機(jī)構(gòu)按照規(guī)劃的運(yùn)動(dòng)軌跡運(yùn)動(dòng)時(shí)無(wú)抖動(dòng),具有運(yùn)行平穩(wěn),客戶體驗(yàn)佳 的技術(shù)效果。
[0040] 請(qǐng)參照?qǐng)D3,本發(fā)明實(shí)施例的基于Maya軟件的機(jī)構(gòu)運(yùn)動(dòng)軌跡規(guī)劃方法包括以下幾 個(gè)步驟:
[0041] 建模步驟S1:在Maya軟件中,建立機(jī)構(gòu)及運(yùn)動(dòng)環(huán)境的三維模型,根據(jù)設(shè)計(jì)要求通過(guò) 關(guān)鍵幀動(dòng)畫設(shè)置關(guān)鍵幀,生成機(jī)構(gòu)的運(yùn)動(dòng)曲線。
[0042]具體地,利用關(guān)鍵幀動(dòng)畫方法,對(duì)第一旋轉(zhuǎn)臂20屬性設(shè)置關(guān)鍵幀,生成第一旋轉(zhuǎn)臂 20運(yùn)動(dòng)曲線,關(guān)鍵幀由時(shí)間tk,k = l,…,n及其對(duì)應(yīng)的幀值xk,k = l,…,n來(lái)確定。如圖4所示, 其中,圖中的所有黑點(diǎn)標(biāo)識(shí)為關(guān)鍵幀,曲線由Maya軟件內(nèi)置算法自動(dòng)生成,縱軸表示旋轉(zhuǎn)角 度,單位為deg。用關(guān)鍵幀動(dòng)畫的方法,可根據(jù)設(shè)計(jì)的需要隨時(shí)調(diào)整關(guān)鍵幀的位置或值,直到 得到所需要的關(guān)鍵幀的幀值xk,k = l,…,n及對(duì)應(yīng)的時(shí)間tk,k=l,···,n,在本說(shuō)明書中以n = 11為例進(jìn)行說(shuō)明。在本說(shuō)明書中,X為角位移