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。打開后,見到如下界面:

操作建議:
在最上方的 Control Mode 里面有:
- Joystick:

- 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. 再確保了其他問題都被排除之后,可以重新采集數據再試一下 :)
祝?玩樂愉快~