Duckiedrone - 基於 Raspberry Pi 與 Python 的小型無人機專案介紹
by
台灣樹莓派
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Duckiedrone - 基於 Raspberry Pi 與 Python 的小型無人機專案介紹 台灣樹莓派 2024/09/21 @PyCon Taiwan 2024
Slide 2
Slide 2 text
姓名標示 — 非商業性 — 相同方式分享 CC (Creative Commons) 姓名標示 — 你必須給予 適當表彰、提供指向本授權 條款的連結,以及 指出(本作品的原始版本)是否已 被變更。你可以任何合理方式為前述表彰,但不得以 任何方式暗示授權人為你或你的使用方式背書。 非商業性 — 你不得將本素材進行商業目的之使 用。 相同方式分享 — 若你重混、轉換本素材,或依本 素材建立新素材,你必須依本素材的授權條款來 散布你的貢獻物。
Slide 3
Slide 3 text
3 ● Raspberry Pi 官方經銷商 ● 專注 Raspberry Pi 應用與推廣 , 舉辦社群活動 關於我們
Slide 4
Slide 4 text
● Drone 不是玩具 ● 規格 : 注意電池 ,ESC, 馬達的電壓電流限制 ● 焊接 : 接通電源後切勿觸摸烙鐵的金屬部分 ● 電池 : 切勿在無人看管時對鋰電池 (LiPo) 充電 ● 飛行 : 切勿在限飛區或是人多的地方飛行 安全第一
Slide 5
Slide 5 text
Duckietown Project - From MIT http://duckietown.org/
Slide 6
Slide 6 text
一個開源的電腦視覺自駕車學習專案 http://duckietown.mit.edu/materials.html
Slide 7
Slide 7 text
● 2016 麻省理工大學 > Duckietown class ● 2016 國立交通大學 > Autonomous Vehicle ● 2017 蘇黎世聯邦理工學院 > Autonomous Mobility on Demand History http://bit.ly/2L8P53a
Slide 8
Slide 8 text
● ~250 個大學 , ~150 間公司 , 分佈在 68 個國家 誰在用 Duckietown 專案? https://duckietown.com/
Slide 9
Slide 9 text
● 感測器校正 , 設定與感知 ● 計算機視覺 ● 物體辨識 ● 非線性估計 ● 全域定位 ● 分散式協調 我們可從 Duckietown 中學到
Slide 10
Slide 10 text
● 架設 Duckiebot 平台和 Duckietown 環境 ● 機器人體系 (ROS) 建立 ● 功能模組的實現與擴充 ● 單系統機器人車道跟隨 (lane following) ● 單系統機器人定位 (localization), 規劃 (planning) 和導航 (navigation) ● 多系統機器人交換訊息和協調 ● 系統層級的資源管理 並實際操作
Slide 11
Slide 11 text
Duckietown 教育架構 https://www.youtube.com/watch?v=8LJ06w_1xHo
Slide 12
Slide 12 text
12 Duckietown Sky 計劃
Slide 13
Slide 13 text
Duckiedrone v1 (2019) https://www.youtube.com/watch?v=8LJ06w_1xHo
Slide 14
Slide 14 text
● 以 Pi 3B 為核心的低價飛行器 ($279) ● 所有的運算 (Python + ROS) 都在 Pi 3B 上 ● PID 速度 / 高度 / 位置控制 ● UKF 狀態估計 (State Estimation) ● 定位 (Localization) 和 SLAM 由三方合作 Duckietown 生產製造 Brown 大學 Prof. Tellex 教學 Amazon Robotics 贊助
Slide 15
Slide 15 text
Duckiedrone v2 (2021) https://www.linkedin.com/products/duckietown-duckiedrone/
Slide 16
Slide 16 text
● 機身 (frame), 整體設計 (design), 核心運算主板 ● 軟體架構更適合重複的實驗 ● 更詳細的文件 ● 包含所有需要的材料 ( 但需要焊接 ) ● 升級後的價格 $369 包含 Pi 3B+ ● 尺寸 :30x35cm ● 重量 :800g 改進和升級
Slide 17
Slide 17 text
● 感測器 ● 相機 (Camera) ● 飛時測距 (ToF) ● 飛控板 IMU ● 驅動器 ● 4x 無刷直流馬達 ● 4x 電子變速器 ● 電源 ● PDB + UBEC (5V 3A) ● 1500mAH, 11.1V, 16.65Wh battery Duckiedrone (DD21) 硬體
Slide 18
Slide 18 text
● 飛控板 ● SP Racing F3 – Cleanflight v3 韌體 – Pre-config setting file ● 核心運算板 ● Raspberry Pi 3B+ ● 4x ESC Duckiedrone (DD21) 硬體
Slide 19
Slide 19 text
Drone 硬體架構 https://www.researchgate.net/figure/UAV-hardware-components-Picture-reprinted-from-https-www_fig1_348252556 飛控 Flight Controller
Slide 20
Slide 20 text
● Accelerometer 加速度計測量速度變化 ( 加速度 ) ● Gyroscope 陀螺儀測量角度變化率 ( 角速度 ) ● 以三個旋轉矩陣 (Roll, Yaw, Pitch) 描述姿態 IMU 估計姿態 X 軸 Y 軸 Z 軸
Slide 21
Slide 21 text
● 根據飛行時間 (Time of Flight) 計算距離 ● 使用 VL53L0 dToF 量測和地面的高度差 ToF 測距 https://reurl.cc/7dEpl5
Slide 22
Slide 22 text
● Bang-Bang Control 無法逼近目標 ● 使用 PID 輸出 u(t) 快速收斂 PID 移動策略 https://www.thorlabs.com/newgrouppage9.cfm?objectgroup_id=9013
Slide 23
Slide 23 text
23 這麼多複雜的運算 , 該如何處理?
Slide 24
Slide 24 text
一個機器人需要多少感測器? http://site.robotclub.com.my/main/3150/index.asp?pageid=71406
Slide 25
Slide 25 text
測距、加 ( 角 ) 速度、電子羅盤、陀螺儀等 http://site.robotclub.com.my/main/3150/index.asp?pageid=71406
Slide 26
Slide 26 text
26 Robot Operating System (ROS)
Slide 27
Slide 27 text
● 專為機器人軟體開發所設計的框架 ● 訊息管道 + 組態工具 + 機器人功能 + 生態系統 ● 支援 Python, C++, Lisp ROS 是什麼? https://answers.ros.org/question/12230/what-is-ros-exactly-middleware-framework-operating-system/
Slide 28
Slide 28 text
ROS 架構 https://zhuanlan.zhihu.com/p/31982243
Slide 29
Slide 29 text
TCP/IP 通訊 https://answers.ros.org/question/12230/what-is-ros-exactly-middleware-framework-operating-system/
Slide 30
Slide 30 text
模擬和視覺化工具 https://wiki.cpr-robots.com/index.php/CPR_Wiki
Slide 31
Slide 31 text
● 提供基礎資料型別和各類矩陣運算函式 ● 多種科學計算模組 , 例如線性代數 , 微積分 , 濾波等 ● 豐富的電腦視覺函式庫 ● 互動式的編輯環境 ● 深度學習套件 支援 Python
Slide 32
Slide 32 text
● 信用卡大小般的電腦 Raspberry Pi 是什麼 ? http://www.flickr.com/photos/fotero/7697063016/
Slide 33
Slide 33 text
David Braben Eben Upton Robert Mullins Alan Mycroft Pete Lomas Jack Lang Liz
Slide 34
Slide 34 text
● Raspberrypi.org 基金會所設計開發 ● 公開的 datasheet & 線路圖 & 原始碼 ● 以低價硬體 & 自由軟體刺激電腦科學教育 ● 最初由 Element14/RS Components 製造銷售 Raspberry Pi 是
Slide 35
Slide 35 text
Raspberry Pi Family https://infosec.exchange/@slh/102368284825610438 最早量產 最穩定 供貨量最充足
Slide 36
Slide 36 text
36 支援超過 40 種 OS http://en.wikipedia.org/wiki/Raspberry_Pi
Slide 37
Slide 37 text
Duckiedrone 系統堆疊 3
Slide 38
Slide 38 text
經過幾小時的焊接和組裝
Slide 39
Slide 39 text
先水平校正 /ESC 校正 / 設定 PID
Slide 40
Slide 40 text
Duckiedrone 準備起飛
Slide 41
Slide 41 text
三大難題
Slide 42
Slide 42 text
● 狀態估計演算法 , 常用在感測器融合 Kalman Filtering 估計狀態
Slide 43
Slide 43 text
● 根據預先給的地圖使用 ORB 特檢測器找出影像中 的特徵點用於同步定位與地圖構建 (SLAM) Localization 進行定位 https://www.kudan.io/blog/lidar-simultaneous-localization-mapping-an-introduction/
Slide 44
Slide 44 text
Duckiedrone 軟體控制架構 https://arxiv.org/pdf/1910.03516
Slide 45
Slide 45 text
Duckiedrone 十個會用到的範例
Slide 46
Slide 46 text
儀表板提供資訊和控制
Slide 47
Slide 47 text
Code Editor 線上開發 (VSCode)
Slide 48
Slide 48 text
完整的組裝和操作文件
Slide 49
Slide 49 text
49 DEMO
Slide 50
Slide 50 text
注意安全
Slide 51
Slide 51 text
● 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 教學資源
Slide 52
Slide 52 text
52 最新消息
Slide 53
Slide 53 text
Duckiedrone v3(DD24) https://www.linkedin.com/products/duckietown-duckiedrone/
Slide 54
Slide 54 text
● 飛控升級 SpeedyBee F405, 用 Betaflight 韌體 ● 使用 Pi4/4GB, 搭配 ROS2 有更高的擴充性 ● 5 個 ToF 和 1 個 IMU, 可更精準定位 ● 電池升級到 4S, 有更好的續航力 ● 機身設計可在室內使用 ● 升級後的價格 $429 ● 尺寸 :31x28cm DD24 改進和升級 31cm 28cm
Slide 55
Slide 55 text
55 Raspberry Pi Rocks the World Thanks
Slide 56
Slide 56 text
ROS1 和 ROS2 比較 https://reurl.cc/myk3dj