aptpod Tech Blog

株式会社アプトポッドのテクノロジーブログです

産業用データ伝送プラットフォームでROSの画像とってみた

ROSの画像メッセージを遠隔監視したいと思ったことがあるみなさん、

こんにちは。ソリューションアーキテクトの伊勢です。

以前、当ブログではロボット開発プラットフォームのROSとインターネットをつなぐ技術「intdash Bridge」をご紹介しました。

tech.aptpod.co.jp

この intdash Bridge が2023年2月から画像のROSメッセージに対応したので、適用例とともにご紹介します。

その前に

おことわり

これはあくまで"やってみた"記事です。

正式なインストール手順などは公式ドキュメントをご参照ください。

使われている機能

これからご覧いただく動画の構成要素です。

intdash Bridge

ROSメッセージをintdash Serverと双方向通信するためのソフトウェアです。

intdash Bridge

MJPEG形式とH.264形式でROSデータを送受信できるようになりました。

ROSを流れる画像 (/sensor_msgs/Image /sensor_msgs/CompressedImage)をMJPEGで、または動画データ(H.264)に変換してリアルタイムで可視化したり、別のエッジデバイスにPublishしたりできます。

今回はUSBカメラの画像データを確認しています。

なお、ROS2版である intdash ROS2Bridge でも対応しています。

intdash CONTROL CENTER

複数モビリティの運行管制向けソリューションフレームワークです。

以前、一部のコンポーネントをご紹介しました。

tech.aptpod.co.jp

今回は2つのコンポーネントでカメラとロボットに制御コマンドを届けています。

遠隔指示コマンドVisual Parts

Data Visualizerからエッジデバイスにコマンドを送信します。

遠隔指示コマンドデバイスコネクタ(ROS)

エッジデバイスでサーバーからコマンドを受信してintdash Bridgeに連携します。

intdash CONTROL CENTERコンポーネント(黄色)

本題

お待たせしました。

それでは、動画をご覧ください。9分半ほどです。

www.youtube.com

このような構成になっています。

  • 0:48 ROSとは
  • 1:18 ROSの画像表示
  • 1:59 カメラ画像を遠隔監視
  • 3:59 カメラ画像を遠隔制御
  • 5:13 ロボットも遠隔制御
  • 6:12 ロボットも遠隔監視&自動制御

ROSの説明や構成図を飛ばしたい方は6:44ぐらいからどうぞ。

まとめ

今回は、intdash Bridgeとintdash CONTROL CENTERの組み合わせによるエッジデバイスでのカメラ制御を行いました。

ROSは柔軟にノードを追加してメッセージを再利用できるところがいいですね。

intdashを使ってインターネットと双方向通信ができることでさらに応用の幅が広がります。

なお、Upstreamした画像データは他データと同期したタイムスタンプでクラウドに保存されるため、あとから再生・確認・分析が可能です。

参考

ちなみに今回ROSノードはこのような構成にしました。

ROSノード(rqt_graph)

/switcherノードが

  • カメラの画像メッセージをSubscribe
  • intdash Bridgeからコマンド/intdash/ctl_cmd_stringをSubscribe
  • コマンドのカメラ番号に一致する画像メッセージを画像変換
  • /switcher/image_rawにPublish

/intdash/intdash_bridgeノードが

  • /switcher/image_rawをAgentに連携
  • カメラ番号や/rosbridge_websocketから受けたロボット制御プログラムのセンサーデータもAgentに連携

しています。

予告

intdash CONTROL CENTERでは、複数モビリティへのタスク配分やルート設定など運行管理機能の拡充も予定しています。近々、当ブログでご紹介したいと思います。

www.aptpod.co.jp