Tomofiles Note

ドローンとインターネット、そして人との関係を考えるソフトウェアエンジニアのアウトプットブログ

ドローンと向き合った2Q(もうだいぶ経つけど)のまとめ

こんにちは、Tomofilesです。

前回の1Qが9〜11月だったので、本来2Qは12〜2月のはずでした。

tomofiles.hatenablog.com

しかしまぁ、3月があっという間に過ぎて、気づけば4月も終わりそうです。
もはやクォーターという区切りで語る事自体がおかしいですが、まぁいいです、ある意味自分の活動の期間に意味を付けて区切っているわけですから。

正直、前回と同じ温度感で活動を振り返る気力はないですが、1Qも含めてどんな活動をしてきたか、ざっくりと整理していきたいと思います。
手当たりしだい手を付けてきたように見えるこのブログですが、一応ストーリーを考えて記事のテーマを決めています。

なので、そのテーマごとに振り返ることにします。
それでは行きましょう。

DronecodeとCesiumの学習

tomofiles.hatenablog.com
tomofiles.hatenablog.com
tomofiles.hatenablog.com

1Qから取り組んでいたことですが、CesiumJSとDronecodeのライブラリの習得に関するシリーズです。

目的としては、以下の2つですかね。

  • これら2つのライブラリの習得
  • 3D地図描画とドローンのコラボレーションの有効性の確認

結局、業務でドローンに関わってはいたにもかかわらず、ドローンを実際にプログラミングしたことがないということから、オープンソースプラットフォームのDronecodeプロジェクトをテーマに、ドローンプログラミングの感覚をつかもう、そして、せっかくならドローンから取得できた飛行データを、3D地図に表示してみよう、という経緯です。

Dronecode自体は、PX4やMAVSDKといった各プラットフォームが非常に扱いやすいので、それほど困ったことはなかったですね。(それなりに詰まりながら、ちょっとずつ前に進んだ感じですけどね)
それより、CesiumJSの地図描画でぶち当たった、座標変換の仕組みを飲み込むのが、非常に大変でした。

機体製作の学習

tomofiles.hatenablog.com
tomofiles.hatenablog.com
tomofiles.hatenablog.com

続いて、機体製作に関するシリーズです。

目的は、オープンソースで機体を組み立て、その仕組みを知ること、ですね。

Dronecodeのシミュレータでドローンプログラミングを学んでいたので、次は実機だ! と、ドローンの機体を作ることになったのですが、中国からドローン機体組み立てキットを取り寄せて組み立てはしたものの、結局一度も飛行させることなく、フライトコントローラ(Pixhawk4)でハードウェアシミュレーションして、このシリーズは止まっています。

正直途中までやってて感じていましたが、ドローンのハードウェアにはそれほど興味がなかったですね。
昔はラジコンとかプラモデルとか、実際に作るものに興味があったのですが、いま改めて触ってみると、意外なことに惹かれませんでした。不思議なものです。

むしろ、Part 3からの、ラズパイをFCに接続して信号を送受信して、インターネットで転送するあたりが、一番おもしろかったです。
やはり、私の情熱を向けるためのベースは、ソフトウェアなのかもしれません。

オリジナルプロダクトの考察

tomofiles.hatenablog.com
tomofiles.hatenablog.com

そして、オリジナルのドローンサービス開発に関するシリーズです。

目的は、ここまで学んだことを、サービス開発に昇華することです。

ドローンプログラミング、地理情報の扱い、そして、ドローン実機の仕組み、と広く学んできたことをインプットに、一つのサービスにまとめて、オリジナルプロダクトを作ろう、というのが経緯です。

クラウドサービスを想定して、GCPのマネージドサービスを活用してアーキテクチャを構築し、ドローンの実機にもアプリケーションを搭載して、オールインワンなサービスを目指して開発しました。
参考にしたモデルは、インドのドローンサービスベンチャー、Flytbaseのプロダクトでしたね。

スピード重視で、早く作って出す(どこにも出してないけど)を心がけて、開発してました。
結局これも、実際にフライトを試すまではやっていないですが、リアルタイム映像配信を含めて、最低限の機能を実装して、ソースコードを公開しました。

調査・検証

tomofiles.hatenablog.com
tomofiles.hatenablog.com
tomofiles.hatenablog.com

これまでの活動の中で、たびたび出てきた、知識不足を調査したり検証したりした、単発記事です。

CesiumJSのところで書いた座標変換に関する調査・検証の結果を、単発の記事でまとめました。
座標変換は1〜2Qの範囲の中で、一番むずかしいトピックで、正直いうとちゃんと理解できていないです。
この辺は数学と物理の勉強がそもそも足りていないのがアダとなっていますが、どんな概念があって、理屈があって、それがどのようにライブラリのAPIと関係しているのか、というざっくりとしたレベルでの把握ができたという意味では、収穫があったと感じています。

それから、リアルタイム映像配信の実装方式として、WebRTCを採用したので、その調査・検証をした結果を、記事にしました。
WebRTCは、Webの皮を被ったマルチメディアプログラミングとネットワークプログラミングの集合体なので、今回みたいにドローンでブラウザレスで利用するときの難易度は高いものでした。
それでも、WebRTCを構成する各コンポーネントを一つずつ紐解いて理解していって、最終的にGCP上に仕組みを構築できたので、ある程度の知識はつきましたね。
ここで調査・検証した結果を、オリジナルプロダクトに反映して機能に昇華するところまで、一通りできました。

業界と世界の動向調査

tomofiles.hatenablog.com
tomofiles.hatenablog.com
tomofiles.hatenablog.com
tomofiles.hatenablog.com

そして、私の中でいま一番ホットなトピック、世界のドローン業界の動向調査に関するシリーズです。

半年間、ハードウェア、ソフトウェア両方からアプローチして、ドローンを理解しようと努めてきました。
ドローンを扱うということに、どのような知識と経験が必要なのかが、一通り把握できたと感じています。

その上で、これらの習得した知識を活かすためには、ドローンがいま、どのような状況に置かれているかを、知る必要があります。
ドローンを取り巻く状況は、世界でどのようになっているのか、それを知ること・発信することが、日本のドローン発展のためになにか役に立つのではないか、そういう気持ちで、このシリーズを書いていました。

そして、結果的に、日本ではUTMの分野が世界から周回遅れになっていることがわかりました。
UTMはある意味、航空管制システムです。航空管制は基本的に官の領域ですが、欧米の動向としては、民がドローンの航空管制を担う動きが目立ちます。
日本も民を巻き込んで実証実験を進めてはいますが、現在のアメリカのように、UTMプラットフォームのマーケットが確立していません。
そのため、ここが、私がドローンのソフトウェア開発のエンジニアとして、ポジションを確立するための狙いとすることにしたのです。

まとめ

こうして半年間の活動を振り返ってみると、なかなか濃い学習ができたと感じます。
もちろん、これはすべて知識のレベルでしかなく、経験のレベルまで落とし込めていないところもありますが、業務でもドローンを扱っていますので、業務上の経験とうまくリンクして、割と良い知識と経験の循環を構築できています。

色々挑戦してみましたが、結局私は、ドローンのハードウェアには興味なくて、民間操縦ライセンスを取得しましたがドローンを自分で操縦することよりも、ドローンを自動操縦で遠隔制御して、その飛行データと地理データを、地図を駆使して活用することに、おおいに興味があることがわかりました。

業務上、5年ほど地理関連のライブラリを使用してきたこともあり、GIS周りは多少の知識があります。やってて面白いですし、この辺のスキルを強化して、武器にしてみるのも、キャリアとして面白いかもしれないですね。

さて、そろそろ私もQiitaに投稿してみたいなと思っていたので、これから少しずつ挑戦してみますかね。
このブログは、引き続きドローン業界の世界動向の調査に関する記事を、書いていこうと思います。

それでは、今回はこの辺で。