20kg級(jí)自主水下機(jī)器人控制軟件設(shè)計(jì)與實(shí)現(xiàn)
在AUV進(jìn)行Ji-1~Ji段的航行時(shí),AUV根據(jù)導(dǎo)航算法不斷算出坐標(biāo)并判斷是否到達(dá)指定區(qū)域,當(dāng)離指定區(qū)域?yàn)镽時(shí)(R很小),即可判定到達(dá)指定區(qū)域。在到達(dá)指定區(qū)域之前不斷利用AUV PID航向角閉環(huán)控制算法修正航向角θ,最終實(shí)現(xiàn)AUV的GPS/INS組合導(dǎo)航。本文引用地址:http://www.ex-cimer.com/article/160948.htm
4 控制軟件界面及實(shí)驗(yàn)結(jié)果
4.1 軟件界面
本文設(shè)計(jì)的軟件界面左側(cè)上半部分和右側(cè)主要實(shí)現(xiàn)對(duì)AUV的控制,界面左側(cè)中下部分的3個(gè)儀表盤和TAB頁(yè)控件顯示AUV的各個(gè)狀態(tài)信息。
單擊開機(jī)、關(guān)機(jī)按鈕將實(shí)現(xiàn)AUV的開啟與關(guān)閉;單擊詢問(wèn)AUV按鈕,此時(shí)應(yīng)答情況為AUV存在,表示監(jiān)控軟件與AUV的通信正常,否則應(yīng)該檢查無(wú)線模塊和AUV。單擊前艙參數(shù)、GPS經(jīng)緯度、GPS時(shí)間、推進(jìn)器狀態(tài)、AUV航向角等按鈕將持續(xù)獲得AUV相應(yīng)的信息;步進(jìn)電機(jī)控制按鈕用于實(shí)現(xiàn)方向舵的調(diào)整,進(jìn)而實(shí)現(xiàn)AUV方向的調(diào)整。為了防止步進(jìn)電機(jī)失步,這里還特意設(shè)計(jì)了步進(jìn)電機(jī)的微調(diào)按鈕,目的是在步進(jìn)電機(jī)失步時(shí)將方向舵調(diào)整回原位置。
該控制軟件還以儀表盤的方式顯示推進(jìn)轉(zhuǎn)速、羅盤、溫、濕度等信息。
以速度儀表盤為例,當(dāng)從串口接收到的數(shù)據(jù)中提取出水平推進(jìn)器或垂直推進(jìn)器速度信息時(shí),將速度信息存放到成員變量m_Spd1或者m_Spd 2。利用API函數(shù)得到控件IDC_STATIC_SPD的區(qū)域坐標(biāo)rect2,調(diào)用API函數(shù)InvalidateRect(&rect2)重繪,將進(jìn)入函數(shù)CDspsockDlg:OnPaint()重繪。利用MFC中的函數(shù)Pie,Ellipse,SetBkColor,TextOut畫出儀表盤背景。最后通過(guò)下列兩個(gè)公式將速度值轉(zhuǎn)換成對(duì)話框上的坐標(biāo)值,調(diào)用函數(shù)畫一條連接該區(qū)域中心位置到該點(diǎn)(a1,b1)的直線,最終實(shí)現(xiàn)儀表指針隨速度值的變化。坐標(biāo)(a1,b1)計(jì)算公式如下:
b1=60sin((m_Spd1×3/25+150)π/180)
a1=60cos((m_Spd1×3/25+150)π/180)
4.2 實(shí)驗(yàn)結(jié)果
軟件運(yùn)行期間界面顯示如下。圖6顯示了溫、濕度分別是32°,51.5°;單擊復(fù)位按鈕、溫濕度指針將分別指向-30°,20°位置處;圖6還顯示了2個(gè)推進(jìn)器的速度信息,其中水平推進(jìn)器速度為1 180 r/min,垂直推進(jìn)器速度為0.此時(shí)AUV在水平方向運(yùn)動(dòng)垂直方向靜止。
5 結(jié)語(yǔ)
介紹了20 kg級(jí)便攜式AUV控制軟件的實(shí)現(xiàn),該軟件利用串口通信技術(shù)、多線程編程技術(shù)在傳輸數(shù)據(jù)量不很大的情況下表現(xiàn)了良好的性能。軟件以穩(wěn)定的性能、友好的界面及簡(jiǎn)單的操作方法滿足了對(duì)便攜式AUV的監(jiān)視和控制。
評(píng)論