💬 はじめに
こんにちは!
前回は 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__)"
でパスを確認するのが近道です。



