UAVの飛行制御と開発プラットフォームについて(1)機体構成と製品群

月刊測量×Ailerocket UAVの現状と可能性 UAVの飛行制御と開発プラットフォームについて(1)

ドローン(UAV)の普及は目覚ましいものがあり、特に空撮分野や、建築・測量関連の業界では、ドローンの活用はかなり一般的なものになっています。一方で、急速な普及から使用者側の理解が追いついていない部分も散見されています。

実は、K-ki(K-ki@Ailerocket)は昨年末から今年の頭にかけて、日本測量協会の依頼を受け、特に測量事業者にドローンの仕組みを理解してもらうため、「月刊測量」という専門誌に記事を連載していました。そこでは主にドローンの飛行制御と、その開発プラットフォームの種類に関する紹介を行いました。

今回の記事は、月刊測量 2018年2月号にK-kiが寄稿した記事を、月刊測量の発行元である日本測量協会の許可を得て、Ailerocketに転載したものです。連載「UAVの現状と可能性」は、私以外の記事も各分野の専門家が執筆しておりかなり面白い内容になっているので、ぜひ月刊測量も読んでみてくださいね!

参考公益社団法人日本測量協会 月刊誌「測量」

スポンサーリンク

ドローンはどうやって飛行するのか

マルチコプターをはじめとする、ドローンと呼ばれる類のUAVは、どのように飛行するのでしょうか。2回の連載からなる本稿では、航空宇宙産業からドローン・ラジコン飛行機まで、航空宇宙関連の情報を集約するウェブメディア「Ailerocket/エルロケット(https://ailerocket.com/)」を運営し、航空分野の専門知識を持つK-kiが、ドローンコードというUAV開発プラットフォームにフォーカスしながら、特に飛行制御の分野を中心に、ドローンがどうやって飛行しているのかを簡単に解説していきます。

まず、マルチコプターの機体を構成する要素を説明しましょう。単純に飛ぶことだけを目的とするマルチコプターの場合、機体ハードウェアの主要構成要素はフレーム、モーター、フライトコントローラ(FC)、Electric Speed Controller(ESC)、バッテリー、プロペラ、ランディングギアなどです。

飛行制御に注目すると、特にFCは機体の姿勢制御演算を行いモーターへの制御コマンドを出力するという重要な役割を果たしています。また、現在の多くのUAVではFCにジャイロセンサが内蔵されており、機体姿勢などを検知する役割も担っています。

機体にはこの他にも、光学センサや超音波センサ、GPSモジュールなどが搭載されることがありますが、これらのセンサ類は機体の自律飛行を補助するためのものであり、シンプルに飛行するだけであれば必要ありません。

機上のソフトウェアは基本的にFCに搭載され、その主体は当然ながら飛行制御を司る「フライトコード」と呼ばれるプログラムです。また、搭載するソフトウェアの種類にもよりますが、フライトコードは基本的にOSとミドルウェアという土台の上で稼働し、これらに支えられる形でモーターの回転数を調整するESCの制御や他のデバイスとの通信が可能になります。

センサデータ信号を地上とやり取りするテレメトリ機能、モーターの回転数を調整するESCの制御、操縦者が操作する送信機との通信機能などは、フライトコードの土台となるミドルウェアなどの形で、FCに搭載されます。

UAVが飛行するためには、機体以外の機器も必要です。操縦者からの操作コマンドを送信する送信機(プロポ)がその最たるものでしょう。また、運用の方法にもよりますが、機体に搭載されたセンサが計測したデータを受信するパソコンや、カメラの映像を写すモニター、ゴーグル等が必要になることがあります。

これらの関係を図にまとめたものが図1です。

図1 UAVと周辺機器の関係
図1 UAVと周辺機器の関係

ドローンの制御に利用される製品群

UAVの大まかなハードウェア及びソフトウェアの構成は上記の通りですが、具体的にどのような製品が存在するのでしょうか。

UAVの飛行制御に関しては、世界的に見ると大きく2つのグループが存在します。それが、世界最大のシェアを持つ中国のDJI社と、米国の3DRobotics社が牽引するドローン開発のプラットフォームを作るオープンソースプロジェクト「Dronecode(ドローンコード)」です。

FCを中心に、両陣営の製品を紹介していきます。DJIの主要なFCには、ホビー色の強い「N3」と、産業向けとして販売されている「A3」の2つが存在します。一方ドローンコードでは、「Pixhawk」というフライトコントローラシリーズ(ハードウェア)と、それに搭載するPX4というフライトコード(ソフトウェア)が存在しますが、コンシューマ向けと産業向けの区別は明確ではありません。また、フライトコードについては、以前はAPM(ArduPilot:Mega)がドローンコードのメインフライトコードでしたが、ライセンスやバージョン管理の問題からその座をPX4に奪われ、現在はドローンコードから離脱しています。APMでは、ドローンコードの管理下にあるFCだけでなく、Raspberry Piを利用するFCとして知られるNAVIOシリーズなどにも対応しています。

ここで紹介したようなUAV用FCには、ジャイロセンサが搭載されており、姿勢角などの算出のために機体の角速度を取得するセンサの役割も兼ねています。また、高機能なFCには角速度と各軸の加速度が取得できるIMU(Inertial Measurement Unit)と呼ばれるセンサが搭載されています。

コンシューマ用FCと産業用FCの違いには、処理速度などもありますが、特に重要な点はセンサ等の信頼性・冗長性で、産業用のものはコンシューマ用に比べると冗長度の高い構成となっています。つまり、機体の姿勢や位置を計測するのに必要なIMUやGPSの搭載個数を増やすことで、あるIMUユニットが故障した時には別の正常なIMUユニットを使用することによって、安全に飛行を継続できる可能性が高くなることが大きなポイントです。

FCは、機体の姿勢、レート、速度などを制御するため、モーターの回転数を制御するESCにコマンドを送り、ESCが各モーターの回転数を適切に制御することでドローンは飛行しています。

機体の姿勢等をどう制御するかは、操縦者が送信機を介しFCに指示します。しかし、DJIでもドローンコードでも、ある程度の自律飛行(オートパイロット)が可能なため、センサ信号からFCが安定に飛行できる思われる姿勢目標を計算し、その目標どおりに飛ばすことも可能です。

これ以外の飛行法としては、例えばDJIの場合、DJI Assistant2、DJI GOやDJI GS PROといったアプリケーションを利用する方法があります。これらのアプリは、PC、スマートフォンやタブレットにインストールし、地上で機体制御ゲインや飛行経路などの設定や、センサのキャリブレーションを行うソフトウェアで、グラウンドステーションやグラウンドコントロールステーション(GCS)と呼ばれます。

当然ながらドローンコードにもGCSに相当するアプリが存在し、QGroundControlというソフトがよく利用されています。フライトコードとしてPX4ではなくAPMを利用する場合には、Mission Plannerというアプリを利用することが多いです。

さらに、DJIでもドローンコードでも、ソフトウェア開発キット(SDK)を利用しての飛行も可能です。SDKを利用した飛行では、UAVの開発者が機体の飛行を制御するプログラムを作成し、UAVの機上に搭載したオンボードデバイスから機体を操作したり、無線または有線での通信を介してスマートフォン/タブレットから操作したりすることが可能です。DJIの場合、Onboard SDK、Mobile SDK、Guidance SDKが存在します。ドローンコードでは、DroneKitと呼ばれるSDKが知られています。

また、FCに搭載された標準的なフライトコードを基礎とした上で、追加のセンサ等を利用し、飛行制御の機能を拡張することも可能です。DJIでは、ここ1年ほどの間に販売された機体には、基本的にビジョンポジショニングシステムと呼ばれる、IMUに加えて超音波センサと光学センサを利用し、ホバリングの精度を高めたり、障害物を回避したりする機能が搭載されています。また、GUIDANCEという超音波センサ、光学センサを搭載したモジュールを利用すれば、前後左右4方向の障害物を検知して回避することができます。

一方、ドローンコードでもLightware SF40CやTeraRanger Towerなどの距離センサを使い、障害物を回避した飛行を実現することができます。

この他に、UAVの飛行をサポートするソフトウェアとしては、フライトログの解析やシミュレーション環境などのサービスを提供するものがあります。また、ドローンコードの範疇からは外れますが、送信機のファームウェアであるOpenTXなども、UAVを飛行させる上で有用なソフトウェアです。

DJI及びドローンコードにおける、各種ハードウェア・アプリケーションを表にまとめると、表1のようになります。

表1 DJI及びドローンコードで利用するアプリケーション
機器/ソフト DJI ドローンコード
FC A3/N3 Pixhawk
フライトコード PX4
GCS DJI Assistant 2
DJI GO 4 他
QGroundControl
光学センサ GUIDANCE PX4FLOW
超音波センサ Lightware SF40C
TeraRanger Tower
SDK Onboard SDK
Mobile SDK
Guidance SDK
DroneKit

次回:ドローンコードの詳細とその飛行制御

2回の連載の前半である今回は、UAVの基本的な構成について、DJIとドローンコードを例に簡単に紹介しました。次回は、この知識を基に、ドローンコードの飛行制御についてより詳しく解説する予定です。

UAVの飛行制御と開発プラットフォームについて(2)Dronecodeの飛行制御
建築・測量関係者が無人航空機の原理を簡単に理解できるよう、月刊測量 2018年3月号に寄稿したUAVの飛行制御と開発プラットフォームに関する解説記事を紹介します。主にドローン開発のプラットフォームであるDronecode(ドローンコード)とその飛行制御について説明します。
The following two tabs change content below.
著者:K-ki 子供のころに作った模型飛行機がきっかけで航空宇宙の世界に足を踏み入れたエンジニア。HNは「けーき」と読みます。 好きなものは航空機(固定翼・回転翼・ドローンなど全般)と生き物・アクアリウム。水棲生物の中では特にニホンイシガメが好き。