




已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
參賽學校:某大學參賽隊名:水中機器魚隊參賽項目:水中機器人全局視覺水球2VS2文檔內容:摘要 本文章是參加2015年中國水中機器人大賽。本文描述了 軟件功能介紹,硬件介紹,基本操作,策略編寫,策略加載。引言今年來理工學院十分重視機器人比賽團隊的建設,訓練和參賽,并特地提供了實驗室,給予了大量人力,物力和財力支持,以鼓勵有興趣的同學們投入到相關的學習和研究中。我隊主要致力于機器智能的研究。在機器人的研究方面,著重于機器人編程軟件及組裝方面。在仿人形機器人中,我們隊主要熟悉MURobot大平臺(含小平臺),攝像頭驅動,CP210X驅動安裝及應用,并用C+語言編寫策略,使仿真魚在水中完成各項任務。機器魚的控制,相當于參照一條真正魚的行動方式,需要“眼睛”來識別,需要“尾巴”來獲得動力,需要一個“腦子”做決策。我們針對實體魚來說明一下,“眼睛”就是我們魚池上方的攝像頭,動力就是魚體內的舵機,決策的“腦子”就是我們的程序比賽規(guī)則如下:裁判鳴哨開球后,所有的機器魚由各參賽隊員手動啟動。在裁判哨聲前搶先啟動的機器魚將被警告,二次警告后將被移離比賽場地,不得再參加比賽。比賽分上下兩個半場。在上半場開場時,A隊機器魚從靠近水球點出發(fā),B隊機器魚從本方球門處出發(fā),以體現(xiàn)開球優(yōu)勢;同理,在下半場開場時,B隊機器魚從靠近水球點出發(fā),A隊機器魚從本方球門出發(fā)。若有一方進球后,則重新開球。被進球方的機器魚從靠近水球點出發(fā),進球方的機器魚則從本方球門出發(fā)。機器魚要求:機器魚游動方向定義為長度,擺動方向定義為厚度,兩者垂直方向定義為高度。頭部長度:150-180mm頭部高度:60-90mm頭部厚度:30-50mm 尾部長度(不包括尾鰭):160-190mm,尾部高度厚度不得超過頭部尾鰭長度:沿長度方向50-80mm,沿高度方向90-120mm胸鰭尾鰭材料:采用較硬塑料材料,不得用金屬材料,以免比賽中刮壞尾部材料:尾部統(tǒng)一使用橡膠皮套機器魚顏色為黑色,可以在機器魚的尾鰭側面粘貼學校的名稱、標志或編號,以區(qū)別不同球隊的機器魚。每個機器魚重量不得超過2kg;在不受擠壓的情況下,機器魚必須能夠放進一個底面半徑為75mm,高為450mm的圓筒里面。一、軟硬件安裝1.1水池的搭建比賽場地為長方形水池,包括兩臺比賽電腦、一個支架、兩個個攝像頭,兩套球門、兩個無線通信模塊。水池內部矩形區(qū)域為最終的有效比賽場地,不包括水池壁及球門架兩側區(qū)域,有效比賽場地尺寸為2700 mm 2000 mm 300mm(長寬高)1.2MURobot控制平臺安裝在U盤“軟件驅動”目錄下選擇“MURobot”安裝文件,例如上圖所示電腦系統(tǒng)為32位,在安裝文件時選擇32位安裝包,雙擊打開。(32位安裝包和64位安裝包區(qū)別:32位安裝包為X86,64位安裝包為X64)。如下圖打開32位“MURobot”安裝文件,雙擊運行里面安裝包,根據(jù)下圖順序進行安裝。正常安裝完成后桌面會出現(xiàn)三個快方式,此時MURobot控制平臺安裝完畢,如下圖所示(如不能正常安裝查閱附表1-001)二、軟件功能介紹2. 1、串口介紹串行接口(Serialport)又稱“串口”,主要用于串行式逐位數(shù)據(jù)傳輸。在全局視覺機器魚上我們利用串口來進行數(shù)據(jù)交互。在使用全局魚平臺時,將無線發(fā)射模塊(參考硬件篇)通過USB與電腦連接,就會出現(xiàn)對應串口的COM口。接下來介紹串口端口號的查找,鼠標右擊桌面“計算機”圖標,單機“屬性”,出現(xiàn)計算機屬性界面,單機打開左上角的設備管理器,按下圖操作來找到串口端口號,此串口端口號是為使用大平臺、小平臺時打開串口號做準備的,在使用大平臺、小平臺時時會按照此端口號打開串口。2.2、大平臺介紹大平臺是對機器魚所在環(huán)境進行分析處理另外處理程序代碼與機器魚互傳指令實現(xiàn)人機交互的一個操作平臺。雙擊桌面快捷方式,運行大平臺,進入大平臺主界面,如下圖(1).通信參數(shù)設置通過大平臺主界面的“通信參數(shù)設置”按鍵,單機打開,就可以進入通信時各參數(shù)設置,功能如下圖所示(2).圖像參數(shù)設置通過大平臺主界面的“圖像參數(shù)設置”按鍵,單機打開,可以對攝像頭采集的圖像。(3).目標識別控制通過大平臺主界面的“目標識別”按鍵,單機打開,可對打開的原始圖像(Original)中目標進行識別控制。選擇魚或球或環(huán)方法:點擊要選魚、球或環(huán)序號在原始圖像上框選要選擇的對象即可選擇,按住0框選需取消對象即可取消選擇。選擇A隊1-8號魚的快捷鍵分別是:1、2、3、4、5、6、7、8;選擇B隊1-8號魚的快捷鍵分別是:Q、W、E、R、T、Y、U、I;選擇1-9號魚的快捷鍵分別是:A、S、D、F、G、H、J、K、L;(4).原始圖像控制通過大平臺主界面的“原始圖像”按鍵,單機打開,可以設置加載策略時使用的臨時目標點或是障礙物。(5).前景圖像通過大平臺主界面的“前景圖像”按鍵,單機打開,能顯示捕捉的背景圖像。(6).信息顯示通過大平臺主界面的“信息顯示”按鍵,單機打開,能實時顯示攝像頭捕獲信息。2.3.小平臺介紹(1).小平臺打開方式通過大平臺主界面的“調試助手”按鍵,單機打開小平臺。在U盤“軟件驅動”目錄下,按下圖所示打開(2).基本控制通過基本控制可對機器魚進行手動操控,連接檢測等操作。(3).高級控制頻率:單位時間內完成周期性變化的次數(shù),單位赫茲(HZ)。通常在發(fā)射和接收頻率相同的情況下進行信號傳遞、交互。本機器魚發(fā)射模塊和機器魚都有6個一一對應的頻率,當兩者頻率相同時可以進行通訊。ID:身份標識號碼,也稱為序列號或帳號,是某個體系中相對唯一的編碼。在全局視覺機器魚中,當發(fā)射模塊和機器魚頻率相同時利用不同的ID來區(qū)分不同的魚。在更改機器魚時一定要辨清頻率和ID之間的關系。(4).關節(jié)調直當打開魚的開關魚不能正??囍钡臅r候,需要用到“關節(jié)調直“功能。(5).參數(shù)設置當機器魚游動效果不理想時,或在做科研時需通過“參數(shù)設置”修改一些參數(shù)。(6).模式設置對一條或多條編輯一些小命令,進行自動執(zhí)行,可用于機器魚檢測或展示。 單機“模式設置”打開設置界面,保證機器魚與小平臺連接正常,如下圖操作 每條魚(每個ID)可以編輯10個不同時間段的動作指令。三、硬件體系結構3.1機器魚機器魚是多水下機器人平臺的執(zhí)行者,可以實時接收信息執(zhí)行相應任務,也可以實時反饋信息給大平臺或小平臺。機器魚在使用時注意避免與尖銳物品碰撞,不要使電池過放電。機器魚在不使用時氣孔打開,放在干燥蔭涼的環(huán)境中,保證機器魚電量在50%以上。下面是機器魚實物與結構圖。3.2無線發(fā)射模塊大平臺發(fā)出的指令通過無線模塊傳遞給機器魚,同時可以接收機器魚反饋的信息通過串口傳遞給大平臺或小平臺。下圖為發(fā)射模塊和USB接口線1、 攝像頭攝像頭在工作時采集圖像信息相當于一個傳感器,可獲得機器魚的各種信息傳遞給大平臺進行處理,來分析魚的坐標,方向以及其他運動信息。下圖是攝像頭以及攝像頭USB線四、基本操作4.1機器魚開機和充電根據(jù)機器硬件介紹的開關位置撥動機器魚開關(開關在魚皮內部),開關有三個檔位,當機器魚不使用時將檔位撥到中間檔位,開關偏向魚身左方或右方時可進行開啟或充電(具體檔位根據(jù)機器魚而定,如果偏左是開啟機器魚那么另一方即是充電)。開機:撥動開關,機器魚會稍微顫動一下,然后尾部呈繃直狀態(tài)。(若不繃直請參考“燒寫底層”操作,如果仍然無法解決請查閱附表1-003)充電:充電器有兩個輸出接頭,紅接口為正極,黑接口為負極。把開關撥至與機器魚開機相反方向,根據(jù)機器魚硬件介紹中俯視圖,充電器正極接機器魚正極,充電器負極接機器魚負極。充電器自帶充電保護功能,一般情況下充兩個小時就能充滿。(如果充不上電或不能充電,查閱附表1-004)4.2小平臺連接機器魚 通過USB與發(fā)射模塊連接后,通過大平臺或直接打開小平臺兩種方式打開小平臺,選定對應的com端口,并打開串口(串口號通過以上步驟已知道是COM3) 打開機器魚,當機器魚繃直時,則表明機器魚已開啟。觀看小平臺接收區(qū)有沒有數(shù)據(jù)顯示(連接成功如下圖)。當無數(shù)據(jù)時表示通訊模塊發(fā)射頻率和機器魚的接收頻率不配套,這時我們需要通過高級控制更改通訊模塊的頻率來找到機器魚的頻率(詳見“更改頻率和ID”)。 根據(jù)小平臺介紹的功能來對機器魚進行操作。以下是用鍵盤進行手動操作。速度鍵位:數(shù)字區(qū)19為速度19擋,鍵盤區(qū)05為速度1015擋(注:1最小,15最大) 方向鍵位:鍵盤區(qū) YQ 為方向左鍵,小鍵盤區(qū) 為最大左轉向。 鍵盤區(qū) U 為方向右鍵,小鍵盤區(qū) 為最大右轉向。直游鍵位:Z 停止鍵位:空格鍵4.3、更改頻率和ID(1)修改無線發(fā)射模塊頻率當使用者不慎將機器魚的頻率弄混淆時導致機器魚和上位機無法通信時,此時就要用到更改無線發(fā)射模塊頻率了。首先,將無線模塊通過USB接口與電腦連接。打開小平,然后將發(fā)射模塊上的J2排針跳帽,由右邊移到左邊啟動內部工作模態(tài)如下圖所示,完成后打開小平臺“高級控制”,在“更改頻率”按鍵左邊,選擇頻率,單擊“更改頻率”,如果接收區(qū)出現(xiàn)一小段代碼,說明更改完成,點擊“返回當前頻率”,將彈出對話框顯示現(xiàn)在頻率。此時再將跳帽恢復到右邊啟動外部工作模態(tài)就可以連接機器魚了,如果連接不上,繼續(xù)更改其他頻率。4.4.修改機器魚ID多條魚使用一個頻率上完成不同任務時,需要對機器魚進行修改ID。當頻率修改正常時,使用小平臺連接機器魚,小平臺接收區(qū)有正常信號反饋,但使用小平臺無法控制機器魚,此時可以嘗試調節(jié)小平臺ID按下圖操作一次一次嘗試。在小平臺中打開“高級控制”,再按下圖操作更改魚ID。4.5.修改機器魚頻率將小平臺連接和魚,小平臺與魚能正常通訊的情況下更改機器魚頻率。打開“高級控制”更改魚的頻率。點擊“更改頻率”后,重啟機器魚機器魚的頻率更改完成。4.6.對機器魚燒寫底層對機器魚進行無線燒寫需要用到超級終端,超級終端的版本有好多種,但用法都大同小異,下面選其中一種進行講解。在燒寫底層時發(fā)射模塊頻率要和機器魚頻率相同,所以使用機器魚的時候要養(yǎng)成良好習慣,每次記錄使用的魚的頻率。(1)、在U盤“超級終端”中選擇“hypertrm”軟件雙擊打開,如下圖所示(2)、如果電腦第一次使用超級終端會出現(xiàn)下面界面內容,按圖中所示操作(3)、點擊確定后需要創(chuàng)建連接按下圖操作(4)、完成以上操作,打開機器魚,會出現(xiàn)如下界面(5)、關掉機器魚,然后按住鍵盤按鍵“D”,同時打開機器魚,會出現(xiàn)以下界面,界面中不斷出現(xiàn)“C”。(6)、單機窗口中的“傳送”鍵,進入發(fā)送界面,選擇“發(fā)送文件”,按以下步驟操作。(7)、等待發(fā)送完畢,機器魚出現(xiàn)繃直現(xiàn)象。此時先關閉機器魚,然后關閉超級終端窗口,燒寫底層完畢。五、機器魚基本控制策略講解5.1類函數(shù)的定義程序中變量都定義為C+語言中“類”的方式。至于什么是“類”,簡單理解是定義的對象、變量包含同樣的特性,作為一種形式提供給我們使用的一種函數(shù)類型,定義一種類需要進行實例化,說明類的具體內容,包含的參數(shù),變量,對象是什么。更多的大家可以具體上網(wǎng)查,我們需要知道有這種東西,能用就行。它的基本形式是:Cpoint+變量名;通道臨時目標點:指所控制的魚在一定的區(qū)域范圍內需要到達的位置。5.2最基本的定義變量說明1)程序的定義的最基本變量有四個:1、魚中心坐標;2、球中心坐標;3、魚頭方向;4、球門中心坐標下面具體說明定義魚中心坐標是:CPoint f_pt :f是fish的簡寫,pt表示坐標,f_pt是魚的中心坐標,魚中心坐標 f_pt。定義球的中心坐標是:CPoint b_pt :b是Ball的簡寫,pt是坐標,b_pt就是球的中心坐標。定義球門中心坐標是: CPoint g_pt :g是goal(球門)的簡寫,pt是坐標,所以g_pt代表球門坐標。定義魚頭方向是: double f_dir :f就是fish簡寫,dir是direction的簡寫,這是一個雙精度的變量。絕對坐標系中范圍是-,所以程序中魚頭方向的范圍就是-,。大家或許有疑問,為什么魚頭方向是雙精度的變量而其他的三個是類呢。因為其他三個都是包含這x和y坐標,也就是類包含相同的參數(shù)(對象),而魚頭方向沒有包含這些,僅僅是一個-,的變化范圍。2)基本變量在程序中的獲取我們定義了最基本的四個變量,那么程序中是怎么獲得的呢,我們下面來說明。針對三個類(魚中心坐標,球中心坐標,球門中心坐標),我們大平臺已經(jīng)寫好對這些這些類的定義和例化函數(shù),具體我們不需要了解。獲取的函數(shù)也已經(jīng)寫好,就是簡單的調用一個函數(shù)就行。具體程序是對魚中心坐標的獲取 f_pt=m_FishInfo0.GetCenterPt() ;m_FishInfo0.GetCenterPt()是一個類函數(shù),不需要具體了解函數(shù)具體內容,只需要記住其實現(xiàn)的功能。功能是獲取魚的中心坐標。m_FishInfo0m_是標識作用,fish代表“魚”,info代表“輸入”數(shù)字數(shù)字代表魚的編號這個獲取的是0號魚的,GetCenterPt() 代表獲得中心坐標。那么2 vs 2 程序獲取0號是:f_pt0=m_FishInfo0.GetCenterPt() ; 程序獲取1號是;f_pt1=m_FishInfo1.GetCenterPt() ;對球中心坐標的獲取是: b_pt=m_goalinfo.GetBallPt();m_goalinfo.GetBallPt()是一個類函數(shù),功能是獲得球中心坐標m_goalinfo0同時在2013的新平臺上也需要輸入魚的編號m_ 是標識作用,goal代表球門,info是“輸入”,GetBallPt() 代表球中心坐標對球門中心坐標的獲取是:g_pt=m_Channel0.center ;數(shù)字 中括號內部的數(shù)字代表獲取的是第幾個通道的坐標。如果很多個通道可以代替臨時目標點的作用嗎?對魚頭方向的獲取是: f_dir=m_FishInfo0.GetDirection() ;數(shù)字也是同樣的含義,代表獲取的方向是第幾條魚的。5.3三個基本服務函數(shù)程序中還有最簡單的三個服務函數(shù)。1獲取角度函數(shù)Angle(CPoint point,CPoint aimer);2獲取距離函數(shù)Distance(x,y);其中形參都是定義為“類”。3轉換角度函數(shù)Checkangle(double dir)形參類型是雙精度。大家有英文字母的含義應該就了解函數(shù)的作用了。請記住三個函數(shù)的功能。1)角度函數(shù) 此函數(shù)所測算的角度建立于絕對坐標系基礎上Angle(CPoint point,CPoint aimer)具體定義如下:Angle(CPoint point,CPoint aimer) /聲明函數(shù),兩個類的形參point和aimer double a;a=atan2(double)(aimer.y-point.y),(double)(aimer.x-point.x);/就是求一個反正切的角度return a; /返回一個角度值范圍是-/2,/2(這個很重要,記住范圍) 紅色為point 黑色為aimer 2)距離函數(shù)Distance(CPoint point,CPoint aimer)函數(shù)具體定義如下:Distance(CPoint point,CPoint aimer)double a;a=sqrt(double)(point.x-aimer.x)*(point.x-aimer.x)+(double)(point.y-aimer.y)*(point.y-aimer.y);/ 就是一個求距離的平方根公式return a; /返回距離值,雙精度類型3)轉換角度函數(shù)Checkangle(double dir) 具體定義如下:Checkangle(double dir) /把dir換算成-pipi之間的數(shù)if(dirPI)dir-=2*PI;else if(dir100) /下面是魚和目標點的距離大于100像素的情況if(dir1-5&dir15)action.direction=7;else if(dir1-10)action.direction=5;else if(dir1-30)action.direction=4;else if(dir1-50)action.direction=2;else if(dir1-70)action.direction=1;else if(dir1-90)action.direction=0;else if(dir15&dir110&dir120&dir140&dir150&dir180&dir1-5&dir15)action.direction=7;else if(dir1-20)action.direction=4;else if(dir1-40)action.direction=1;else if(dir1-60)action.direction=0;else if(dir1-70)action.direction=0;else if(dir1-90)action.direction=0;else if(dir15&dir120&dir130&dir150&dir170&dir190)action.direction=14;else if(dir1120)action.direction=14;else action.direction=14;m_FishInfo.SetAction(action);六、策略編寫策略編寫環(huán)境是Microsoft Visual Studio 2010及以上版本,此軟件屬于微軟公司推出的開發(fā)環(huán)境,可在網(wǎng)上下載和查找安裝過程。安裝Visual Studio后圖標會變成,在桌面找到,雙擊運行。程序入口在程序中右上角的“解決方案與資源管理器”中能看到如下圖所示的一個函數(shù)名為“strategy.cpp”,這就是策略編寫的函數(shù),在函數(shù)里面有一個名為“BOOL CStrategy:Strategy0()”,的子函數(shù) 就是策略編寫的入口。編寫策略時,程序的定義的最基本變量有四個。1、魚中心坐標f_pt;2、球中心坐標b_pt;3、魚頭方向g_pt;4、球門中心坐標f_dir。其他函數(shù)名不知道什么意思可以通過其英文單詞含義大致推斷其含義,另外選中不清楚的函數(shù),鼠標右擊,可以“轉到定義”或“轉到聲明”去具體了解函數(shù)的含義。另外,如果想增加其他策略可在函數(shù)聲明中重新添加策略聲明然后在策略中調用,如果想添加一個策略1,按照下圖兩步操作。1、 策略編譯(生成DLL代碼)MURStrategy作為統(tǒng)一的策略入口函數(shù)(DLL導出的函數(shù)名),在Server端運行的時候動態(tài)加載及策略調度運算。傳入的參數(shù)數(shù)據(jù)包含策略計算必要的所有信息。所以編譯過程也就是將編寫的代碼按一定計算方式生成DLL代碼。策略編譯首先確定要編譯哪個策略,例如,寫了5個策略想編譯策略1 頂球的策略,那么我們需要打開MURStrategy程序入口,指定編譯策略。如下圖改好策略編譯入口后,單機“生成”選擇生成解決方案。如下圖操作按照策略生成的路徑找到策略剪切或復制出來放在自己常用的位置,以便使用大平臺加載
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030泰國首席技術官蒸餾行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 河北省石家莊市井陘礦區(qū)賈莊鎮(zhèn)區(qū)賈莊中學2025屆化學九年級第一學期期末學業(yè)質量監(jiān)測試題含解析
- 車輛設備研發(fā)、采購、檢測、認證一體化服務合同
- 學習計劃制定與執(zhí)行
- 氫能源與儲能技術的融合發(fā)展研究
- 2025至2030二氧化碳數(shù)據(jù)記錄器行業(yè)發(fā)展研究與產(chǎn)業(yè)戰(zhàn)略規(guī)劃分析評估報告
- 新興工業(yè)設計領域:AI技術的行業(yè)可行性分析報告
- 教育中創(chuàng)新能力的培養(yǎng)
- 2025至2030塑料鼓行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030氣體洗滌器行業(yè)項目調研及市場前景預測評估報告
- DGJ08-81-2015 現(xiàn)有建筑抗震鑒定與加固規(guī)程
- 房屋租賃合同范本15篇
- 2025至2030年中國飛行控制器行業(yè)市場供需態(tài)勢及未來趨勢研判報告
- 2025年汽車維修工職業(yè)資格考試試卷及答案
- 2025至2030年中國錦氨綸汗布市場分析及競爭策略研究報告
- 2025年中小學暑假安全教育主題家長會 課件
- 2025年佛山市南海區(qū)圖書館招聘題庫帶答案分析
- 基于學科核心素養(yǎng)的初中化學單元整體教學設計課題研究的階段小結基于學科核心素養(yǎng)的初中化學單元整體教學設計研究
- GB/T 4169.19-2006塑料注射模零件第19部分:澆口套
- GB/T 31586.1-2015防護涂料體系對鋼結構的防腐蝕保護涂層附著力/內聚力(破壞強度)的評定和驗收準則第1部分:拉開法試驗
- 領導干部的決策力與執(zhí)行力
評論
0/150
提交評論