大阪電気通信大学

Pythonプログラミングによるドローン制御

 研究概要

 今やテレビ、雑誌などいろいろなところで見かけることがあるであろうドローン。そのドローンの使用例はあまりにも多く数えきることができない。しかし主な例としては、山間部など無人エリアでの配送、災害救助での被害状況の確認をしたり、遭難者の捜索、太陽光発電所や橋の点検など様々なことに使用でき人々の生活にとって重要な役割を担っている。

 本研究ではPythonでのプログラミングによりドローンを操作しコースを飛行できることを証明すると共に、Pythonプログラミングを通してのドローン制御そのものを広めていきたいと考える。

ドローンとPython

 ドローンとは簡単に表現すると「人が乗って操縦しないが、空を飛べる機体」である。一般的には「無人航空機」と呼ぶ。私たちがよく見る飛行機やヘリコプターは人が乗って操縦する「有人航空機」であり、ドローンとはまったくの別物となっており、人が乗って操縦するか、乗らないで操縦するか、という点がドローン定義のポイントとなっている。 本研究ではそのドローンをPythonで制御していく。Pythonとは1991年に開発された汎用のプログラミング言語である。プログラミング言語としての特徴は単純な文法で分かりやすく、少ないコードで簡潔に書くことができる点と様々なライブラリが用意されており、Python自体の機能拡張することができる点があげられる。非常に広い範囲で使われており、学習するためのサイトや本が充実している。シンプルであるがゆえに初心者が初めて勉強してもとっつきやすいプログラミング言語となっている。

使用するもの  

 本研究で使用するものはトイドローン開発を手がけるRyze Techで製造されたTello EDUと呼ばれるドローンとその付属品のミッションパッドである。まずドローンだが、 Telloで対応していたScratchに加え、Swift、Python、といった複数グラミングでプログラムが可能なドローンである。本体の重量は87gと非常に軽量であり、最大飛行時間は13分と十分に長い。手のひらサイズで持てる大きさながらも、HDカメラを搭載しており、小型であるが空撮ができるドローンである。また、機体底面部に「ビジョンポジショニングシステム」と呼ばれる下方センサーも搭載されている。また、下方センサーとは別にもう一つ底面部にカメラが付いておりミッションパッドを地面に置いておき認識させることでドローンの位置を調整することもできる。

ドローンの自律飛行

PCとドローンを接続しコマンドを送り飛行させる。以下の画像のようにPythonのsleep関数を使い指示を数秒ごとに出すことでドローンの自律飛行が可能となる。

ドローンの精度

 ドローンを100cm前進させ時計回りに90º回転という動きを4回繰り返し正方形を描くような飛行を8回繰り返し、精度を確かめた。以下の画像がその精度を散布図にしてまとめたものである。

 青い点が100cmごとの基準点であり、赤い点がドローンが100cm前進し90º回転している時に取得した点である。全体的にバラついており基準点とズレた長さの平均は約20cmであった。

ドローンの飛行

 実際にコースを作成しそのコースの中にミッションパッドも設置し、ミッションパッドごとに着陸するよう設定し飛行させてみた。以下がその動画である。

作者プロフィール

楠木 達也

大阪電気通信大学 総合情報学部 デジタルゲーム学科

計測ハードウェア研究室所属

3年生の時にドローンに興味を持ち、Pythonでドローンを制御してみるが難しいと感じた。

コメント


清家勘義2021-02-12T14:58:24

PythonやScratchで操作が可能なドローンがあることを知り、面白いなと感じました。

HW17A0642021-02-13T11:33:01

コメントありがとうございます。今回使用したものとは違うドローンを使用するとC++などのプログラミング言語で制御することも可能です。