0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Zephyr RTOS 〜 micro-ROS 連携 〜

0
Last updated at Posted at 2026-08-30

1. はじめに

今回は掲題の通り、Zephyr で動作する micro-ROS について取り扱います。
本記事では、公式の手順を補完し、正攻法(?)で Zephyr 用の micro-ROS を動かすところまでをご紹介します。

2. micro-ROS とは

micro-ROS は、リソースが限られたマイコン上から ROS2 のエコシステムに参加するためのフレームワークです。

一般的な ROS/ROS2 は Linux などの汎用 OS 上で動作させることが多く、比較的潤沢な CPU やメモリ、ストレージを利用できます。一方、micro-ROS は、CPU・メモリ・ストレージなどのリソースが限られたマイコンを主なターゲットとしており、FreeRTOS、Zephyr、NuttX などの RTOS をはじめとした環境で動作させることができます。

そのため、micro-ROS では ROS2 の機能をすべてそのまま利用するのではなく、マイコン上でも扱いやすい形で ROS2 の通信や実行モデルを利用できるようになっています。

もちろん、micro-ROS を使わず、一つの ROS2 だけで完結させてもシステムは成立するのですが、
『離れた位置の情報を拾うセンサー』や『脚の数を簡単に増減できる多脚ロボット』などを作る場合、
センサーで情報を拾うためだけにパソコンを追加で用意したり、脚1つ1つにパソコンを内蔵するのは過剰スペックであり、物理的に巨大化もします。

そこに対し、500円玉程度の大きさ、数千円程度(もちろん作る対象によります)でそれらセンサーノードやモーター制御ノードなどを実現させられるのが、micro-ROS の強みとなります。

3. Zephyr 用 micro-ROS 公式ページ

公式の micro-ROS のページは下記です。ただし、2022年ごろから更新されていません。

そのため、github のリポジトリを直接見るほうが良さそうです。

4. 開発環境の構築

基本的には、Zephyr 公式の手順に沿うのですが、2026年現時点で micro-ROS は Zephyr の v4.1.0 までしか動作確認ができていません。

micro_ros_zephyr_module の README.md
# micro-ROS module for Zephyr

This module has been tested in Zephyr RTOS v4.0.0 (SDK 0.16.9-rc3), and v4.1.0 (SDK 0.16.9-rc3), using a docker image based on `zephyrprojectrtos/zephyr-build:v0.26.17`.

そのため、今回の記事では、v4.1.0 で話を進めます。

4.1. Zephyr の開発環境

Zephyr 公式の手順も正確性を期すため v4.1.0 を基準にしておきます。

以降は、ubuntu 向けの作業をピックアップして貼り付けてあります。
(Windows 等は先述のページを開いて同等の作業を行ってください)

4.1.1. システム側の構築

OS 毎に一度実施しておく必要のある作業。

下記コマンドでインストール
sudo apt install --no-install-recommends git cmake ninja-build gperf \
  ccache dfu-util device-tree-compiler wget \
  python3-dev python3-pip python3-setuptools python3-tk python3-wheel xz-utils file \
  make gcc gcc-multilib g++-multilib libsdl2-dev libmagic1
venv もインストールしておく
sudo apt install python3-venv

4.1.2. プロジェクト毎の環境準備

プロジェクト毎に実施する必要ある作業。
(zephyrproject は適宜ディレクトリを変えて進めてください)

venv をインストールして環境を構築
python3 -m venv ~/zephyrproject/.venv
source ~/zephyrproject/.venv/bin/activate
west を仮想環境にインストール
pip install west
west を使って Zephyr 本体 を clone
west init ~/zephyrproject

ここで、zephyr リポジトリを micro-ROS に合わせてバージョンを変えておきます。
ブランチ名を付けたい場合は -b [ブランチ名] で指定してください。

tag v4.1.0 を指定してチェックアウト
cd ~/zephyrproject/zephyr
git checkout v4.1.0

先述のコマンドで zephyr/west.yml も v4.1.0 のものに差し替わっているので、それに沿った modules を west コマンドで取得。

west コマンドで関連モジュールを取得
cd ~/zephyrproject
west update

同様に関連ツールも v4.1.0 に沿ったものをインストール。

zephyr 本体の version に紐づく pip package をインストール
west packages pip --install

SDK は README.md に記載のある 0.16.9-rc3 を試したのですがうまく通らず、0.17.4 にしておきます。

version を指定して sdk をインストール
cd ~/zephyrproject/zephyr
west sdk install --version 0.17.4 -t arm-zephyr-eabi

4.2. micro-ROS 環境の準備

公式の micro-ROS リポジトリを取得。

リポジトリを取得
cd ~/zephyrproject/
git clone https://github.com/micro-ROS/micro_ros_zephyr_module.git

README.md に記載されている通りにパッケージを追加。

venv を有効にして実施
pip install catkin_pkg lark-parser empy colcon-common-extensions

4.3. ターゲットを指定してビルド

まずは README.md に記載されているターゲットを指定。

cd ~/zephyrproject/micro_ros_zephyr_module/
west build -b disco_l475_iot1 -p
[201/201] Linking CXX executable zephyr/zephyr.elf
Memory region         Used Size  Region Size  %age Used
           FLASH:      130052 B         1 MB     12.40%
             RAM:       55872 B        96 KB     56.84%
        IDT_LIST:          0 GB        32 KB      0.00%
Generating files from 
/home/taka/zephyrproject/micro_ros_zephyr_module/build/zephyr/zephyr.elf for board: disco_l475_iot1

5. まとめ

本当は Arduino UNO Q で Linux 上の ROS2 と MCU 上の Zephyr micro-ROS 連携を構築したかったのですが、
micro-ROS 公式が現時点で Zephyr v4.1.0 までしか動作確認ができておらず、Zephyr が公式に Arduino Uno Q をサポートした v4.4.0 には届きませんでした。

一応、手元では v4.2.1 辺りまではパッチを充てなくてもビルドが通ることを確認していますが、v4.4.0zephyr-sdk-0.17.4 から zephyr-sdk-1.0.1 に上がった関係でかなり手直しが必要になっているようです。

その後、claude code を使って v4.4.0 でも通るようにパッチ作成等はできたのですが、
まだ動作確認等ができていないので今回は公式のバニラ環境での構築手順までとしています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?