Tello Programming 001 -プログラミングの準備(macOS)-

RYZE Telloの特徴的な機能の一つにプログラミングによる自動飛行が可能なことが挙げられます.Telloは「Scratchを使ってプログラムか可能」というのが教育用途にも適していることが一つのウリになっているようです.
なお,Scratchとは,一般的なプログラミングの際に求められる構文等を覚えなくても,直感的かつ視覚的にプログラミングができる様に,MITメディアラボが開発した学習環境です.

まずはTelloを使えるように準備をします.リリースノートによると,この記事を書いた時点でのファームウェアのバージョンは,v0.1.04.88.01となっています.

「免責事項と安全に関するガイドライン」によるとTelloの安定した飛行を支える技術である「ビジョンポジショニングシステム」についての記載がありました.
デフォルトの標準モードでは,ビジョンポジショニングシステムを利用して機体を自動的に安定させているとのことです.以下に,ビジョンポジショニングシステムが適切に機能しない場合を列挙します.

  • 許容傾斜度は25°,最大速度は28.8km/h
  • はっきりとした模様がない地表面上空
  • 水や雪など反射面の上空
  • 機体速度が速すぎる場合(高度2mで28.8km/h以上,高度1mで18km/h以上)

さらに

  • モノクロ(黒,白,赤,緑一色など)やはっきりとした模様や構造がない地表面上空
  • 照明が頻繁にまたは急激に変化するエリア
  • 非常に暗い(10ルクス未満)や,非常に明るい(10,000ルクス超)地表面上空
  • 赤外線を強力に反射,または吸収する(鏡など)地表面上空
  • 同じ模様な構造が繰り返される(同じデザインのタイルなど)地表面上空

のような場合でも適切に機能しないようです.

ビジョンポジショニングシステムが使えなくなると,機体はATTI(姿勢)モードになるので,操縦が難しくなります.またシステムは,機体の高度が 0.3 - 10.0 mにある場合に有効(最も効果的なのは,高度 0.3 - 6.0 m)とのことなので,まずは,この範囲内でのプログラムを作成する必要があるようです.
また,当面はビジョンポジショニングシステムを使用したプログラミングによる飛行が目的なので,基本的に決まった場所(室内)で飛行させようと思っています.

Telloのプログラミングができるように準備をします.必要なハードウェアは,

  • Tello
  • Computer(Mac, Win共に対応.Linuxには未対応)

です.

この記事は,macOSでの設定方法の説明になっています.Windowsでの設定はこちらをご覧ください.

Ryze Tech社のサイトにある手順の通りに準備を進めます.Tello ScratchのREADMEには以下のように書かれています.

まずは,Scratchのインストールです.ScratchのWebページからローカル環境でScratchを使用できる

の.dmgファイル(Scratch Desktop-3.6.0.dmg)をダウンロードします.

注)ここでは Skratch Desktop (ver. 3.6) のインストール方法を書いていますが,今のところSkratch Desktop (ver. 3.6)では設定を完了することができていないので,後述する Scratch 2.0 Offline Editor をインストールする必要があります!!  順調にインストールを行うには,ページ下部にある"Scratch 2.0 Offline Editorのインストール"を参照して下さい.

 

この.dmgファイルは解凍(ダブルクリック)して,アイコンをアプリケーションフォルダに移動させるだけでインストールが始まります.

インストールが成功してScratchを立ち上げると以下のような画面が立ち上がります.
しかし,Scratch Desktop ver. 3.6 ではShiftキーが効きません...(”Shiftキーを押しながらFileをクリックしても表示が変わらない).
(これでScratch Desktop (ver.3.6)のインストールは完了)

後述の,Scratch 2.0 Offline Editorのインストールが終わったら以下の手順でセットアップを行います.
 

Nodeのインストールを行います.
Tello ScratchのREADMEには以下のように書かれています.

 

Node.jsのサイトからNodeのパッケージファイルをダウンロードします.
LTSでもCurrentでも良いと思いますが,とりあえず安定しているLTSをダウンロードします.

ダウンロードしたパッケージ(node-v10.16.3.pkg)をダブルクリックすると以下のようにインストールが始まります.
(これで,Nodeのインストールは完了)
 
TelloScratchファイルをダウンロードします.
Tello ScratchのREADMEには以下のように書かれています.
Scratch用のTelloデータをダウンロードするのはリンクをクリックするだけです.ダウンロードが完了すると,Scratchという名前のフォルダに,以下の3つのファイルがあることを確認します.
 
  • Tello.s2e
  • TelloChs.s2e
  • Tello.js
これらのファイルのTello.jsをエディター等のソフトで開き,以下のように,12行目以降をコピーします.
 
var dataToTrack_keys = ["battery", "x", "y", "z", "speed"];
var lastDataReceived = null;
... 以下省略...
12行目の" var dataToTrack_keys = ["battery", "x", "y", "z", "speed"]; "以降をコピーする
 
ターミナルを立ち上げて,以下のように"node"と入力すると,カーソルが切り替わる( > になる)ので,そこに先にコピーしたもの(上記の var 以降)をペーストします.
$ node
> var dataToTrack_keys = ["battery", "x", "y", "z", "speed"];ed
> var lastDataReceived = null;ed
                             ...以下省略...
 
そして,ターミナルは立ち上げたままで,次の設定に移ります.
 
次の設定はScratchTelloのデータを取り込むことになります.ここでの設定は,Tello ScratchのREADMEには以下のように書かれている箇所になります.
 
ここまで進んでトラブルが発生しました....上記のREADMEには"Shift"キーを押しながらFileメニューをクリックすると"Import Experimental HTTP"が開くとありますが,3.0ではShiftキーを押しながらFileメニューをクリックしても反応しません...(上記の赤字 注)部分)
 
なので,READMEに書かれている,旧バージョン(Scratch 2.0 Offline Editor)のインストールを行うことにしました.
 
Scratch 2.0 Offline Editorのインストール
先にSkratch Desktop(ver. 3.0)をダウンロードしたページScratch Desktopの下側に,以下のように旧バージョンをダウンロードできる箇所があります.
ここから,Scratch 2.0 デスクトップをクリックします.
 
Scratch2.0オフラインエディターをインストールするにはAdobe AIR20が必要なので,アドビのWebページからAdobeAIR.dmgもダウンロードして,こちらを先にインストールします(特にインストール時の設定を変える必要はないので,AdobeAIR.dmgをダブルクリックした後はひたすらクリックするだけです).
 
続いて,Scratchオフラインエディター本体(Scratch-461.dmg)をダウンロード,インストールします(こちらも,インストール時の設定を変える必要はないので,AdobeAIR.dmgをダブルクリックした後はひたすらクリックするだけ).
 
インストールが成功すると,以下のようにScratch2.0オフラインエディターが立ち上がります.
(これでScratch 2.0オフラインエディターのインストールは完了)
 
Scratch2.0オフラインエディターでは,shiftキーが効いて,以下のように,Shift + File をクリックすると表示が変わり,"Import experimental HTTP extension"と表示されます(READMEでは"Import Experimental HTTP"とありますが,表示が異なる).
次はScratchTelloのインターフェースをデータを読み込みます.
先に書いたように,Scratch2.0オフラインエディターで"Shiftキー+File"をクリック(Shiftキーを押しながらFileをクリック)します.すると,以下のようなウィンドウが開くので,ダウンロードしたScratchフォルダー内の"Tello.s2e"を選択します.
この段階で,Scratchの中にTelloのデータが読み込まれているので,Tello ScratchのREADMEの5に書かれている"More Blocks"をクリックします.
 
すると,以下のようにTello Controlというコマンドが表示されます.
(これでTelloのインターフェースの読み込みは完了)
 
注)Scratch2.0オフラインエディターのインストール,設定が終わった後には,Nodeのインストールを行なってください.
 
以上で,プログラミングの準備は完了です.