版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第3章基于Robobasic?的仿人機器人運動程序設(shè)計3.1引言3.2軟件安裝及操作界面說明
3.3roboBASICv2.803.4MF(MetalFighter)仿人機器人介紹3.5Robobasic語言語法介紹3.6前進一步動作的程序設(shè)計3.7后退一步動作的程序設(shè)計3.8連續(xù)行走程序設(shè)計3.9復雜動作程序設(shè)計3.10具有傾斜傳感器的運動程序設(shè)計 3.11具有陀螺儀傳感器的運動程序設(shè)計
3.1引言
Robobasic是用于控制機器人動作的專用語言,是由韓國MINIROBOT公司于2006年研發(fā)并且注冊的語言。它適用于Hitec公司、Mini公司生產(chǎn)的伺服數(shù)字電機控制或者其他適用的電機。
3.2軟件安裝及操作界面說明
3.2.1開發(fā)環(huán)境roboBASICMFv2.80在Win7系統(tǒng)下的安裝
安裝步驟如下:
(1)安裝“roboBASICMFv2.80”軟件。在光盤目錄里的“MetalFighter光盤\English\roboBASICMFv2.80E(20090708)_English”文件內(nèi)容如圖3-1所示,找到“setup.exe”文件,雙擊開始安裝“roboBASICMFv2.80”軟件(點擊roboBASICMFv2.80.msi也可以安裝)。
圖3-1光盤內(nèi)容
(2)點擊“Next”,如圖3-2所示。圖3-2Win7系統(tǒng)下的安裝步驟1
(3)選擇安裝路徑,一般建議安裝在C盤,因為roboBASIC本身占有的容量不大。選擇好路徑后,點擊“Next”,如圖3-3所示。圖3-3Win7系統(tǒng)下的安裝步驟2
(4)出現(xiàn)如圖3-4所示界面,再點擊“Next”。圖3-4Win7系統(tǒng)下的安裝步驟3
(5)程序開始默認安裝,如圖3-5所示。圖3-5Win7系統(tǒng)下的安裝步驟4
(6)當出現(xiàn)如圖3-6所示的界面后,則表示安裝成功,點擊“Close”,即可退出安裝界面。圖3-6Win7系統(tǒng)下的安裝步驟5
(7)此時會發(fā)現(xiàn)在桌面上已經(jīng)出現(xiàn)了如圖3-7所示的圖標,雙擊即可進入roboBASIC軟件界面,進行?*.bas文件的編譯。圖3-7Robobasic快捷方式圖
(8)安裝Windows7補丁。WindowsVista和Windows7中,有的時候會遇到這樣的情況:按照上面的操作步驟正確安裝了roboBASIC軟件,打開后卻不能正常使用和執(zhí)行,比如說上面的按鍵顯示為灰色,不能打開?*.bas文件等情況。一般原因是沒有正確設(shè)置注冊表,但不同的電腦出現(xiàn)的情況也有可能不同,這時就需要安裝補丁。
在光盤目錄里的“MetalFighter光盤\English\robobasic_Vista_Windows7_init”文件夾的內(nèi)容如圖3-8所示。圖3-8安裝光盤文件夾內(nèi)容
WindowsOS有32?bit和64bit的區(qū)分。當是32?bitOS系統(tǒng)時,打開“robobasic_32bit_OS_init(windowsvista,7).bat”進行安裝。當是64?bitOS系統(tǒng)時,打開“robobasic_64bit_OS_init(windowsvista,7).bat”進行安裝。
下面給大家介紹一種需要自己動手安裝補丁的方法。
在“開始/運行”中復制粘貼以下指令,然后點擊“確定”。不同位數(shù)操作系統(tǒng)的補丁如下:注意:在Win7系統(tǒng)環(huán)境下,有時盡管正確安裝了補丁,也不能完全保證roboBASIC可用。如何辨別安裝成功與否呢?①可以看安裝補丁的時候有沒有報錯。如果彈出一個對話框說模塊缺失,一般情況下說明在Win7系統(tǒng)中roboBASIC無法正常使用;②打開roboBASIC軟件,點擊“文件”中的“新建”選項,會發(fā)現(xiàn)軟件沒有任何反應,不管進行任何操作,roboBASIC都還是如圖3-9所示界面,這種情況下roboBASIC也是不能正常使用的。圖3-9安裝后不能正常使用roboBASIC3.2.2開發(fā)平臺roboBASICMFv2.80在WindowsXP系統(tǒng)下的安裝
roboBASICMFv2.80在WindowsXP系統(tǒng)下的具體安裝方法與在Win7下的安裝差不多,它與WindowsXP完全兼容,無須安裝補丁。
安裝步驟如下:
(1)安裝“roboBASICMFv2.80”軟件。在光盤目錄里的“MetalFighter光盤\English\roboBASICMFv2.80E(20090708)_English”文件內(nèi)容如圖3-10所示。找到“setup.exe”文件,雙擊開始安裝“roboBASICMFv2.80”軟件(同樣點擊roboBASICMFv2.80.msi也可以安裝)。
(2)點擊“Next”,如圖3-11所示。圖3-10光盤內(nèi)容圖3-11WindowsXP系統(tǒng)下的安裝步驟1
(3)先選擇好安裝路徑,然后點擊“Next”,如圖3-12所示。圖3-12WindowsXP系統(tǒng)下的安裝步驟2
(4)當出現(xiàn)如圖3-13所示的界面后,再點擊“Next”。圖3-13WindowsXP系統(tǒng)下的安裝步驟3
(5)程序開始默認安裝,如圖3-14所示。圖3-14WindowsXP系統(tǒng)下的安裝步驟4
(6)當出現(xiàn)如圖3-15所示的界面后,則表示安裝成功,點擊“Close”,即可退出安裝界面。
(7)此時會發(fā)現(xiàn)在桌面上已經(jīng)出現(xiàn)了如圖3-7的圖標,雙擊即可進入roboBASIC軟件界面進行?*.bas文件編譯。
roboBASIC在WindowsXP下的兼容性比在Win7中要好,建議使用WindowsXP系統(tǒng)安裝roboBASIC,以免在后續(xù)工作中影響程序的編寫。圖3-15WindowsXP系統(tǒng)下的安裝步驟5
3.3roboBASICv2.80
本節(jié)介紹安裝roboBASICv2.80完成之后的roboBasic編程環(huán)境。roboBasic軟件的開發(fā)環(huán)境界面如圖3-16所示。圖3-16roboBASIC軟件開發(fā)環(huán)境界面3.3.1標題欄
圖3-17所示的是roboBASIC軟件的一個logo圖標,點擊它可以進行軟件窗口的還原、移動、大小變換、最小化、最大化、關(guān)閉等快捷操作。圖3-17roboBASIC軟件的logo圖標圖3-18所示的是“roboBASICMF—”的字樣,表明這個軟件就是針對這款MF機器人而設(shè)計的。圖3-18roboBASICMF圖3-19所示的是所要編譯的文件名,軟件默認打開的文件名為“無題1.bas”(還未保存),若要更改文件名,可以在保存文件時進行修改。圖3-19編譯的文件名如圖3-20所示,標題欄最右邊是最小化,最大化和關(guān)閉按鈕。圖3-20最小化、最大化及關(guān)閉按鈕3.3.2菜單欄
如圖3-21所示為菜單欄,下面從左到右介紹菜單欄上各個按鈕的功能及用法。圖3-21菜單欄最左側(cè)的“文件(F)”小圖標的作用和標題欄上圖標(如圖3-17所示)的功能差不多。不過這里多了一項快捷功能“下一個”,該選項的作用是:在同一個roboBASIC軟件界面下同時打開多個?*.bas文件時,點擊“下一個”,可以進行這些?*.bas文件之間的切換,如圖3-22所示。圖3-22菜單欄
(1)點擊“文件”按鈕,可以看到如圖3-23所示的下拉菜單。圖3-23菜單欄中“文件”選項“文件”下拉菜單中各選項介紹如下:
“新序文件”:可以用來新建?*.bas文件。
“打開程序文件”:用來打開已經(jīng)建立的?*.bas文件。
“關(guān)閉程序文件”:可以用來關(guān)閉當前窗口打開的?*.bas文件,但不關(guān)閉roboBASIC軟件。
“儲存程序文件”:可以儲存當前?*.bas文件。
“另存為”:可以將已保存的文件保存到另外的文檔路徑。
“全部儲存”:可以一鍵保存當下打開的所有?*.bas文件。
“打印程序文件”和“打印機設(shè)置”:針對需要打印的讀者可以進行打印的相關(guān)設(shè)置,這里不作詳細介紹。
“最新文檔”:記錄了用戶最近使用過的?*.bas文件,方便用戶隨時調(diào)用。
“最新文?”:點擊它,會發(fā)現(xiàn)上面有個對號,代表當打開roboBASIC軟件時,軟件會默認自動打開最近一次使用的文檔(如果不想使用該功能,想讓軟件顯示的是空白頁面,可以取消上面的對號)。
“退出”:退出當前軟件。如果當前頁面有?*.bas文件未保存或者修改后未保存時,軟件會提醒是否需要保存。
(2)點擊“編輯”按鈕,可以看到如圖3-24所示的下拉菜單。圖3-24菜單欄中的“編輯”選項“編輯”下拉菜單中各選項介紹如下:
“取消”:和平常使用的“撤銷”功能一樣,可以撤銷當前操作,返回到前一步操作的程序狀態(tài)。
“重復”:當選擇“取消”次數(shù)超過預期時,可以通過“重復”來恢復后一步操作時的程序狀態(tài)。
“剪切”、“復制”、“粘貼”、“刪除”:與Word功能相同。
“設(shè)置注釋領(lǐng)域”:當前選中的程序或者文字不需要或者對程序有影響需要注釋時,可以通過“設(shè)置注釋領(lǐng)域”來注釋程序或者文字,也可以用它來添加備注。注釋以后,注釋的程序或者文字前面有“?'?”,而且注釋的內(nèi)容由黑色字體變成粉紅色,例如?'roboBASIC',注釋的內(nèi)容不參與編譯。
“取消注釋領(lǐng)域”:和“設(shè)置注釋領(lǐng)域”功能相反,用來取消注釋,操作后“?'?”會消失,在實際操作過程中,可以直接在注釋內(nèi)容前從鍵盤刪除“?'?”。
“全選”:這是對于程序編寫區(qū)域里的代碼而言的,可以選中當前?*.bas文件中的全部程序代碼。
“選擇行”:選中當前鼠標所在的一整行,被選中的那一行會顯示黃色背景。
“AlignProgram”:使roboBASIC軟件中當前?*.bas文件的程序代碼上下對齊。
“roboBASICNOTE”:roboBASIC便簽,可以用來記錄一些在編程過程中遇到的問題、心得和程序進展程度之類的信息,如圖3-25所示。圖3-25roboBASICNote
(3)點擊“查找”按鈕,可以看到如圖3-26所示的下拉菜單。圖3-26菜單欄中的“查找”選項“查找”下拉菜單中各選項介紹如下:
“查找”:查找當前?*.bas文件中需要的程序代碼,點擊“查找”會出現(xiàn)如圖3-27所示的對話框,在光標閃爍的地方可以輸入所需要尋找名稱的關(guān)鍵字。圖3-27“查找”界面
“查找下一個/上一個”:點擊此二選項之一后,roboBASIC會默認地尋找下一個/上一個前面輸入的名稱的關(guān)鍵字。
“替換”:替換程序中用戶想要替換的程序代碼,“替換”里面已經(jīng)包含了“查找”、“查找下一個”的功能。點擊“替換”,出現(xiàn)如圖3-28(a)所示的對話框,在1中可以輸入名稱關(guān)鍵字,然后點擊“FindNext”,可以完成“查找”、“查找下一個”。在2中輸入用戶想要替換的新名稱,比如說要把代碼中的main替換為int,就可以在1中輸入main,在2中輸入int,然后點擊“Replace”,點擊一次,軟件會進行一次替換,再點一次,再進行替換,如圖3-28(b)所示。圖3-28“替換”界面
“跳行至”:跳轉(zhuǎn)至想要去的那一行,點擊“跳行至”,彈出如圖3-29所示的對話框。在彈出的對話框里,輸入想要尋址的行數(shù),然后點擊“OK”,軟件自動跳轉(zhuǎn)到前面輸入的那一行,并選中整行(背景呈現(xiàn)黃色)。圖3-29“跳行至”界面
(4)點擊“視圖”按鈕,會顯示如圖3-30所示的菜單。圖3-30菜單欄中的“視圖”選項“視圖”下拉菜單中各選項介紹如下:
“顯示菜單條”和“顯示多重編輯卡”:兩項均是軟件默認選擇的,取消圖3-30中兩項前的對號則表示不顯示這兩項的窗口。這兩項的窗口如圖3-31和圖3-32所示。圖3-32顯示多重編輯卡圖3-31顯示菜單條
“顯示輔助窗口”:可以幫助用戶快捷地找到想要打開的文件,如圖3-33所示。圖3-33輔助窗口
“突出顯示選擇行”:可以突出光標所在的行,即用黃色背景突顯。
“顯示空格”:顯示代碼中原來的空格,用“”代替。
“顯示所有文件格式”:在輔助窗口顯示所有格式的文件。
(5)點擊“設(shè)置”按鈕,會顯示如圖3-34(a)所示的下拉菜單。
“設(shè)置”下拉菜單中各選項介紹如下:
“設(shè)置編輯器”:編輯器如圖3-34(b)所示,可以對程序中的各項內(nèi)容進行字體、大小、顏色的更改,這里不進行具體的介紹,用戶可以自己嘗試更改。圖3-34設(shè)置菜單
“設(shè)置端口”:可以進行串行端口的設(shè)置,這里設(shè)置的端口是COM7。端口可以任意設(shè)置,但是必須與電腦分配給下載線的端口相同,才能進行通信。若要查看USB線的端口,可以右鍵點擊“我的電腦”→“管理”→“設(shè)備管理器”→“端口”,更改這里的端口。也可以在roboBASIC軟件里,也就是“端口設(shè)置窗口”里進行設(shè)置,如圖3-35(a)所示。在Win7下的端口設(shè)置步驟和WindowsXP下一樣,總之需要遵循的原則就是要保證USB的端口與roboBASIC里的端口一致,否則無法使電腦與機器人進行連接。另外在“端口設(shè)置窗口”里可以進行通訊超時的設(shè)置,這里默認的是3000?msec,如圖3-35(b)所示,用戶可以根據(jù)實際的需要進行更改,在數(shù)字框里直接輸入數(shù)字或者在下面的滑塊上進行滑動調(diào)節(jié)(傳輸速度自左向右從小變大)。圖3-35端口設(shè)置如圖3-36所示為MF機器人進行數(shù)據(jù)傳輸?shù)拇锌诿Q(為默認),無法自行更改。圖3-36數(shù)據(jù)傳輸?shù)拇锌?/p>
“MF??置零點”(中文版軟件有誤,應為“MF設(shè)置零點”):針對MF機器人的零點調(diào)節(jié)。機器人出廠時,可能沒有完全地調(diào)節(jié)好機器人零點,需要用戶自己進行調(diào)節(jié),主要是雙腳上的電機零點的調(diào)節(jié),如圖3-37(a)所示,首先需要連接機器人,讀取當前機器人的電機零點角度,然后根據(jù)實際需要進行調(diào)節(jié)。圖3-37零點調(diào)整
“24Port?置零點”(中文版軟件有誤,應為“24個端口零點設(shè)置”):針對MF機器人芯片上24個端口的零點調(diào)節(jié)。如圖3-37(b)所示,MF機器人出廠時默認設(shè)置了16個端口,對應著機器人的16個電機(左臂、右臂各3個電機,左腳、右腳各5個電機),而實際上MF機器人的芯片上提供了24個端口,還提供了可擴展端口,所以用戶可以根據(jù)自己的實際需要進行適當?shù)母难b,比如在MF機器人的頭上裝一個電機,可以使其進行左右扭動,使機器人更加具備人的特性。
(6)點擊“編譯”按鈕,會看到如圖3-38所示的下拉菜單。圖3-38菜單欄中的“編譯”選項“編譯”下拉菜單中各選項介紹如下:
“生成目標代碼”:點擊此選項后,roboBASIC會自動生成一個?*.obj文件。
“下載”:把?*.obj文件下載到機器人存儲器內(nèi),點擊“下載”,會出現(xiàn)如圖3-39(a)所示界面,點擊“確定”后,當看到如圖3-39(b)所示界面時,則說明程序正在下載。圖3-39下載窗口
“全編譯執(zhí)行”:一步生成?*.obj文件和下載界面。
“調(diào)試”:顯示MF機器人的16個電機當前狀態(tài)下的電機角度參數(shù),用戶可根據(jù)需要,對各個電機進行角度調(diào)整,調(diào)試界面如圖3-40所示。圖3-40調(diào)試界面
(7)點擊“控制”按鈕,會看到如圖3-41所示的下拉菜單。圖3-41菜單欄中的“控制”選項“控制”下拉菜單中各選項介紹如下:
“控制器情報”:顯示控制器的固件版本、控制器ID等一些硬件信息以及下載程序的名稱、下載時間和文件大小,如圖3-42所示。圖3-42控制器情報界面
“伺服電機實時控制”:更加詳細地給出了每個電機的控制角度,而且可以通過控制界面對電機進行打開、關(guān)閉的操作?!八欧姍C實時控制”界面如圖3-43所示,“CaputureAll”可以獲得當前機器人的狀態(tài)下各個電機的角度參數(shù)值,點擊此按鈕后界面上的參數(shù)表盤會自動地進行相應調(diào)整?!?lt;”和“>”是用來隱藏和顯示電機組參數(shù)表盤的,這里點擊A組的“<”,則A組的電機組參數(shù)表盤就會被隱藏,如圖3-44所示。將“全選”框中可以對各個電機組進行打開和關(guān)閉操作,要達到同樣的效果也可以在參數(shù)表盤上面的小框里打鉤或者取消打鉤,如圖3-45所示。點擊“插入More”可以將當前電機組的狀態(tài)參數(shù)插入程序中?!癈aputureGroup”用來獲得當前機器人的一個電機組的參數(shù),點擊它之后界面上的參數(shù)表盤會進行相應的調(diào)整,也可以用鼠標控制上面的參數(shù)表盤(前提是在那個電機組motor打開的情況下),直接調(diào)節(jié)機器人上相應電機的參數(shù)角度。圖3-43伺服電機實時控制窗口圖3-44A組的電機組參數(shù)表盤被隱藏圖3-45一個電機組的打開和關(guān)閉操作
“MFMotorControl”:與前面提到的“調(diào)試”功能一樣,“Mode”下的“Syncronization”是同步的意思,在“Syncronization”上打鉤后,如圖3-46所示,當調(diào)節(jié)一個電機時,則另外一個相對應的電機也將作出相同的調(diào)整,例如當調(diào)整了14號電機(右手臂第三個電機),把原來的80改為82,則相應的8號電機(左手臂第三個電機)也做出同樣的調(diào)整,由原來的80變?yōu)榱?2,如圖3-47所示。當取消“Syncronization”后,則可以對單邊進行單獨操作,比如把14號電機改為78,則右手臂仍為82,如圖3-48所示。圖3-46“Syncronization”上打鉤后界面圖3-47調(diào)整14號電機后,8號做出同樣調(diào)整圖3-48取消“Syncronization”后調(diào)整14號電機“Capture”:獲得當前電機組的狀態(tài)參數(shù)。
“Copy&Exchange”:對手臂、腳的角度參數(shù)進行復制或交換。如圖3-49所示,以手臂為例,原先右手臂參數(shù)從上到下為100、30、78,左手臂參數(shù)從上到下為100、30、82,點擊“R_Arm=>L_Arm”后右手臂的參數(shù)復制給了左手臂,即左手臂的參數(shù)也變?yōu)?00、30、78,如圖3-49所示,“R_Arm<=L_Arm”同理;而“R_Arm<=>L_Arm”的作用,就是將左右手臂的參數(shù)進行互換,點擊后右手臂參數(shù)從上到下變?yōu)闉?00、30、82、左手臂參數(shù)從上到下變?yōu)?00、30、78,至于Leg,同理。圖3-49“R_Arm=>L_Arm”后,左右手臂參數(shù)一樣“GroupEnble”:可以控制全部電機motor的打開和關(guān)閉,“AllMotors”是對所有電機的控制,下面的Arm、Leg則是對手臂、雙腳的分別控制。
“插入”:將當前機器人的狀態(tài)參數(shù)插入程序中,“Wait”:插入Wait命令。
下面結(jié)合程序給大家介紹控制菜單下的一些按鈕的作用。
“直接運行行代碼”:只執(zhí)行光標所在行的代碼。例如下面一段代碼:
“直接?行行代?”:運行所有電機組的代碼參數(shù)。以上述代碼為例,當鼠標在這段代碼任意位置時(但不能在stand_pose和WAIT那一行上),點擊“直接?行行代?”后,機器人的所有電機組都做出了相應的改變,執(zhí)行后的效果就是機器人做出一個標準站立的動作。
“清除存儲器”:將機器人存儲器上的緩存內(nèi)容清空,這個操作一般情況下不需要進行。當燒入的程序代碼有誤或者另外一些意外情況下導致機器人做出隨機性的動作或者動作紊亂時,點擊“清除存儲器”后會出現(xiàn)“清除存儲器”對話框,如圖3-50所示。圖3-50“清除存儲器”對話框然后點擊“確定”,清除成功后會跳出清除成功對話框(見圖3-51),再點“確定”,這時可以打開伺服電機實時控制窗口,會看到所有電機的motor已經(jīng)關(guān)閉,如圖3-52所示。圖3-51清除成功圖3-52執(zhí)行“清除存儲器”后所有motor自動關(guān)閉
“控制器運行模式”:執(zhí)行控制器中的代碼;
“控制器暫停模式”:暫??刂破髡趫?zhí)行的代碼;
“控制器重啟模式”:重新啟動控制器;
“MotorAllOFF”:關(guān)閉所有電機組的motor;
“MotorAllON”:打開所有電機組的motor;
“InsertMotorPosition”:將當前所有電機組的狀態(tài)參數(shù)插入程序中,如圖3-53所示。圖3-53插入狀態(tài)參數(shù)到程序中
(8)點擊“窗口”按鈕,會看到如圖3-54所示的下拉菜單。圖3-54菜單欄中的“窗口”選項“窗口”下拉菜單中各選項介紹如下:
“水平平鋪”:將程序窗口在豎直方向上展開,如圖3-55所示。圖3-55“水平平鋪”界面
“垂直平鋪”:將程序窗口在水平方向上展開,如圖3-56所示。圖3-56“垂直平鋪”界面
“層疊”:將程序窗口層疊展開,如圖3-57所示。圖3-57“層疊”界面
“關(guān)閉所有窗口”:關(guān)閉所有的軟件窗口,如圖3-58所示。圖3-58點擊“關(guān)閉所有窗口”后的軟件窗口
“窗口目錄”:顯示了當前打開的所有程序的名稱。
(9)在菜單欄的最右側(cè)有圖3-59所示的“最小化”、“最大化”和“關(guān)閉”按鈕,不過此處的這些操作與圖3-20不一樣,此處僅針對當前打開的程序文件進行操作,而圖3-20是針對roboBASIC軟件進行操作。圖3-59菜單欄中的“最小化”、“最大化”和“關(guān)閉”按鈕3.3.3工具欄
下面以從左到右的順序介紹工具欄中各工具圖標的使用。3.3.4輔助窗口
輔助窗口中會顯示系統(tǒng)的文件,并且可以快捷地打開文件,界面如圖3-60所示。圖3-60輔助窗口界面3.3.5狀態(tài)欄
狀態(tài)欄顯示打開的?*.bas文件,當前光標所在的位置(總行數(shù)),以及大寫鎖、數(shù)字鎖、大寫鍵的關(guān)閉和打開顯示。3.4MF(MetalFighter)仿人機器人介紹
MF機器人(金剛戰(zhàn)士)是韓國Mini公司生產(chǎn)的一款具有16個自由度(即16個電機)組成的仿人型機器人。MF仿人機器人站立姿態(tài)結(jié)構(gòu)示意圖如圖3-61所示。它有腳、手臂和頭
(含紅外接收模塊)等主要結(jié)構(gòu)。根據(jù)16個自由度不同的組合,可以模仿人類做出很多不同的動作,例如跳舞、走路、踢球等復雜動作。它的背上是一塊MR-C3024FX主控板,如圖3-62所示,負責對機器人運動的控制。主控板上有40個輸入/輸出端口,能同時控制24個伺服電機的控制器。MR-C3024內(nèi)置了64?KB的閃存,能編成大量的程序,同時支持最多32個數(shù)碼輸入/輸出(I/O),它還具有8個頻率的模擬輸入功能(A/D),加速傳感器及超音波傳感器輸入功能,操作器遠距離接收信號功能等多種功能。用戶可以通過電纜接口在電腦里下載完整的程序代碼,使機器人做出動作并且可以隨時訓練機器人,以便更容易操作雙足步行機器人。圖3-61MF仿人機器人站立姿態(tài)結(jié)構(gòu)示意圖圖3-62MR-C3024FX控制板結(jié)構(gòu)示意圖控制器簡介:
CPU:ATMELATMEGA128;內(nèi)存為56?KB閃存型;協(xié)議接口;伺服參數(shù)設(shè)置功能;可選LED指示單元;3種PWM輸出;8個A/D接口;最多支持4個陀螺儀;支持藍牙,紅外控制;支持語音控制;內(nèi)置電壓蜂鳴器,兼容6oct音樂;兼容多種編程語言。
機器人使用的電機是伺服電機(直流和交流),它能將電壓信號轉(zhuǎn)化為轉(zhuǎn)矩和轉(zhuǎn)速。其特點是當信號電壓為零時無自轉(zhuǎn)現(xiàn)象,轉(zhuǎn)速隨著轉(zhuǎn)矩增加而勻速下降,體積小,重量輕,輸出功率和轉(zhuǎn)矩大,方便調(diào)試。以Hitec公司生產(chǎn)的HSR8498HB型電機和HSR5990TG型電機為例,其外形如圖3-63所示,參數(shù)如表3-1所示。圖3-63HSR8498HB型電機(左)與HSR5990TG型電機(右)表3-1HSR8498HB型與HSR5990TG型電機具體參數(shù)
3.5Robobasic語言語法介紹
3.5.1Robobasic語言介紹
Robobasic語言類似于BASIC語言,其指令可以分為與聲明、定義相關(guān)的指令,流程控制指令,數(shù)字信號輸入輸出指令,內(nèi)存指令,LCD指令,操作數(shù)相關(guān)操作,電機控制指令,電機組參數(shù)分配,音樂控制指令,外部通訊指令,模擬信號處理指令,處理指令,其他指令和內(nèi)部指令等類別。本書以Robobasic在MetalFighter型仿人機器人上的應用為例,對部分指令進行詳細介紹。3.5.2Robobasic語言基本語法
1)標示符集
Robobasic標示符集由英語字母、數(shù)字和特殊符號組成。特殊意義的符號如表3-2所示。表3-2Robobasic特殊意義標示符集
2)表達式和運算符
表達式由非變量、變量、數(shù)及運算符組成。一個運算符對給定值執(zhí)行算術(shù)或邏輯運算,在Robobasic中運算符的分類如表3-3所示。表3-3運算符分類表算術(shù)運算符是執(zhí)行計算的標示符,和一般BASIC語言一樣,“+、-、*、/、%”在Robobasic中可以使用,但是Robobasic和BASIC有些不同的地方。
(1)運算符中沒有優(yōu)先級。
(2)復雜的數(shù)學計算會產(chǎn)生意想不到的錯誤。
(3)?Robobasic只支持Byte類型和整數(shù)類型,小數(shù)點將被忽略。
關(guān)系運算符用來比較兩個值,如表3-4所示,運算輸出為TRUE或FALSE,輸出結(jié)果用來在IF語句中控制程序流向。
表3-4關(guān)系運算符含義當算術(shù)運算和邏輯運算組合到一個式子里時,算術(shù)運算優(yōu)先于邏輯運算。
邏輯運算符用來比較組合條件,計算結(jié)果返回TRUE或FALSE,輸出用來在IF語句中控制程序流向。邏輯運算符包括AND(與)、OR(或)和XOR(異或)三種運算方式,詳見表3-5。表3-5邏輯運算在機器人控制器中常使用一些變量以簡化輸入輸出端口的位控制。使用位運算符對這些變量執(zhí)行計算。對一位的運算有位或(OR)、位與(AND)和位異或(XOR)。在Robobasic中,運算符左移“<<”,右移“>>”和“.”用來移動一位到一個指定的位置。
例3-2
設(shè)A的值為33(二進制為00100001),B的值為15(二進制為00001111),使用位運算符執(zhí)行計算。
3)數(shù)據(jù)變量/常量和其他語法解釋
(1)數(shù)據(jù)類型。Robobasic中,只有兩種數(shù)據(jù)變量,分別為字節(jié)(Byte)類型數(shù)據(jù)和整型(Integer)數(shù)據(jù)。其范圍如下:字節(jié)類型為1個字節(jié)(8?bit),即0~255的范圍;整型類型為2個字節(jié)(16?bit),即0~65?535的范圍。由于Robobasic不支持負數(shù),所以當“+”或者“-”加在一個數(shù)前面時,運算會產(chǎn)生錯誤。例如如下情況發(fā)生時,編譯器都會出錯:“a?=?+?9”,“a?=-6”。
(2)真數(shù)。Robobasic中,可以使用二進制數(shù)(Bin)、八進制數(shù)(Oct)、十進制數(shù)(Dec)、十六進制(Hex)。例如:61用二進制表示為&B111101,八進制表示為&O75,十進制表示為61;十六進制表示為&H3D。
(3)常量和變量。Robobasic中,常量在程序執(zhí)行中的值不變,Robobasic可定義Byte類型和Integer類型的常量。常量類型根據(jù)數(shù)的范圍自動確定。一旦常量被定義,就不能被重定義。定義常量對程序大小沒有影響,當一個數(shù)被頻繁使用時可以定義該數(shù)為常量,這樣能簡化程序的修改。
例3-3
常量使用示例。
CONSTOFF=0
CONSTmotor_speed=200該例定義了OFF和motor_speed這樣兩個字符串為常量,分別賦值為0和200。
微小型機器人控制器的內(nèi)存有限,因此在符合對象的情況下變量聲明應使變量占用內(nèi)存最小。
聲明常量或變量時,遵守以下規(guī)則:
①首字母用英語字母,“_”可用在變量名和常量名中。
②常量名和變量名長度均不可超過64。
③相同常量名和變量名只能聲明一次,大小寫無區(qū)別。
④聲明常量大于65536會出錯。
4)位操作
Robobasic中變量可按位操作。位操作使用位操作符“.”。只有數(shù)字和常量能使用,如例3-4。
6)行標記
行標記用來指示程序里的位置??梢杂米帜负蛿?shù)字,規(guī)則如下:
①標記不能超過64個字符長,第一個字符必須為英語字母。
②標記符后跟“:”。
③在0~65?536范圍內(nèi)的數(shù)字可用來做標記名字,不需要“:”。
④標記符不能重復,大小寫無區(qū)別。
7)?Robobasic聲明命令描述
Robobasic中,聲明一個變量采用如下方式:
DIM…AS…
該方法可以進行單變量和多變量的聲明,其語句結(jié)構(gòu)分為:
(1)單變量聲明:
DIM[變量名]AS[變量類型]
(2)多變量聲明:
DIM[變量名]AS[變量類型],[變量名]AS[變量類型]命令解釋:
變量必須用DIM聲明且必須用AS聲明類型,變量名大小寫無區(qū)別但不能重復。
變量用來處理傳感器的值或模擬信號轉(zhuǎn)換的值,因此使用合適的變量,程序?qū)⒏行?。各機器人控制器可使用的變量數(shù)不同,例如MR-C3000為256字節(jié)。
3.6前進一步動作的程序設(shè)計
仿人機器人步行模擬人類步行原理,需先對人類行走的動作進行分解,再根據(jù)人走路的姿態(tài)和關(guān)節(jié)狀態(tài)來設(shè)計機器人關(guān)節(jié)電機的旋轉(zhuǎn)角度,從而實現(xiàn)步行這一過程,如圖3-64和圖3-65所示。圖3-64人類連續(xù)步行示意圖圖3-65人類連續(xù)步行分解示意圖連續(xù)行走一步的姿態(tài)控制流程圖如圖3-66所示,以左腳起步為例。圖3-66步行姿態(tài)控制流程圖根據(jù)以上流程圖中的5個階段分別建立相應的靜態(tài)動作截圖,如圖3-67和圖3-68所示。圖3-67側(cè)面截圖圖3-68正面截圖以上程序若直接下載到機器人控制板中,機器人會出現(xiàn)摔倒現(xiàn)象。其原因是在不同動作的銜接上有偏差。人在走路的時候,肌肉會不斷地協(xié)調(diào)動作來保持人體的平衡性,而機器人就像喝醉的人,在沒有傳感器協(xié)助的情況下無法自我調(diào)節(jié),因此在設(shè)計靜態(tài)動作的同時也必須考慮動作之間的協(xié)調(diào)性。對上面的代碼進行優(yōu)化后形成以下代碼:優(yōu)化后的步態(tài)流程如圖3-69示。
優(yōu)化前和優(yōu)化后比較發(fā)現(xiàn),兩者主要結(jié)構(gòu)一樣,不同的是優(yōu)化后在動作上做了平滑處理,讓動作在前后的銜接上更加合理。同時優(yōu)化后也增加了動作的穩(wěn)定性,這對步態(tài)設(shè)計來說是非常重要的。圖3-69優(yōu)化后的步態(tài)流程圖
3.7后退一步動作的程序設(shè)計
通過上一節(jié)前進一步的代碼設(shè)計,不難發(fā)現(xiàn)其實仿人機器人步行的難點在于對其重心處與支撐區(qū)域的穩(wěn)定性控制和不同動作之間合理的過渡銜接。
后退一步的動作絕非前進一步動作的逆過程那么簡單,即如果用前一節(jié)的代碼調(diào)換執(zhí)行順序,下載到機器人進行實際測試,會出現(xiàn)機器人直接摔倒的情況。但后退和前進的動作結(jié)構(gòu)是類似的,首先還是要考慮重心的變化。根據(jù)前進的步態(tài)控制流程來規(guī)劃后退的動作流程,如圖3-70所示。圖3-70后退動作分解流程圖后退動作截圖如圖3-71和圖3-72所示。圖3-71正面截圖圖3-72側(cè)面截圖 3.8連續(xù)行走程序設(shè)計
連續(xù)行走的實現(xiàn)方式有很多種,這里列舉兩種典型的方法。
(1)最簡單的就是使用前進一步的方法,然后將之循環(huán)。當然在設(shè)計的時候,必然是左右腳交替變換,走兩步為一個循環(huán),流程圖如圖3-73所示。圖3-73連續(xù)行走流程圖代碼的設(shè)計請參考3.6節(jié)的方法,在該代碼的最后添加循環(huán)語句即可完成連續(xù)行走。
(2)仿人走路方法。其流程如圖3-74所示。圖3-74連續(xù)行走流程圖此方法和方法(1)相比,不同之處在于循環(huán)體。方法(1)是對整個動作進行循環(huán),方法(2)則是把動作進一步分解為啟動動作和循環(huán)體。啟動動作是直立到循環(huán)體的一個緩沖動作。循環(huán)體相對于方法(1)中的循環(huán)要簡單很多,去掉了冗余動作,代碼設(shè)計量會少很多,錯誤的發(fā)生率也會減小很多,同時也保證了代碼的簡潔性。
連續(xù)行走機器人正面截圖如圖3-75所示。圖3-75連續(xù)行走機器人正面截圖連續(xù)行走機器人側(cè)面截如圖3-76所示。圖3-76連續(xù)行走機器人側(cè)面截圖 3.9復雜動作程序設(shè)計
3.9.1單杠運動程序設(shè)計
單杠運動需要考慮機器人的直腿搖擺、彎腿搖擺、倒立、正向旋轉(zhuǎn)、反向旋轉(zhuǎn)等動作,并對這些動作進行規(guī)劃,同時還需考慮動作的觀賞性。首先需要對MF機器人的手進行機械性加工,讓機器人能固定在單杠上,手和桿子之間存在空隙,而動作實現(xiàn)的關(guān)鍵在于如何使慣性的疊加給機器人提供旋轉(zhuǎn)的動力。
機器人單杠運動示意圖如圖3-77所示。實物圖如圖3-78所示。圖3-77機器人單杠運動示意圖圖3-78機器人單杠運動實物圖3.9.2單腿獨立運動程序設(shè)計
1.flying動作模型設(shè)計
機器人flying動作的正面截圖如圖3-79所示。圖3-79機器人flying動作的正面截圖
2.left_foot_sit_standup動作模型設(shè)計(左右腳原理相同,以左腳為例)
機器人left_foot_sit_standup動作的正面截面如圖3-80所示。圖3-80機器人left_foot_sit_standup動作的正面截圖3.9.3倒立運動程序設(shè)計
倒立對于人來說是一個比較高難度的動作,但是如果掌握了倒立的技巧,倒立動作其實也不難。這里的倒立并非是雙手撐地,而是采用三點觸地來支撐起身體。以兩只手和頭部為支撐點構(gòu)成三角形區(qū)域來實現(xiàn)倒立支撐的穩(wěn)定性。因為倒立過程是一個重心變化很大的動作,所以對重心運動軌跡的設(shè)計要連續(xù)、合理。
機器人倒立運動的正面截圖如圖3-81所示。圖3-81機器人倒立運動的正面截圖根據(jù)以上截圖,整個倒立運動的流程如圖3-82所示。
根據(jù)流程圖可將倒立運動分為倒地、倒立、起立三個過程。設(shè)計代碼也分為三個部分去實現(xiàn)。主函數(shù)為hand_standing(倒立),調(diào)用front_lie_down(倒地)和back_standup(起立)兩個函數(shù),三個函數(shù)相互配合使用,這樣的模式思路清晰,結(jié)構(gòu)簡單,易懂且出錯了容易發(fā)現(xiàn)。圖3-82機器人倒立運動流程圖3.9.4翻滾運動程序設(shè)計
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 產(chǎn)品安裝及質(zhì)量保障措施
- 施工安全與環(huán)境保護
- 二零二五年度鋼結(jié)構(gòu)建筑室內(nèi)裝修材料供應合同3篇
- 人教版三年級上冊語文30一次成功實驗課件
- 2024年海南衛(wèi)生健康職業(yè)學院高職單招職業(yè)技能測驗歷年參考題庫(頻考版)含答案解析
- 2024年海南體育職業(yè)技術(shù)學院高職單招數(shù)學歷年參考題庫含答案解析
- 2024年浙江電力職業(yè)技術(shù)學院高職單招職業(yè)技能測驗歷年參考題庫(頻考版)含答案解析
- 2024年浙江汽車職業(yè)技術(shù)學院高職單招職業(yè)技能測驗歷年參考題庫(頻考版)含答案解析
- 幼兒園午托服務(wù)項目方案
- 2024年浙江農(nóng)業(yè)商貿(mào)職業(yè)學院高職單招職業(yè)適應性測試歷年參考題庫含答案解析
- 華為管理學習心得體會
- 2025年首都機場地服公司招聘筆試參考題庫含答案解析
- 2021年發(fā)電廠(含新能源場站)涉網(wǎng)電力監(jiān)控系統(tǒng)網(wǎng)絡(luò)安全檢查表
- 審計服務(wù)采購招標文件
- 空置房檢查培訓
- 離婚不離門共同生活協(xié)議書
- 2023年新疆廣播電視臺招聘事業(yè)單位工作人員筆試真題
- 國優(yōu)電力工程現(xiàn)場復查要點
- 商業(yè)球房運營方案
- 工業(yè)大數(shù)據(jù)采集處理與應用
- 卷煙廠車間輔助業(yè)務(wù)外包項目服務(wù)方案(技術(shù)方案)
評論
0/150
提交評論