Диагностика и типовые проблемы
Эта страница помогает быстро проверить состояние BRover-E5 и разобраться с типовыми ситуациями: ровер не находится в сети, не открывается веб-интерфейс, нет видеопотока, не видны ROS 2-топики или не работает управление.
Перезапуск сервисов может временно прервать управление ровером, видеопоток, SSH-сессию или подключение к веб-интерфейсу. Если ровер может начать движение, сначала установите его в безопасное положение.
Быстрый выбор проблемы
| Ситуация | С чего начать |
|---|---|
| Ровер включён, но не находится в сети | Ровер не находится в сети |
| Не получается подключиться по SSH | Не удаётся подключиться по SSH |
| Не открывается веб-интерфейс | Не открывается веб-интерфейс |
| Веб-интерфейс открыт, но ROS недоступен | Веб-интерфейс открыт, но ROS недоступен |
| Нет изображения с камеры | Нет изображения с камеры |
| Не открывается code-server | Не открывается code-server |
| Компьютер не видит ROS 2-топики | Компьютер не видит ROS 2-топики ровера |
| Не работает управление | Ровер не реагирует на пульт или команды из веб-интерфейса |
| Есть проблемы с CAN или fallback-сетями | Проблемы с CAN или Проблемы с fallback-сетями |
Быстрая проверка состояния
Если доступ по SSH уже есть, начните с общей проверки:
systemctl --failed
В исправном состоянии список failed-сервисов должен быть пустым.
Проверьте ключевые сервисы:
systemctl status ros_nodes.service --no-pager
systemctl status camera.service --no-pager
systemctl status fastdds.service --no-pager
systemctl status canhat.service --no-pager
systemctl status code-server@pi.service --no-pager
Проверьте сетевые адреса:
ip -br addr
Проверьте открытые порты:
ss -tuln
Обычно на ровере должны быть доступны:
| Порт | Назначение |
|---|---|
22/tcp | SSH |
8080/tcp | веб-интерфейс |
8090/tcp | code-server |
9090/tcp | rosbridge |
9999/tcp | web_video_server |
11811/udp | Fast DDS Discovery Server |
Проверка версии образа ОС
Проверьте версию установленного образа:
grep '^IMAGE_VERSION=' /etc/os-release
Ожидаемый формат:
IMAGE_VERSION="broverOS_vX.Y"
Если строка IMAGE_VERSION не найдена, посмотрите полный файл:
cat /etc/os-release
Рекомендуется использовать самую свежую версию образа broverOS. Инструкция по перепрошивке microSD-карты приведена в разделе Обновление образа ОС.
Ровер не находится в сети
Проверьте, в каком сетевом сценарии должен быть доступен ровер.
- Обычный Wi-Fi
- Wi-Fi fallback
- Ethernet fallback
По умолчанию ровер пытается подключиться к одной из сетей:
SSID: TurtleBro / TurtleBro5G
Password: turtlew001
Проверьте:
- ровер включён и завершил загрузку;
- компьютер подключён к той же Wi-Fi-сети;
- в интерфейсе роутера видно устройство
broverXX; - имя
broverXX.localсоответствует номеру ровера.
Если ровер не смог подключиться к известной Wi-Fi-сети, он может создать собственную точку доступа.
Параметры:
SSID: имя хоста ровера, например brover01
Password: turtlew001
IP-адрес ровера: 192.168.50.1
После подключения к этой сети проверьте:
ssh pi@192.168.50.1
Если Wi-Fi нестабилен, подключите Ethernet-кабель напрямую к Raspberry Pi ровера и к компьютеру.
В этом режиме ровер доступен по адресу:
192.168.123.1
Проверьте подключение:
ssh pi@192.168.123.1
Подробнее см. раздел Сетевой fallback.
Не удаётся подключиться по SSH
Проверьте подключение по имени хоста:
ssh pi@broverXX.local
Если имя хоста не работает, используйте IP-адрес:
ssh pi@<IP-адрес ровера>
Для fallback-сетей используйте:
ssh pi@192.168.50.1
ssh pi@192.168.123.1
Проверьте:
- компьютер имеет сетевой доступ к роверу;
- ровер включён и завершил загрузку;
- IP-адрес или hostname указаны правильно;
- используется пользователь
pi; - если настроены SSH-ключи, выбран правильный ключ.
Подробнее см. разделы SSH-подключение и SSH-ключи.
Не открывается веб-интерфейс
Показать диагностику веб-интерфейса
Проверьте адрес:
http://broverXX.local:8080
или:
http://<IP-адрес ровера>:8080
Если SSH-доступ есть, проверьте локально на ровере:
curl -I http://127.0.0.1:8080
Ожидаемый результат — HTTP-ответ от веб-сервера, например 200 OK.
Проверьте сервисы:
systemctl status ros_nodes.service --no-pager
ss -tuln | grep ':8080'
Мягкое восстановление:
sudo systemctl restart ros_nodes.service
Подробнее см. раздел Веб-интерфейс.
Веб-интерфейс открыт, но ROS недоступен
Показать диагностику rosbridge и ROS-сервисов
Если страница открывается, но веб-интерфейс сообщает, что ROS недоступен, проверьте rosbridge_server.
ros2 node list
В списке должна быть нода:
/rosbridge_server
Проверьте порт rosbridge:
ss -tuln | grep ':9090'
Проверьте сервис и логи:
systemctl status ros_nodes.service --no-pager
journalctl -u ros_nodes.service --no-pager
tail -n 80 /var/log/ros_nodes.log
tail -n 80 /var/log/ros_nodes.err
Мягкое восстановление:
sudo systemctl restart ros_nodes.service
Нет изображения с камеры
Показать диагностику камеры и видеопотока
Видеопоток в веб-интерфейсе формируется из ROS-топиков камеры. За камеру отвечает camera.service, а за HTTP-поток — /web_video_server.
Проверьте сервис камеры:
systemctl status camera.service --no-pager
Проверьте, видит ли система USB-камеру:
lsusb
ls -l /dev/v4l/by-id
ls -l /dev/v4l/by-path
Проверьте ROS-топик камеры:
ros2 topic list | grep camera
ros2 topic info /camera1/image_raw
Проверьте web_video_server:
curl -I http://127.0.0.1:9999
ss -tuln | grep ':9999'
Проверьте логи камеры:
tail -n 80 /var/log/camera.log
tail -n 80 /var/log/camera.err
journalctl -u camera.service --no-pager
Мягкое восстановление:
sudo systemctl restart camera.service
Если камера не определяется в lsusb или отсутствует в /dev/v4l/by-id, проверьте подключение камеры к Raspberry Pi и перезагрузите ровер.
Не открывается code-server
Показать диагностику code-server
Проверьте адрес:
http://broverXX.local:8090
или:
http://<IP-адрес ровера>:8090
Если SSH-доступ есть, проверьте сервис:
systemctl status code-server@pi.service --no-pager
ss -tuln | grep ':8090'
curl -I http://127.0.0.1:8090
Для curl нормальным ответом может быть перенаправление на страницу входа, например 302 Found.
Мягкое восстановление:
sudo systemctl restart code-server@pi.service
Подробнее см. раздел VS Code / code-server.
Компьютер не видит ROS 2-топики ровера
Показать диагностику Fast DDS Discovery Server
На ровере по умолчанию используется Fast DDS Discovery Server.
Проверьте сервис на ровере:
systemctl status fastdds.service --no-pager
ss -tuln | grep ':11811'
Сервис должен быть active (running), а порт 11811/udp должен быть доступен.
На компьютере проверьте переменные окружения:
echo $ROS_DISCOVERY_SERVER
echo $ROS_SUPER_CLIENT
Для подключения через Discovery Server обычно используются:
export ROS_DISCOVERY_SERVER="<IP-адрес ровера>:11811"
export ROS_SUPER_CLIENT=TRUE
Если ros2 topic list пустой или не обновляется, перезапустите ROS daemon на компьютере:
ros2 daemon stop
ros2 daemon start
Подробнее см. раздел Подключение к ROS 2 через Discovery Server.
Ровер не реагирует на пульт
Показать диагностику управления с пульта
Проверьте органы управления:
CH5должен быть в нижнем положении;- для первого теста
CH7лучше установить в нижнее положение; - стики должны менять значения в ROS-топике
/joy.
Проверьте ROS-ноды:
ros2 node list
В списке должны быть:
/joy
/radiolink_control
/control_move
Проверьте топики:
ros2 topic info /joy
ros2 topic echo /joy
ros2 topic info /cmd_vel
Если /joy не меняется при движении стиков, проверьте подключение приёмника или USB-адаптера пульта.
Подробнее см. раздел Управление с джойстика.
Ровер не реагирует на команды из веб-интерфейса
Показать диагностику управления из веб-интерфейса
Управление из веб-интерфейса проходит через цепочку:
web UI -> rosbridge_server -> /cmd_vel -> /control_move
Проверьте:
ros2 node list
ros2 topic info /cmd_vel
ss -tuln | grep ':9090'
В списке нод должны быть:
/rosbridge_server
/control_move
Топик /cmd_vel должен иметь подписчика /control_move.
Переключатель CH5 относится к управлению с пульта и не влияет на управление из веб-интерфейса.
Если команды движения не выполняются, также проверьте:
- ровер не находится в аварийной остановке;
- питание исполнительной части подключено;
- колёса не заблокированы механически.
Проблемы с CAN
Показать диагностику CAN
Для пользовательских задач используйте can1. Интерфейс can0 используется системными компонентами ровера.
Проверьте сервис настройки CAN:
systemctl status canhat.service --no-pager
canhat.service — разовый сервис настройки. После успешного выполнения нормальным состоянием может быть active (exited).
Проверьте пользовательский CAN-интерфейс:
ip -details link show can1
Ожидаемые параметры:
- CAN FD включён;
bitrate 1000000;dbitrate 8000000;- интерфейс находится в состоянии
UP.
Прослушивание пользовательской шины:
candump can1
Не используйте can0 для пользовательских тестов без необходимости. Ошибка в системной CAN-шине может нарушить работу низкоуровневой электроники ровера.
Подробнее см. раздел Работа с CAN на роботе.
Проблемы с fallback-сетями
Показать диагностику fallback-сетей
Проверьте сетевые fallback-сервисы:
systemctl status network-fallback.service --no-pager
systemctl status wifi-ap-fallback.service --no-pager
systemctl status hostapd-wifi-fallback.service --no-pager
systemctl status dnsmasq-fallback.service --no-pager
systemctl status dnsmasq-wifi-fallback.service --no-pager
Проверьте адреса интерфейсов:
ip -br addr
Ожидаемые адреса:
| Режим | Интерфейс | IP-адрес |
|---|---|---|
| Wi-Fi fallback | wlan0 | 192.168.50.1/24 |
| Ethernet fallback | eth0 | 192.168.123.1/24 |
Если ровер уже перешёл в режим Wi-Fi fallback, автоматического переключения обратно в режим клиента при появлении известной Wi-Fi-сети не происходит. Чтобы ровер снова попытался подключиться к известной Wi-Fi-сети, перезагрузите устройство.
Подробнее см. раздел Сетевой fallback.
Когда перепрошивать образ
Показать признаки, при которых стоит перепрошить образ
Перепрошивка microSD-карты полностью заменяет систему на ровере. Используйте этот вариант после базовой диагностики, если:
- система не загружается;
- повреждены системные файлы;
- устройство работает нестабильно после изменения настроек;
- требуется перейти на свежую версию
broverOS; - проблему не удаётся устранить настройкой сети, сервисов или ROS-окружения.
Перед перепрошивкой ещё раз проверьте версию текущего образа:
grep '^IMAGE_VERSION=' /etc/os-release
Инструкция приведена в разделе Обновление образа ОС.