13.2.5.1. 教程 5.1:車道檢測 Lane Detection

1. 將 TB3 機器人放在車道上。如果正確放置,黃線應在機器人的左側,白線應在機器人的右側。 需確認 turtlebot3_bringup 套件的 turtlebot3_robot 節點尚未啟動。如果它已經啟動,機器人將會突然的在軌道上運行。

2. [Remote PC 端] 開新的 terminal 視窗,輸入

 $ export AUTO_DT_CALIB=calibration
 $ roslaunch turtlebot3_autorace_detect turtlebot3_autorace_detect_lane.launch

3. [Remote PC 端] 開新的 terminal 視窗,輸入

$ rqt

點擊在視窗上方的 plugins -> visualization -> Image view,會產生一個新的攝影機視角圖視窗。用相同方式在 rqt 平板產生額外 3 個新視窗。然後在這 3 個新視窗,分別選擇 /detect/image_yellow_lane_marker/compressed , /detect/image_lane/compressed 和 /detect/image_white_lane_marker/compressed 的 topics。如果一切正常,左側和右側螢幕將顯示黃線和白線的過濾影像,中央螢幕將顯示機器人應該走的車道。在校準模式下,左右螢幕會顯示白色,並且中央螢幕可能會顯示異常結果。此時,您應該調整過濾器參數,以顯示正確的車道線和方向。

4. [Remote PC 端] 開新的 terminal 視窗,輸入

$ rosrun rqt_reconfigure rqt_reconfigure

然後調整 /camera/image_projection 和 /camera/image_compensation_projection中,可對影像進行視覺修改的參數值。參數 image_projection 會改變 /camera/image_extrinsic_calib/compressed 影像的紅色矩形的形狀。內部攝影機校準將轉換被紅色矩形所包圍的影像,並會顯示從車道上方看到的影像。之後,將每個值覆寫到 turtlebot3_autorace_detect/param/lane/ 中的 lane.yaml 檔。這會使攝影機在下次啟動時,就會使用你所設置的參數。

Tip:由於你的實際環境(包括房間內的光線亮度等),車道線顏色過濾的校準過程有時會非常困難。因此,你應該有耐心地執行此過程。要快速完成所有操作,請將 turtlebot3_autorace_detect/param/lane/lane.yaml 的值放在 reconfiguration 參數上,然後開始校準。首先校準 hue(色調) low – high 值。(1) Hue(色調)值表示顏色,每種顏色(如黃色,白色)都有自己的色調值區域(請參閱 hsv 圖)。然後校準 saturation(飽和度) low – high值。(2) 每種顏色也有其自己的飽和範圍。最後,校準 lightness(亮度)的 low – high 值。(3)然而在原始碼中,因具有自動調整功能,因此校準lightness(亮度)的 low 值是沒有意義的。只需將 lightness(亮度)的 high 值設置為 255。明確已過濾後的車道線影像,會給你提供清晰的車道結果。

5. [Remote PC 端] 在覆寫了校準檔案後,可結束 rqt_rconfigure 及 turtlebot3_autorace_detect_lane,然後輸入

 $ export AUTO_DT_CALIB=action
 $ roslaunch turtlebot3_autorace_detect turtlebot3_autorace_detect_lane.launch

6. 如要檢查是否輸出的結果正確,請在[Remote PC 端]及[TB3 SBC 端]分別各自輸入:

[Remote PC 端]

 $ roslaunch turtlebot3_autorace_control turtlebot3_autorace_control_lane.launch

[TB3 SBC 端]

 $ roslaunch turtlebot3_bringup turtlebot3_robot.launch

在輸入這些指令後,TB3 機器人將啟動運行。

Last updated