Skip links

ドローン仏PJ・ドローン仏をプログラミングによる自動制御で飛ばす!

ドローン仏をプログラミングによる自動制御で飛ばす!

実録ドローン仏プロジェクト Vol.04

Drone-buddha-project-maketees-42

ドローン仏を自動制御する?それとも手動で?

このドローンTELLOはプログラムすることで自動制御することができます
このドローン仏の面白さやMAKE TEESとして全面協力する大きな理由の1つに、この自動制御プログラムがあります。
とは言え、何が何でも自動制御という訳ではなく、自動制御による飛行演出にするか、手動でドローン仏をコントロールして飛行させるか、TPOに合わせて選んでいきたいと思います。

自動制御の場合、何らかのプログラミング言語を用いて、自動制御プログラムを作る必要があります。
色々なプログラミング言語がありますが、TELLOにはどのプログラミング言語が使えるのでしょうか、適しているのでしょうか?

Drone-buddha-project-maketees-41

Pythonとは、Scratchとは?

TELLOの自動制御プログラムに利用するプログラミング言語は主に選択肢として『Python』か『Scratch』があると思います。
他にもC言語でも制御可能ですが、利便性を第一にすると『Scratch』か『Python』が良いのではと思います。

『Python』とは1990年ごろ、オランダ人のGuido van Rossum(グイド・ヴァンロッサム)氏によって開発されました。
現在は他のプログラマーも参加し、開発が続けられています。Python Software Foundationにて最新版のPythonの配布、言語の仕様や策定が行なわれています。
Pythonはオブジェクト指向かつ非常にシンプルな書式で、インタプリタ方式の高水準言語です。
人工知能の多くもこのPythonで開発されています。

次に『Scratch』ですが、マサチューセッツ工科大学、いわゆる、MITのメディアラボのミッチェル・レズニック教授による研究プロジェクトとして開発がスタートしました。
2006年に公開されたScratchはビジュアルプログラミング言語でブロックを組む、積み上げるようなイメージでプログラミングができます。プログラミング教育には最適な言語として、世界中の子どもたちに
利用されています。また、Scratchのプログラムを作成し、公開するコミュニティでは、2900万人以上がアカウント登録をしており、3200万個以上のプログラムが公開されています。

Scratchはビジュアルプログラミング言語であり、あまりにも平易な言語であるため、また子ども向け教育用のプログラミング言語であるとして、このScratchでできることは少ないと思う方もいらっしゃいますが、全くそんなことはありません。
Scratchで使うプログラムの命令、制御構造はC言語、Java言語などとほとんど同じものが使われており、Scratchで作ったアルゴリズムはJava言語などに書き写すこともできるのです。
平易でシンプルでありながら、汎用性が高く、非常に優れたプログラミング言語なのです。

MAKE TEESとしては、プログラミングの楽しさを伝える、また子どもたちから大人まで誰でもドローンTELLOを自動制御して楽しむ一環として、簡単に取り組めるScratchでドローン仏の制御プログラムを作ることとします。
Scratchでできることは、最大限、Scratchでドローン仏を制御してみましょう!

まずはScratchで自動制御プログラムを作り、後々にPythonでのドローン仏の自動制御プログラムも作って行くこととします。

Drone-buddha-project-maketees-40

ScratchでTELLOを動かす!

ScratchではTELLOの飛行や制御のためにあらかじめブロックが用意されています。それぞれのブロックと動きについて、違うページで紹介していきます。これらを踏まえた上で、Scratchで何ができそうかをご紹介します。

このScratchとTELLOを実際に動かすためにSDKが公式に用意されています。このSDKとはソフトウェア開発キットや文書、ツールを意味します。
現在、『TELLO SDK 1.3.0.0』の他、11月に『TELLO SDK 2.0』が用意されています。
これらはTELLO公式サイトから常に最新版を入手できます。

ドローン仏の自動制御の検証を行っていた頃は、TELLO SDK 2.0がまだ出ていない9月下旬でしたので、ここではひとまず、その開発当時に近いSDK 1.3.0.0で話を勧めます。
後ほど、SDK 2.0についても解説します。

TELLO SDK 1.3.0.0

このTELLO SDK 1.3.0.0の中からScratchで利用するコマンドを抜粋して表にまとめました。

コマンド意味応答
take off離陸OK or FALSA
land着陸OK or FALSA
fly up with distance xx距離 xx cmの高さに上昇OK or FALSA
fly down with distance xx距離 xx cmの高さに下降OK or FALSA
fly left with distance xx距離 xx cm、左へ移動OK or FALSA
fly right with distane xx距離 xx cm、右へ移動OK or FALSA
fly forward with distance xx距離 xx cm、前進OK or FALSA
fly back with distance xx距離 xx cm、後進OK or FALSA
rotate CW with angle xx角度xx度、時計回りOK or FALSA
rotate CCW with angle xx角度xx度、反時計回りOK or FALSA
flip with duration f or b or r or l指定方向へフリップ(f=前・b=後・r=右・l=左・fr=右前・fl=左前・br=右後・bl=左後)OK or FALSA
set speed xx速度xxに設定(xx=1 - 100)・cm/秒OK or FALSA

さて、TELLOをScratchで動かす手順は、
Scratchオフラインエディター(現在、Ver.2.0)
Node.js
Adobe AIR
をダウンロードします。

その後、
・Scratchでプログラム作成
・Nodeプログラム起動
・Wi-Fi接続(TELLOとPC)
という流れになります。

次回、Scratchで実際にプログラム作成して、TELLOを飛行させた動画と共にプログラム内容も紹介していきます。