無人駕駛小課堂 - auto_pilot(2) donkeycar驢車測試及訓練

1. 電腦鏈接 Donkeycar 開始開車

確保電腦 wifi 鏈接上 樹莓派鏈接的網段。

使用電腦鏈接上樹莓派上的小車,使用 Mac/Linux 電腦上的終端 terminal 或者 Windows 上命令行 Command Line。

ssh pi@<your_pi_ip_address>

輸入密碼之后,就通過你的電腦來訪問你的小車了。

在小車里面安裝應用。

donkey createcar ~/mycar --template donkey2

運行小車。

cd ~/mycar

python manage.py drive

這樣你就可以直接打開瀏覽器看到操作界面了,輸入<your_pi_ip_address>:8887,比如 name.local:8887。打開后,見到如下界面:

瀏覽器看到的donkeycar操作界面

操作建議:

在最上方的 Control Mode 里面有:

- Joystick:

Joystick選項中的細節(jié)

- Gamepad

這是使用游戲手柄來控制的部分,我們可以參閱鏈接來進行手柄??的設置。

- Device Tilt

這是使用手機本身的平衡儀來控制小車??,類似與方向盤的感覺,

前傾是前進、后傾是后退、左傾是左轉、右傾是右轉。

2. 小車操控的矯正

小車 donkeycar 本身由于是組裝的,因此他的左右控制及油門控制多是需要校準的。就像一臺自行車,你需要校準一下方向盤是不是歪,以及座位的高低是否合適等等。

我們對小車 donkeycar 的矯正也是左右方向盤的轉向 steel 還有油門 throttle 的大小。

STEEL 矯正

1. 打開 config.py 文件。前提是你需要 ssh 在你的電腦上打開 donkeycar 的文檔。

nano ~/mycar/config.py

2. 找到汽車上的控制電線,看看它插入PCA板的通道。它應該是 1 或 0 。

3. 運行donkey calibrate --channel <your_steering_channel> 應該是 1 或 0 。

4. 輸入360,您應該會看到汽車上的車輪略微移動。如果不輸入400或300。這個數字,指代你需要開始控制 steel 的校正了。

5. 確定略微移動了以后,接下來,從這個數字座位起始值,開始輸入值+/- 10,找到PWM設置,使您的車一直向左轉(選一個你任何的數字,這將是最大左轉的數值),返回起始值之后換右轉(如果之前是不斷減少,那么這次不斷增加)。

6. 在 config.py 腳本中輸入你選中的最大左轉數值及最大右轉數值作為STEERING_RIGHT_PWM和STEERING_LEFT_PWM。

THROTTLE 矯正

1. 找到油門端的電纜,看看它進入PCA板的通道。這是你的油門通道。

2. 運行donkey calibrate --channel <your_throttle_channel>

3. 提示輸入PWM值時輸入370?!?這就是你的零值。

4. 你應該聽到你的ESC蜂鳴聲,表明它已經準備開始校準。

5. 輸入400,您應該看到您的汽車車輪開始前進。如果沒有,可能是反向(電路線插反了),嘗試輸入330,但是不是前進。

6. 繼續(xù)嘗試不同的值,不斷+/-10,直到找到合理的最大速度并記住此PWM值。

反轉RC汽車有點棘手,因為ESC必須接收反向脈沖,零脈沖,反向脈沖才能開始倒退。要校準反向PWM設置......

1. 使用與上述相同的技術將PWM設置設置為零油門,輸入 370。

2. 輸入反向值,然后輸入零油門值,然后再輸入反向值。

3. 輸入反向值的+/- 10值以找到合理的反向速度。記住這個反向PWM值。

現在打開 config.py 腳本并輸入您汽車的PWM值到throttle_controller部分:

THROTTLE_FORWARD_PWM =全油門前進的PWM值

THROTTLE_STOPPED_PWM =零油門的PWM值

THROTTLE_REVERSE_PWM =全反向油門時的PWM值

3. 小車的數據收集

最好一次性收集10圈沒有錯誤的賽道。

賽道示意圖

如果你跑得不好,請立即停止停車以停止錄制。一些不好的數據不會影響您的自動駕駛儀。

在收集了10-20圈的良好數據(5-20??k圖像)后,您可以在汽車的ssh會話中使用Ctrl-c停止您的汽車。

收集的數據位于最近的tub文件夾的數據文件夾中。由于Raspberry Pi不是很強大,我們需要將數據傳輸到PC計算機進行訓練。在主機PC上的新終端會話中,使用rsync從raspberry pi復制你的無人駕駛小車文件夾。

rsync -r pi@<your_pi_ip_address>:~/mycar/data/ ~/mycar/data/


4. 小車的無人駕駛模型訓練

在同一個終端中,您現在可以通過將路徑傳遞給該 tub 作為參數,在最新的 tub 上運行訓練腳本。你可以選擇傳遞路徑掩碼,例如 ./data/* 或 ./data/tub_?_17-08-28 來收集多個tub。例如:

python ~/mycar/manage.py train --tub <tub folder names comma separated> --model ./models/mypilot

你也可以不為訓練模型傳遞任何參數,然后所有 tub 都被用于默認數據目錄。

python ~/mycar/manage.py train --model ~/mycar/models/mypilot

現在,你可以再次使用 rsync 將你的 model 移回你的小車。

rsync -r ~/mycar/models/ pi@<your_ip_address>:~/mycar/models/

5. 實現小車的無人駕駛!

在小車使用模型進行無人駕駛!

python manage.py drive --model~ / mycar / models / mypilot

6. 常見問題

1. 一定要確保你電腦安裝的donkeycar版本和 raspberry pi 上的一樣,不然在訓練時會遇到很多問題。

2.

?問:Requirement.parse('imageio<2.5,>=2.0'), {'moviepy'})

建議:可以將 moviepy 卸載后降級。

3.?

問:ValueError: `validation_steps=None` is only valid for a generator based on the `keras.utils.Sequence` class. Please specify `validation_steps` or use the `keras.utils.Sequence` class.

建議:將keras降級,確保donkeycar版本和電腦版本一致。

4. 再確保了其他問題都被排除之后,可以重新采集數據再試一下 :)

祝?玩樂愉快~

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容