No. 22-09

ROS を用いたシステム構築技術 1

micro-ROS を活用したセンサデータの可視化

キーワード：ROS/ROS2、micro-ROS、IoT、データ可視化

はじめにロボットシステム開発の分野では、開発効率の向上を目的として、システム開発のためのソフトウェアやツールの標準化が進められています。なかでも、オープンソースの ROS(Robot Operating System) 1)というソフトウェアプラットフォームが関心を集めており、研究分野で広く利用されています。近年、産業用途を強く意識した最新版の ROS2 がリリースされ、産業界への普及が期待されています。そのような動向のもと、大阪技術研では ROS/ROS2 を活用したシステムの研究開発や技術支援を行っています 2)。
ROS/ROS2 の特徴の１つとして、ロボットシステムに求められる分散処理に適した通信機能が挙げられます 3)。本稿では、その通信機能を組み込みシス
テムなどに使われるマイコン(マイクロコントローラ)で利用するために開発された micro-ROS4)を紹介します。また、その活用事例として温湿度センサから取得したデータを可視化するシステムを紹介します。
micro-ROS4)
マイコンは、ハードウェアへのアクセスの容易さや、リアルタイム制御の実現可能性、省電力といった点から、ロボットシステムにおいて広く使用されています。そのため、ROS ユーザから、ROS を使ったシステムでマイコンを容易に使用できる方法が求められてきました。そこで、ROS の後継となる ROS2 が開発される際に、マイコン向けの ROS2 として micro-ROSが開発されました。micro-ROS をマイコンに搭載することで、マイコンの特徴を活かしつつ、ROS2 と同等の通信機能をもたせることが可能となりました。
上述のような経緯から開発された micro-ROS は以下の特徴をもちます。
1. ROS2 の主要な通信機能をサポートし、ROS2 システムとシームレスに接続可能
2. ROS2 の API をベースとした C 言語の API
3. RTOS(Real-Time Operating System)の上で動作するミドルウェア
4. Micro XRCE-DDS を通信プロトコルとして採用

表１ micro-ROS 対応の開発ボードの例 4)
RTOS
FreeRTOSFreeRTOSFreeRTOSFreeRTOS,Zephyr, NuttX-開発用ボード
Renesas EK RA6M5ST NUCLEO-F446ZE
Espressif ESP32
Olimex LTD STM32-E407
Arduino Portenta H7
Raspberry Pi Pico RP2040

表 1 に micro-ROS を搭載できるマイコンが実装された開発用ボードの例と、それらに用いられている RTOS を示します。micro-ROS が動作する RTOS
は、FreeRTOS、Zephyr、NuttX の 3 種類です。な
かでも、FreeRTOS は無償で無制限に扱うことができる MIT ライセンスであり、使える開発用ボートの種類が多数あります。なお、micro-ROS のライセンス
は ROS2 と同じ Apache License 2.0 5)です。また、リソースが少なく、RTOS を導入できないマイコンであっても、一部のものは micro-ROS を搭載できます。
具体的な micro-ROS の使用方法は micro-ROS
公式サイト 4)のドキュメントに記載があります。そのチュートリアルには、micro-ROS 用のプログラムの例
や そ れ を 開 発 用 ボ ー ド に 書 き 込 む 方 法 、 microROS と ROS2 とを通信させる方法などが詳細に記載されています。
温湿度センサデータの可視化
micro-ROS をマイコンに搭載することで、マイコンに接続されたセンサから取得したデータを、ROS2の通信機能を使って送信できます。つまり、ROS2で構築されたシステムやツールは、マイコンを通じてセンサから取得したデータを受信できます。
本稿では、温湿度センサを使って取得した部屋の 3 ヶ所の温度と湿度の値を、部屋の場所とともにROS2 のデータ可視化ツールである rviz2 に表示させるシステムを 1 つの事例として紹介します。そのシステムの構築にあたり、micro-ROS を搭載可能なマイコン Espressif ESP32-PICO-D4 を実装した開発用ボードである M5StickC 6)を使用しました。構築
したシステムの概要を図 1 に示します。

部屋外観の3Dデータ
rviz2の画面表示
データ
読込

ROS2搭載PC

3D CAD等でデータを作成

開発用ボードと温湿度センサ
温湿度センサ

データ送信(wifi)

可視化プログラムとrviz2の実行

開発用
ボード

・ センサを置いた場所を3Dデータ上に表示
・ 温度と湿度のデータを数値と色で表示

センサ値を送信するのためのmicro-ROS プログラムを作成し、書き込む

図１ 温湿度可視化システムの概要
システム構築では、最初に、rviz2 上で現実の部屋を表示するため、センサを設置する部屋のおおまかな状況を 3D CAD などを用いて 3D データにします。なお、作成したデータは rviz2 で読み込めるSTL 形式で保存します。
次に、温度と湿度のデータをセンサから読み込
み、ROS2 の通信プロトコルで送信するプログラムを、micro-ROS の API で作成します。そのプログラムをビルドし、開発用ボードに書き込みます。その後、計測したい場所に温湿度センサと開発用ボードを設置します。この事例では、3 ヶ所に設置しました。
開発用ボードを起動すると、マイコンから温度と湿度のデータが送信されます。
最後に、マイコンから送信された温度と湿度のデータを、rviz2 が読み込んだ 3D データ上に可視化するプログラムを作成します。それを ROS2 が搭載された PC で実行し、さらに作成した 3D データを読み込ませて rviz2 を起動させます。すると、図 1 右のように rviz2 の画面上に部屋の 3D データとセン

図 2 温度と湿度の表示の様子サで取得した温度と湿度が表示されます。図 2 は、
図 1 右の rviz2 の画面表示において、温度と湿度が表示されている場所を拡大したものです。円柱の位置が温湿度センサの位置を示し、その色は温度によって変化します。また、T の後に続く数値が温度[℃]を示し、H の後に続く値が湿度[%]を示します。
図 1 に示すように、センサの数に対応して、上述の表示が rviz2 上に 3 点あります。さらに温湿度センサの数を増やすには、開発用ボードとセンサを用意し、同様のプログラムを書き込むことで可能です。
おわりにmicro-ROS によって、ロボットシステムのみならず、多様なシステムの開発に ROS2 が利用できます。その実現において重要な機能が「分散処理に適した通信機能」です。なお、その詳細については別報 3)にて紹介します。当研究所では ROS/ROS2 によるシステム開発を支援しております。ご興味のある方はお気軽にお問合せ下さい。
参考文献
1) https://www.ros.org/
2) 大阪産業技術研究所テクニカルシート
No.20-13 「ROS を用いたアームロボット制御１
ツール・ライブラリとその活用事例」
3) 大阪産業技術研究所テクニカルシート
No.22-10 「ROS を用いたシステム構築技術 2
分散処理に適した ROS の通信機能」
4) https://micro.ros.org/
5) http://www.apache.org/licenses/LICENSE-2.0
6) https://docs.m5stack.com/en/core/m5stickc

発行日 2022 年 5 月 1 日
作成者 電子・機械システム研究部 知能機械研究室
Phone: 0725-51-2677、0725-51-2678
E-mail: akairyo@orist.jp、miyajima@orist.jp

赤井亮太、宮島健