Перейти к основному содержимому

Диагностика и типовые проблемы

Эта страница помогает быстро проверить состояние 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/tcpSSH
8080/tcpвеб-интерфейс
8090/tcpcode-server
9090/tcprosbridge
9999/tcpweb_video_server
11811/udpFast DDS Discovery Server

Проверка версии образа ОС

Проверьте версию установленного образа:

grep '^IMAGE_VERSION=' /etc/os-release

Ожидаемый формат:

IMAGE_VERSION="broverOS_vX.Y"

Если строка IMAGE_VERSION не найдена, посмотрите полный файл:

cat /etc/os-release

Рекомендуется использовать самую свежую версию образа broverOS. Инструкция по перепрошивке microSD-карты приведена в разделе Обновление образа ОС.

Ровер не находится в сети

Проверьте, в каком сетевом сценарии должен быть доступен ровер.

По умолчанию ровер пытается подключиться к одной из сетей:

SSID: TurtleBro / TurtleBro5G
Password: turtlew001

Проверьте:

  • ровер включён и завершил загрузку;
  • компьютер подключён к той же Wi-Fi-сети;
  • в интерфейсе роутера видно устройство broverXX;
  • имя broverXX.local соответствует номеру ровера.

Подробнее см. раздел Сетевой 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 fallbackwlan0192.168.50.1/24
Ethernet fallbacketh0192.168.123.1/24
примечание

Если ровер уже перешёл в режим Wi-Fi fallback, автоматического переключения обратно в режим клиента при появлении известной Wi-Fi-сети не происходит. Чтобы ровер снова попытался подключиться к известной Wi-Fi-сети, перезагрузите устройство.

Подробнее см. раздел Сетевой fallback.

Когда перепрошивать образ

Показать признаки, при которых стоит перепрошить образ

Перепрошивка microSD-карты полностью заменяет систему на ровере. Используйте этот вариант после базовой диагностики, если:

  • система не загружается;
  • повреждены системные файлы;
  • устройство работает нестабильно после изменения настроек;
  • требуется перейти на свежую версию broverOS;
  • проблему не удаётся устранить настройкой сети, сервисов или ROS-окружения.

Перед перепрошивкой ещё раз проверьте версию текущего образа:

grep '^IMAGE_VERSION=' /etc/os-release

Инструкция приведена в разделе Обновление образа ОС.