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