#この記事は
前回の FlightModes に引き続き、
Dronecode本家サイトのFlightModesページの抜粋・翻訳です。
今回このページはYoutube動画での説明が主なので、動画を抜粋&翻訳します。
※主に自分の理解用に書いています。
Flight Tasks
フライトタスクとは、特定の移動動作を提供するためにフライトモード内で使用されるものです。
※以降は動画
https://youtu.be/-dkQG8YLffc
冒頭 0:00 ~ 0:37
自己紹介等
0:38 ~ 3:02
システム全体像の説明と、この動画が扱うのはどの部分かの説明。
固定翼機やVTOLやなどで構成は異なるが、ここではマルチコプターについてを扱うとのこと。
下の図の赤い部分(NavigatorとPosition Control)についての説明
- どこへ移動するのか、などを指示するモジュールの高位の概念
- 開発者は任意のモードを追加できる
3:03 ~ 4:20
前述のNavigatorとPosition Controlについての詳細
- おそらく、以前から大きなリファクタリングを行った模様で、なぜリファクタリングしたかの説明
4:21 ~ 6:21
- リファクタリングにおいて設定した目標の説明
- いくつか目標があり、その一つはMCU(Micro Controller Unit)でも動作するようにするなど
- ここでFlightTaskという概念が出てくる
6:22 ~ 7:25
- (どうやら赤枠のNavigatorの一部がFlightTaskの事を指す模様)
7:26 ~ 9:32
9:33 ~ 11:46
(ここから話者が変わる)
- Flight taskライブラリの説明(ソースコード寄りな説明)
11:47 ~ 15:56
- Flight task関連のクラス図
- Flighttasksはファクトリクラス、Flighttaskインスタンスを生成する
15:57 ~ 18:14
- Flight Taskを追加開発したい場合の手順
-
/src/lib/FlightTasks/tasks
に追加する
- 作成したいFlightTask用のディレクトリを作成する
- "1"のディレクトリにFlightTaskを継承したクラスを作成する
- CMakeLists.txtを設定する
18:15 ~ 19:58
- パラメータ設定によって既存のモードを拡張して新しいFlightTaskを作成する方法
- 新しい機能を作るというより、既存のモードの動きを少しスムーズにしたい、といった場合など
- クラスの継承で作成する
- SportやManualPositionSmoothやManualPositionSmoothVelは、ManualPositionを継承して作成している
19:59 ~ 20:40
- MAVLinkコマンドから新しいFlightTaskを作成する方法
- (この手法の詳細はプレゼンではスキップされた?)
20:41 ~26:09
- FlightTaskを作成する例
- Continuous yawというフライトタスクを作成してみる
FlightTaskContinuousYaw.hpp と FlightTaskContinuousYaw.cpp
パラメータ設定
src/modules/mc_pos_control/mc_pos_control_params.c
と
src/modules/mc_pos_control/mc_pos_control_main.cpp
21:10 ~ 28:10
28:11 ~
質疑応答