Skip to content

Alex5200/Robots_Astar_DWA_

Repository files navigation

Robots_Astar_DWA_

Управление роботом и реализация алгоритма A*

Цель работы:

Освоить принципы работы с локальным маневрированием и уклонением от столкновений.

Задачи:

Разработка приложения для управления мобильным роботом.

Реализация логики для движения робота по кольцевому маршруту, заданному последовательностью путевых точек в отдельном файле.

Подготовка трассы согласно индивидуальному варианту. Активация режима динамических препятствий.

Реализация алгоритма контроля препятствий и локального маневрирования в соответствии с индивидуальным вариантом.

Реализация визуализации работы алгоритма локального маневрирования.

Общие требования к выполнению работы:

Не использовать готовые библиотеки для реализации алгоритмов планирования движения.

Весь код анализа карты, поиска пути и избегания столкновений должен быть написан самостоятельно.

Все визуализации должны осуществляться с помощью растровых изображений (bitmap или аналогичных форматов) с дальнейшим отображением на форме приложения.

Ход работы:

Работа была выполнена поэтапно:

Задача 1: Разработка основы GUI приложения

Проектирование интерфейса: Определение необходимых элементов (кнопок, полей ввода, графиков). Создание прототипа интерфейса.

Получение и визуализация данных: Разработка кода для получения данных от симулятора и реализация их отображения на графике.

Отправка команд для управления роботом: Создание функции для отправки команд на робот и интеграция её с элементами интерфейса.

Индикация выполнения операций с грузом: Разработка способа индикации (использование иконок, сообщений, цветов).

Задача 2: Подгрузка маршрута и автоматическое движение робота

Загрузка файла с координатами маршрута: Создание функции для чтения файла формата CSV и интеграция её с интерфейсом.

Алгоритм автоматического движения по маршруту: Определение радиуса зоны достижения целевой точки и разработка алгоритма движения по маршрутам в кольцевом режиме.

Задача 3: Подготовка файлов и активация динамических препятствий

Создание файла Labyrinth.txt: Описание структуры трассы согласно индивидуальному заданию.

Формирование файла с координатами маршрута: Определение координат маршрута и создание соответствующего файла.

Активация режима динамических препятствий: Настройка симулятора для работы с динамическими препятствиями.

Задача 4: Реализация функции локального маневрирования

Разработка алгоритма локального маневрирования: Выбор подходящего алгоритма (например, DWA) и его реализация с учётом текущих данных робота, маршрута и препятствий.

Задача 5: Визуализация работы алгоритма маневрирования

Визуализация препятствий и вспомогательной информации: Использование графики для отображения препятствий и другой важной информации.

Отображение траекторий и маршрутных точек: Интеграция визуализации траектории и точек с алгоритмом маневрирования.

Анимированная визуализация в реальном времени: Обновление визуализации синхронно с работой алгоритма маневрирования.

Завершение проекта и составление отчёта:

Составление отчёта: Описание всех этапов разработки, включая проблемы и принятые решения. Включение скриншотов и иллюстраций для наглядности.

Презентация результата: Подготовка презентации проекта для демонстрации достигнутых результатов.

Основные задачи программы:

Отображение карты: Загрузка текстовой карты из файла и отображение её в графическом интерфейсе.

Управление движением робота: Перемещение робота по клеткам карты, расчёт путей и их отображение.

Обработка данных: Получение данных через UDP-соединение (энкодеры, сенсоры) и их использование для управления роботом.

Отправка команд роботу: Формирование и отправка команд (скорость, направление) через UDP.

Главные компоненты:

Отображение карты: Загрузка карты из файла, рисование битмапа с различными цветами клеток (стены — чёрные, свободные клетки — белые).

Управление движением: Движение вперёд по клеткам, основанное на данных энкодеров, и выполнение поворотов на 90 градусов.

Обработка данных: Прием данных через UDP, декодирование JSON-данных и сохранение значений в переменных.

Отправка команд: Сериализация команд в JSON и их отправка через UDP.

About

Управление роботом и реализация алгоритма A*

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages