編集履歴一覧に戻る
chrmlinux03のアイコン画像

chrmlinux03 が 2026年02月18日09時42分25秒 に編集

初版

タイトルの変更

+

【unoQ】ROS2を無理やり入れたにょ【小さなLinux機】

タグの変更

+

Arduino

+

linux

+

unoQ

メイン画像の変更

メイン画像が設定されました

記事種類の変更

+

セットアップや使用方法

ライセンスの変更

+

(MIT) The MIT License

本文の変更

+

# UNO Q × Ubuntu 22.04 (Jammy) で実現する ROS 2 Humble 最速開発環境構築 ## 概要 UNO Q(ARM64)に Ubuntu 22.04 を導入し、その上で ROS 2 Humble を Docker コンテナとして動作させる構成です。 ホストとコンテナのOS世代を統一することで、ARM64環境で発生しやすい依存関係の不整合を回避します。 --- # 1. ホストOS構成 ## OS ![Jammy Jellyfish](https://camo.elchika.com/d601e1c624f740ffcdc5feadabc66c3143f538c6/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f38373864346139632d633739622d343839652d383830322d6137626538616332663037302f61343138646336382d666134312d343166612d386361662d666262366465346661633863/) - Ubuntu 22.04 LTS (Jammy Jellyfish) - アーキテクチャ: ARM64 --- ## xrdp(高速GUIリモート接続) ```bash sudo apt update sudo apt install xrdp -y sudo adduser xrdp ssl-cert sudo systemctl restart xrdp ``` ### 特徴 - 追加クライアント不要(mstsc.exeで接続可能) - 描画転送効率が高い - 低スペックARM環境でも快適動作 --- ## Docker導入 ![Docker](https://camo.elchika.com/631ffb93a207da3b5e8a32685942e4f81a723273/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f38373864346139632d633739622d343839652d383830322d6137626538616332663037302f35663238626536312d613761622d343833642d383334382d656265356230636662343437/) ```bash sudo apt install docker.io -y sudo systemctl start docker sudo systemctl enable docker xhost +local:docker ``` --- # 2. ROS 2 Humble コンテナ起動 ![ROS 2 Humble](https://camo.elchika.com/dc55f2e46e8b14abbaf8be895ae204f9598aa5d0/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f38373864346139632d633739622d343839652d383830322d6137626538616332663037302f32663338666466662d313265632d343837652d393938632d313934306434616265343332/) 使用イメージ: - ROS 2 Humble Hawksbill - osrf/ros:humble-desktop ```bash 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. 環境の永続化(フリーズ) ## コンテナ内 ```bash source /opt/ros/humble/setup.bash ``` ## ホスト側(別ターミナル) ```bash docker commit unoq_ros2_container my_humble_jammy:v1 ``` --- # 5. 爆速起動エイリアス `~/.bashrc` に追記: ```bash 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 ```bash roscore2 ros2 run demo_nodes_cpp talker ``` ## Terminal B ```bash roscore2 ros2 topic echo /chatter ``` 正常に動作すれば `/chatter` にメッセージが表示される。 --- # なぜこの構成が最速なのか ## 1. Jammy統一 - glibc差異なし - Mesa/OpenGL競合回避 - ARM64依存パッケージ衝突回避 ## 2. xrdp活用 - VNCより軽量 - GUI描画が安定 ## 3. Docker隔離 - 環境破壊リスク低減 - イメージ保存で迅速復旧 - 複数バージョン共存可能 # さいごに いつもご清聴ありがとうございます。 朝活の時間で無事完了しました。 ![rviz2](https://camo.elchika.com/5d398a460a4256a6e0279166e80c5ac56d4d5f8c/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f38373864346139632d633739622d343839652d383830322d6137626538616332663037302f63316561313661332d396163322d343065642d393738642d653161393930336133313462/)