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

Duckiedrone - 基於 Raspberry Pi 與 Python 的小型無人機專案介紹

Duckiedrone - 基於 Raspberry Pi 與 Python 的小型無人機專案介紹

這是我們在 PyCon Taiwan 2024 的分享,主要介紹 Duckiedrone(DD21)小型無人機專案 。
https://tw.pycon.org/2024/en-us/conference/talk/304

Duckiedrone 屬於軟硬體整合的專案,除了使用 Python 控制硬體以外,還會有許多工程計算或是使用電腦視覺完成飛行任務。

在此簡單說明會應用到的 Python 套件:
* 訊息管道和機器人功能與生態系:ROS + Python Binding
* 姿態估計和PID 控制器:Python Numpy
* 電腦視覺:Python OpenCV
* 飛控板控制:Python GPIO

更多 Python 範例可以參考
https://docs.duckietown.com/daffy/opmanual-duckiedrone/software-architecture/nodes.html

DD24 操作手冊:
https://docs.duckietown.com/daffy/opmanual-dd24/intro.html

DD24 購買連結:
https://piepie.com.tw/product/duckiedrone-dd24

台灣樹莓派

December 18, 2024
Tweet

More Decks by 台灣樹莓派

Other Decks in Technology

Transcript

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

    你必須給予 適當表彰、提供指向本授權 條款的連結,以及 指出(本作品的原始版本)是否已 被變更。你可以任何合理方式為前述表彰,但不得以 任何方式暗示授權人為你或你的使用方式背書。 非商業性 — 你不得將本素材進行商業目的之使 用。 相同方式分享 — 若你重混、轉換本素材,或依本 素材建立新素材,你必須依本素材的授權條款來 散布你的貢獻物。
  2. • Drone 不是玩具 • 規格 : 注意電池 ,ESC, 馬達的電壓電流限制 •

    焊接 : 接通電源後切勿觸摸烙鐵的金屬部分 • 電池 : 切勿在無人看管時對鋰電池 (LiPo) 充電 • 飛行 : 切勿在限飛區或是人多的地方飛行 安全第一
  3. • 2016 麻省理工大學 > Duckietown class • 2016 國立交通大學 >

    Autonomous Vehicle • 2017 蘇黎世聯邦理工學院 > Autonomous Mobility on Demand History http://bit.ly/2L8P53a
  4. • ~250 個大學 , ~150 間公司 , 分佈在 68 個國家

    誰在用 Duckietown 專案? https://duckietown.com/
  5. • 感測器校正 , 設定與感知 • 計算機視覺 • 物體辨識 • 非線性估計

    • 全域定位 • 分散式協調 我們可從 Duckietown 中學到
  6. • 架設 Duckiebot 平台和 Duckietown 環境 • 機器人體系 (ROS) 建立

    • 功能模組的實現與擴充 • 單系統機器人車道跟隨 (lane following) • 單系統機器人定位 (localization), 規劃 (planning) 和導航 (navigation) • 多系統機器人交換訊息和協調 • 系統層級的資源管理 並實際操作
  7. • 以 Pi 3B 為核心的低價飛行器 ($279) • 所有的運算 (Python +

    ROS) 都在 Pi 3B 上 • PID 速度 / 高度 / 位置控制 • UKF 狀態估計 (State Estimation) • 定位 (Localization) 和 SLAM 由三方合作 Duckietown 生產製造 Brown 大學 Prof. Tellex 教學 Amazon Robotics 贊助
  8. • 機身 (frame), 整體設計 (design), 核心運算主板 • 軟體架構更適合重複的實驗 • 更詳細的文件

    • 包含所有需要的材料 ( 但需要焊接 ) • 升級後的價格 $369 包含 Pi 3B+ • 尺寸 :30x35cm • 重量 :800g 改進和升級
  9. • 感測器 • 相機 (Camera) • 飛時測距 (ToF) • 飛控板

    IMU • 驅動器 • 4x 無刷直流馬達 • 4x 電子變速器 • 電源 • PDB + UBEC (5V 3A) • 1500mAH, 11.1V, 16.65Wh battery Duckiedrone (DD21) 硬體
  10. • 飛控板 • SP Racing F3 – Cleanflight v3 韌體

    – Pre-config setting file • 核心運算板 • Raspberry Pi 3B+ • 4x ESC Duckiedrone (DD21) 硬體
  11. • Accelerometer 加速度計測量速度變化 ( 加速度 ) • Gyroscope 陀螺儀測量角度變化率 (

    角速度 ) • 以三個旋轉矩陣 (Roll, Yaw, Pitch) 描述姿態 IMU 估計姿態 X 軸 Y 軸 Z 軸
  12. • 根據飛行時間 (Time of Flight) 計算距離 • 使用 VL53L0 dToF

    量測和地面的高度差 ToF 測距 https://reurl.cc/7dEpl5
  13. • Bang-Bang Control 無法逼近目標 • 使用 PID 輸出 u(t) 快速收斂

    PID 移動策略 https://www.thorlabs.com/newgrouppage9.cfm?objectgroup_id=9013
  14. • 專為機器人軟體開發所設計的框架 • 訊息管道 + 組態工具 + 機器人功能 + 生態系統

    • 支援 Python, C++, Lisp ROS 是什麼? https://answers.ros.org/question/12230/what-is-ros-exactly-middleware-framework-operating-system/
  15. • 提供基礎資料型別和各類矩陣運算函式 • 多種科學計算模組 , 例如線性代數 , 微積分 , 濾波等

    • 豐富的電腦視覺函式庫 • 互動式的編輯環境 • 深度學習套件 支援 Python
  16. • Raspberrypi.org 基金會所設計開發 • 公開的 datasheet & 線路圖 & 原始碼

    • 以低價硬體 & 自由軟體刺激電腦科學教育 • 最初由 Element14/RS Components 製造銷售 Raspberry Pi 是
  17. • DuckieDrone 計畫簡介 • https://hubs.ly/Q027dmD_0 • Duckiedrone 操作手冊 • https://reurl.cc/myrLj9

    • Duckiedrone 課程 • https://reurl.cc/pvrgjZ • Duckiesky Documentation • https://ethidsc.atlassian.net/wiki/spaces/ DTSKY/overview 教學資源
  18. • 飛控升級 SpeedyBee F405, 用 Betaflight 韌體 • 使用 Pi4/4GB,

    搭配 ROS2 有更高的擴充性 • 5 個 ToF 和 1 個 IMU, 可更精準定位 • 電池升級到 4S, 有更好的續航力 • 機身設計可在室內使用 • 升級後的價格 $429 • 尺寸 :31x28cm DD24 改進和升級 31cm 28cm