178【unoQ】ROS2を無理やり入れたにょ【小さなLinux機】
UNO Q × Ubuntu 22.04 (Jammy) で実現する ROS 2 Humble 最速開発環境構築
UNO Q(ARM64)に Ubuntu 22.04 を導入し、その上で ROS 2 Humble を Docker コンテナとして動作させる構成です。
ホストとコンテナのOS世代を統一することで、ARM64環境で発生しやすい依存関係の不整合を回避します。
1. ホストOS構成
OS
- Ubuntu 22.04 LTS (Jammy Jellyfish)
- アーキテクチャ: ARM64
xrdp(高速GUIリモート接続)
sudo apt update
sudo apt install xrdp -y
sudo adduser xrdp ssl-cert
sudo systemctl restart xrdp
特徴
- 追加クライアント不要(mstsc.exeで接続可能)
- 描画転送効率が高い
- 低スペックARM環境でも快適動作
Docker導入
sudo apt install docker.io -y
sudo systemctl start docker
sudo systemctl enable docker
xhost +local:docker
2. ROS 2 Humble コンテナ起動
- ROS 2 Humble Hawksbill
- osrf/ros:humble-desktop
docker run -it \
--name unoq_ros2_container \
--net=host \
--privileged \
-e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
osrf/ros:humble-desktop
オプション解説
| オプション | 理由 |
|---|---|
| --net=host | DDS通信の安定化 |
| --privileged | USBやデバイスアクセス許可 |
| DISPLAY共有 | GUIアプリ表示 |
| X11マウント | rqtやrvizの動作 |
3. 時間が掛かる工程(目安)
| 作業 | 所要時間 |
|---|---|
| イメージPull | 10〜30分 |
| apt更新 | 15〜40分 |
| docker commit | 5〜15分 |
※ ARM64 + eMMC/SD環境ではI/Oがボトルネックになりやすい
4. 環境の永続化(フリーズ)
コンテナ内
source /opt/ros/humble/setup.bash
ホスト側(別ターミナル)
docker commit unoq_ros2_container my_humble_jammy:v1
5. 爆速起動エイリアス
~/.bashrc に追記:
alias roscore2='xhost +local:docker && docker run -it --rm --net=host --privileged -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix my_humble_jammy:v1 /bin/bash -c "source /opt/ros/humble/setup.bash && /bin/bash"'
6. 動作確認
Terminal A
roscore2
ros2 run demo_nodes_cpp talker
Terminal B
roscore2
ros2 topic echo /chatter
正常に動作すれば /chatter にメッセージが表示される。
なぜこの構成が最速なのか
1. Jammy統一
- glibc差異なし
- Mesa/OpenGL競合回避
- ARM64依存パッケージ衝突回避
2. xrdp活用
- VNCより軽量
- GUI描画が安定
3. Docker隔離
- 環境破壊リスク低減
- イメージ保存で迅速復旧
- 複数バージョン共存可能
さいごに
投稿者の人気記事





-
chrmlinux03
さんが
前の水曜日の9:42
に
編集
をしました。
(メッセージ: 初版)
-
chrmlinux03
さんが
前の水曜日の12:48
に
編集
をしました。
(メッセージ: 昔の章を追加)
ログインしてコメントを投稿する