Recommended Linuxベースのオープンソース フライトコントローラーの概要( #ABC2015S )
Dronekitによる python apiとアプリ開発の概要
あれから2年、オープンソースによるドローン開発はここまで来た!
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Dockerfile を書くためのベストプラクティス解説編
オープンソースのドローン用フライトコントローラ「Dronecode」の概要( #OSC15tk)
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
Android向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステム
【Unity道場】VectorGraphicsで作る エモい表現
分散トレーシング技術について(Open tracingやjaeger)
なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Unityでパフォーマンスの良いUIを作る為のTips
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
hooks riverpod + state notifier + freezed でのドメイン駆動設計
More Related Content Linuxベースのオープンソース フライトコントローラーの概要( #ABC2015S )
Dronekitによる python apiとアプリ開発の概要
あれから2年、オープンソースによるドローン開発はここまで来た!
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Dockerfile を書くためのベストプラクティス解説編
オープンソースのドローン用フライトコントローラ「Dronecode」の概要( #OSC15tk)
What's hot (20)
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
Android向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステム
【Unity道場】VectorGraphicsで作る エモい表現
分散トレーシング技術について(Open tracingやjaeger)
なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Unityでパフォーマンスの良いUIを作る為のTips
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
Similar to Drone programming with ArduPilot (20) hooks riverpod + state notifier + freezed でのドメイン駆動設計
元運用担当者が,現役時代に本当に欲しかったもの. Osc2014 kansai@kyoto terraform introduction
ドローン用フライトコントローラ「Dronecode」の概要( #KOF2015 )
Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...
Pyconjp2014_implementations
2014 1018 OSC-Fall Tokyo NETMF
[20110827 PyConJP 2011 LT]pythonでrdmaを・・・
ドローン+IoT+Azureで新たなビジネスチャンスを!
北海道IoTビジネス共創ラボ ドローンWG紹介
Project Sumatra - JavaOne2012報告会 #j1rep
More from LINE Corporation (20)
Reduce dependency on Rx with Kotlin Coroutines
Kotlin/NativeでAndroidのNativeメソッドを実装してみた
Use Kotlin scripts and Clova SDK to build your Clova extension
The Magic of LINE 購物 Testing
UI Automation Test with JUnit5
Feature Detection for UI Testing
LINE Chatbot - 活動報名報到設計分享
在 LINE 私有雲中使用 Managed Kubernetes
LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹
LINE Things - LINE IoT平台新技術分享
LINE Platform API Update - 打造一個更好的Chatbot服務
Keynote - LINE 的技術策略佈局與跨國產品開發
Drone programming with ArduPilot2. 難波 健雄
2014.06 LINE Fukuoka 入社
サーバサイドエンジニア (主にJava)
About me
自己紹介
個人的にドローンプログラミングにハマっている
5. ● 日本でドローンといえば DJI Phantom (主に空撮用途)
● ドローン = 無人航空機 (UAV)
● コプター、プレーン、ローバー、ボート、サブマリン
What is drone?
ドローンとは?
https://www.dji.com/jp/phantom-4
8. ● 2017年の社内ハッカソン
● Sharing smile drone
● https://engineering.linecorp.com/ja/blog/detail/250
● Parrot Mambo
● iOSアプリ (Parrot SDK)
Why addicted to drone programming
ハマったキッカケ
● ドローンプログラミングは難しいものだと想像していた
● 実機でのデバッグは大変だった。。。
● 想像してたよりは難しくなかった
9. ● 不満点
● 完成品なのでデバイスの追加できない
● センサー・カメラなど
● ハードウェアに制限があった
● GPSなし
Why addicted to drone programming
ハマったキッカケ
● 自作ドローン?
● ハードルが高そう。。。
● ドローンソフトウェアエンジニア養成塾に参加
11. ● プロペラの回転方向
● 互い違い
● 上昇・下降
● 全てのプロペラの回転数を上げる・下げる
● 前後・左右
● 進行方向に機体を傾ける
● 片側のプロペラの回転数を上げる
● 左右回転
● 回転方向と逆回転のプロペラの回転数をあげる
移動
ドローンの仕組みWhy can drone fly?
http://ardupilot.org/copter/docs/connect-escs-and-motors.html
12. ● ドローン
● フライトコントローラ (FC)
● コンパニオンコンピュータ
● プロポ
● Ground Control Station (GCS)
● PC、スマホ
全体の構成
ドローンの仕組みWhy can drone fly?
http://ardupilot.org/copter/docs/introduction.html
13. ● LIPOバッテリー
● RC受信機
● FC
● ジャイロ、加速度センサ、気圧センサ
● 電子コンパス、GPS
● Electric Speed Controller (ESC)
● ブラシレスモーター
● コンパニオンコンピュータ
● 機体の姿勢制御
● FC -> ESC -> モーターの電流を変化させて
プロペラの回転数を制御
ハードウェア構造
ドローンの仕組みWhy can drone fly?
http://ardupilot.org/copter/docs/advanced-pixhawk-quadcopter-wiring-chart.html
14. ドローンの仕組みWhy can drone fly?
• ArduPilot
• PX4
• Onboard SDK (DJI)
FC
• Dronekit-Python
コンパニオンコンピュータ
• Dronekit-Python
• Dronekit-Android
• Mobile SDK (DJI)
• Guidance SDK (DJI)
• Parrot SDK
GCS (PC・スマホ)
ソフトウェア構造
15. ● FC用のフライトコード
● Arduino + Pilot → ArduPilot
● 現在はarduinoは未サポート
● OSSではもっともメジャー https://github.com/ArduPilot/ardupilot
● 2018 World Drone Congress 受賞
● https://twitter.com/ArduPilotTeam/status/1010392967180251136
● C++
● サポートしているFC
● Pixhawk、navio2、etc
Flight code OSS for FC
ArduPilot
● メインコミッター
● Randy Mackay (養成塾の先生)
● Andrew Tridgell (rsync, samba)
● and so on...
16. ● コプター
● クアッドコプター
● ヘキサコプター
● オクトコプター
● プレーン
● VTOL
● ローバー
● ボート
● サブマリン
Flight code OSS for FC
ArduPilot
http://ardupilot.org/
20. ● Extended Kalman Filter
● センサーの値から機体の姿勢・高度の推定
● FCのセンサー
● ジャイロ、加速度センサ、気圧計、電子コンパス、GPS
● センサーの計測値は不安定(ノイズ)
● 複数のセンサーを組み合わせて機体の姿勢・高度を算出
Extended Kalman Filter
EKF
22. ● Proportional (偏差)
● Integral (積分)
● Derivative (微分)
● 機体の姿勢を目標角度に遷移させるためのスムーズな姿勢制御
● 現在値と目標値の差から必要な角速度を算出
PID Control
PIDコントロール
https://ja.wikipedia.org/wiki/PID制御
26. ● LowSlow
● 養成塾の卒業課題
● https://github.com/groovelab/ardupilot/pull/1
● 高度が低いと低速移動
● 既存のフライトモードをコピー
● Loiter
● ArduCopter/mode_loiter.cpp
● run() のカスタマイズ
● パラメータの追加
How to add new flight mode
フライトモードの追加
27. ● ArduCopter/mode_low_slow.cpp
● run()
● 高度を取得 (cm)
● int32_t alt_above_ground = get_alt_above_ground();
● 高度が低ければpitchとrollの目標値を小さくする
● float rate = alt_above_ground > g2.low_slow_alt * 100
? 1.0f : g2.low_slow_rate;
● attitude_control->input_euler_angle_roll_pitch_euler_rate_yaw(
target_roll * rate, target_pitch * rate, target_yaw_rate);
How to add new flight mode
フライトモードの追加
● ArduCopter/Parameters.cpp
● ParametersG2::var_info[]
● AP_GROUPINFO("LOW_SLOW_ALT", 28, ParametersG2, low_slow_alt, 10),
● AP_GROUPINFO("LOW_SLOW_RATE", 29, ParametersG2, low_slow_rate, 0.5),
● 実行時に変更可能なパラメータ
29. ● SITL
● software in the loop
● FCでのフライトコードをシミュレート
● cd ArduCopter
./waf configure --board sitl
./waf copter
sim_vehicle.py --console -f flightaxis:192.168.x.x
● Mission Planner
● SITLに接続してドローンの状態を視覚化できる
● Real Flight
● SITLに接続してドローンの飛行を3D化できる
Simulator
シミュレータ
30. ● FCにセンサーを接続 (SPI, I2C, etc)
● 自作ドライバを実装
● FCとラズパイを接続してラズパイ+カメラ or センサーを使って
ドローンの自律航行
● ドローンの群制御
● drone based follow
Todo list
今後やりたいこと