Upload
himamura-
View
757
Download
7
Embed Size (px)
Citation preview
Linux ベースのオープンソースフライトコントローラの概要
日本 Android の会ドローン WG
hsgucci
I. Linux ベースのドローン用フライトコントローラの紹介( NAVIO+ と Erle Brain )
II. フライトコントローラのソフト構成
III. マルチコプターの制御方法
IV. フィルター処理と応用
フライトコントローラって何?• 姿勢制御やナビゲーションを行う装置
呼び方はいろいろ「姿勢制御装置」「オートパイロット」「飛行制御装置」
機体に積むのが「フライトコントローラ」
地上の PC, タブレットなどが「グラウンドステーション」
ドローンでやりたい事
• FC をソースコードレベルで書き直す• PC ソフトを自作する
04/15/2023 日本 Android の会 ドローン WG Copyright hsgucci
• ドローン本体を機能拡張したい!!• 作業結果データをスマートに管理したい
DJI 3DR
機体:
地上側:
機体:
地上側:
Dronecode
DroneKit
Onboard SDK
Mobile SDK
現状
大手メーカーの動き
無茶言うな!
ラジオコントロール航空機
センサ
GNSS
マイクロコンピュータ
•ジャイロ•加速度•コンパス•気圧 …etc.
センサ・コンピュータを使ってラジコンを姿勢制御すること →フライ・バイ・ワイヤ制御
GNSS を使ってラジコンの移動を自動化すること →ウェイポイント・ナビゲーション
ケイアンドエス
Sparkfun
InvenSense
•8bit•16bit•32bit•64bit(?)
•GPS•GLONASS•Galileo•北斗•みちびき
(グローバルナビゲーションサテライトシステム)
日本 Android の会 ドローン WG Copyright hsgucci
フライトコントローラ
フライトコントローラ (FC)
① ラジコン操縦にはミキシングが必要
② フライバイワイヤで自動制御
③ GNSS を使って完全自動飛行
日本 Android の会 ドローン WG Copyright hsgucci04/15/2023
① ミキシング• 送信機のスティックを1つ動かすだけで, 複数のサーボモータ or モータアンプを動かす機
能.
車だとスロットルアンプ1つだけ
前進命令
ヘリだと3つのサーボを同時に動かす
ケイアンドエス
日本 Android の会 ドローン WG Copyright hsgucci04/15/2023
② フライ - バイ - ワイヤ制御• マイコンとセンサを利用した
「フライトコントローラ (FC) 」が自動的にミキシング
操縦が飛躍的に簡単に!
KK Multicopter
•ジャイロセンサ•加速度センサ•磁気方位センサ•気圧センサ•GNSS
姿勢
方向高度
緯度経度
センサで機体の状況を計測し、機体を自動制御
初期のフライトコントローラはミキサーが主。センサはジャイロだけで補助的な役割だった。
現在では
日本 Android の会 ドローン WG Copyright hsgucci04/15/2023
③GNSS を使った自動飛行• 緯度経度の座標(ウェイポイント)を指定
すれば,そこへ自動飛行してくれる
ドローンをつくるには
最低限の構成
04/15/2023 日本 Android の会 ドローン WG Copyright hsgucci
本体フレーム プロペラ&モータ&モータ駆動回路
フライトコントローラ
便利なキットを買う
04/15/2023 日本 Android の会 ドローン WG Copyright hsgucci
http://www.sekido-rc.com/?pid=52727659セキドラジコンセレクト
FC を買う• 何を買う?
04/15/2023 日本 Android の会 ドローン WG Copyright hsgucci
NAVIO+ Erle Brain
Raspberry Pi B+または 2がベース Beagle Bone Blackがベース
そこで Linux ベースのフライトコントローラを!
様々な FC
04/15/2023日本 Android の会 ドローン WG
Copyright hsgucci
kkMultiCopter(ATmega168p)
Eagle X6
ArduPilot(ATmega328p)
ArduPilot Mega(ATmega2560)
ArduPilot Mega2.x(ATmega2560)
PX4(STM32F427)
MultiWii(ATmega328p)
04/15/2023 日本 Android の会 ドローン WG Copyright hsgucci
Naze32(STM32F103C)
SmartAP(STM32F405)
ミニサーベイヤ AP
Pixhawk(STM32F427)
DJIA2
ZERO-UAVYS-X4
XaircraftSuper-X
TarrotZYX-M
フライトコントローラの流れ1. ATmega( ライタで書込 )
2. Arduino
3. Cortex-M
4. Cortex-A
04/15/2023 日本 Android の会 ドローン WG Copyright hsgucci
KKmulticopter
ArduPilot, ArduPilot Mega, MultiWii
PX4, Pixhawk, baseflight, CC3D, SmartAP
Raspberry Pi 2, Beagle Bone Black
FC の開発1. フルスクラッチで書く
2. Arduino,mbed,Teensy などに乗っかる
3. RTOS を組み込んで動かす
4. Linux で動かす
04/15/2023 日本 Android の会 ドローン WG Copyright hsgucci
イマココ
ドローンでやりたい事
• FC をソースコードレベルで書き直す• PC ソフトを自作する
04/15/2023 日本 Android の会 ドローン WG Copyright hsgucci
• ドローン本体を機能拡張したい!!• 作業結果データをスマートに管理したい
DJI 3DR
機体:
地上側:
機体:
地上側:
Dronecode
DroneKit
Onboard SDK
Mobile SDK
現状
大手メーカーの動き
無茶言うな!
NAVIO+ Erle Brain
Raspberry Pi B+または 2がベース Beagle Bone Blackがベース
Linux ベースのフライトコントローラで Dronecode!
Linux ベースだと何が良い?
• こだわりたいところだけイジればいい
–> 姿勢制御 ( フィルタとか制御則とか )–>GNSS の精度 (RTK とか )–> 無線方式の変更–> センサの追加–> アクチュエータの追加
04/15/2023 日本 Android の会 ドローン WG Copyright hsgucci
I. Linux ベースのドローン用フライトコントローラの紹介( NAVIO+ と Erle Brain )
II. フライトコントローラのソフト構成
III. マルチコプターの制御方法
IV. フィルター処理と応用
NAVIO+ のセットアップ• EMLID のドキュメントページ• ハードウェアのセットアップ
• Raspberry Pi のセットアップ
• APM のセットアップ
04/15/2023 日本 Android の会 ドローン WG Copyright hsgucci
http://docs.emlid.com/
http://docs.emlid.com/Navio-APM/hardware-setup-navio-plus/
http://docs.emlid.com/Navio-APM/configuring-raspberry-pi/
We provide an SD card image of Raspbian with fully preemptive real-time Linux kernel.
リアルタイムカーネル入りのRaspbian が最初からある!
wget http://emlid.com/files/APM/apm.debsudo dpkg -i apm.deb
ラジコン受信機は PPM(CPPM)だけなので注意
http://docs.emlid.com/Navio-APM/installation-and-running/
Debian のパッケージが最初からある!
テレメトリは UARTでも TCP or UDPでも可
おまけ• ラズパイ2ならビデオストリーミングも可
能
04/15/2023 日本 Android の会 ドローン WG Copyright hsgucci
Streaming real-time video from a drone powered by a Raspberry Pi 2 has never been easier.
sudo apt-get install gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-libav
ということで
• Dronecode に準拠したシステムは比較的簡単に準備が可能
• 地上の操作者は Mission Planner Droid Planner DroneKit
04/15/2023 日本 Android の会 ドローン WG Copyright hsgucci
(Win)
(Android)
を使う
I. Linux ベースのドローン用フライトコントローラの紹介( NAVIO+ と Erle Brain )
II. フライトコントローラのソフト構成
III. マルチコプターの制御方法
IV. フィルター処理と応用
04/15/2023 日本 Android の会 ドローン WG Copyright hsgucci
ロール・ピッチ・ヨー角
wikipedia
基本原理
• 前後や左右の回転数を変えて、推力のバランスを崩すことで姿勢を変える
04/15/2023 日本 Android の会 ドローン WG Copyright hsgucci
基本原理
• 旋回
04/15/2023 日本 Android の会 ドローン WG Copyright hsgucci
前
後
右左
CW の回転数を上げ、 CCW の回転数を下げると、反作用の相殺のバランスが崩れてヨー方向に回転する。
シングルコプターはテールロータで相殺
基本原理• 並進移動
04/15/2023 日本 Android の会 ドローン WG Copyright hsgucci
揚力 高度を維持する浮上力
前進力
高度を維持する浮上力
高度を維持する浮上力
高度を維持する浮上力
後進力
左移動力右移動力
揚力
揚力
揚力
制御項目• ロール・ピッチ・ヨー角 • 高度• 緯度・経度• ウェイポイントナビゲーション• 送信機入力に対する反応
04/15/2023 日本 Android の会 ドローン WG Copyright hsgucci
制御周期最速が 400Hz(2.5ms)周期
ブラシレスモーター駆動回路(アンプ)が400Hz のサーボパルスなので
Mission Planner のチューニング画面
http://copter.ardupilot.com/wiki/configuration/tuning/
制御アルゴリズム
04/15/2023 日本 Android の会 ドローン WG Copyright hsgucci
センサー値の取得
フィルタ処理
制御則の計算
モータへの出力
PID 制御
ミキシング計算
サーボパルス
機体の構造に応じて変更
数値積分、相補、カルマン… etc
ほとんどのセンサは I2C で取得
センサー• ジャイロ・加速度センサー MPU-6050
• 電子コンパス HMC-5883L
• 気圧 MS5611
04/15/2023 日本 Android の会 ドローン WG Copyright hsgucci
Amazon だと 600円前後。。。Pixhawk だと MPU-6000派生版の MPU-9150,9250 もある
Amazon だと 300円前後。。。
10cm 精度MultiWii では BMP180 を使用
センサー• GNSS ublox シリーズ
04/15/2023 日本 Android の会 ドローン WG Copyright hsgucci
3DRobotics: LEA-6HRTK-LIB: LEA-6TNAVIO+: NEO-M8N
DJI や 3DR の GNSS モジュールは電子コンパスも同じ基板に実装。磁石から距離を離すため
DJIや 3DRの GPSモジュール
フィルタ処理
• ローパスフィルタ(ノイズ除去)
• 相補フィルタ(センサフュージョン)
04/15/2023 日本 Android の会 ドローン WG Copyright hsgucci
この辺のフィルタ処理が「制御」をややこしく見せている
PID 制御• ブロック線図...
KP
KI
KD
1𝑠
𝑠
04/15/2023 日本 Android の会 ドローン WG Copyright hsgucci
+
+
+目標値と
現在値の差
出力
多くの本がブロック線図で PID を説明する ワカンネエ
例:原始的な PID プログラムnow = millis();timeChange = (now - lastTime);
error = x_desire – x_now;errSum += error * timeChange;dErr = (error - lastErr) / timeChange;
Output = kp * error + ki * errSum + kd * dErr;
lastErr = error;lastTime = now;
// 現在時刻取得
// サンプリングタイム算出
// 目標値 ー 現在値
// 差の積分 (長方形の面積 )
// 差の微分
// 次回のループで使用
P項 I項 D項
もちろん、積分や微分の計算方法は、もっと複雑で正確な式がある
04/15/2023 日本 Android の会 ドローン WG Copyright hsgucci
フライトコントローラの発展• ロール・ピッチ・ヨー角
• カルマンフィルタ
• PID
04/15/2023 日本 Android の会 ドローン WG Copyright hsgucci
クォータニオンへ
姿勢推定精度の向上内部センサだけで移動
ジンバルロックのない角度表現スタイルへ
セルフチューニング現代制御理論