Что делать когда пишет в системе ROS при использов...
Создано: 13 апреля 2025 г.
Создано: 13 апреля 2025 г.
Что делать когда пишет в системе ROS при использовании gazebo следующее: [gazebo-2] process has died [pid 54221, exit code 255, cmd /opt/ros/noetic/lib/gazebo_ros/gzserver -e ode worlds/empty.world name:=gazebo log:=/home/darya/.ros/log/e206b0d0-1863-11f0-9269-b398c73190a8/gazebo-2.log].
log file: /home/darya/.ros/log/e206b0d0-1863-11f0-9269-b398c73190a8/gazebo-2*.log
Сообщение [gazebo-2] process has died ... exit code 255 ...
указывает на то, что при запуске Gazebo что-то «падает» (crash). Чаще всего такие ошибки связаны либо с несовместимостями версий ROS/Gazebo/плагинов, либо с проблемами драйверов (например, видеокарты), либо с отсутствием нужных библиотек или некорректным путём в переменных среды. Вот несколько шагов, которые обычно помогают найти и устранить проблему:
Проверить содержимое лога
В сообщении написано, где хранится лог:
/home/darya/.ros/log/e206b0d0-1863-11f0-9269-b398c73190a8/gazebo-2*.log
Откройте файл (или несколько таких файлов, если их там несколько) в любом текстовом редакторе и посмотрите, что пишется в последних строках перед падением. Часто там указано, какой конкретно плагин или библиотека вызвали ошибку.
Убедиться, что установлены все нужные пакеты
ros-noetic-gazebo-ros
, ros-noetic-gazebo-plugins
и т. д.).Перезапустить, предварительно «почистив» окружение
source /opt/ros/noetic/setup.bash
(или zsh
, если у вас zsh) перед запуском любых команд ROS.source /путь_к_вашему_workspace/devel/setup.bash
.roslaunch gazebo_ros empty_world.launch
или аналогичную команду).Проверить драйвер видеокарты (особенно если у вас nvidia)
gazebo
напрямую (из терминала) без ROS и посмотреть, падает ли он так же.glxgears
).Посмотреть, нет ли конфликтов в переменных среды
GAZEBO_RESOURCE_PATH
, GAZEBO_PLUGIN_PATH
, LD_LIBRARY_PATH
не содержат неправильных путей.echo $GAZEBO_PLUGIN_PATH
и т. п.Проверить версии Gazebo
Попробовать отключить плагины
Если в вашем world-файле загружаются какие-то сторонние плагины (например, от робота, датчиков и т. д.), попробуйте запустить пустой мир empty.world
(если вы не делали этого раньше). Если пустой мир запускается нормально, значит проблема в конкретном плагине. В логах это обычно явно видно.
Если вы после этих шагов всё ещё сталкиваетесь с ошибкой, то:
gazebo-2.log
, где есть информация об ошибке.rosversion -d
) и Gazebo (gazebo --version
).gazebo
без ROS (т. е. просто в терминале).Таким образом можно точнее локализовать, из-за чего происходит падение.