Конфигурационные файлы системы
Работа с конфигурационными файлами
Конфигурационные файлы сервисов находятся в директории проекта eurus_edu. Для их просмотра и редактирования можно использовать стандартные команды терминала Linux
Корневая директория проекта
Все сервисы проекта расположены в каталоге:
~/ros2_ws/src/eurus_edu
Для перехода в директорию проекта выполните команду:
cd ~/ros2_ws/src/eurus_edu
Основные команды терминала
cd - перемещение между директориями
Синтаксис: cd <путь_к_директории>
ls - вывести список файлов в текущей директории
Синтаксис: ls
nano - открыть файл по пути
Синтаксис: nano <путь_к_файлу>
Пример изменения конфигурационного файла
1. Перейдите в директорию проекта:
`cd ~/ros2_ws/src/eurus_edu`
Или глобальным путём: `cd /home/pi/ros2_ws/src/eurus_edu`
2. Перейдите в директорию нужного сервиса:
`cd edu_api_server`
3. Откройте файл конфигурации:
`nano eurus.ini`
4. Внесите необходимые изменения
5. Сохраните файл (Ctrl + O)
6. Закройте редактор (Ctrl + X)
edu_web_server
Сервис предоставляет веб-интерфейс системы, публикует видеопотоки и позволяет запускать пользовательские приложения.
Секция [web_server]
Параметры запуска веб-интерфейса.
Параметры:
host- IP-адрес, на котором будет доступен веб-интерфейс. Значение 0.0.0.0 разрешает подключения со всех сетевых интерфейсов.port- Порт веб-сервера
Пример:
[web_server]
host = 0.0.0.0
port = 5000
Секция [systemd]
Настройки поиска пользовательских сервисов systemd.
Параметры:
services_path- Путь к директории с файлами сервисов systemd
Пример:
[systemd]
services_path = /home/orangepi/ros2_ws/src/eurus_edu/services
Секция [video_topics]
ROS-топики, используемые для передачи видеопотоков.
Параметры:
aruco- Отладочное изображение ArUco-навигацииforward_camera- Поток с передней камерыdownward_camera- Поток с нижней камеры
Пример:
[video_topics]
aruco = /edu/aruco_debug
forward_camera = /edu/forward_camera
downward_camera = /edu/downward_camera
Секция [applications]
Позволяет добавить пользовательские приложения в панель веб-интерфейса
Формат записи:
имя_приложения = /полный/путь/до/скрипта.py
Пример:
[applications]
example_app = /home/user/example_app.py
test_script = /home/user/test.py
edu_neuro_detection
Сервис обнаружения объектов с использованием нейросетевой модели
Секция [neuro]
Параметры модели компьютерного зрения
Параметры:
model_path- Путь к директории с нейросетевой моделью.conf_threshold- Минимальный порог уверенности для обнаружения объектаcamera_topic- Топик с видеопотоком для обработки
Пример:
[neuro]
model_path = ...
conf_threshold = 0.6
camera_topic = /edu/forward_camera
edu_led_controller
Сервис управления светодиодной лентой
Секция [led]
Параметры:
Настройки подключения светодиодной ленты
amount- Количество светодиодовchannel- Используемый канал управленияport- Номер порта подключенияspeed- Скорость передачи данных
Пример:
[led]
amount = 50
channel = 4
port = 1
speed = 3200000
edu_lasertag_controller
Сервис управления лазертаг-модулем
Секция [laser_gun]
Лазерная пушка
Параметры:
shot_pin- Пин лазерной пушкиshots_per_command- Количество выстрелов за одну команду (увеличивает продолжительность выстрела)
Пример:
[laser_gun]
shot_pin = 138
shots_per_command = 5
Секция [hit_controller]
Параметры регистрации попаданий
Параметры:
hit_pin- Пин детектора попадания по дронуhit_color- Цвет индикации попадания в формате RGBled_brightness- Яркость светодиодов при попаданииhit_blinking_speed- Скорость миганияnled- Количество используемых светодиодов
Пример:
[hit_controller]
hit_pin = 139
hit_color = 255 255 255
led_brightness = 0.3
hit_blinking_speed = 0.3
nled = 45
edu_camera_stream
Сервис публикации видеопотоков
Передняя камера
Секция [forward_camera]
Параметры:
enable- Включает или отключает использование камерыdevice- Адрес расположения камерыfps- Частота кадров видеопотокаwidth- Ширина изображения в пикселяхheight- Высота изображения в пикселях
Пример:
[forward_camera]
enable = true
device = /dev/imx335-camera
fps = 30
width = 640
height = 480
Секция [forward_camera_server]
Параметры сервера видеопотока
[forward_camera_server]
host = 0.0.0.0
port = 8001
Нижняя камера
Секция [downward_camera]
[downward_camera]
enable = true
device = /dev/hbvcam-camera
fps = 30
width = 640
height = 480
Секция [downward_camera_server]
[downward_camera_server]
host = 0.0.0.0
port = 8002
edu_aruco_navigation
Сервис навигации по ArUco-маркерам
Секция [aruco]
Параметры:
dictionary- Текущий словарь аруко маркеровmap_path- Глобальный путь к карте маркеров
Поддерживаемые словари:
4x4_50
4x4_100
4x4_250
4x4_1000
5x5_50
5x5_100
5x5_250
5x5_1000
Пример:
[aruco]
dictionary = 4X4_1000
map_path = /home/orangepi/ros2_ws/src/eurus_edu/edu_aruco_navigation/maps/map.csv
Секция [settings]
Параметры:
aruco_debug- Включает вывод отладочной информацииcamera_topic- Топик камеры, используемой для навигацииcamera_config_path- Путь к конфигурации камерыcamera_direction- Направление камеры. Значение 0 соответствует камере, направленной вниз
Пример:
[settings]
aruco_debug = true
camera_topic = /edu/downward_camera
camera_config_path = /home/orangepi/ros2_ws/src/eurus_edu/camera_calib/calibration_data.json
camera_direction = 0
edu_api_server
Сервис обмена данными по TCP
Секция [server]
Параметры:
host- IP-адрес API-сервераport- Порт API-сервераbuffer_size- Размер буфера api сервера
Пример:
[server]
host = 0.0.0.0
port = 65432
buffer_size = 1024
Секция [logging]
Раздел логирования
Параметры:
level- Уровень логированияfile- Название файла с логом
Пример:
[logging]
level = DEBUG
file = server.log
Световая индикация ошибок
Общая ошибка
[general_error]
effect = blink
nLED = 50
brightness = 0.5
r = 255
g = 0
b = 0
speed = 0.25
Используется для индикации критических ошибок системы
Ошибка подключения
[connection_error]
effect = blink
nLED = 50
brightness = 0.75
r = 255
g = 0
b = 0
speed = 0.25
Используется при потере соединения с внешними устройствами или сервисами
edu_commander
Сервис обработки команд, отправляемых на дрон
Секция [velocity]
Параметры:
aruco_borders_correlation_speed - Максимальная скорость возврата внутрь границ карты ArUco
aruco_borders_kp - Коэффициент увеличения скорости возврата в допустимую область
aruco_border_indent - Внутренний отступ от границ карты в метрах
Пример:
[velocity]
aruco_borders_correlation_speed = 0.4
aruco_borders_kp = 1.5
aruco_border_indent = 0.0
Секция [local_position]
Параметры:
point_reached_diff- Допустимая погрешность достижения целевой точки в метрах
Пример:
[local_position]
point_reached_diff = 0.2
Секция [restrictions]
Параметры:
max_yaw_rate- Максимальная скорость вращения по yaw в градусах в секундуmax_travel_distance_per_command- Максимальное расстояние, которое дрон может пройти за одну команду перемещения (в метрах). Если его задать меньше или равным 0, то ограничение убирается
[restrictions]
max_yaw_rate = 50
max_travel_distance_per_command = 8
Ограничение максимальной дистанции
Рассмотрим практический пример.
Если текущая позиция дрона (0, 0), а значение max_travel_distance_per_command = 8, то:
move_to_local_point(4, 4)
рассчитывает расстояние √(4² + 4²) = 5.66м, Команда будет выполнена
Команда move_to_local_point(7, 7)
рассчитывает расстояние √(7² + 7²) = 9.9м
Поскольку расстояние превышает установленное ограничение, команда завершится ошибкой: Превышена максимальная дистанция перемещения за команду