株式会社 車輪の再発見

Deploying Drones for the Enterprise

メニュー

“Scratch”のプログラミングでドローンの動きをシミュレートできる「DroneSimulator2」/無料配布中

【DroneSimulator2】はプログラミング学習アプリケーション“Scratch”と連携し仮想3D空間をキャンパスにするドローン飛行シミュレーターです。“Scratch”でドローン飛行プログラミングに夢中になるかも。Windows7,8,8.1,10用

このシミュレーターは「ドローンの操縦の上達」が目的ではありません。
ドローン操縦技術の上達のための教習所やシミュレーションソフトは沢山ありますが、ドローンをプログラミング制御する方法を教えてくれる教室、プログラミングで飛行をシミュレーションできるソフトは見かけません。
ドローンは自動・自律制御技術が発達し、より精密により安全に飛行できるようになります。
プログラミング言語学習ソフトと連携できるシミュレーターソフトは空中を飛行するための科学(Science)、科学を利用する技術(Technology)、技術を適切につたえる工学(Engineering)、それらの根幹をなす数学(Mathematics)を学ぶSTEM教育の教材に最適です。
教育現場への教材としてドローンの導入は費用もさることならが、安全面でもしっかりと対策をする必要があります、シミュレーターソフトはとても便利です。
プログラミング授業だけでなく、Scratchを基本に誰でも様々な分野でシミュレーションできるようなソフトにアップグレードしていきます。

Androidアプリ「キッズ・ドローン」(無料)と連携すれば本物のParrot社製ミニドローンとのシンクロ飛行も可能です。

【アプリケーションの概要】
「DroneSimulator2」は、MIT(マサチューセッツ工科大学)が開発した「Scratch 2.0 オフラインエディター」とWindowsPC上で連携し、作成したドローン飛行プログラミングを驚くほど簡単に3Dシミュレーションすることができます。「Scratch 2 Offline Editor」と「DroneSimulator2」の構成です。

【構成アプリケーションとサンプルプログラミングファイル】
Windows用とAndroid用のアプリケーションで提供されます。(3Dシミュレーションのみの場合はAndroid端末は不要です)
「DroneSimulator2」はWindows OSで動作するプログラミング言語学習「Scratch 2 Offline Editor」の機能を拡張するドローン飛行3Dシミュレーターです。
開発環境はUnityでDroneSimulator2.exeが実行ファイルです。


このフォルダには「ScratchDrone_1.4.s2e」といったScratch2 Offline Editor機能拡張用ファイルが含まれています。※s2eファイル

3Dシミュレーター「DroneSimulator2.exe」と機能拡張ファイル「ScratchDrone_1.4.s2e」のダウンロード
64bit版 DroneSimulator2.zip  / 32bit版 DroneSimulator_x86.zip

ダウンロード後に解凍しダンボールドローンのアイコン 「DroneSimulator2.exe」をダブルクリックすれば起動します。最近の学校のICTシステム事情を考慮しPCにアプリケーションをインストールをしなくてもUSBメモリからでも起動できるようにしています。

【Scratchの機能拡張】
機能拡張ファイル「ScratchDrone_1.4.s2e」の読込みは「実験的なHTTP拡張を読込み」からおこないます。
通常時は表示されません。

shiftキー+「ファイル」で「実験的なHTTP拡張を読込み」が表示されます。

機能拡張ファイル「ScratchDrone_1.4.s2e」を選択後読み込ませてください。
この仕組みを使いもともとScratchには無いドローンの飛行コマンドを追加します。

※注意
Windowsタブレットなどのソフトウェア・キーボードではshiftキーを押しならが「ファイル」を押しても『実験的なHTTP拡張を読込み』が表示されません。
その場合はドローン制御コマンドが書込まれた以下のサンプルプログラミングファイル(.sb2)をダブルクリックすれば拡張機能が自動的に読み込まれます。
こちらの手法の方が簡単なので、以降はサンプルプログラミングファイル(.sb2)を使う方法で説明します。

【サンプルプログラミン・ファイル】
・「Sample_Programming001.zip」ドローン・コントロールコマンドを使用して単純な飛行から、人間では不可能な複雑な幾何学的な3D図形を描くサンプルプログラミングファイルを用意しました。

サンプルプログラミングファイルのダウンロード
Sample_Programming001.zip

サンプルプログラミン・ファイル一覧(2018/9/19現在)

実行例

離陸・着陸、スパイラル(螺旋)、円(操縦者に向かって直角)、円(操縦者に向かって並行)、八の字

パイプ、3Dドーナツ、正三角形、正四角形、正五角形

、正六角形、正七角形、正八角形、ペンタグラム、星型(操縦者に向かって並行)

螺旋、コイル、地球、五芒星(実機用)、正六角形から正三角形まで順次

vertical8、grass、Horizontal8 fpv(機首は進行方向)、WildChrysanthemum、Horizontal8(機首は常に一定方向)、Geometricstar

【実際に使ってみましょう。(サンプルプログラミングファイルでシミュレーション)】
1.任意のサンプルプログラミングファイルをダブルクリックしてください。
2.ドローン・コントロールコマンドが自動的に「スクリプト」-「その他」に読み込まれ拡張されたScratchが起動します。

図は「22_螺旋」を選択した場合最新バージョンでは軌跡(ライト)のオン/オフが可能です。ライト1でオン、ライト0でオフ

3.DroneSimulator2を起動してください。

DroneSimulator2の描画画面が起動します。

4.ScratchのどこかをクリックしScratchをアクティブにします。5.スペースキー押すとシミュレーションを開始します。(Scratchで作成したプログラミングがDroneSimulator2に送信され3D描画されます)
6.Scratchの上部の緑のフラッグをクリックすると停止します。

ドローンコントロールの特徴
ドローン・コントロールコマンドとScratchのコマンドの組合せで簡単な飛行から関数を組み込んだ高度なプログラミング飛行まで実行させることが可能です。
・離陸、着陸
・上昇、下降(ギャズ)
・前進、後進(ピッチ)
・右移動、左移動(ロール)
・右旋回、左旋回(ヨー)
・移動停止(ホバリング-動作停止)
上記のコマンドは命令を1つずつ順番に完了させる遂次方式ですが、本物ドローンではプロポやコントローラーは4軸の動きを同時実行することが可能です。ですので4軸の動きを同時実行可能なブロックも用意しました。
・4軸制御ブロック(ピッチ、ロール、ヨー、ギャズ)
以下のようにScratchの作法に従い変数を入れ複雑な制御をすることが可能です。
様々なブロックを組み合わせてシミュレーションしてみてください。

【DroneSimulator2の画面とアイコン】
DroneSimulator2のUIには4つのアイコンがあります。

Scratchとの接続状態表示アイコンです。
Scratchと接続していません。

Scratchとの接続状態表示アイコンです。
Scratchと接続すると青くなります。

ドローンとの通信状態表示アイコンです。
ドローンと未接続です。

ドローンとの通信状態表示アイコンです。ドローンと接続すると青くなります。
この時にこのアイコンクリックで同一WiFi内にあるドローンを見ることができます。✔を外すとそのドローンは飛びません。

カメラの位置変更アイコンです。
カメラの視点を変更します。正面(後部から)→FPV→斜め上から(機体を後方から追随)→斜め上から(背景に正対)

速度調整アイコン
シミュレーターのドローンの移動速度を微調整します。ドローン本体の4軸の速度設定に合わせて補正してください。

【Scratchでドローン飛行プログラミングのヒント】
ここでは図形を描く(飛行する)プログラミングについて解説します。

・六角形→五角形→四角形→三角形と飛行するプログラミング

三角形の内角の和[180×(n-2)]を辺の数で割ってその値を180°から引くと多角形を構成する旋回角度ができます。
注意したいのは、辺の長さにあたる移動時間を一定にしてしまうと頂点の数が増えれば図形がどんどん大きくなってしまいます。
ですので、円に内接する正多角形の辺の長さ:a=2 r x sin (π/n)の公式を使い、辺の長さに合わせて移動する速度または移動時間を変更するようにします。
(最新バージョンでは軌跡(ライト)をオン/オフすることが可能です。ライト1でオン、ライト0でオフ)

3Dシミュレーションさせた動画です。(六角形→五角形→四角形→三角形と飛行するプログラミング)

・螺旋(地面に平行)飛行のプログラミング
螺旋飛行させるには、旋回させながら時間の経過とともに少しずつ速度を上げる必要があります。
前進速度が変わる変数を作ります。
必要な飛行コマンドブロックは「離陸」「前進」「旋回」「移動停止(ホバリング)」離陸です。

3Dシミュレーションさせた動画です。(螺旋-地面に飛行のプログラミング)

各種飛行コマンドの後に「待ち時間のブロック」を使っているのはコマンドが実行(処理完了)する時間が必要だからです。
例えば「離陸」だとドローンが飛び上がり空中で停止するまで1~2秒は必要です。
「待ち時間のブロック」を入れないで、例えば「前進」ブロックを使うと斜め前に飛び上がることになります。
機械を制御するときは実行(処理完了)する時間も考えてプログラミングする必要があります。

【システム要件と機能拡張Scratch Extension(s2e)について】
Windows7,8,8.1,10 ※Windows7のグラフィックドライバが古い場合は正確に表示しないことがあります。
なお「DroneSimulator2」フォルダと「Smaple_Programming001」はインストールする必要はありません。USBメモリからでも起動させて使うことが可能です。

・Andorid端末 Android OS 7.0以上(ドローン実機を飛ばす場合)
・WiFi環境(ドローン実機を飛ばす場合)

改良点
・3Dシミュレーター側の動作速度の補正機能追加。
・常時ビーコンを発信するように変更。
・リスニングポートで接続待ちをして、接続があれば別スレッドを起こしてそちらで接続関係の処理、リスニングポートは再度接続待ちに戻る。
(Webサーバーと一緒でマルチコネクションに対応する、1つのKidsDrone.apkに対して1つのコネクション)
・接続してきたKidsDrone.apkとコネクションをリスト管理
・適当な周期でKidsDrone.apkの生存確認をする。1秒毎
・応答の無いKidsDrone.apkはリストから削除。
・ステータス中のidが変わったときはアプリが再起動・再接続しているのでたとえアドレスが同じでもユーザー確認なしにはコマンドを送らない。
・送りたいKidsDroneのアドレスへコマンドを送信。
・1機だけでも複数の機体へ同時に送ってもOK。

※s2eファイルとは
Scratch2 Offline Editor単体では外部のハードウェアデバイスと直接通信することはできません。しかしScratch2 Offline EditorにはScratch Extension(「実験的なHTTP拡張」)と呼ばれるScratchの機能を拡張するための仕様があります。
https://en.scratch-wiki.info/w/images/ExtensionsDoc.HTTP-9-11.pdf
このScratch Extensionの仕組みを利用するとHTTPリクエスト/レスポンスという形で外部のソフトウェアと通信することができます。Scratch2 Offline Editor自体はドローンと通信できなくとも外部のソフトウェア側でドローンと通信するようにすれば良いということになります。実際にScratch Extensionを使ってScratch 2.0の機能を拡張するには、仕様にしたがって拡張子.s2eのファイルに定義をJASONで記述しScratch2 Offline Editorで読み込みます。
記述ファイルの読込みはScratch2 Offline Editorのshiftキーを押しならが「ファイル」を押すと『実験的なHTTP拡張を読込み』と表示され拡張ファイルを選択します。
この仕組みを使いドローンの飛行コマンドを追加しています。

※注意
Windowsタブレットなどのソフトウェア・キーボードではshiftキーを押しならが「ファイル」を押しても『実験的なHTTP拡張を読込み』と表示されません。s2eファイルに記述されたコマンドを使用し保存されたプログラミングファイルをダブルクリックすれば拡張機能が自動的に読み込まれます。

【制限事項】
無断販売不可


Scratch 2 Offline Editorの入手とインストール
すでにScratch 2 Offline Editorがインストールされている場合は割愛してください。

・Scratch 2 Offline EditorはAdobeAIR上で動作します。最初にAdobeAIRのランタイムをインストールします。
https://get.adobe.com/jp/air/

・Scratch2 Offline Editorの入手とインストール
https://scratch.mit.edu/scratchr2/static/sa/Scratch-461.exe

 

 

【Scratch3への対応は?】
HTML5+Unity+WebGLにて開発中
DroneSimulator3 for Scratch 3.0 (仮称)・iPad/タブレットのみでのプログラミング可能へ
WiFi接続ドローンへの対応
・Parrot社のWiFi接続のドローンへの対応
・DJI社のWiFi接続のThelloへの対応他のアプリケーションとの連携・GoogleMap
・SLAMアプリケーション
3D地図データの活用

更新情報
2018/9/1
32bit版追加しました。
(32bit版は64bitOSでも動作します。)
http://kidsdrone.rediscovery.co.jp/scratch/DroneSimulator_x86.zip

2018/9/25
軌跡(ライト)をオン/オフできるようにしました。ライト1でオン、ライト0でオフです。
こんなことが出来ます。Angel in the SKY

メディアでのご紹介

Scratch用ドローンプログラミング飛行3Dシミュレータを公開


窓の杜の(インプレス・ウオッチ)
“Scratch”のプログラムでドローンの動きをシミュレートできる「DroneSimulator2」


ドローン実機に接続して作成したプログラミングでドローンを飛行させることができます
・ 「DroneSimulator2」は「 Kidsdrone」(Androidアプリケーション)と連携してParrot社のミニドローンをシミュレーターとシンクロ飛行させることが可能です。(機体の設定値により誤差はあります)

システム概略図
 Parrot Mini Drone + Android端末 +WiFi Router
対応ドローン一覧
・Mambo
・Swing
・Airborne Night/Cargo、
・Hydrofoil Orak、
・Rolling Spider
Andoridアプリケーション「Kidsdrone」をAndroid端でGoogle Playからインストールします。

詳しくはこちら

関連記事

  1. 中山涼一 2018.08.31 6:14pm

    windowsのOSは64bitではないとだめですか?32bitのWindows7と10では、DroneSimulator2.exeを開けませんでした。OSの問題でしょうか?よろしくお願いいたします。

    • 0
    • 0
  2. deploying 2018.09.02 12:03am

    32bit版追加しました。
    DroneSimulator_x86.zip 
    http://kidsdrone.rediscovery.co.jp/scratch/DroneSimulator_x86.zip

    • 0
    • 0
    • 中山涼一 2018.09.02 8:52am

      早速32bit版を追加いただき、ありがとうございます。問題なく動きました。

      • 0
      • 0
  3. deploying 2018.09.02 12:23am

    ご掲載いたきましてありがとうございました!今後とも出来る限りフリーで配布していきたいと思います。

    • 0
    • 0

今後のイベント

現在予定されているイベントはありません。

イベントカレンダー

アーカイブ

事業内容

・ドローン制御アプリケーションの開発(オープンソースで公開)
・自律型ドローンによるミリ波・マイクロ波によるコンクリート内部検査
・ドローン搭載型各種センサーによる金属表面腐蝕検査
・自律型ドローンによる構造物表面検査
・STEM教育素材の研究と開発
・子ども用ドローンの開発と販売
・Scratchプログラミング教室の運営
・ドローン制御技術に関する情報を発信し制御技術書籍を発行
・ドローンによるレースイベントの開催
・WebGLによるドローンシミュレーターの開発
・ドローンを使った先進的技術の研究・開発

保有商標

商標登録第5984465号
『ドローンフィールド』
----------------------------------
商標登録第6016198号
『ドローンガール』
----------------------------------
商標登録第6062323号
『ドローン女子』

翻訳文書

書籍販売中!

ドローン操縦プログラミングブック
抽選で3名様に【国内正規品】Parrot ANAFIをモニター!

ドローン製作

エアロジーラボ株式会社

3時間飛行可能なハイブリッドタイプのドローンを開発