Для настройки образа Ubuntu Server на Orange Pi 5 для Ровера "Конатакт" можно использовать следующие шаги.
1. Установка необходимых пакетов
Nginx используется как веб-сервер, который обслуживает статические файлы и проксирует запросы к приложениям.
FFmpeg используется для обработки медиапотоков, например, видео с камер робота.
sudo apt install nginx ffmpeg
2. Настройка веб-сервера Nginx
Настройка проксирования запросов для поддержки WebRTC и API-запросов, а также обслуживания статических файлов.
sudo nano /etc/nginx/sites-enabled/default
Настроенное содержание файла:
server {
root /var/www/html/front/;
index index.html;
location /images/ {
root /var/www/html/assets/;
try_files $uri $uri/ =404;
}
location /socket.io/ {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://localhost:3016;
}
location ~/janus/* {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://$arg_ipcam;
}
location ~/webrtc/* {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://$arg_ipcam;
}
location /api {
rewrite ^/api/?(.*) /$1 break;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://localhost:3015;
}
location / {
try_files $uri $uri/ =404;
}
listen 80 default_server; # managed by Certbot
}
3. Создание рабочих директорий
Создаются необходимые директории для различных компонентов системы, которые будут хранить данные приложений, настройки и статические файлы.
sudo mkdir /var/onboard-app
sudo mkdir /var/cloud
sudo mkdir /var/www/html/front
sudo mkdir /var/go2rtc
sudo chmod 777 -R /var/onboard-app
sudo chmod 777 -R /var/cloud
sudo chmod 777 -R /var/www/html/front
sudo chmod 777 -R /var/go2rtc
4. Настройка и включение служб
Служба приложения "onboard-app"
Работает как основное приложение для управления функциями робота.
Использует Node.js, запускаемый через NVM.
sudo nano /etc/systemd/system/onboard-app.service
Содержимое файла сервиса:
[Unit]
Description="DH FRAME APP"
[Service]
Environment=NODE_VERSION=20
WorkingDirectory=/var/onboard-app
ExecStart=/home/orangepi/.nvm/nvm-exec node index.js
Restart=always
RestartSec=2
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=FRAME-APP
[Install]
WantedBy=multi-user.target
Служба "cloud"
Серверное приложение для обработки данных с облачными компонентами.
sudo nano /etc/systemd/system/cloud.service
Содержимое файла сервиса:
[Unit]
Description="DH FRAME SERVER"
[Service]
Environment=NODE_VERSION=20
WorkingDirectory=/var/cloud
ExecStart=/home/orangepi/.nvm/nvm-exec node index.js
Restart=always
RestartSec=2
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=FRAME-SERVER
[Install]
WantedBy=multi-user.target
5. Включение и перезапуск сервисов
sudo systemctl enable cloud.service
sudo systemctl enable onboard-app.service
sudo systemctl enable go2rtc.service
sudo systemctl restart onboard-app.service
sudo systemctl restart cloud.service
sudo systemctl restart nginx
sudo systemctl restart go2rtc.service
6. Установка и настройка go2rtc
Служба go2rtc используется для реализации WebRTC-сервера, который может транслировать видео в реальном времени.
sudo nano /etc/systemd/system/go2rtc.service
Содержимое файла сервиса:
[Unit]
Description=GO2RTC
After=network.target
[Service]
Type=simple
Restart=always
RestartSec=2
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=GO2RTC
WorkingDirectory=/var/go2rtc/
ExecStart=/var/go2rtc/go2rtc_
[Install]
WantedBy=multi-user.target
Эти шаги позволят настроить Ubuntu Server на Orange Pi 5 для работы в качестве управляющего узла для автономного мобильного робота Rover Contact.