はじめに
株式会社センシンロボティクスでエンジニアをしております、 @s-yamasaki-sr です。
今回は、 DJI Dock を我々が開発している SENSYN CORE のシステムと連携させ、点検・監視業務の効率化への取り組みの具体的な技術的挑戦や知見を共有させていただきます。
取り組みの背景
弊社はこれまで、ドローン(UAV)や地上車両(UGV)等を活用した施設点検、災害状況の把握、計器類の読み取りといった、現場のオペレーション効率化に取り組んできました。
そういった取り組みの次のステップとして、定期的に決まった画像や動画を安定かつ効率的に収集し、解析する業務フローの実現を目指し、 DJI Dock との連携に着手しました。
システムアーキテクチャと使用技術
まずは、 DJI Dock 機体と SENSYN CORE のクラウドシステムがどのように連携しているかをざっくり紹介します。
飛行指示
ユーザーがブラウザから飛行ルート管理システムへアクセスし、飛行ミッションの作成・実行を行います。
飛行ルート管理システムは DJI Dock 制御システム飛行に関する指示を送り、 MQTT Broker を介して遠隔の DJI Dock へ飛行コマンド(開始、停止、帰還など)をリアルタイムに送信します。
データの流れ
DJI Dock は飛行完了後、撮影された画像・動画データを、ネットワークを通じて Amazon S3 へアップロードします。
DJI Dock 制御システムは Amazon S3 へのアップロード完了情報を MQTT 経由で受け取り、データが完全に揃ったことを確認した後、飛行ルート管理システムおよび解析システムへデータへ伝えます。
解析システムは送信されてきたデータをユーザーの用途に応じて処理して結果を確認できるようにします。
遠隔からのリアルタイム情報の確認
DJI Dock が RTMP で映像視聴システムにカメラ映像などを送ります。
映像視聴システムは WebRTC や HLS といったWebフレンドリーな形式に変換します。これにより、ユーザーはブラウザから低遅延でリアルタイム映像を監視できます。
また、 MQTT を利用し送信されてきた DJI Dock やドローンの情報は飛行ルート管理システムがwebsocketで扱えるようにするので、ブラウザからリアルタイムな機材の情報が確認できるようになっています。
苦労した点とその解決策
最も苦労したのは、やはりハードウェア連携特有の難しさです。特に、 DJI Cloud API のドキュメントに記載された挙動と実際の現場での挙動に微妙なズレがあることへの対応です。例えば、送信例に記載は無いが実際は送らないと動かないパラメータが存在していたりしました。
こういった問題に振り回されないために「テスト回数を減らすための工夫」を行いました。
- 事前検証の徹底
- 実際に飛行させなくても検証できる部分は、可能な限り入出力の仮定を事前に詰めて、 DJI Dock 側と SENSYN CORE 側のインターフェース定義を強固にしました
- ロギングの最適化
- 現場でのテスト飛行はコストが高いため、通信ログとシステムログを詳細に記録し、一度のテストで可能な限りの情報を持ち帰る環境を構築しました
- モック・シミュレーターの活用
- 特定のステータス変化やエラーをモックで再現し、飛行なしでシステム側のロジック検証を繰り返しました
これらにより、現場でのテスト時間を劇的に短縮し、開発効率を維持することができました。
今後の展望と読者へのメッセージ
DJI Dock の連携は、我々が目指す「データ駆動型オペレーション」の仕組みの一環に過ぎません。
今回の取り組みで培った「遠隔の IoTデバイスとの通信制御技術と自動データパイプライン」は、ドローンに留まらず、 UGV やネットワークカメラ、さらには様々なセンサーといった多様なデバイスとの連携にも展開できるはずです。
私たちは、「空・陸・固定」のあらゆる現場からデータを収集し、それを SENSYN CORE の解析基盤で価値に変える、統合された IoTデータプラットフォームを構築しています。
「リアルな現場の課題」と「最先端のクラウド技術」を繋ぐ、エキサイティングな仕事に関わりたいエンジニアの方にとって、弊社には無限の挑戦の機会があります。
興味を持っていただけた方は、カジュアル面談で会社について詳しく知ることができるので、こちらから応募してみてください。
