トイドローン Tello をビジュアルプログラミングツール Node-REDで制御してみよう 第1回

このたび記事を書かせていただく田中正吾と申します。

普段は、フリーランスのフロントエンドエンジニアとして開発をしつつ、人と情報が触れる接点となるインターフェースに興味を持ち、最近はInternet of ThingsやMixed Reealityのコンテンツ構築にも関わっております。

と、ご紹介させていただきましたが、今回はそういった関わりの中で、とても面白いなと思っているドローンの技術にまつわる記事を数回に渡って書いていきたいと思います。

この第1回では、まずは基本的な準備をしていきましょう。

トイドローン Tello

無人で遠隔操作や自動制御によって飛行できる機器全般をドローンといいますが、今回扱うものは玩具のラジコン感覚で動かせる小さくて軽量なトイドローンと呼ばれる分類のものです。

image

その名も Tello といいます。

image

私もはじめてドローンを買ったので他機種との比較なんてものはできませんが、いろいろと調べて以下のところに魅力を感じました。

  • 手のひらサイズでとても軽量で初心者でも安全に試せる
  • スマートフォンにコントローラーアプリをインストールして操作できる
  • 動画と静止画撮影機能がついておりドローンの用途を考えやすそう
  • プログラムから制御も可能でエンジニアごころをくすぐる
  • たくさんの方が様々な実験やナレッジをまとめてくれて技術的にもとっつきやすい
  • 価格もお値ごろ

といったところに注目し購入しました。すでに先行される方が様々な実験やナレッジをまとめられているのは、一番心惹かれました。

Tello image

こちらのページにもプログラミング制御について強調されています「遊び心こそ学びの最大の基盤です。」ということば素敵ですね。

そして、Telloは軽量で小さいので室内でも手軽に試せることも、プログラミング制御で試行錯誤をする上ではとてもありがたく、自分の部屋ですぐに試せるというの心強いです。

Tello SDKを使ってTello用のソフトウェアアプリつくる情報はこちらにあります。

もちろん今は雰囲気だけ追っておきましょう。あるということだけ分かれば十分です。

こちらを、ざっとまとめると、

  • UDPという通信方法でコントロールするPCとTelloがやりとりする
  • 動作のさせ方は right 50(右に50cm)といったシンプルな命令が多い
  • 本来必要な姿勢制御的なところはTelloが自分自身で行うのでプログラムには含めなくてよさそう

といったところで、標準のコントローラーアプリで行う際も手軽に動かせるところが、うまくSDKで制御するプログラム側でも引き継がれています。

また、このような扱いやすさから、

などなど、Golang・Python・Node.jsといった言語での制御だけでなく、ESP32のようなIoTで試すときによく使われるハードウェアとの連携など先に行く方が様々な知見があります!

Telloの準備

Telloの準備です。Telloについては、コントロールアプリで操作するところまで設定します。

【DJIトイドローン】Telloの開封~初期設定~飛行までを徹底レビュー | DroneAgent

こちらの記事が、

  • 開封から準備
  • 機体とスマートフォンの接続
  • コントロールアプリで操作する

ところまでとてもわかりやすかったので、是非参考にしてください。

image

このようにバッテリーがしっかり奥まで入れた状態で点滅したらアプリを起動します。

image

アプリ側でも丁寧に説明が出るので進めていきます。右下のTelloに接続ボタンを押すとWi-Fi接続画面に行きます。

image

TELLO-ではじまるWi-Fiが出てくるはずなので、接続します。

image

アプリが接続されれば準備完了です。しばし、アプリで遊んでみましょう。

ビジュアルプログラミングツール Node-RED の準備

さて、このSDKをさらに扱いやすくするためビジュアルプログラミングツール Node-RED でTelloと連携していきます。

image

Node-REDはハードウェアデバイス/APIおよびオンラインサービスを接続するためのツールで、この画像のようにブラウザ上のFlowエディタで簡単にハードウェアデバイス/APIおよびオンラインサービスを接続することができます。

Node.jsのバージョン確認

まずインストールしていきましょう。Node.jsがインストールされていればすぐにインストールが可能です。

2018/09/21現在では、Node.js LTS 8.xを使用することをおすすめします。

Node.jsのバージョンを確認するには

[html] node -v [/html]

でバージョンを確認しましょう。

Node-REDのインストール

では、Node.jsのパッケージマネージャーからインストールします。

Macの場合はターミナルから、

[html] sudo npm install -g –unsafe-perm node-red [/html]

Windows 10の場合はコマンドプロンプトから、

[html] npm install -g node-red [/html]

を実行してインストールします。

image

Windowsでのインストールの例ですがこのようなログがでてインストールされるはずです。

Node-REDの起動

さてインストールできたら、Macの場合はターミナルから、Windows 10の場合はコマンドプロンプトから、

[html] node-red [/html]

とコマンドを打って起動します。

image

このようなログが出て、

image

このように

[html] Server now running at http://127.0.0.1:1880/[/html]

と出たら起動成功です。

image

早速、ブラウザで

[html]http://localhost:1880[/html]

と打ち込んで起動しましょう。

image

このように表示されれば成功です。

先ほど起動したターミナル(あるいはコマンドプロンプト)を閉じるとNode-REDは終了できます。

準備は完了!

ということで、 Tello と Node-RED の準備は完了しました。

次回はいよいよNode-REDでTelloを制御してみましょう!


この記事を書いた人
SeigoTanaka
2004年よりフリーランス。以後、FLASH制作を中心にインタラクティブコンテンツを主に行い現在に至る。最近ではWEBフロントエンドをベースにしながらも、情報とインターフェースが合わさるアプローチという視点でIoTやMixed Realityといった技術も取り入れながら活動しています。ウォンバットが好き。 2018-2019 Microsoft MVP ( Windows Development ) 2018-2019 IBM Champion。

週1日~/リモートの案件に興味はありませんか?

週1日~/リモートの関わり方で、「開発案件」や「企業のIT化や設計のアドバザリーなどの技術顧問案件」を受けてみませんか?副業をしたい、独立して個人で仕事を受けたエンジニア・デザイナー・PM・技術顧問の皆様のお仕事探し支援サービスがあります。

お仕事をお探しの方へ
お仕事をお探しの方(無料登録)
法人の方(IT課題の相談)