Проблема
Вы запускаете или загружаете некоторый пакет ROS, но видите сообщение об ошибке вида
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
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а затем установить версию xacro для ROS2 с помощью
sudo apt -y install ros-jazzy-xacro