A razão central por trás de No module named 'roslaunch'

Problema

Você está executando ou lançando algum pacote ROS, mas vê uma mensagem de erro como

roslaunch_error.txt
No module named 'roslaunch'

Razão

A razão central para isso é que roslaunch é do ROS 1, enquanto você está usando ROS 2.

Portanto, você deve estar misturando pacotes ROS 1 e ROS 2 de alguma forma.

O próximo passo para você seria descobrir qual pacote usa roslaunch e então encontrar um equivalente ROS 2 para esse pacote. /home/uli/.local/lib/python3.12/site-packages/xacro/init.py

search_roslaunch.sh
ag -i roslaunch

Às vezes isso acontece porque você instalou pacotes Python em algum lugar (fora do diretório principal do ROS2, por exemplo usando pip) e esses pacotes ROS1 ainda estão no seu PYTHONPATH.

Caso você esteja usando ros2 launch, veja nosso post Hack ROS2 para habilitar log DEBUG durante ‘ros2 launch’ para um hack fácil de ver o stacktrace de onde roslaunch está sendo importado.

No meu caso, eu instalei uma cópia de xacro em ~/.local/lib/python3.12/site-packages/xacro/__init__.py.

Portanto, eu precisei desinstalar xacro usando

pip_uninstall_xacro.sh
pip uninstall xacro

e então instalar a versão ROS2 de xacro usando

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

Check out similar posts by category: ROS