drone-cv-expert について
drone-cv-expertは、自律飛行プラットフォーム向けのロボティクスとコンピュータービジョンを扱う技術スキルです。ナビゲーション、認識、センサーフュージョン、ハードウェア制約に応じた方法を示し、段階的なテストと飛行安全を重視します。
主な機能
- 01飛行制御と経路計画の指針
- 02SLAMとセンサーフュージョンの手法
- 03物体検出と追跡の方法
- 04エッジ展開とハードウェア統合
- 05安全確認とシミュレーションの指針
活用シーン
- 01GPSが使えない飛行のナビゲーション方式を選定
- 02機上の物体検出パイプラインを設計
- 03ドローン測位のセンサーフュージョンを選定
- 04シミュレーションと段階的な飛行試験を計画
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ curiositech/ some_claude_skills --skill drone-cv-expertインストール後、Claude Code で/drone-cv-expertを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
CHANGELOG.md.claude-plugin/plugin.jsonreferences/sensor-fusion-ekf.mdobject-detection-tracking.mdnavigation-algorithms.md詳細
ドローン CV エキスパート
自律飛行プラットフォーム向けのロボティクス、ドローンシステム、コンピュータービジョンのエキスパートです。
判断ツリー:このスキルを使用するタイミング
User mentions drones or UAVs?
├─ YES → Is it about inspection/detection of specific things (fire, roof damage, thermal)?
│ ├─ YES → Use drone-inspection-specialist
│ └─ NO → Is it about flight control, navigation, or general CV?
│ ├─ YES → Use THIS SKILL (drone-cv-expert)
│ └─ NO → Is it about GPU rendering/shaders?
│ ├─ YES → Use metal-shader-expert
│ └─ NO → Use THIS SKILL as default drone skill
└─ NO → Is it general object detection without drone context?
├─ YES → Use clip-aware-embeddings or other CV skill
└─ NO → Probably not a drone question
主な専門分野
飛行制御とナビゲーション
- PID 調整:位置、速度、姿勢の制御ループ
- SLAM:ORB-SLAM、LSD-SLAM、視覚慣性オドメトリ(VIO)
- 経路計画:A*、RRT、RRT*、Dijkstra、ポテンシャル場
- センサーフュージョン:EKF、UKF、相補フィルター
- GPS 非依存のナビゲーション:AprilTags、ビジュアルオドメトリ、LiDAR SLAM
コンピュータービジョン
- 物体検出:YOLO(v5/v8/v10)、EfficientDet、SSD
- トラッキング:ByteTrack、DeepSORT、SORT、オプティカルフロー
- エッジデプロイ:TensorRT、ONNX、OpenVINO による最適化
- 3D ビジョン:ステレオ深度、点群、構造復元
ハードウェア統合
- フライトコントローラー:Pixhawk、Ardupilot、PX4、DJI
- プロトコル:MAVLink、DroneKit、MAVSDK
- エッジコンピューティング:Jetson(Nano/Xavier/Orin)、Coral TPU
- センサー:IMU、GPS、気圧計、LiDAR、深度カメラ
避けるべきアンチパターン
1. 「シミュレーションのみ症候群」
誤り:Gazebo/AirSim でのみテストし、そのまま実機のドローンにデプロイします。 正しい方法:シミュレーション → ベンチテスト → テザー付き飛行 → 管理された環境 → 現場。
2. 「EKF の過剰使用」
誤り:相補フィルターで十分な場合に、拡張カルマンフィルターを使用します。 正しい方法:要件に合わせてフィルターの複雑さを選びます。
- 相補フィルター:基本的な安定化、姿勢のみ
- EKF:複数センサーの融合、GPS+IMU+気圧計
- UKF:高度に非線形なシステム、激しい機動
3. 「最大解像度の思い込み」
誤り:4K フレームを 30fps で処理し、リアルタイム性能を期待します。 正しい方法:高度と速度に応じて解像度を調整します。
| 高度 | 速度 | 解像度 | FPS | 理由 |
|---|---|---|---|---|
| <30m | 低速 | 1920x1080 | 30 | 詳細が必要 |
| 30-100m | 中速 | 1280x720 | 30 | バランス |
| >100m | 高速 | 640x480 | 60 | 速度を優先 |
4. 「シングルスレッド処理」
誤り:1 つのループで検出 → トラッキング → 制御を順番に実行します。 正しい方法:パイプライン並列処理:
Thread 1: Camera capture (async)
Thread 2: Object detection (GPU)
Thread 3: Tracking + state estimation
Thread 4: Control commands
5. 「GPS への過信」
誤り:GPS は常に正確で利用可能だと仮定します。 正しい方法:複数の情報源を使って位置を推定します。
- GPS:屋外で精度 2~5m、屋内では利用不可
- ビジュアルオドメトリ:ドリフト 0.1~1%、照明条件に依存
- AprilTags:設置された場所で cm レベルの精度
- IMU:短時間のみ、ドリフトが累積します
6. 「万能モデルの思い込み」
誤り:あらゆるシナリオで同じ YOLO モデルを使用します。 正しい方法:制約に応じてモデルを選択します。
| 制約 | モデル | 備考 |
|---|---|---|
| レイテンシが重要 | YOLOv8n | 推論 6ms |
| バランス重視 | YOLOv8s | 15ms、精度が向上 |
| 精度優先 | YOLOv8x | 50ms、mAP が最高 |
| エッジデバイス | YOLOv8n + TensorRT | Jetson で 3ms |
問題解決フレームワーク
1. 制約の分析
- 計算能力:どのハードウェアですか?(Jetson Nano = 約 5 TOPS、Xavier = 32 TOPS)
- 電力:バッテリー容量は?飛行時間への影響は?
- レイテンシ:制御ループの周波数は?検出応答時間は?
- 重量:ペイロード容量は?重心は?
- 環境:屋内ですか、屋外ですか?GPS は利用できますか?照明条件は?
2. アルゴリズム選択マトリクス
| 問題 | 古典的手法 | ディープラーニング | 使い分け |
|---|---|---|---|
| 特徴点トラッキング | KLT オプティカルフロー | FlowNet | 古典的手法:リアルタイム、計算能力が限られる場合。DL:堅牢性が必要で、より高い計算能力がある場合 |
| 物体検出 | HOG+SVM | YOLO/SSD | 古典的手法:単純な物体、GPU がない場合。DL:複雑な物体、GPU が利用できる場合 |
| SLAM | ORB-SLAM | DROID-SLAM | 古典的手法:成熟しており、デバッグしやすい場合。DL:困難なシーンでより優れた性能が必要な場合 |
| 経路計画 | A*、RRT | RL ベース | 古典的手法:環境が既知の場合。DL:環境が複雑で動的な場合 |
3. 安全チェックリスト
- キルスイッチのテスト済みで、すぐに操作できること
- ジオフェンスの設定
- 帰還高度の設定
- 低バッテリー時の動作の定義
- 信号喪失時の動作の定義
- プロペラガード(該当する場合)
- 飛行前のセンサー校正
- 気象条件の確認
クイックリファレンス表
MAVLink メッセージタイプ
| メッセージ | 目的 | 頻度 |
|---|---|---|
| HEARTBEAT | 接続状態の確認 | 1 Hz |
| ATTITUDE | ロール/ピッチ/ヨー | 10-100 Hz |
| LOCAL_POSITION_NED | 位置 | 10-50 Hz |
| GPS_RAW_INT | GPS 生データ | 1-10 Hz |
| SET_POSITION_TARGET | コマンド | 必要に応じて |
カルマンフィルターの調整
| 行列 | 値が大きい場合 | 値が小さい場合 |
|---|---|---|
| Q(プロセスノイズ) | 観測値をより信頼する | モデルをより信頼する |
| R(観測ノイズ) | モデルをより信頼する | 観測値をより信頼する |
| P(初期共分散) | 初期状態が不確か | 初期状態が確か |
一般的な座標系
| 座標系 | 原点 | 軸 | 用途 |
|---|---|---|---|
| NED | 離陸地点 | 北・東・下 | ナビゲーション |
| ENU | 離陸地点 | 東・北・上 | ROS 標準 |
| Body | ドローンの重心 | 前・右・下 | 制御 |
| Camera | レンズ中心 | 右・下・前 | ビジョン |
参照ファイル
詳細な実装は references/ にあります。
navigation-algorithms.md- SLAM、経路計画、位置特定sensor-fusion-ekf.md- カルマンフィルター、マルチセンサーフュージョンobject-detection-tracking.md- YOLO、ByteTrack、オプティカルフロー
シミュレーションツール
| ツール | 長所 | 短所 | 最適な用途 |
|---|---|---|---|
| Gazebo | ROS との連携、物理演算 | グラフィックス品質 | ROS 開発 |
| AirSim | 写実的、コンピュータービジョン重視 | Windows 中心 | ビジョンアルゴリズム |
| Webots | マルチロボット、利用しやすい | ドローンに特化していない | 群制御シミュレーション |
| MATLAB/Simulink | 制御設計 | リアルタイムではない | コントローラーの調整 |
新興技術(2024-2025)
- イベントカメラ:時間分解能 1μs、モーションブラーなし
- ニューロモーフィックコンピューティング:超低消費電力の推論に向けた Loihi 2
- 4D レーダー:速度+3D 位置、あらゆる気象条件で動作
- 群制御の自律性:分散型の協調、創発的な振る舞い
- 基盤モデル:ゼロショット検出向けの SAM、CLIP
統合ポイント
- drone-inspection-specialist:ドメイン固有の検出(火災、損傷、熱)
- metal-shader-expert:GPU アクセラレーションによるビジョン処理、カスタムシェーダー
- collage-layout-expert:レポート生成、ビジュアル構成
重要な原則:ドローンシステムでは、性能より信頼性が優先されます。予測不能な障害が発生する 99% の精度のシステムより、クラッシュしない 95% の精度のシステムのほうが優れています。常に代替手段を用意してください。