株式会社 車輪の再発見

Deploying Drones for the Enterprise

メニュー

【DroneSimulator3】 操作マニュアル

アプリケーションの概要
【DroneSimulator3】は、作成したドローン飛行プログラミングを3D空間にシミュレーションすることができます。
MITメディアラボ(マサチューセッツ工科大学)が開発したプログラミング言語学習環境“Scratch3.0”のオンライン・バージョン(HTML5)にドローン制御用ブロックを追加し、描画ステージをWebGLとUnityで拡張しています。

(クリックで拡大)

使い方はとても簡単です
1.http://scratchflight.net/ に接続
2.拡張機能を読み込む
3.ドローン制御ブロックを配置しプログラミング
4.実行

Parrot Mamboに加えてDJI Ryze Tello EDUを追加しました。

ドローン3Dオブジェクトは順次追加

接続
【DroneSimulator3】は無料・無登録で使用できます。
ブラウザのみで使用することが可能です。
(商用利用も可能ですがアクセスが集中する場合は制限します。)
http://scratchflight.net/
Chrome,Edge,FireFoxのいずれかブラウザで接続してください。

ランディングページ(クリックで拡大)

拡張機能の呼び出し
ドローン制御ブロックや3D描画用ステージを追加するには左下の拡張機能呼び出しボタンを押します。

拡張機能呼び出しブロック

拡張機能パネル
下の方に機能パネルとして追加しています。

(クリックで拡大)

左からParrotMambo、DJI Ryze Tello EDU、Phantom4、産業用ドローンです。

(クリックで拡大)

それではParrot Mamboのオブジェクトの呼び出して実際にプログラミングしてみましょう。
Parrot Drone Simulatorパネルをクリックします。

(クリックで拡大)

拡張機能を読込み中になり、右上の窓にUnityが読み込まれます。

(クリックで拡大)

ドローンと背景が表示されたら準備完了です。

(クリックで拡大)

サンプルプログラミングファイルを用意していますので、ダウンロードして使ってみましょう。
「ファイル」から使うサンプルプログラミング・ファイルを選択します。
ダウンロードフォルダにダウンロードされますので「ファイル」から「コンピューターから読み込む」でファイルを読込みます。

(クリックで拡大)

初期では8種類のサンプルプログラミングファイルを読み込むことが可能です。
Parrot Mambo用が4種類、DJI Ryze Tello EDU用が4種類です。

サンプルプログラミングファイルは PC内のダウンロードフォルダにダウンロードされますので、「ファイル」―「コンピューターから読み込む」で対象のファイルを読み込んでください。

以下のようにドローン制御用ブロックが組み込まれた、サンプルプログラミングが表示されると読み込み成功です。

(クリックで拡大)

サンプルプログラミングの実行
ブロックの最上部にイベントブロックがあり「スペースキーが押されたとき」とあります。スペースキーを押すと実行します。


(クリックで拡大)

次にDJI Ryze Tello EDU のオブジェクトの呼び出し 、Tello を操作してみます。
DJI Ryze Tello EDUパネルをクリックし拡張機能を読み込みます。

(クリックで拡大)

ドローン制御用ブロックが組み込まれた、サンプルプログラミングが表示されると読み込み成功です。

(クリックで拡大)

サンプルプログラミングの実行
下のブロックの最上部にイベントブロックがあり「旗がクリックされたとき」とあります。
緑の旗をクリックすると実行します。


(クリックで拡大)

演習
「離陸ブロック」を配置しクリックすると離陸します。
離陸して初めて他の制御ブロックが有効になります。
「着陸ブロック」を配置しクリックすると着陸します。

ヒント
まず「離陸ブロック」で離陸させます。離陸して始めて他の制御ブロックが有効になります。
ここで注意することは「離陸ブロック」のすぐ下に「着陸ブロック」を配置しても、「離陸」「着陸」といった動作をしません。しないどころか何も起こりません。
「離陸ブロック」の下に、たとえば制御ブロックで「1秒待つ」と入れてやる必要があります。
ドローンを制御するには命令が完了するまでの一定時間を考えてプログラミングしてやる必要があります。

アイコン
描画窓の右上のアイコンを押すとステージが拡大します。
再度押すと元の大きさに戻ります。
描画窓の右下のキューブアイコンをクリックすると視点を変えることが可能です。

現状の課題
・サーバーのリソースが貧弱なため読み込みに時間がかかります。
・現状ではドローン実機とのシンクロ飛行機能はありません。
・ドローン実機とのシンクロ飛行はAndroidタブレット、iPad用を予定しています。
 (詳しくは次の開発ロードマップをご覧ください。)


scheduled for release

DroneSimulator3アプリケーション構造概念図
現在は移動コマンドだけですが、ドローンからのLive動画を利用しディープ・ラーニングで形状や色を認識しプログラミングを可能にします。複数台を制御するなどエンターテインメント用にも拡張できます。
Scartch3.0のブラウザバージョンはHTML5で構成されているためWebGLと親和性が高いです。Unityの実装はコリジョン(衝突判定)や物理演算が容易だからです。


(クリックで拡大)

プレスリリース
https://prtimes.jp/main/html/rd/p/000000003.000037829.html

fabcross
https://fabcross.jp/news/2019/20190417_droneflightsimulator3.html?fm=side_news
ICT教育ニュース
https://ict-enews.net/2019/04/17rediscovery/
Drone NEXT
http://drone-next.jp/news/welfare/dronesimulator3/h
朝日新聞デジタル
https://www.asahi.com/and_M/pressrelease/pre_1739023/
exciteニュース
https://www.excite.co.jp/news/article/Prtimes_2019-04-16-37829-3/
梅田経済新聞
https://umeda.keizai.biz/release/11113/
ドローンまとめニュース
https://drn-matome.net/?p=1128
WMR Tokyo – 人工知能
https://wmr.tokyo/ai/2019/04/25922/
時事ドットコムニュース
https://www.jiji.com/jc/article?k=000000003.000037829&g=prt

ROBOT MEDIA
https://robot.mirai-media.net/stem-app-drone/

#シンクロ飛行が出来る【DroneSimulator2】【KidsDrone】も継続して配布

(クリックで拡大)

追記

バッテリー残量
・実機接続時はバッテリー残量として実機のバッテリー残量を返します。

ロール・ピッチ・ギャズ・ヨー
・それ以外の項目(ロール・ピッチ・ギャズ・ヨー)は現在ターゲットとしているミニドローンでは値を取得できないため常に0が返ります。また、実機が接続されていない場合は0が返ります。

移動コマンド
・上昇・下降、前進・後進、右移動・左移動で指定する値は相対速度です。
右旋回・左旋回で指定する値は相対角速度または角度です。

速度・角度の設定
・移動速度・旋回速度は[-100,+100]
(シミュレータ上だけであれば描画可能な各速度は[-∞,+∞]ですが実機の制御には使えません。)
旋回ブロックには角度を指定するものがありますがこの場合は[-180,+180]です。
このとき、Scratch側で設定する値100は、実機に設定してある最大移動速度に対する100分率の値です。
また、例えば前に-100は後ろに+100と等価、右に100は左に-100と等価なのですが、小学生だと学年によっては負数を習っていないはずですので、あえて前進・後進、右移動・左移動等を分けて指定できるようにしてあります。

ライト
ライトは[0,1]です。0は消灯、1は点灯。
(ARSDKでは[0,255]の値をもっています、ライトがオプションで点灯するような計画があったのかもしれません。)

フリップ
処理が終了するまで自動でフリップします。

動作
・基本的に一度指定すると移動停止しない限りその値で移動し続けます。
ただし角度指定の旋回ブロックは指定した角度旋回するとそれ以上は旋回しません。
できるだけ正確に指定角度旋回させたい場合には角度指定の旋回ブロックを使用してください。
また角度指定の旋回ブロックの実行には回転角に応じて実行するのに時間がかかりますので、角度指定旋回ブロックの後には一定時間待機させたほうが正確に飛行します。

組合わせ
・例えば前進に続けて右移動を実行するようにブロックを組めば斜め右前に進むことになります。

4軸同時制御
Scratch(node/JavaScript)と通信の都合でどうしても前進と右移動に僅かなずれが発生するので、一括して4軸同時に指定できるブロックを設けてあります。
前項目の前進+右移動に組んだ上記のブロックの組合わせの例では、無限に等分された直線で円を構成することになります。

離陸について
・離陸時の上昇速度や高度は指定できません。機体の制御に依存します。
(シミュレーター上だけであれば取得可能ですが実機の制御には使えません。)

機体の(絶対/相対)座標
・機体の(絶対/相対)座標は取得することができません。GPS付の機種なら可能です。
(シミュレーター上だけであれば取得可能ですが実機の制御には使えません)
またScratchのバックエンドはnode/JavaScriptですのでループを作ったも常に等間隔で動作するわけではありません。
ですのでうまくブロックを組み立てないと誤差が蓄積して思ったとおりに動かないことが多いです。
例えば、なんらかの数式に基づき図形に合わせて飛行させたい場合、Scratchの時間関数を使って前回実行時刻と現在時刻の差分と速度ベクトルから位置を計算し、次の速度ベクトルを計算する。といった実装をするほうがよりきれいな図形を描くことができます。
こちらから提供しているサンプルプログラミングファイルに多用しています、レベルに合わせて実装してください。
また、60fpsでループ毎に実行すると約16ミリ秒に1回処理をすることになりますが、特に移動速度が遅い場合などこの時間ではほとんど機体は動きませんので計算上の位置と実際の位置とのズレが大きくなります。こういう場合には例えば5ループに1回、あるいはループ毎に前回指示を送ったときの時間差分が0.3秒や0.5, 1秒以上になったときに位置計算・速度ベクトルの変更指示をするようにブロックを組み立てたほうが良い飛行結果が得られることが多いです。

実機を飛ばす場合のヒントと注意
・実機飛行時は電池の新旧にもよりますがバッテリー残量30%を切ったあたりで電池を交換していただくほうが過放電を避けて長く使用することができます。
・満充電で長期間放置すると電池が膨らみ損傷・発火・電池寿命の低下に繋がりますので数日以上使用しないのであれば30-50%程度で保管していただいたほうがいいです。
・飛行した直後は電池が熱くなることがありますが、このまま充電するのも電池寿命が短くなる原因となりますでのできるだけ冷ましてから充電したほうがよいです。
・10-15分連続して飛行するたびにモーターが冷えるまで休ませたほうがモーターの故障を抑えることができます。
・モーター部をフライトコントローラー(機体の真中部分に)近づけすぎると磁気センサーやジャイロ等に異常が生じて正常に飛行できなくなる可能性があります。
(複数機体を持ち運ぶ場合などできるだけモーター部が他の機体のフライトコントローラーに近づかないようにケース等に入れて運んでいただくほうがよいです。)
・現在対応しているのはParrot社製ミニドローンですが、この機体は機体下部の下向きのカメラで地面のトラッキングを行いドリフトを防止しています。
・このため光沢の強い床材の場合、あるいは暗所では正常にトラッキングできずにホバリング時にドリフトしてしまうことがあります。
・速度や高さにもよりますが、机から机に飛ばしたい場合、途中に机があったりすると超音波測定で飛行する高さが変わってしまったりします。飛行経路上はできるだけ障害物などがないようにしてください。
・[KidsDrone]がミニドローンを認識しない場合は、Bluetoothが正常に認識されていないことが多いため他のデバイスの通信を切ったり、タブレット機などの安定して通信可能な筐体の端末を使ってみてください。
・ゲームパッドで制御不能になった時に割り込みができるようにしています。教室での使うとには是非安全対策のために[KidsDrone]がインストールされた端末にはゲームパッドを接続してください。
・こちらも参考にしてください。
http://www.rediscovery.co.jp/?page_id=245

PS
シミュレーターでは描画しませんが、グラバーの開閉キャノン砲写真を撮影するコマンドは使えます。

関連記事

  1. 2017.04.08

    お花見とDobby

今後のイベント

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

イベントカレンダー

アーカイブ

事業内容

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

保有商標

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

翻訳文書

ものづくり 工作

書籍販売中!