Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

驢車(Donkey Car),一個基於 Raspberry Pi 與機器學習的開源無人小車專案介紹

15,059 views

Published on

這是我們在 PyCon Taiwan 2019 的分享。

包含了 Donkey Car 的介紹,所需硬體和軟體架構。還有使用機器學習打造自動駕駛系統流程,最後展示如何 Hack Donkey Car,在 Duckiebot 跑 Donkey Car。

購買 Donkey Car 請參考。
https://www.raspberrypi.com.tw/26091/official-donkeycar-edition/

Published in: Technology
  • Be the first to comment

  • Be the first to like this

驢車(Donkey Car),一個基於 Raspberry Pi 與機器學習的開源無人小車專案介紹

  1. 1. 驢車 (Donkey Car) - 基於 Raspberry Pi 與機器學習 的自走車專案介紹 台灣樹莓派 <sosorry@raspberrypi.com.tw> 2019/09/20 @PyCon2019
  2. 2. 姓名標示 — 非商業性 — 相同方式分享 CC (Creative Commons) 姓名標示 — 你必須給予 適當表彰、提供指向本授權 條款的連結,以及 指出(本作品的原始版本)是否已 被變更。你可以任何合理方式為前述表彰,但不得以 任何方式暗示授權人為你或你的使用方式背書。 非商業性 — 你不得將本素材進行商業目的之使 用。 相同方式分享 — 若你重混、轉換本素材,或依本 素材建立新素材,你必須依本素材的授權條款來 散布你的貢獻物。
  3. 3. 3 ● Raspberry Pi 官方經銷商 ● 專注 Raspberry Pi 應用與推廣 , 舉辦社群活動 關於我們
  4. 4. 4 ● 什麼是 Donkey Car? ● 所需硬體 ● 軟體架構 ● 使用機器學習打造自動駕駛系統 ● Hack Donkey Car ● 學習資源 本次主題
  5. 5. 5 什麼是 Donkey Car?
  6. 6. https://www.meetup.com/DIYRobocars/events/234581265/ 從 DIY Robocars 辦的聚會開始
  7. 7. https://www.infoq.com/presentations/donkey-car/
  8. 8. ML 接近人類的開車行為 https://diyrobocars.com/2017/04/06/zero-to-autonomous/
  9. 9. ● 以遙控車 (RC Car) 為載體 ● 在樹莓派 (Raspberry Pi) 做運算與控制 ● 使用 Python 開發 ● 根據神經網路 (Neural Network) 建立自走模型 Donkey Car - 基於 Raspberry Pi 與機器學習的開源自走車平台 https://www.donkeycar.com/
  10. 10. 目標 https://qconsf.com/sf2017/system/files/presentation-slides/q-con_donkeycar_presentation.pdf
  11. 11. Donkey Car 所需硬體 HSP 原廠 RC 搖桿 HSP 94186 1/16 有刷馬達遙控車 杜邦線 螺絲包3D 列印車架 + 把手 魚眼相機 2.4GHz 搖桿 Pi 3B+ 馬達驅動板 電源線 專用鋰電池 SD 卡 轉接頭
  12. 12. 1/16 HSP(HiSPeed) RC Car https://www.aliexpress.com/item/32380689708.html
  13. 13. 動力系統架構 https://hobbyking.com/en_us/news/brushed-brushless-electronic-speed-controllers-work 2.4GHz 接收器 有刷直流馬達電子變速器 (ESC)
  14. 14. ● 將控制訊號轉為馬達用電壓 , 以控制馬達轉速 ESC 用來控制馬達轉速 ( 油門 ) https://synthiam.com/Community/Questions/How-to-use-Rc-esc-as-motor-controller-7045
  15. 15. Raspberry Pi 3B+ 硬體規格與特色 內建 WiFi 和 BT 可接相機模組 GPIO 控制腳位 http://bit.ly/2IYFuP2
  16. 16. 16 支援超過 40 種 OS http://en.wikipedia.org/wiki/Raspberry_Pi
  17. 17. 硬體架構 image PWM I2C PWM ESC Servo Camera PCA9685 Steering Throttle Pi 3B+
  18. 18. 控制理論 Take picture Get user input Get model prediction Update servo Update motor Save data Perception Planning Control Data collection
  19. 19. 軟體架構 Take picture Get user input Get model prediction Update servo Update motor Save data vehicle state Camera
  20. 20. 軟體架構 Take picture Get user input Get model prediction Update servo Update motor Save data vehicle state Browser Tornado
  21. 21. 軟體架構 Take picture Get model prediction Update servo Update motor Save data Neural Network Get user input vehicle state
  22. 22. 軟體架構 Take picture Get model prediction Update servo Update motor Save dataGet user input vehicle state ESCServo PWM Value PWM Value PWM Signal PWM Signal ThrottleSteering
  23. 23. 軟體架構 Take picture Get model prediction Update servo Update motor Save dataGet user input vehicle state {"user/angle": -0.300000004, "cam/image_array": "160_cam-image_array_.jpg", "milliseconds": 12413, "user/throttle": 0.2, "user/mode": "user"} .json .jpg
  24. 24. 24 使用機器學習打造自動駕駛系統
  25. 25. Test Pilot Train Pilot Collect Data
  26. 26. 建立車道
  27. 27. ● 使用瀏覽器或是搖桿控制 讓你的 Donkey Car 跑起來
  28. 28. ● 左三圈 + 右三圈 , 至少 5000 張照片 蒐集訓練資料 http://www.sroboto.com/2017/08/donkeycar-2-install-setup-and-run.html
  29. 29. 清理資料
  30. 30. 用 Keras/Tensorflow 訓練自動駕駛
  31. 31. 神經網路模型
  32. 32. ● Loop: 蒐集資料 , 訓練資料 , 測試驗證步驟 實際測試驗證
  33. 33. 33 DEMO
  34. 34. 34 Hack Donkey Car
  35. 35. 在 Duckiebot 跑 Donkey Car http://duckietown.org/
  36. 36. class Adafruit_DCMotor_Hat: def __init__(self, metaclass=Singleton): self.mh = Adafruit_MotorHAT(addr=0x60) self.mhM1 = self.mh.getMotor(1) self.mhM2 = self.mh.getMotor(2) def run(self, speed): self.motor.setSpeed(self.throttle) self.throttle = int(dk.utils.map_range(abs(speed), -1, 1, -255, 255)) def set_pulse(self, pulse): self.pulse = pulse def set_speed(self, speed): if self.pulse > 0: self.mhM2.setSpeed(speed) elif self.pulse < 0: self.mhM1.setSpeed(speed) 修改 actuator.py
  37. 37. Donkey Car vs. Duckietown Donkey Car Duckietown 專案開始 2016 年底 2015 年底 發源地 DIY Robocars( 美國西岸 ) MIT( 美國東岸 ) 口號 小型車的開源 DIY 自駕平台 學習機器人的有趣方式 技術核心 基於機器學習 (ML) 基於機器人視覺加控制理論 特色 文件清楚 / 快速上手 從理論到實做 / 分支多 / 文件多 使用者 有興趣的玩家 學校 硬體 Pi/Jetson Nano + RC Car Pi + 雙輪直流馬達小車 軟體 Raspbian + Python + Keras/Tensorflow Ubuntu + ROS + Python + OpenCV 造價 USD$250 USD$150 commit 數 15xx 59xx 難度 *** *****
  38. 38. ● Donkey Car 官網文件 ● https://docs.donkeycar.com/ ● Donkey Car 程式碼 ● https://github.com/autorope/donkeycar ● Donkey Car Slack ● https://donkeycar.slack.com ● 組裝教學與經驗分享 ● https://medium.com/ljlstyle/tagged/autonomous-cars 學習資源
  39. 39. Donkey Car 車聚 (@Fablab)
  40. 40. Donkey Car 工作坊
  41. 41. ● 1. 因為驢是最早被豢養的動物 ● 2. 驢對小孩很安全 ● 3. 牠們偶而不遵循主人的命令 ● 4. 大家對驢子的期望不會太高 FAQ: 為什麼取名 Donkey( 驢 )? https://www.donkeycar.com/faq
  42. 42. Raspberry Pi Rocks the World Thanks

×