Настройка ОС для ровера "Контакт"

Для настройки образа 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.

Last updated