Главная причина ошибки No module named 'roslaunch'

Проблема

Вы запускаете или загружаете некоторый пакет ROS, но видите сообщение об ошибке вида

roslaunch_error.txt
No module named 'roslaunch'

Причина

Главная причина в том, что roslaunch из ROS 1, тогда как вы используете ROS 2.

Следовательно, вы каким-то образом смешиваете пакеты ROS 1 и ROS 2.

Следующим шагом для вас будет выяснить, какой пакет использует roslaunch, а затем найти эквивалент ROS 2 для этого пакета. /home/uli/.local/lib/python3.12/site-packages/xacro/init.py

search_roslaunch.sh
ag -i roslaunch

Иногда это происходит потому, что вы установили Python-пакеты где-то (вне основного каталога ROS2, например, с помощью pip), и эти пакеты ROS1 всё ещё находятся в вашем PYTHONPATH.

Если вы используете ros2 launch, см. нашу статью Хак ROS2 для включения DEBUG-логирования во время ‘ros2 launch’ для простого хака, чтобы увидеть стек вызовов, откуда импортируется roslaunch.

В моём случае я установил копию xacro в ~/.local/lib/python3.12/site-packages/xacro/__init__.py.

Поэтому мне нужно было удалить xacro с помощью

pip_uninstall_xacro.sh
pip uninstall xacro

а затем установить версию xacro для ROS2 с помощью

install_ros_xacro.sh
sudo apt -y install ros-jazzy-xacro

Check out similar posts by category: ROS