Dropbox

DJI Sparkのスフィアモード(360度パノラマ)撮影を試してみた

Android版のDJIGO4もv4.1.15(+firmware v01.00.0700)になりSparkにSpherical Panoモードの撮影が出来るようになりましたので、さっそく試してみました。

以前に追加された180度パノラマでは21枚の写真を自動的に撮影しましたが、スフィア・モードでは全景を写すために実に46枚もの写真を撮ります。そのため100秒ほど時間を要します。テストのために露出を変えて4回撮影したところ、ローバッテリー・アラームが出てしまいました。さすがにSparkのバッテリーでは、何枚もの全景写真を撮るのは難しいです。

[ 露出 ]
自動露出の場合、一枚目の撮影が基準になります。この時、空の部分が多いため、地上部分が露出不足になりがちです。マニュアルで露出設定を行う方が良い結果が得られると思います。

[ Stitch/結合 ]
180度パノラマまでは、とりあえずDJIGO4にダウンロードすると自動的に結合され、その場でSNSにシェアを行うことが出来ました。スフィアでは、今のところDJIGO4ではあまり上手に結合してくれません。

そこで活躍するのはMicrosoft Image Composite Editor(以下ICEと呼びます)です。ICEは自動的にほぼ完璧な写真の結合を行ってくれます。360度パノラマらしい作例として地上の風景を円形に表現するにはSTITCHのProjectionでFishEye, StereoGraphicあるいはOrthoGraphicを選択します。地平線を円形にするためには視点を調節します。

わたしはビルの高さが際立つStereoGraphicが気に入っています。

DJI Spark Spherical Pano - Shanghai, China

必ずしも46枚の写真をすべて使用せずにICEで見栄えの良い部分だけを切り取って一枚の写真にするのも良い使い道かもしれません。一枚物の写真は別として、パノラマ合成をするのならば、一気に全部撮ってしまい、あとからどの方向を切り取るかを考えれば良いので楽な気がします。

下の写真は、上の円形写真とは別テイクですが、ほぼ同じ写真の一部をICEで抜き出したものです。もともと複数写真の合成ですので、一部といえども解像度は高いです。

DJI_0245_crop

FacebookなどでVR風に動かせる全方位写真としてアップロードする方法もあります。これについては長くなるので、次のエントリーで紹介します。

Rodeo110の5.8GHzアンテナをクローバーリーフ・アンテナに換装してみました。もともと付いているのは下のような地味なアンテナです(中央のアンテナ)。これでも特別に問題があるわけではありませんが、FPVドローンでよく見かけるクローバーリーフ・アンテナにすると多少は電波の飛びが良いのではないかと思いました。

入手したのは下のようなもので、ちょっとオシャレな色付けがされています。

こんなコネクターが付いているものであればOKです。同軸ケーブルの長さは7cmの物がちょうど良いです。

本体の上蓋をとり、コネクターブロックの下にあるネジを外します。コネクターブロックに付いている電源コネクターや2.4GHzアンテナは、そのままでコネクターブロックを浮かすことが出来ればOKです。

コネクターブロックを浮かして、元の5.8GHzアンテナを抜き取り新しいアンテナを挿入します。

同軸ケーブルのルートはネジ穴の外側にします。

出来上がり。

鉄筋マンションのためか、もともと家の中でもFPV画像が見えなくなるデッドポイントがありました。それが改善すれば大成功と思ってテストしてみましたが、新しいアンテナでもまったく同じ結果でした。それでオリジナルのアンテナに戻しましたが、換装後の写真も可愛らしいと評判が良いのでまた付け替えて見ようかと思います。

まだ全然、ちゃんと飛ばせていないRodeo110ですが、ドローン友達の勧めも有ってカメラを交換することにしました。この改造は多くのRodeo110ユーザーが行っているものでRunCamのカメラに換装します。これにより広角でより良い画質の映像をFPVで得られるようになります。

新規に用意したカメラはRunCam Micro Swift 2.1mm NTSCというものです。私が買ったサイトによるとNTSCとPAL、レンズも2.1mmと2.3mmがありました。わたしはより広角な2.1mmを選択しました。

オリジナルのカメラと新しいカメラでマウント幅は同じですが、体積が随分と大きくなるので単純な置き換えは出来ません。そのため色々と部品を削ったりしなければなりません。次のYouTubeビデオの内容を参考に作業を行いました。

まずは元々付いているカメラを外します。機体の構造はややこしくはないので、いくつかのネジを外せば簡単にカメラを外すことが出来ます。

マウント部分の幅はRunCamも同じなので、とりあえずそのまま取り付けます。メイン基板にぶつかるのでやや上向きになりますが、これがちょうど良い角度です。

付属のケーブルを使用しますがピン配置が違うので赤い電源線と黄色のビテオ信号線を基板側で入れ替えます。二つ目の写真が完成図です。カメラ側には2つのコネクターがありますが外側のビデオ信号がある方だけを使用します。
 

上の蓋がカメラにあたるので短くします。寸法はざっくり写真で見たとおりにすれば大丈夫です。グラスファイバー製ですので金ノコがあれば簡単に切り取ることが出来ます。
 

この状態で動作確認を行いました。見た目にこだわらなければ、このまま飛ばしても大丈夫な気がします。カメラの基板が露出しないタイプであれば、わたしもこのまま飛ばすことにしたかも知れません。下にあるビデオは、この状態で飛ばしたものです。カメラの角度は、ほとんど調整出来ませんが、概ね良好な位置になりました。やや上向きに見えますが、この状態で水平に置いて床も見えますし、前進飛行の際にはかなり前傾姿勢になるので、これくらいでちょうど良いはずです。

赤いフロントカバーを取り付けるためには、この部品をなんとか戻さなければなりません。これが結構苦労します。

まず下の丸い足を切り取り、カメラのコネクターが当たる部分に穴をあけ、全体的に薄くします。小さなプラスチック製ですが、一番多用したのは金ノコです。あとはリューターがあると便利です。実際に取り付けながら、当たる場所を削り取っていき、最終的には下のような形状になりました。これでも組み立ての時はかなり無理をしながらネジを締めねばなりませんでした。

赤いフロントカバーも中央の突起部分が邪魔になりますので切り取ります。

以上で完成です。組み上がってみると、そこそこちゃんと出来ているようにみえます。

カメラ換装前と後の動画の比較ビデオです。画像がシャープになっているのと何と言っても圧倒的に広角になっているのが分かります。FPVの経験はまだほとんどありませんが、オリジナルカメラの画角では飛ばしにくいと思います。

FPVドローンWlakera Rodeo110がやってきた

FPV(First Person View) = ゴーグルを付けてドローンの視線で操縦すること、を体験したくてRodeo110という超小型(飛行重量147g)ながらパワフルなドローンを入手しました。

まずは色々と準備作業です。

プロペラガードの装着。広いところだけで飛ばすのなら要らないかもしれませんが、室内や障害物の多い場所で飛ばすことも多くなりそうなのでプロペラガードも用意しました。もともと付いている足を外して、それの代わりに取り付けるものです。足を外す時に気づいたのですが、スクリューがロックタイトが塗られているにも関わらずかなり緩かったです。これはモーターのマウントネジでもあるのでゆるんでししまうのは致命的な故障になります。定期的に緩みをチェックする必要がありそうです。

FPVゴーグルであるGoggle4に録画ユニットを取り付けた。小さな四角の箱でコネクターからリード線が何本か出ているだけのものです。Goggle4の電源線から+5Vを分岐して供給、後はGoggle4の映像出力(コンポジット映像信号)を入力しただけです。このユニットでMicroSDカードに映像を記録します。FPV信号ですしコンポジット映像出力なので画質は期待できませんが、記録として残せるようになりました。

注意) FPVには5.8GHz帯の周波数を使用していますが、日本国内でこれを使用するためにはアマチュア無線の免許が必要です。

軽く室内やマンションの庭で飛ばしてみた印象を買いておきます。
– 丈夫そう。かなり墜落したり転げ回りましたが、壊れません。プロペラはだいぶ傷つきました。予備が一組ありますが、追加の予備プロペラも用意した方が良さそうです。
– バッテリーは5分ほどしか持ちません。練習だとあっという間です。予備電池も2つ発注しました。その後、室内でホバリング練習しながら時間を測ってみると最長で9分弱持ちました。最初に5分と思ったのは勘違いかも。
– STABILIZE Flight Modeはそこそこ安定している。が、それでも結構敏感に動作するので油断するとあちこちぶつかります。
– スタントをこなすにはADVANCED Flight Modeにする必要があります。少しだけ試して見ましたが、すぐにフリップして墜落しました。どこか広いところに出かけて十分な高度を確保してから練習してみたいと思います。
– 普通の操縦もままならない状態なのでFPVゴーグルを付けるとメロメロです。特に高度が良くわからない。これも広いところで練習したいと思います。

SparkのビデオとログからDashWareで様々なデータを重ね合わせたビデオが作ることが出来ます。詳しくは以前の記事を御覧ください。

ひとつ問題が残っています。それは高度を表示すると海抜表示になってしまいます。希望としては離陸時を0とした相対的なグランドレベルの高度が表示したいです。そのための方法が公式FAQに書かれています。以下、その抜粋です。

Altitude is based on sea level, how do I make it ground-based?

How to make ground based altitude–it will be a single step at the start of every project for you:
-Figure out what the ground altitude is (for example, 750 meters)
-Make a clone of the data profile you are using, so that you can edit it. This can be done in the Data Profile Editor (File Menu > Edit Data Profiles…)
-In this clone add a Math Calculator (bottom left area) that takes the Altitude in meters and subtracts 750. Call this new channel “Ground Based Altitude”, or whatever you want.
-Map your new channel to our appropriate “Positional \ Ground-Based Altitude” type, based on your desired units.
-Save the new data profile.

Every time you make a change to a data profile, or want to use a different data profile in a project, you need to remove then re-add your data file to the project. So re-add your data file to your project and select your new cloned data profile.

Add a gauge to your project that shows ground based altitude, or edit an existing gauge and change the gauge’s input data type to ground based.

これがなかなかに難解で実現できるまでに随分と試行錯誤が必要でした。実際にわたしが行った手順を紹介いたします。

– FAQの手順に入る前に使用しているゲージの編集画面から目的の数値のData Typeを調べておきます。ビデオ画面上のゲージをダブルクリックすると下の画面が開きます。高度に割り当てられているはAltitude / Z Position (Meters)であると確認できます。

– まずグランドレベルの高度を認識します。海抜何メートルから離陸したかということでデータを見ていればすぐにわかります。わたしの場合は116メートルでした。

– Data Profileをコピーし編集を行う。File/Edit Data Profileを開きます。前回の記事で紹介したCSVファイルでは自動的にFlytrexというData Profileが使われますので、それをクローン(上の方の左から二つ目のアイコン)します。Flytrex — Clone (1)というファイルが出来るので、それを編集します。

– 左下のウインドウでMath Calculatorという項目を追加します。Input ValueにElevation Meter、Contstanに116と入力Output Valueは自分の定義値、My Altitudeなどとします。Math OperationはSubtract(Inout Value – Parameter)です。これで目的の値がMy Altitudeという名前で得られます。

– 次に右側のウインドウで得られた値をData Typeにマップします。Input Data ColumnをMy Altitude、Map to Data CategoryをPosition、Map to Data TypeをAltitude / Z Position (Meters)で作成します。実はAltitude / Z Position (Meters)はすでに存在しているので、新しく作った項目を一番上に持ってきて正しく選択されるようにします。

Data Profileを保管したら、いちどProjectからData Fileを削除して、新しいData Profileを使ってCSVファイルを読み直せば目的の高度値が得られているはずです。

DJI Sparkで撮影した動画にログファイルから速度や高度などの情報を重ね合わせて表示する方法の紹介です。

Let me introduce how to overlay flight information gauge to Spark footage.

[ ログファイルの取り出し / Retrieve flight information log file ]
Androidの場合です。内部ストレージの DJI/dji.go.v4/FlightRecord/DJIFlightRecord*.txt が目的のログファイルです。ファイル名にタイムスタンプが含まれています。目的の動画のタイムスタンプより少し前のものを選びます。拡張子はtxtですが実際にはバイナリーファイルです。

For Android, flight information log file is at DJI/dji.go.v4/FlightRecord/DJIFlightRecord*.txt of Android internal storage. File name includes timestamp. File extension is ‘txt’, but this is binary file actually.

[ ログファイルの変換 / Convert log file to csv ]
ログファイルを読める形に変換しなければなりません。いくつかの方法があるようですが、わたしは以下のwebサイトを使用しました。出力はcsvファイルです。

Flight information log file has to be converted to csv file. I use following web site.

http://www.djilogs.com/#/

[ ログデータと動画の合成 / Overlay log data to footage ]
DashWareというWindowsプログラムで行いました。
わたしはうまく組み込めていませんが、DJI Phantom用の追加ゲージなども公開されています。

I use Windows program called DashWare. There is additional gauge data for DJI Phantom also (I can not use this well yet).

– Project画面で動画ファイルとcsv変換したログファイルを追加します。Gaugeについては後から変更しますのでProject Templateは気にしなくても良いです。 Add footage file and csv converted log file on the project wizard. You do not need to care about ‘Project Template’ here, we can change the gauge later.

– Gauge Toolboxで好みのゲージを探して貼り付けます。 Add your favorite gauges from Gauge Toolbox.

– Synchronization画面で動画とログの同期を行います。 Adjust synchronization point by using Synchronization tab.

以上です。ここまでは試行錯誤あるもののさほど難しくはありません。 That’s all about setup.

[ Create Videoでエラー / Error when Create Video ]
最後にCreate Videoで合成後のビデオを出力します。この時に”Error rendering in MediaFoundationMedia Foundation Error + -2147467259″というエラーが出てビデオを作る事が出来ませんでした。海外の掲示板に元のビデオになんでも良いから音声トラックを付けるとエラーしないと書かれていました。確かにSparkから取り出した動画には音声トラックがありません、適当なMP3ファイルをiMovieで動画ファイルに付けたらエラーしなくなりました。

I got an error message ‘Error rendering in MediaFoundationMedia Foundation Error + -2147467259’ when I initiated Create Video function. It could be fixed by adding any audio tracks to the Spark footage (original Spark footage on the micro SD card does not have audio) before add the DashWare project.

[ 高度が0から始まらない / Altitude does not start from 0 ]
飛行高度の表示が目的でしたが離陸時の高度が0ではありませんでした。説明では海抜になっていますが、ちょっと変な数字です。いずれにしても欲しいのは離陸場所からの相対的な高度です。これにはちょっとしたトリックが必要です。

I want display altitude meter on my Spark video. However it does not start from 0. Some of explanation texts said that it is sea level altitude, but it seems to me something different from the sea level also.

公式FAQの”Altitude is based on sea level, how do I make it ground-based”にさらっと方法が書かれています。説明が簡単すぎてなかなか理解出来ませんでした。具体的な手順は以下のリンクを御覧ください。

Official DashWare FAQ mentions about how to change the altitude value from the sea level to ground level. But it is difficult to understand because of too simple explanation. I wrote how to change altitude from sea level to ground level below. This article written in Japanese, but you may find some screenshots for your reference.

DashWare+Sparkビデオで高度表示をグランドレベルにする

DJI Sparkで撮影した動画 #DJISpark

本格的な空撮を考えると、ひとつランクが上の機種で同じくDJIの製品であるMavic Pro(販売サイトへのリンク)に軍配が上がることは間違いがありません。Mavic Proなら4K動画は撮れますし本格的な3軸ジンバル搭載です。またバッテリーの持ち、電波の飛距離どれをとってもSpark(販売サイトへのリンク)の敵ではありません。

私がSparkを買った理由は、本体だけなら300gと軽量なので旅行や散歩に気軽に持ち歩ける「お散歩ドローン」あるいは手のひらから離陸してジェスチャーでコントロールする「手乗りドローン」として魅力を感じたからでした。ところが、実際に手にしてみると本格的な空撮がしたくなってしまいます。

ということで練習がてら上海市内の公園で撮影したビデオ画像をYouTubeにアップロードしましたのでSparkでもこれくらいは撮れるぞというサンプルとして紹介いたします。ただしiMovieから直接アップロードしたためか最高画質が720Pになっています。若干ダウングレードした画質になっていると思いますので予めお断りしておきます。

SparkとMavic Proの比較ということでは著名YoutuberであるCaseyの動画が良くわかりますので、こちらも参考として貼っておきます。

DJI Sparkがやってきた #DJISpark

実は本格的な空撮ドローンには若干興味を失っていてトイドローンをRC飛行機のように飛ばす方に魅力を感じていました。とは言うものの各社の新製品は追いかけていました。DJI Sparkのグランドセントラル駅での発表ビデオも当然の如く観ました。小型で300gという重量は家族旅行にも気軽に持っていけることに魅力を感じました。加えてジェスチャーによるコントロールは画期的なものと言って良いでしょう。値段も戦略的で、二軸ながらジンバルも付いていてセルフィードローンと 比較出来る価格は立派です。

各国の価格を比較すると中国人民元での購入が一番安いことも手伝って購入を決めました。

[ Spark Fly More Comboに買い足すべきもの ]

バッテリー
Fly More Comboには2つのバッテリーが付いていますが、聞くところによると現実的な飛行時間はひとつのバッテリーで10分強とのことです。2つではとても足りないのは目に見えています。また、充電器はバッテリー3個を同時に充電できるようになっています。追加バッテリーを最初から買っておくべきでしょう。

バッグ
ショルダーバッグが付属していますが、Spark本体を無造作に放り込むタイプでかなり不安です。中国製で良いものがいくつか出ていますので、そのうちのひとつを買いました。92元(やく1500円)と格安ですが、十分に使えるものです。

フード
日光の元で携帯電話の画面を見るのは苦労します。簡単なものを買いましたが、装着していると画面の端にタッチするのが難しいので、別の形のものを試す予定です。DJIからMavic用の物が出ているので、店で聞いてみましたがSparkでは使えないとのことでした。まだ工夫の余地ありです。

OTGケーブル

RC(送信機)と携帯電話はWiFiで接続するように説明書には書かれていますが、ときおり接続が切れたりするそうです。RCと携帯電話を有線で接続すると良好とのことです。接続にはOTGケーブルというものが必要です。DJIからも純正パーツとして出ていますが、家にあったものを使用しています。RC側にOTGケーブルを接続して、携帯電話側は普通のケーブルを使用します。

[ 飛行の前に ]
まずは携帯電話上のアプリケーションDJI GO 4からアクティベーションを行います。Fly More Comboの場合は、機体とRCは自動的に接続されます。携帯電話とRCをWiFiで接続してアクティベーションを行います。この時はSIMが入っていてデータ通信が行える携帯電話を使用することをお勧めします。

アクティベーションを行った後にDJI Careに加入しました。アクティベーション後24時間以内に加入しないと行けません。

オフライン地図のダウンロードも行っておきました。オフライン地図のダウンロードメニューはすぐに見つかりますが、ダウンロードのメニューが中国の地図だけになったり、その他の地域だけになったりして戸惑いました。これは機体の設定画面で中国の地図を使用するかどうかの設定によります。日本の地図がダウンロード画面で見つかりませんが、そういうものなのでしょうかね?

中国でドローン実名登録を行いました / Drone registration in China

中国で飛行重量250g以上のドローンを飛行させる場合の実名登録が2017年6月1日から開始されました。実際の罰則規定は2017年8月31日以降に開始されますので、それまでに登録を完了し、登録番号とQRコードを機体に貼り付けておかなければなりません。

Real name registration for flying drones with a flight weight of 250g or more in China began on June-1-2017.
Actual penalty provisions will start after August-31-2017, so you must complete registration and put the registration number and QR code on your drone.

注目の小型ドローンDJI Sparkも飛行重量300gですので中国国内で飛行させるには、この登録が必要です。

Flight weight of DJI Spark is also 300g, this registration is necessary to fly it in China.

まずは外人的に気になる所を箇条書きしておきます。
– 実名登録は日本のパスポート番号で問題なく行えました
– 住所の登録は海外でも大丈夫そうです
– 中国の携帯電話が必要です、登録時にSMSで認証コードを送ります、日本の携帯電話を入れてみましたが携帯電話番号が正しく無いと言われてしまいました。
– ドローンは自作ドローンも登録出来るようになっていました、メーカー製だとドロップダウンリストから選択します
– 登録画面は今のところ中国語だけです

I list some items for foreigners.
– Real name registration could be done without problem with Japanese passport number
– Registering an address seems to be OK even overseas
– I need a Chinese mobile phone number, Need to receive an authentication code by SMS at the time of registration, I tried to use a Japanese mobile phone number but it was not accepted.
– Handmade drone was supposed to be able to register. If you use a drone made by manufacturer, you can choose from the drop down list
– The registration screen is currently only in Chinese

実際の登録 (only in Japanese)

URL: https://uas.caac.gov.cn/

かなり素直な作りですし、特別にIEを要求されるような事もありませんでした。私はmac OSのSafariで登録しました。大きな流れとしては「用户注册」画面で個人の登録を行い、その後でドローンの登録を行います。個人の情報スクリーンでは携帯電話とユーザー名以外は後からでも変更可能です。

当然、複数のドローンを管理できます。自作ドローンとメーカー製ドローンで別々の登録画面があります。メーカー製ドローンの場合、メーカーと型番をドロップダウンリストから選択しますが、メーカー名も中国語で表示されるので別途調べておかなければなりません。私の場合Parrot Bebopを登録しましたが、Parrotは「派诺特」と中文表記されることを知っておかないと見つけられません。メーカー製ですと重量等は予め登録されているので、シリアル番号だけ登録すれば良いです。

登録後QRコードを生成します。予め登録したメールアドレスに注意事項と共にQRコードが送られてきます。またドローン管理画面からQRコードをダウンロードすることも出来ます。

紙飛行機にパワーを! PowerUpFPVを飛ばしました

紙飛行機を自由に操縦したいというコンセプトで開発されたPowerUp。その第二弾であるFPV搭載モデルのKickstarter版を入手しました。手に入ったのは12月のことでしたが、いろいろあってやっと初飛行にこぎ着けました。

単独でも飛行可能な紙飛行機(Invadorという名前です)にパワーユニットを装着して飛ばします。パワーユニットはドローンで定評のあるParrot製です。


まずは組み上げて室内テストを行いました。

ついでにモーターの慣らしとバッテリーのテストを兼ねて予備を含めて7個あるバッテリーが空になるまで、色々な速度でモーターを回しておきました。

風の弱い日を選んで近所の公園に出掛けました。50m x 70mくらいの広場なので、なんとかぎりぎり飛ばせる広さと思います。


30分ほど飛ばしていて、この一回だけ満足な飛行が撮影できました。パワー的には十分飛ばせるのですが、有り余るほどの力はありません。そのためエレベーターを的確に調整するのが重要だと感じました。紙を折っただけですので、飛ばす度に点検が必要です。紙飛行機ですので左右の翼のバランスは微妙にずれていると思いますが、自動的に2つのプロペラの出力が調整されて、まっすぐに飛びます。安全な高度に上げることさえ出来れば安定しているし操縦性もかなり良いです。

最後は泥だらけになってしまったので飛行機本体はゴミ箱に捨ててきました。紙ですからね、使い捨ですね。また次の機体を折るだけです。

飛ばした感じは、ドローンの飛行とは当然違います。昔、飛ばしていたエンジン付きのRC飛行機ともまた趣きが違ってなかなか面白いです。

もうちょっと簡単に高度を稼げる機体を自作してみようかとも考えています。


これは機体に搭載されたFPV用カメラの画像です。オマケで最後は街灯に激突しています。

#PowerUpFPV