Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

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

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

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

台灣樹莓派

September 22, 2019
Tweet

More Decks by 台灣樹莓派

Other Decks in Technology

Transcript

  1. 姓名標示 — 非商業性 — 相同方式分享 CC (Creative Commons) 姓名標示 —

    你必須給予 適當表彰、提供指向本授權 條款的連結,以及 指出(本作品的原始版本)是否已 被變更。你可以任何合理方式為前述表彰,但不得以 任何方式暗示授權人為你或你的使用方式背書。 非商業性 — 你不得將本素材進行商業目的之使 用。 相同方式分享 — 若你重混、轉換本素材,或依本 素材建立新素材,你必須依本素材的授權條款來 散布你的貢獻物。
  2. 4 • COSCUP , MakerConf, PyCon, HKOSCon 講者 • 投影片

    • https://speakerdeck.com/piepie_tw • 程式碼 • https://github.com/piepie-tw 分享 x 教學
  3. 6 • 什麼是 Donkey Car? • 所需硬體 • 軟體架構 •

    使用機器學習打造自動駕駛系統 • Hack Donkey Car • 學習資源 本次主題
  4. • 以遙控車 (RC Car) 為載體 • 在樹莓派 (Raspberry Pi) 做運算與控制

    • 使用 Python 開發 • 根據神經網路 (Neural Network) 建立自走模型 Donkey Car - 基於 Raspberry Pi 與機器學習的開源自走車平台 https://www.donkeycar.com/
  5. Donkey Car 所需硬體 HSP 原廠 RC 搖桿 HSP 94186 1/16

    有刷馬達遙控車 杜邦線 螺絲包 3D 列印車架 + 把手 魚眼相機 2.4GHz 搖桿 Pi 3B+ 馬達驅動板 電源線 專用鋰電池 SD 卡 轉接頭
  6. 控制理論 Take picture Get user input Get model prediction Update

    servo Update motor Save data Perception Planning Control Data collection
  7. 軟體架構 Take picture Get user input Get model prediction Update

    servo Update motor Save data vehicle state Camera
  8. 軟體架構 Take picture Get user input Get model prediction Update

    servo Update motor Save data vehicle state Browser Tornado
  9. 軟體架構 Take picture Get model prediction Update servo Update motor

    Save data Neural Network Get user input vehicle state
  10. 軟體架構 Take picture Get model prediction Update servo Update motor

    Save data Get user input vehicle state ESC Servo PWM Value PWM Value PWM Signal PWM Signal Throttle Steering
  11. 軟體架構 Take picture Get model prediction Update servo Update motor

    Save data Get 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
  12. 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
  13. 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 難度 *** *****
  14. • 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 學習資源
  15. • 1. 因為驢是最早被豢養的動物 • 2. 驢對小孩很安全 • 3. 牠們偶而不遵循主人的命令 •

    4. 大家對驢子的期望不會太高 FAQ: 為什麼取名 Donkey( 驢 )? https://www.donkeycar.com/faq