+プラスラボ

学びの紹介

ドローンを自動操縦できるようにプログラムしてみた!

ドローンを自動操縦できるようにプログラムしてみた!

※この記事は、神戸電子ブログで2017年05月18日に掲載されたものを転載・加筆しています。※

IT分野では、私たちの生活の身近なところで日々使われているコンピュータシステムやWebアプリケーションを設計し、開発する勉強を日々行っています。
卒業生はシステムエンジニアやWebエンジニアなどとして就職をしています。もちろん国家資格の取得にも力を入れているので、資格を取りたい人には最適な分野です。

さて、私自身は普段 Webアプリケーションの開発(プログラミング)を中心に授業を行っているのですが、今日は「ミニドローンの自動操縦」について紹介したいと思います。

ドローンとは?

みなさんは「ドローン(drone)」という言葉でプロペラを4つもったヘリコプターのようなものを思い浮かべるのではないでしょうか。
これもドローンのひとつで「マルチコプター」といわれるものですが、航空法ではを次のように定めています。

『航空の用に供することができる飛行機、回転翼航空機、滑空機、飛行船その他政令で定める機器であって構造上人が乗ることができないもののうち、遠隔操作又は自動操縦により飛行させることができるもの』(一部抜粋)

つまり、ドローンとは

  1. 人が乗ることができない
  2. 遠隔操作または自動操縦により飛行する

ものなんですね。

語源としては英語の「drone」からきており、「雄バチ」という意味です。
飛んでいる時のプロペラの風切り音が蜂の飛ぶ時の音に似ているところから命名されたようです。

いろいろなドローンがある

現在では、さまざまな用途、大きさ、形状のドローンがあります。

たとえば軍用のドローンは、幅十数メートルの主翼を持つ大型機であり、偵察や爆撃に用いられています。

軍用ドローンQR-1プレデター
RQ-1 プレデター【出典:Wikipedia】

また、商用のドローンは、幅数十センチメートル程度の小型~中型機で、回転翼機(マルチコプター)であることが多く、農薬の散布や商品の搬送に使われたりします。

ドローンを使った農薬散布の様子
MAFF TOPICS(5) NEWS 「ドローン」を利用した農薬の空中散布のガイドラインを作成【出典:農林水産省】

さらに個人向けの、いわゆるラジコン飛行機に類するミニドローンもあります。

Parrot社のMamboの写真

このミニドローンは、フランスのParrot社のMamboという機種です。

ドローンを手に乗せてみた写真。手のひらサイズ。

18センチ×18センチのサイズで人の手のひらに載るほどの大きさです。

当然ですが、個人で軍用のドローンを所有できるわけはなく、商用のドローンも少し手を出しにくい価格です。
最近では、個人でも購入しやすいミニドローンで自動操縦が可能となっていますので、これを使って紹介していきたいと思います。

ドローンを飛ばしてみた

ドローンの定義で「遠隔操作、または自動操縦により飛行する」とあるように、ドローンの飛ばし方には2通りあります。

プロポというラジオコントローラー

遠隔操作とは、人間がプロポと呼ばれるラジオコントローラーを操縦してドローンを飛行させる方法です。

たとえば、このように飛ばすことができます。

最後は自由を求めて飛んで行ってしまいましたが。。。

これはこれで自分の思い通りに飛ばせるので楽しいのですが、やはりIT分野の人間としてはプログラミングして「自動操縦」で飛ばせたいのです。

自動操縦のプログラミングに挑戦!

軍事用ドローンや商用ドローンなどを自動操縦するには、ほとんどがGPSを利用しています。
GPSを利用してドローン自身の位置と目的地の座標を取得し、位置情報と地図を組み合わせて飛行ルートを自由に設定することができます。
また、飛行ルートだけではなく高度や飛行速度、カメラの向きや角度などの細かな設定も可能です。

しかし、残念ながらミニドローンではGPSを利用しての自動操縦はできません。

そこで次の項目に値を設定し、自動操縦してみることにします。

  1. 動作
    上昇する・下降する、前進する・後退する、左・右に流れる、左・右に向きを変える等といった動作を指定します。
  2. 時間
    指定した動作を続ける時間(単位:秒)を指定します。
  3. 速さ
    指定した動作の速さを指定します。
  4. 角度
    向きを変えるときに指定します。

ということで、簡単なプログラムコードを書いてみました。

aught.js(プログラムコード一部抜粋)

このプログラムでは、「上昇」-「前進」-「回転」-「着地」といった動作を行います。

基本動作を自動操縦させてみた様子です。

すべての動作をプログラミングで指定

これを応用し、ミニドローンができるすべての動作をプログラミングした自動操縦による飛行の動画をご覧ください。

実用的なことはともかく、ミニドローンでもエンターテイメント的な使い方はできそうですね。
今は「複数のドローンを自動操縦で同時に飛ばしてダンスのようなものをさせる」なんてことを考えています。

機会があれば、そんな動画も紹介してみたいと思います。
それでは、またお会いしましょう。