6.2.5. 使用自主導航程式
Last updated
Last updated
安裝 JaguarNavigationDemoProgramSetup 資料夾內的 Setup.exe。
1. 登入視窗
它將從 outdoorrobotconfig.xml 檔(在 c:\DrRobotAppFile\ 下)讀取所有配置訊息。程式還會呼叫 Google Earth 程式並等其載入完成。
Google Earth 支持離線使用,但你可能需要先連網取得地圖。如果無法連網,則程式會花一些時間重新嘗試與 Google Earth 網站建立連接。你必須要等待,因為如果地圖加載未完成,則通過滑鼠點擊地圖時,將無法獲得正確的緯度/經度位置。看到如下所示加載 Google Earth 後,您應該點擊前一個視窗中的 “OK” 按鈕。
導航程式載入後,你應該看到下圖。
2. FlyToSetPoint 飛到設定點
“FlyToSetPoint” 按鈕將帶你到 outdoorrobotconfig.xml 中指定的位置(緯度/經度)。這是你希望地圖居中顯示的位置。你應該根據你的位置修改此指定位置經緯值。這可以通過在此 xml 檔案中輸入位置值,或在 Google Earth 地圖上導航到你感興趣的點,然後點擊 “SaveSetPoint” 按鈕來完成。而當程式關閉時,地圖中心的位置值將會被儲存。
你可以使用水平的 track bar(滑動軸控制項),來縮放 Google Earth 地圖。
3. IMU/GPS Sensor
你可取得原始 IMU/GPS 感測器訊息,如下圖。
4. 校準 IMU Gyro sensor
收到 IMU/GPS 感測器數據後,你必須保持機器人靜止不動,然後點擊校準 Cal 按鈕,以校準陀螺儀感測器的偏移。
MD1_State,MD2_State 將會顯示 2 個馬達驅動板狀態。首次啟動程式後,正常會處於 “ESTOP”(緊急停止狀態),你可以使用 gamepad 搖桿(與 DrRobot Jaguar Control 程式相同)來解除馬達驅動板,或是按 Force Stop 綠色按鈕。
5. Wait for GPS getting fixed data
當勾選 Joystick 方格後,你可以使用搖桿控制機器人移動(與 DrRobot Jaguar Control 程式相同),並且勾選 GPS Display 方格後,就可看到機器人位置軌跡(Google Earth 上的藍色軌跡)。
首次啟動時,你可能需要留出足夠的時間讓 GPS 模組獲得正確的位置。 當準備好後,GPS 模組會在 GPS Quality 文字框中顯示 “GPS fix available” 字樣。
為了確保機器人知道它所在的位置以及它面向的方向,你需要初始化 Yaw 偏航值:
GPS COG(Course Over Ground 的方向)是天線移動的方向,也就是說,如果機器人向後移動,機器人 Yaw 偏航方向應該與 COG 方向相反,但是演算法不知道這一點。
因此,為了獲得正確的機器人方向,你應該向前驅動機器人,當你觀察到正確的 “COG” 值時,將值輸入 PresetYaw 框內並點擊 Reset Navi 按鈕。這將會初始化機器人方向。
6. Load Preset Path 載入預設路徑
程式在知道機器人所在的位置後,可以通過點擊 “LoadPath” 來加載預設路徑(如果已編輯了一個路徑)。
路徑的檔案格式為 text 純文字文件,格式為:“緯度,經度,0”。以下是範例:
43.8549744652762,-79.3600978241786,0 43.8548200333177,-79.3598632398461,0 43.854896224405,-79.3598285570107,0 43.8550948199643,-79.3599150875869,0 43.8549744646843,-79.3600961110703,0
現在程式將顯示如下圖:
7. Navigation 導航
首先,你應該取消勾選 Joystick 方框,然後你可以點擊 “Follow Path” 按鈕。 機器人將會沿著預設路徑運行。你可在 Google Earth 介面上看到紅色/藍色軌跡線。參考下圖:
紅色 - 由 IMU 和 GPS 的數據所估算的機器人位置,用於導航上。
藍色 - GPS 位置訊息。
綠色 - 預設路徑
在導航過程中,你可以點擊 Next 按鈕來手動修改 waypoint 航路點。當你希望機器人出於某種原因,跳過少數幾個航路點時,可很方便操作。你還可以找到其他導航訊息,例如:
Dis2Path:當前位置和平面路徑之間的距離
Dis2Target:當前位置和目標 waypoint 航路點之間的距離
Direction Error 方向誤差:機器人方向與目標行駛方向之間的角度
8. 電子羅盤顯示
參考下圖:
紅色:從 GPS 和 IMU 數據所估計的機器人方向
藍色:目標駕駛方向
你會發現導航演算法將調整機器人行駛方向,以指引機器人沿著路徑行駛。你還可以找到其他的機器人訊息,例如:
Temp 馬達溫度
Enc 編碼器讀數 - Vel 速度,Pos 位置
ACK 是接收指令後的馬達驅動板確認信號,“+” ID 為正確。“-“ 則為錯誤。
Power 功率:從馬達驅動板發送給馬達的 PWM 值
當馬達變得非常熱時(例如連續超過 65˚ 時),你最好停止機器人,以避免損壞馬達。
9. DCM/Navigation 導航設定
Dis2TTH:一旦達到此值,機器人將假定已到達當前航路點,並往下一航路點前進。
Dis2PathTh:當 position error 位置誤差超過此值時,機器人開始調整行駛方向,使機器人保持在預設路徑上。
DrvAngleTH:當 orientation error 方向誤差超過此值時,機器人開始調整驅動PWM 以使機器人頭朝目標方向。
MaxDiff:左/右車輪之間的最大 differential PWM 值。此值將確保機器人在需要時可以轉動。當地形崎嶇時則需要更大的值。
AdjT:調整轉向功率的值
CtrlT:控制週期。控制指令是在 IMU 數據讀取過程中。因此它基於 4 * 20ms 在80ms 的控制週期內
DisGPSTH:來自 GPS 的延遲,將拖慢演算法的估計,落後於機器人實際的動作,當機器人接近航路點並轉向下一個航路點時,此程式可以暫時停用 GPS 數據。你可以將此值設置為 “0”,來停用此功能(預設)。這些值除以 5(5Hz GPS)將是實際停用的時間,例如, “10” 表示停用 GPS 2 秒鐘。
DisGPSDis:如果當前位置和目標航路點之間的距離小於此值,則將啟動 "disable GPS" 停用 GPS 功能,除非 DisGPSTH = 0。
10. Emergency Stop 緊急停止
點擊橘色 Force Stop 按鈕將停止機器人
11. 規劃路徑
啟動機器人後,可以使用搖桿控制在一個開放區域內遙控機器人,並等待機載 GPS 穩定並獲得正確的位置和方向。這可能需要一到幾分鐘的時間。然後,你需要點擊 “Clear” 按鈕將 Plan Path Step 規劃路徑步驟重設為 “0”。取消勾選 GE En 方框後,你可以使用滑鼠在 Google Earth 上點擊所需的航路點(設定點)。
注意:在你選擇第二個航路點之前,不會顯示第一個點(起始點)。
完成所有航路點後,你將看到如下內容:
最後,你可以將路徑保存到 c:\DrRobotAppFile 資料夾,取個喜歡的名稱儲存。
在加載路徑文件之前,你應手動刪除 KML數據。在下一段中會描述如何在 Google Earth 視窗清除 KML 數據。
12. 清除 KML data
所有路徑和導航軌跡都通過 KML 數據顯示在 Google Earth 上。 目前,Google Earth沒有提供清除這些 KML 數據的方法,如果沒有清除,則存在 memory leak 記憶體洩漏的風險。 因此,你需要手動清除這些 KML 數據。
在 Google Earth 程式中,你可以右鍵點擊 “Temporary Places”,然後選擇 “Delete Contents” 就可清除 KML 數據。
13. 搖桿控制
當 Joystick 方格勾選時,這些 track bar (滑動軸控制項)將顯示左/右輪的搖桿控制功率。
14. 電池
你可以從 Voltage(V) 的方格中獲取電池電壓讀數。
機器人使用 LiPo電池,因此當電壓低於標記電壓(6S = 22.2V)時,你最好關閉機器人以保護電池壽命,並進行充電。
15. 結束程式
此導航程式還會在退出時關閉 Google Earth,但我們強烈建議你使用 “Windows 工作管理員” 仔細檢查以確保 Google Earth 已實際關閉,否則當再次啟動此導航程式時,可能無法顯示 Google Earth。
16. 記錄原始數據
你可以通過點擊 Record 按鈕記錄原始 IMU / GPS /編碼器的讀數數據。原始數據將保存到 “c:\DrRoboAppFile” 資料夾,檔案名為 GPSIMURec*.txt.123
17. 切換到 Camera 攝影機顯示畫面
點擊 Camera 分頁以顯示當前的攝影機影像。
18. 切換到 Laser 雷射測距儀顯示畫面
點擊 Laser 分頁以顯示當前的雷射測距儀畫面。
19. 切換到 Sensor Map 顯示畫面
點擊 SensorMap 分頁以顯示當前的 sensor map 畫面。