Модуль обхода препятствий USV
Модуль обхода препятствий для беспилотной водной станции, использующий лазерную сенсорику или миллиметровую волну в качестве сенсоров обнаружения препятствий, установленных на STM32F103协处理器上。
1. Базовое описание
Файловая структура
- В папке
OA-without-OS
находятся проекты без операционной системы
- В папках
OA-with-OS-xxxxx
находятся проекты с использованием операционной системы FreeRTOS
- В папке
OA-with-OS-integrated-ver
находится объединённый проект, который включает в себя схемы 1 и 3; можно использовать одну или другую схему в зависимости от условий компиляции
- В папке
OA-with-OS-lidar-ver
находится проект, использующий схему 1
- В папке
OA-with-OS-mmwave-ver
находится проект, использующий схему 3
- Каждый проект независим и может быть запущен отдельно
STM32F103协处理器上的文本保持不变,因为它是技术术语的一部分。### Схемы препятствования
Обратите внимание, что здесь представлены модели датчиков, используемые мной при разработке, они предоставляются только для справки; использование других датчиков требует изменения протокола последовательного соединения!
- Схема 1: 1 лазерный дальномер + 1 сервопривод: сервопривод поворачивает лазерный дальномер для сканирования препятствий (реализовано √) {стоимость: 300 юаней}
- Схема 2: использование одного одновременного передатчика и приемника миллиметрового радара (невозможно измерять углы, только можно измерять большие и удаленные препятствия в направлении носа судна) (реализовано √) {стоимость: 500–1000 юаней}
- Недостаточно рекомендованная схема
- Схема 3: использование одного одновременного передатчика и нескольких приемников миллиметрового радара (возможность измерения углов, тестирование в процессе) {стоимость: более 1200 юаней}
- Схема 4: установка одного миллиметрового радара спереди + одного лазерного дальномера по бокам (увеличивает область распознавания препятствий, но увеличивает стоимость) {1200 + 200 × 2}
- Схема 5: установка одного лазерного дальномера на каждом из пяти углов носа судна, всего 5 штук {стоимость: 1000 юаней}
- Схема 6: установка одного миллиметрового радара и одного лазерного дальномера спереди + одного лазерного дальномера по бокам {1200 + 2 × 200} * 24 ГГц миллиметровый радар подходит для измерения дальних препятствий, но менее эффективен при измерении ближайших объектов.
- 77 ГГц/79 ГГц радары более эффективны для измерения близлежащих препятствий.
- Схема 7: шаговый двигатель + миллиметровый или лазерный дальномер; шаговый двигатель используется как движущая часть;
- Шаговые двигатели широко применяются в промышленных механических роботах и 3D-принтерах, они более стабильны и точны, чем сервоприводы. Это всего лишь концепция.### Оборудование реализованных схем
- Схема 1:
- Лазерный дальномер: North醒® TFmini Plus, водонепроницаемый однострочный радиодальномер. Цена около 230 юаней за единицу.
- Сервопривод (для сканирования лазерного дальномера): обычный сервопривод, протокол управления PWM: период 20 мс, длительность импульса 0.5–2.5 мс.
- Схема 2 [не рекомендуется]:
- Одновременный передатчик и приемник миллиметрового радара
- Экспериментальное оборудование: IntellRay® S2 миллиметровый радар, 24 ГГц, без измерения углов, диапазон 1–100 м. Цена 800 юаней. Купил один для тестирования, но он не достиг заявленных характеристик.
- Схема 3:
- Одновременный передатчик и множественный приемник миллиметрового радара
II. Описание алгоритма препятствий### 1. Общие сведения
- В настоящее время модуль препятствий находится на ранней стадии разработки и ещё не был интегрирован с основным процессором или навигационной системой. Его можно рассматривать как небольшую машину для обнаружения препятствий.
- Из-за сложных условий эксплуатации судна следует учитывать влияние паров воды и других факторов. После тестирования было установлено, что хотя теоретически возможна работа ультразвукового модуля, фактические данные ультразвуковых датчиков очень нестабильны, поэтому этот вариант был отвергнут.
- Лазерные дальномеры показывают аналогичные результаты по сравнению с ультразвуковыми модулями, но данные лазерных дальномеров более стабильны; при хорошей погоде они работают отлично. Однако недостатком является то, что они легко подвержены воздействию паров воды.
- Миллиметровый радар считается наиболее подходящим вариантом. Однотактный миллиметровый радар может обнаруживать расстояния и скорости нескольких препятствий; многотактный радар может дополнительно выдавать угловое положение препятствий. Однако обычно используемые 24 Гц миллиметровые радары имеют электромагнитную волну длиной около 13 см, что означает, что препятствия диаметром менее 13 см будут недоступны для обнаружения этим радаром. Кроме того, пары воды и осадки практически не оказывают влияния на работу такого радара.Вторым преимуществом является высокая чувствительность к крупным и удалённым препятствиям, таким как автомобили на дорогах, однако он плохо реагирует на близко расположенные и маленькие препятствия. Для решения этих проблем требуется использование радаров с более высокими частотами и короткими волнами, такими как 77 Гц. Однако стоимость таких устройств очень высока — цена одного 77 Гц радара составляет около 3000–4000 единиц. Также для получения углового положения препятствий необходимы многолучевые радары, которые также дорого стоят (3000–5000 юаней).
На данный момент, принимая во внимание соотношение стоимости и производительности, используется сочетание лазера и серводвижков, а также развивается решение с использованием миллиметровых волн, которое реализуется через условную компиляцию.### 2. Концепция препятствий (лазер + серво)
- Лазерный дальномер устанавливается на сервоустройство, которое позволяет ему вращаться вокруг передней части судна, сканируя влево и вправо. Всего предусмотрено 20 позиций вращения (соответствующее время высокого уровня сигнала управления сервоустройством от 0,5 до 2,5 мс).
- Каждая позиция вращения эквивалентна одному выходному сигналу лазерного дальномера, то есть сервоустройство вместе с лазерным дальномером можно рассматривать как 20 отдельных лазерных дальномеров.
- Выходные данные всех 20 позиций вращения объединяются путём взвешенного среднего значения, после чего получается 5 данных, соответствующих направлениям: левое, левое переднее, переднее, правое переднее и правое.
3. Функция обнаружения препятствий
- После упаковки, функция обнаружения препятствий может выдавать массив из пяти элементов, каждый из которых соответствует расстоянию в одном из пяти направлений, упомянутых выше.
- Функция реакции на препятствие может реагировать на основе этого массива, например, если нет препятствий перед центральными тремя направлениями, можно продолжить движение.
- Функция реакции на препятствие может непосредственно вызывать функцию управления моторами, чтобы немедленно отреагировать при обнаружении препятствия.### 4. Таблица соответствия ресурсов STM32
Встроенные ресурсы, выводы |
Соответствующие сенсоры, внешние интерфейсы |
TIM3 CH1 |
PWM сигнал для сервопривода (вариант 1) |
TIM3 CH2 |
Левый двигатель ENB |
TIM3 CH3 |
Правый двигатель ENB |
USART1 |
Подключение к компьютеру для отладки через последовательный порт |
USART2 |
Последовательный порт лазерного дальномера (вариант 1) |
USART3 |
Последовательный порт радара миллиметрового диапазона (вариант 3) |
PC6/7/8/9 |
Выходы IO1/2/3/4 платы управления двигателями |
5. Параметры системы обнаружения препятствий для варианта 3 (названия переменных могут измениться)1. Расстояние до препятствия x: препятствия, находящиеся на расстоянии менее x, будут считаться действительными для алгоритма обнаружения препятствий; остальные объекты будут игнорироваться.
- Экстренное расстояние для заднего хода y: если есть объекты на расстоянии менее y, будет выполнен экстренный задний ход.
- Ограничение сектора z: установка эффективного углового сектора для обнаружения объектов. Алгоритм разделит этот сектор на пять областей для планирования маршрута. Если радар часто показывает скачки данных, рекомендуется увеличить это значение, например до 5 * 60.
- Количество кадров frames, пороговое значение threshold: frames используется для установки количества кадров для анализа, threshold должно быть меньше либо равно frames и используется для установки того, что если в течение threshold кадров из frames было обнаружено препятствие, то его наличие подтверждается. Эти параметры используются для фильтрации скачков данных и шумов. Например: frames = 10, threshold = 5, значит алгоритм будет ждать 10 кадров, среди которых должны быть найдены препятствия в 5 кадрах, чтобы подтвердить наличие препятствия.****
3. Другие замечания
Дневники разработки и руководства по эксплуатации низкоуровневого оборудования во время частичной разработки уже хранятся по следующим адресам:
- Руководство по сенсорам и алгоритмам, используемым при разработке беспилотного судна
- Дневник разработки включает в себя все мелкие и крупные детали проекта от момента его запуска до успешного завершения тестирования. В процессе работы были отброшены старые алгоритмы управления положением, а новые алгоритмы управления положением были выбраны вместо них, поэтому ранние описания управления положением следует рассматривать как справочные материалы.
- Алгоритмы обнаружения препятствий не включены.```markdown
Дневники разработки и руководства по эксплуатации низкоуровневого оборудования во время частичной разработки уже хранятся по следующим адресам
- Руководство по сенсорам и алгоритмам, используемым при разработке беспилотного судна
- Дневник разработки включает в себя все мелкие и крупные детали проекта от момента его запуска до успешного завершения тестирования. В процессе работы были отброшены старые алгоритмы управления положением, а новые алгоритмы управления положением были выбраны вместо них, поэтому ранние описания управления положением следует рассматривать как справочные материалы.
- Алгоритмы обнаружения препятствий не включены.
Комментарий ( 0 )