💬 はじめに

こんにちは!

前回は ROS 2 Jazzy + TurtleBot3 のシミュレーション環境で、
「地図あり」と「地図なし」の自律走行を試してみました🚗💨

今回はその続きとして、
自作ソフトでTurtleBot3を動かす準備に入ります。

…が、その前に!
環境のバージョンまわりでビルドが通らないトラブルが💦
というわけで、今回も ChatGPTさんに相談しながら環境整備していきます。



🖥️ 環境


Ubuntu 24.04

ROS 2 Jazzy

Gazebo Classic

PC:NECのLL750/L(ノートパソコン)

🚧 ビルドができない!? Empyバージョン問題

ビルドが通らず、過去にはファイルを全部手書きしたこともあります😅
あの時は本当に大変でした…。

原因は、Empyのバージョン違いでした。

🔍 ポイント

ROS 2対応は「古いEmpy(3.x系)」

Ubuntu 24.04標準の新しいEmpyではエラーが出ます



さらにやっかいなのが、Ubuntu 24.04では
システム領域扱いになっていて、普通の削除がうまくいかない点です⚠️

🔧 解決手順

① 手動でEmpyを削除

rm /home/sugino/.local/lib/python3.12/site-packages/em.py
rm -r /home/sugino/.local/lib/python3.12/site-packages/empy-*.dist-info

② apt版のEmpyをインストール

sudo apt install python3-empy

これで、
/usr/lib/python3/dist-packages/em.py に正しく入ります。

③ 動作確認

python3 -c "import em; print(em.__file__)"

実行して /usr/lib/... 側が表示されればOK✨

🧩 はじめての自作ソフトビルド

Empy問題が解決したら、
いよいよ 自作ノード(tb3_autorun) のビルドへ!

しかしここでまた別のエラーが…💦

ModuleNotFoundError: No module named 'tb3_autorun.tb3_autorun'

調べてみると、setup.pyのエントリポイント指定が間違ってました。

🛠️ 修正内容

1️⃣ 自作ノードの中身はこちら👇

~/ros2_ws/src/tb3_autorun/tb3_autorun/tb3_autorun_node.py

2️⃣ setup.py の中ほどにある entry_points を修正します。

entry_points={
    'console_scripts': [
        'tb3_autorun = tb3_autorun.tb3_autorun_node:main',
    ],
}

🔁 再ビルド

cd ~/ros2_ws
colcon build --packages-select tb3_autorun
source install/setup.bash

これで実行OK🙌



✅ まとめ

今回できたこと👇

Empyバージョン問題を解決して、ビルドが通るようになった

setup.py の修正で、自作ノードを正しく実行できるようになった


さらっと書きましたが、けっこう紆余曲折ありました💦
本当は「動きのコード」まで行きたかったのですが、
今回はここで 電池切れ🔋 です(笑)



次回こそは、自作の「動きコード」を実装してみます✨

お楽しみに!

🔍 教訓メモ

> ROS2環境では、Pythonライブラリのバージョンずれが原因で
「入ってるのに動かない」現象が起きやすいです。
そんな時は python3 -c "import モジュール名; print(モジュール.__file__)"
でパスを確認するのが近道です。