Рубрика:
Наука и технологии
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
ЕГОРОВА М.В., Московский авиационный институт (национальный исследовательский университет), 812-я кафедра, ведущий инженер
Разработка системы управления движением полевого агроробота
В данной статье проведен обзор существующих решений и методов организации управления движением робота в сельскохозяйственной сфере. Были обоснованы характеристики, которыми должна обладать система управления движением робота для технологических процессов обработки пропашных культур, а также произведен выбор конкретного объекта управления. Был предложен алгоритм для автономного управления передвижением полевого агроробота на основе нечеткой логики. Возможности нечеткого вывода позволяют определить правила для передвижения и обхода возникающих препятствий, не имея конкретных данных о модели движения робота. Разработана структура системы управления движением, в ходе чего были определены основные элементы данной системы: нечеткий контроллер, СТЗ, дальномеры, навигационная система, приводы левой и правой гусениц и модуль приема и передачи данных. Для реализации алгоритма была создана модель нечеткого контроллера и разработана программа на языке программирования C# для демонстрации работы алгоритма в различных ситуациях. Программа позволяет задавать последовательные точки траектории передвижения робота и располагать препятствия, после чего наблюдать за работой алгоритма
В наше время все больше задач перекладывается на роботов. Использование роботов в промышленном производстве, для выполнения военных задач и медицинской сфере возрастает. Также роботизация технологических процессов развивается и в сельскохозяйственной сфере.
С ростом числа населения в мире повышается необходимость в увеличении производства пищи. Сельскохозяйственная отрасль является одной из главнейших отраслей в данном направлении. И для увеличения производимой сельскохозяйственной продукции необходимо увеличивать производительность и эффективность проводимых технологических процессов. Увеличение эффективности производства сельскохозяйственных культур достигается проводимыми технологическими процессами возделывания и ухода за выращиваемой продукцией.
Также на эффективность и качество проведения технологических процессов влияют усилия, прилагаемые человеком. Сама работа в отрасли земледелия требует немалого вложения сил. Из-за чего на эффективности производства отражаются такие факторы, влияющие на трудовую способность человека, как напряженность труда, уровень шума, интенсивность загрязнения воздуха, режим труда и отдыха, рабочая поза. Для устранения влияния данных факторов иувеличения производительности приходят технологии точного земледелия (ТЗ) вместе с роботизацией процессов.
Основной целью ТЗ при производстве сельскохозяйственных культур является максимизация урожая, минимизация вложений капитала, максимизация финансовых выгод и минимизация воздействия на окружающую среду. В ТЗ различают несколько технологий: определение границ поля с использованием спутниковой навигации; предпосевная обработка почвы; мониторинг состояния посевов с учетом сорняков, вредителей, болезней растений; автовождение с использованием навигационной аппаратуры и т.д.
При управлении техническим средством во время выполнения технологического процесса от оператора требуется непрерывно придерживаться курса. Во время работы оператор из-за повышенной напряженности может сбиться с курса, вследствие чего ему придется повторно пройти данную область. В такой ситуации повышается расход топлива, что приводит к лишним расходам предприятия, также при повторном проходе ухудшается внутренняя структура почвы, которая влияет на урожайность. Чтобы не допускать лишних расходов и не наносить вред почве и сельскохозяйственным культурам при выполнении технологически процессов земледелия, предлагается разработать систему управления движением полевого агроробота.
Внедрение автономной системы управления движением позволит уже существующим мобильным роботам большую часть рабочего процесса автоматически совершать передвижение без непрерывного контроля оператора.
Целью работы является разработка системы управления движением полевого агроробота (СУА) (обработка пропашных культур).
Для достижения цели сформулированы следующие задачи:
- Выбор объекта управления.
- Обоснование характеристик СУА для технологических процессов обработки пропашных культур.
- Разработка структуры СУА, обоснование схемотехнических решений. Аппаратная реализация.
- Разработка алгоритма работы СУА.
- Разработка программы управления.
- Исследование конкретных траекторий движения СУА.
Одними из основных проблем при создании автономных роботов являются:
- создание алгоритмов для автономной работы;
- навигация, ориентация и позиционирование в окружающием пространстве;
- обеспечение выполнения необходимых технологических операций;
- электроснабжение.
В зависимости от навигационной системы, используемой в мобильном роботе, могут выполняться различные транспортные задачи при движении по заранее запрограммированным маршрутам либо по траекториям, определяемым создавшейся ситуаций.
При ручном управлении роботом оператор должен постоянно корректировать курс при появлении отклонений. Чтобы заменить оператора автоматическим устройством, необходимо создать его таким образом, чтобы оно выполняло вышеописанную функцию.
К непрямым способам навигации относятся те, в которых оператор участвует в процессе управления, но более не является водителем.
Дистанционное управление
Управление роботом при таком способе осуществляется все еще вручную, однако визуальная информация о рабочей зоне передается на расстоянии с помощью системы удаленного контроля.
Данный способ навигации относительно прост и дешев, имеет высокую точность за счет видео и возможность приспосабливаться к различным операциям. Однако данный способ не облегчает работу оператора, позволяет управлять одновременно только одним устройством, при высочайшем качестве сигналов невозможно достичь эффекта прямой видимости рабочей зоны, имеет низкую возможность для автоматизации. По этим причинам данная система подходит дляработы в опасных средах.
Направляющие от предыдущих операций
Преимущество таких систем навигации в том, что они нуждаются в специальной подготовке поля. Данные направляющие можно разделить на две категории. Первые направляющие задаются существующими на поле объектами, вторые задаются предыдущими операциями, осуществленными оператором. С использованием этих направляющих осуществляется автоматическая навигация. Все эти системы измеряют расстояние между точкой робота и направляющей. Измерение только боковой дистанции приводит к проблеме: малая неравномерность в движении становится больше при каждом повторном прохождении. Такие системы не могут долгое время работать автономно без вмешательства оператора. Системы, использующие кроме боковых сенсоров дополнительные источники информации, имеют более стабильное поведение.
Навигация с помощью механического контакта
Использование механического контакта применимо, если существует стабильная механическая направляющая. Однако любая механическая система выходит из-под контроля при потере контакта. Для преодоления этого недостатка робота можно оборудовать дополнительными механическими навигационными устройствами и сенсорами.
Навигация с помощью дистанционных измерений
Не все генерируемые направляющие достаточно стабильны для механического контакта. Потому применяются дистанционные измерения с использованием звуковых волн и света. В основном проблемы управления все те же, что были описаны ранее. Такие системы дороже, чем те, что используют механический контакт.
Направляющие кабели
Физический принцип таких систем известен, и существует огромное количество вариаций. Простейшая система – движение над направляющим кабелем – широко используется в теплицах или при индустриальной транспортировке. Такая система не очень подходит для применения в поле, так как пространство между направляющими должно быть соизмеримо с минимальной требуемой шириной рабочего пространства. Такой принцип успешно применяется при выращивании винограда и фруктовых деревьев.
Направляющие, рассчитанные с помощью реперных точек
Позиция робота на плоскости может также быть вычислена при помощи реперных точек с известным положением. Это может быть произведено как с самого робота, так и с базы с использованием методов, известных из топологии инавигации. Реперные точки или другие устройства на поле могут быть обнаружены с помощью акустических, оптических или радиоволн. Оснащение роботов, использующих такие системы, под вопросом, поскольку необходимо обеспечить точность, требуемую для сельскохозяйственных операций, при этом не сильно повышая цену. Измерение положения нескольких роботов с использованием реперных точек понизит стоимость, так как будут нужны лишь несколько измерительных систем и центральный компьютер для управления, при условии, что роботы оснащены ресиверами.
Навигация при помощи систем технического зрения
Во всех предыдущих методах, кроме метода рассчитываемых направляющих, если по той или иной причине робот собьется с курса, он не сможет без вмешательства оператора вернуться на него, поскольку у системы есть лишь возможность следовать по направляющей, но не искать ее снова. Система, способная распознавать окружение не будет иметь данного недостатка. Этого можно добиться при помощи технического зрения. Изображения окружения, полученные свидеокамеры, отправляются на компьютер. Цель данной системы – идентификация объектов, расчет отклонения от курса и коррекция.
Система технического зрения имеет большой потенциал для полной автоматизации производства: не подразумевает вмешательства оператора; возможность улучшения точности сельскохозяйственных операций; экономическая оправданность при использовании на больших полях; контроль за несколькими роботами за одну операцию.
Несмотря на достоинства, система имеет технологическую сложность в реализации и дороговизну при внедрении в производство, также точность все еще недостаточно высока.
Сельскохозяйственный робот будет использоваться в различных местах и для широкого диапазона задач. Но, с другой стороны, он должен иметь возможность очень точной работы на поле. Отсюда возникает необходимость в глобальной илокальной системах позиционирования. Подходящей глобальной системой является GPS с навигацией с помощью спутников, а локальной системой – специальные сенсоры и камеры, которые бы позволили роботу объезжать препятствия исделали бы его позиционирование точным.
В GPS измеряется время прохождения сигнала от спутника к приемнику на земле, из чего вычисляется расстояние. Необходимо как минимум три спутника, чтобы вычислить положение. При трех измерениях расстояния существуют только две точки для текущего положения в пространстве. Математически потребуется еще одно измерение для обнаружения подходящей точки. Но одна из этих двух точек (полученных при трех измерениях) представляет собой нецелесообразный результат и поэтому может быть исключена по логическим причинам.
В настоящее время GPS приемники способны измерять время прохождения сигнала от спутника с точностью до наносекунд. Спутник и приемник генерируют довольно сложный псевдослучайный код в одно и то же время. Тогда время прохождения сигнала есть временной интервал между отправкой спутником и получением приемником этого кода, который может быть легко измерен, а из него может быть рассчитано непосредственное расстояние.
Из-за высокой стоимости, а также потому, что таймеры, встроенные в GPS-приемник, не такие точные, появляются небольшие ошибки в вычислении расстояния и расположения. С помощью четвертого измерения, которое обычно нетребуется, компьютер в приемнике рассчитывает эти ошибки и вносит соответствующие корректировки. Некоторые ошибки могут быть исключены математическими численными методами. В настоящее время хорошие приемники достигают точности от трех до пяти метров.
Локальная система навигации позволяет определить положение робота относительно окружающих его препятствий. В зависимости от используемой системы может быть достигнута точность в пределах миллиметров. Многие датчики исенсоры подходят для локальной системы навигации, они могут измерять расстояние между определенной точкой робота и какого-либо объекта. Это конкретное значение обрабатывается компьютером и затем сравнивается с набором заданных значений. В случае отклонения в текущую траекторию движения будут внесены коррективы. Локальная система навигации необходима для автономности робота в таких местах, где глобальная система по техническим причинам не может быть достаточно точной.
Рассмотрим алгоритмы обхода препятствий. Алгоритм обхода препятствий передает такие команды на исполнительный модуль робота, чтобы следовать спланированной траектории, обходя статические и динамические препятствия. Рассмотрим некоторые из алгоритмов.
Метод гипотезы и теста
Метод гипотезы и теста состоит из трех основных шагов: предлагается гипотеза относительно пути-кандидата между начальной и конечной точками траектории движения мобильного робота; набор направлений вдоль этого пути тестируется на возможность столкновений; если столкновение оказывается возможным, то с целью определения пути обхода исследуется препятствие, которое может вызвать это столкновение. Весь процесс повторяется, пока не будет достигнута цель.
Нечеткий алгоритм
Нечеткий алгоритм определяется упорядоченным множеством нечетких инструкций, содержащих понятия, формализуемые нечеткими множествами. Все системы с нечеткой логикой функционируют по одному принципу: показания измерительных приборов фаззифицируются, обрабатываются в базе нечетких знаний, дефаззифицируются и в виде обычных цифровых сигналов подаются на исполнительные устройства.
Челночный алгоритм
Основная идея челночного алгоритма обхода следующая: робот пытается обойти фигуру, совершая горизонтальные челночные движения от границы до границы. Робот, встретив препятствие, меняет строку либо переходит вверх или вниз взависимости от состояния регистровой памяти. В процессе такого обхода фигура может быть обойдена не полностью ввиду того, что на пути робота встретилась другая фигура. И эта фигура будет препятствовать горизонтально-челночному движению. Робот «переключит свое внимание» на препятствие, уже пытаясь его обойти, придерживаясь той же стратегии обхода.
Робототехнический агрегат (РА), разработке которого посвящена статья, предназначен для использования в полеводстве, в частности в реализациях технологий возделывания пропашных культур (прополка, уборка, борьба с сорняками). Таким образом, РА при функционировании должен определять расположение рядков полезных растений на поле, выделять трассу перемещений между рядками для выполнения технологических операций, на концах зоны функционирования совершать разворот с переходом к соседнему обработанному рядку. На пути движения РА возможно появление препятствий (человек, птицы, посторонние предметы), которые следует обойти (движение влево, вправо, назад) либо остановиться и ожидать момента отсутствия препятствия.
Решение этих задач требует наличия информации, которая должна быть предусмотрена алгоритмом работы либо доставляться специальным техническим оборудованием (дальномер, средства технического зрения и т.п.). Информация обрабатывается программными методами и поступает в исполнительные устройства.
В ходе выполнения работы специальное оборудование включается в состав оборудования РА, обработка информации предусмотрена алгоритмом работы СУ и отражена в разработанной программе.
В качестве объекта управления выбран полевой робот с гусеничным движителем, специализированный для функционирования в реализациях агротехнологий возделывания пропашных культур, а именно выполнения технологических операций уничтожения сорняков и борьбы с вредителями и болезнями сельскохозяйственных культур.
Ширина междурядий при посеве сахарной свеклы составляет 60 см, для картофеля – 75 см. В связи с этим были выбраны представленные размеры робота.
Основные характеристики:
- габариты (не более):
- ширина: 550 мм,
- длина: 1000 мм,
- высота: 420 мм;
- наличие аккумулятора;
- наличие системы ориентирования в пространстве (система технического зрения (СТЗ), дальномеры и т.п.);
- наличие рабочих органов (опрыскиватель, фреза и т.п.);
- наличие модуля связи и управления;
- наличие системы позиционирования.
При функционировании объект управления должен самостоятельно определять свое пространственное расположение, находить объект воздействия (сорные растения, очаги болезней), реализовывать требуемые технологические операции.
Камера, входящая в СТЗ, должна быть установлена так, чтобы могла охватывать область от 1,5 м вблизи робота до 10 м и более вдали от него.
Дальномер должен уметь определять расстояния с наименьшей погрешностью на удалении 10 м.
Радиус действия модуля связи должен быть не более 2000 м.
В системе управления предлагается автономное перемещение в заданную точку на карте сельхозугодья с использованием системы спутниковой навигации и СТЗ.
В соответствии с конструкцией робота предлагается обобщенная структурная схема системы управления (см. рис. 1). Робот состоит из двух функциональных блоков: транспортного модуля с электротрансмиссией и пульта управления. Транспортный модуль – гусеничное шасси, на котором смонтированы система управления, СТЗ, дальномер, рабочие органы (сменные), контроллер, аккумулятор, модуль приема и передачи информации для дистанционного управления роботом.
Рисунок 1. Структурная схема транспортного модуля
С логической точки зрения система управления состоит из двух уровней. Нижний уровень отвечает за работу каждого привода в отдельности. Верхний же уровень, получая команды от оператора и данные с датчиков, формирует маршрут иследит, чтобы отклонение от него не превышало допустимой нормы. На верхнем уровне управления также принимаются решения о возможности выхода из критических ситуаций при их возникновении.
Для работы в автоматическом режиме на роботе установлены дальномеры. Обеспечение автономного и ручного режимов (в том числе управление приводами транспортного модуля, опрос датчиков и формирование алгоритмов управления) осуществляется с помощью бортового микроконтроллера.
Основную роль системы управления будет выполнять микроконтроллер Arduino Diecimila (см. рис. 2) на базе ATmega168. Он имеет 14 цифровых входов /выходов (из которых шесть могут использоваться как выходы PWM), рабочее напряжение 5 В, входящее напряжение 6-20 В (рекомендуемо 7-12 В), шесть аналоговых входов, 16 МГц кварцевый генератор, USB-соединение, разъем питания, заголовок ICSP и кнопка сброса.
Рисунок 2. Arduino Diecimila
Система технического зрения необходима для предоставления информации об обнаруженном препятствии (угол отклонения относительно направления движения робота). В данной работе предполагается, что результатом СТЗ будет информация о ближайшем препятствии. Нечеткая база правил необходима для решения задач системы управления верхнего уровня. На выходе поступают значения линейной и угловой скоростей мобильного робота. Модуль приема ипередачи информации необходим для синхронизации с программой управления, с помощью которой оператор имеет возможность задавать маршрут (точки траектории) передвижения робота.
Представленные модули и основные их характеристики позволяют создать робота, способного выполнять перемещение по рядам и открытой местности с обходом возникающих препятствий при выполнении технологических процессов врастениеводстве.
При следовании к точке назначения роботом решается две задачи. Изначально, получив от оператора точку назначения, робот прокладывает траекторию своего движения, используя карту спутниковой навигации. Если в процессе следования по траектории сенсорные системы робота обнаруживают препятствие, возникает вторая задача: необходимость скорректировать траекторию, чтобы объехать препятствие.
Мобильный робот – сложное устройство, сочетающее в себе ряд самых разнообразных подсистем. В нашем случае робот должен двигаться по определенным контрольным точкам (определенной траектории). При этом информацию о своем положении робот получает с системы спутниковой навигации. Точность определения координат, даже с учетом использования дополнительной гироскопической системы БИНС-Тек, не превышает пяти метров. Поэтому для обеспечения более мягкого закона движения было решено применить нечеткий контроллер.
Рассмотрим этап создания программы на стадии разработки алгоритма. Разработка алгоритмов функционирования представляет собой создание модели работы, функционирования программы как единой системы.
Для того чтобы обеспечить передвижение мобильного робота до указанной точки, преодолевая препятствия, обнаруженные на пути следования (см. рис 3):
Рисунок 3. Блок-схема алгоритма управления движением робота
Переменная BoxDst отвечает за расстояние между роботом и препятствием. Переменная BoxAngle отвечает за угол между направлением робота и направлением от робота до ближайшего препятствия.
Переменная FinDst отвечает за расстояние между роботом и точкой прибытия. Переменная FinAngle отвечает за угол между направлением робота и направлением от робота до точки прибытия.
Переменные V и w отвечают за линейную и угловую скорости робота соответственно.
В результате работы алгоритма мобильный робот достигает назначенной точки маршрута, либо предоставляет выбор оператору на решение дальнейших действий в случае, если робот остановился, не достигнув назначенной точки.
Мобильный робот движется по плоской поверхности к цели (см. рис. 4). Сенсорная подсистема мобильного робота способна различать цель и препятствие, а также оценивать расстояние и измерять угловое отклонение до цели илипрепятствия. Требуется разработать нечеткий контроллер, управляющий линейной и угловой скоростью мобильного робота, таким образом, чтобы робот смог достигнуть цели и объехать все препятствия.
Рисунок 4. Условие задачи
На вход контроллера поступают значения:
- Угол между системой координат робота и прямой, соединяющей начало системы координат робота и точку финиша.
- Расстояние до финиша.
- Угол между системой координат робота и прямой, соединяющей начало системы координат робота и начало системы координат препятствия.
- Расстояние до начала системы координат препятствия.
Основываясь на общих представлениях человека о перемещении из одно точки в другую, преодолевая препятствия, в нечеткой логике контроллера было выбрано шесть лингвистических переменных:
- «Расстояние до препятствия» (BoxDst) – данная функция принадлежности характеризует, находится ли препятствие близко (менее 2 м) к роботу, либо же далеко (от 3 до 10 м).
- «Положение препятствия» (BoxAngle) – данная функция принадлежности характеризует положение препятствия относительно направления движения робота: спереди (примерно до 30 градусов), справа и слева (от 30 до 100градусов).
- «Расстояние до финиша» (FinDst) – данная функция принадлежности характеризует, находится ли цель близко (менее 1,5 м) к роботу, либо же далеко (от 2,2 до 10 м).
- «Положение финиша» (FinAngle) – данная функция принадлежности характеризует положение цели относительно направления движения робота: спереди (примерно до 25 градусов), справа и слева (от 30 до 180 градусов).
- «Скорость (V)» и «Угловая скорость» – данные функции принадлежности характеризуют движение.
Определение логических правил и типа нечеткого вывода
Сложное правило, состоящее из трех-четырех условий, означает более высокий интеллектуальный уровень поведения робота. Сложными правилами можно описать значительно большее количество ситуаций. При этом реже будет работать одновременно несколько противоречивых правил, потому что подбираются взаимоисключающие дополнительные условия. Для решения задачи было составлено 37 правил:
1. If (BoxDst is Close) and (BoxAngle is Right) and (FinDst is VeryClose) and (FinAngle is InFront) then (V is Stop)(w is TurnLeft)
2. If (BoxDst is Close) and (BoxAngle is Right) and (FinDst is Far) and (FinAngle is Right) then (V is Rear)(w is TurnLeft)
3. If (BoxDst is Close) and (BoxAngle is Right) and (FinDst is Far) and (FinAngle is Left) then (V is Rear)(w is TurnLeft)
4. If (BoxDst is Close) and (BoxAngle is Right) and (FinDst is Far) and (FinAngle is InFront) then (V is Rear)(w is TurnLeft)
5. If (BoxDst is Close) and (BoxAngle is Left) and (FinDst is VeryClose) and (FinAngle is Right) then (V is Rear)(w is TurnRight)
6. If (BoxDst is Close) and (BoxAngle is Right) and (FinDst is VeryClose) and (FinAngle is Left) then (V is Rear)(w is TurnLeft)
7. If (BoxDst is Close) and (BoxAngle is Right) and (FinDst is VeryClose) and (FinAngle is Right) then (V is Rear)(w is TurnRight)
8. If (BoxDst is Close) and (BoxAngle is Left) and (FinDst is VeryClose) and (FinAngle is Left) then (V is Rear)(w is TurnLeft)
9. If (BoxDst is Close) and (BoxAngle is Left) and (FinDst is VeryClose) and (FinAngle is InFront) then (V is Fast)(w is TurnRight)
10. If (BoxDst is Close) and (BoxAngle is Left) and (FinDst is Far) and (FinAngle is Right) then (V is Rear)(w is TurnRight)
11. If (BoxDst is Close) and (BoxAngle is Left) and (FinDst is Far) and (FinAngle is Left) then (V is Rear)(w is TurnRight)
12. If (BoxDst is Close) and (BoxAngle is Left) and (FinDst is Far) and (FinAngle is InFront) then (V is Rear)(w is TurnRight)
13. If (BoxDst is Close) and (BoxAngle is InFront) and (FinDst is VeryClose) and (FinAngle is Right) then (V is Stop)(w is TurnRight)
14. If (BoxDst is Close) and (BoxAngle is InFront) and (FinDst is VeryClose) and (FinAngle is Left) then (V is Stop)(w is TurnLeft)
15. If (BoxDst is Close) and (BoxAngle is InFront) and (FinDst is Far) and (FinAngle is Left) then (V is Rear)(w is TurnLeft)
16. If (BoxDst is Close) and (BoxAngle is InFront) and (FinDst is Far) and (FinAngle is Right) then (V is Rear)(w is TurnLeft)
17. If (BoxDst is Close) and (BoxAngle is InFront) and (FinDst is Far) and (FinAngle is InFront) then (V is Rear)(w is TurnLeft)
18. If (BoxDst is Far) and (BoxAngle is Right) and (FinDst is VeryClose) and (FinAngle is Right) then (V is Stop)(w is TurnRight)
19. If (BoxDst is Far) and (BoxAngle is Right) and (FinDst is VeryClose) and (FinAngle is Left) then (V is Stop)(w is TurnLeft)
20. If (BoxDst is Far) and (BoxAngle is Right) and (FinDst is VeryClose) and (FinAngle is InFront) then (V is Fast)(w is NoTurn)
21. If (BoxDst is Far) and (BoxAngle is Right) and (FinDst is Far) and (FinAngle is Right) then (V is Fast)(w is TurnRight)
22. If (BoxDst is Far) and (BoxAngle is Right) and (FinDst is Far) and (FinAngle is Left) then (V is Fast)(w is TurnLeft)
23. If (BoxDst is Far) and (BoxAngle is Right) and (FinDst is Far) and (FinAngle is InFront) then (V is Fast)(w is NoTurn)
24. If (BoxDst is Far) and (BoxAngle is Left) and (FinDst is VeryClose) and (FinAngle is Right) then (V is Stop)(w is TurnRight)
25. If (BoxDst is Far) and (BoxAngle is Left) and (FinDst is VeryClose) and (FinAngle is Left) then (V is Stop)(w is TurnLeft)
26. If (BoxDst is Far) and (BoxAngle is Left) and (FinDst is VeryClose) and (FinAngle is InFront) then (V is Fast)(w is NoTurn)
27. If (BoxDst is Far) and (BoxAngle is Left) and (FinDst is Far) and (FinAngle is Right) then (V is Fast)(w is TurnRight)
28. If (BoxDst is Far) and (BoxAngle is Left) and (FinDst is Far) and (FinAngle is Left) then (V is Fast)(w is TurnLeft)
29. If (BoxDst is Far) and (BoxAngle is Left) and (FinDst is Far) and (FinAngle is InFront) then (V is Fast)(w is NoTurn)
30. If (BoxDst is Far) and (BoxAngle is InFront) and (FinDst is VeryClose) and (FinAngle is Right) then (V is Stop)(w is TurnRight)
31. If (BoxDst is Far) and (BoxAngle is InFront) and (FinDst is VeryClose) and (FinAngle is Left) then (V is Stop)(w is TurnLeft)
32. If (BoxDst is Far) and (BoxAngle is InFront) and (FinDst is VeryClose) and (FinAngle is InFront) then (V is Fast)(w is NoTurn)
33. If (BoxDst is Far) and (BoxAngle is InFront) and (FinDst is Far) and (FinAngle is Right) then (V is Fast)(w is TurnRight)
34. If (BoxDst is Far) and (BoxAngle is InFront) and (FinDst is Far) and (FinAngle is Left) then (V is Fast)(w is TurnLeft)
35. If (BoxDst is Far) and (FinDst is Far) and (FinAngle is Right) then (V is Fast)(w is TurnRight)
36. If (BoxDst is Far) and (FinDst is Far) and (FinAngle is Left) then (V is Fast)(w is TurnLeft)
37. If (BoxDst is Far) and (FinDst is Far) and (FinAngle is InFront) then (V is Fast)(w is NoTurn)
Выбранную логику поведения робота хорошо иллюстрируют фазовые поверхности.
Рассмотрим зависимость скорости робота от положения препятствия (см. рис. 5).
Рисунок 5. Зависимость скорости робота от положения препятствия
Из графика видно, если препятствие дальше двух метров, робот движется с максимальной скоростью. Если препятствие перед роботом, а расстояние до него меньше двух метров, робот начинает снижать скорость. Если препятствие прямо перед роботом, он остановится совсем. При этом, если препятствие далеко сбоку, робот проедет быстро, а если близко, робот так же снизит скорость, чтобы избежать аварии.
Рис. 6 объясняет поведение робота в ситуации, когда он подъезжает к финишу, сразу за которым стоит коробка.
Рисунок 6. Зависимость скорости робота от расстояний до препятствия и финиша
В основном робот останавливается перед препятствием независимо от положения финиша. На графике есть небольшое искажение в области, где расстояние до финиша очень мало. Это значит, если же финиш ближе коробки, робот будет продолжать движение.
Для решения поставленной задачи среда MatLab позволяет использовать либо контроллер Мамдани, либо Сугено. В данном проекте выбран контроллер Мамдани (см. рис. 7). Изначально были выбраны: метод минимумов для логического умножения, метод минимумов для импликации и метод максимумов для агрегации. Изменение этих методов потребовало корректировки логических правил и меняло траекторию робота.
Рисунок 7. Контроллер Мамдани с входами и выходами
Метод дефаззификации с расчетом центра масс обеспечивает плавное движение робота с учетом взаимовлияния всех правил. Недостаток метода в том, что возникают противоречивые ситуации, когда совокупность всех правил в итоге недает роботу сдвинуться с места. Методы минимум максимумов и максимум минимумов позволяют принимать решение во всех случаях, но не исключается принятие неправильного решения, когда робот наезжает на препятствие. Разработанный алгоритм управления движением робота и нечеткий контроллер, обеспечивающие плавное перемещение по полю, а также обход возникающих препятствий и разрешение тупиковой ситуации (позволяет оператору решить еепутем построения другого маршрута).
Рассмотрим программу на языке С#.
Разрабатываемая программа предоставляет возможность продемонстрировать работу алгоритма управления движением и нечеткого контроллера.
Для хранения информации о роботе существует класс:
public class Robot
{
public float x;
public float y;
public int width;
public int height;
public double course;
}
Здесь:
- x – координата расположения робота по x;
- y – координата расположение робота по y;
- width – ширина отображаемого на экране робота;
- height – длина отображаемого на экране робота;
- course – направление движения робота.
Данный класс позволяет управлять движением робота по маршруту.
Для хранения информации о существующих препятствиях имеется класс:
public class Obstacle
{
public float x;
public float y;
public double turnAngle;
public double width;
public double height;
}
Здесь:
- x, y – координата расположения препятствия;
- turnAngle – угол поворота отображаемого препятствия в пространстве;
- width, height – ширина и высота отображаемого препятствия.
За вывод параметров управления движением робота отвечает класс FuzzyController. В данном классе реализованы функции, отвечающие за этапы алгоритма нечеткого вывода: фаззификация, агрегирование, активизация, аккумулирование идеффазификация.
За этап фаззификации отвечает специальная функция:
public void fuzzyfication()
{
bClose = trapmf(boxDist, -2.045, -1.155, 1.97, 3.025);
bFar = smf(boxDist, 2.045, 3.025);
…
bRight = trapmf(boxAngle, -1.57, -1.0, -0.4, -0.1577);
bInFront = trapmf(boxAngle, -0.4, -0.17, 0.17, 0.4);
bLeft = trapmf(boxAngle, 0.1577, 0.4, 1.0, 1.57);
…
fClose = trapmf(finDist, -0.0002, -0.0001, 1.54, 2.39);
fFar = smf(finDist, 1.5, 2.315);
…
fRight = gauss2mf(finAngle, 0.267, -3.77, 0.18541, -0.3483);
fInFront = trapmf(finAngle, -0.244, -0.1237, 0.1237, 0.244);
fLeft = gauss2mf(finAngle, 0.18541, 0.3483, 0.267, 3.77);
…
}
Здесь:
- boxDist – расстояние от робота до препятствия;
- boxAngle – положение препятствия относительно робота;
- finDist – расстояние от робота до точки прибытия;
- finAngle – положение точки прибытия относительно робота;
- bClose – значение функции принадлежности «Расстояние до препятствия» терма «Близко»;
- bFar – значение функции принадлежности «Расстояние до препятствия» терма «Далеко»;
- bRight – значение функции принадлежности «Положение препятствия» терма «Справа»;
- bInFront – значение функции принадлежности «Положение препятствия» терма «Спереди»;
- bLeft – значение функции принадлежности «Положение препятствия» терма «Слева»;
- fClose – значение функции принадлежности «Расстояние до финиша» терма «Близко»;
- fFar – значение функции принадлежности «Расстояние до финиша» терма «Далеко»;
- fRight – значение функции принадлежности «Положение финиша» терма «Справа»;
- fInFront – значение функции принадлежности «Положение финиша» терма «Спереди»;
- fLeft – значение функции принадлежности «Положение финиша» терма «Слева».
В данной функции осуществляется переход от значений входных переменных к значениям функций принадлежности соответствующих термов.
После получения значений термов происходит инициализация базы правил нечеткого множества при помощи функции:
private void createrules()
{
R0 = new double[,]
{
{ bClose, bRight, fVeryClose, fInFront },
{ bClose, bRight, fVeryClose, fRight },
{ bClose, bRight, fVeryClose, fLeft },
{ bClose, bRight, fFar, fInFront },
{ bClose, bRight, fFar, fRight },
{ bClose, bRight, fFar, fLeft },
…
R1 = new byte[,]
{
{ 1,2 },
{ 1,0 },
{ 2,2 },
{ 2,2 },
{ 1,2 },
{ 1,2 },
…
}
База правил хранится в виде двух двумерных массивов: 37 на 4 и 37 на 2. В каждой строке массива R0 хранятся по четыре подусловия, за которые отвечают соответствующие термы («Расстояние до препятствия», «Положение препятствия», «Расстояние до финиша», «Положение финиша»). В каждой строке массива R1 хранятся два выходных терма, отвечающие за «Скорость» (0 – «Назад», 1 – «Стоять», 2 – «Вперед») и «Угловую скорость» (0 – «Вправо», 1 – «Прямо», 2 – «Влево»).
Этап агрегирования происходит в специальной функции:
private void aggregation()
{
for (int i = 0; i < R2.Length; i++)
{
R2[i] = R0[i, 0];
for (int j = 1; j < 4; j++)
{
R2[i] = Math.Min(R2[i], R0[i, j]);
}
}
}
На данном этапе определяется степень истинности в каждом правиле нечеткого вывода. Данная база правил основана на соотношении нечеткого логического И:
T(A∩B) = min(T(A), T(B)) (1)
Таким образом, получаем одномерный массив R2, в котором хранятся степени истинности каждого правила.
На этапе активизации определяется степень истинности каждого правила одним из методов нечеткой композиции:
μ(y) = min(c, μ(x)) (2)
μ(y) = c μ(x) (3)
μ(y) = 0.5(c + μ(x)) (4)
В данной работе степень истинности подзаключений принята за 1, в связи с этим нет необходимости проводить этап активизации.
Этап деффазификации реализует следующая специальная функция:
private void defuzzyfication()
{
for (int i = 0; i < R2.Length; i++)
{
switch (R1[i, 0])
{
case 0:
tmpVal = _trapmf(R2[i], -0.9613, -0.901, -0.361, 0.1);
…
}
switch (R1[i, 1])
{
case 0:
lw[i] = _trimf(R2[i], -2.1, -2, -0.4);
break;
…
}
}
for (int i = 0; i < R2.Length; i++)
{
tmpVal += R2[i] * lw[i];
}
w = tmpVal / R2.Sum();
…
}
Здесь lV и lw содержат значение выходных параметров для каждого правила. На этапе деффазификации происходит переход нечетких значений (термов) к четким выходным значениям, в данном случае скорости V и угловой скорости w.
Для перехода к четким значениям был выбран метод центра тяжести (для дискретного случая):
(5)
Для исследования траекторий движения СУА были выбраны характерные ситуации расположения объектов (робота, препятствий и точек траекторий).
- На рис. 8 показано начальное положение робота.
Рисунок 8. Робот находится далеко от препятствия и цели
- На рис. 9 показан результат работы алгоритма.
Рисунок 9. Траектория, полученная в результате работы алгоритма
- На рис. 10 показан результат работы алгоритма.
Рисунок 10. Траектория, полученная в результате работы алгоритма с препятствием
- На рис. 11 показана ситуация, в которой робот должен двигаться последовательно к каждой цели по рядам.
Рисунок 11. Передвижения по рядам
- На рис. 12 показан результат работы алгоритма.
Рисунок 12. Траектория, полученная в результате работы алгоритма по рядам
Рассмотрев характерные ситуации работы алгоритма, можно сказать, что робот способен преодолевать препятствия, встречаемые на пути следования к цели. Также была достигнута плавность управления движением робота. Но при этом алгоритм не в состоянии сам разрешить ситуацию с попаданием робота в тупик. Поэтому также требуется контроль оператора для разрешения данной ситуации (задание нового пути либо физического устранения проблемы) либо усовершенствование алгоритма путем добавления дополнительных алгоритмов (например, хранение локальной карты местности с расчетом пути объезда).
Данная программа может быть адаптирована к определенному сельскохозяйственному полю для оптимизации работы управления движением агроробота. Проведенное исследование конкретных траекторий движения робота показало, чтоалгоритм не полностью автоматизирован (наличие тупиковой ситуации) и требуется его доработка.
- Рунов Б.А. Основы технологий точного земледелия. Зарубежный и отечественный опыт. / Б. Рунов, Н. Пильникова. – М.: Росинформагротех, 2010. – 120 с.
- Основы научной организации труда на предприятии. Учебное пособие. /Под редакцией И.А. Полякова. – М., 1987.
- Шебшаевич В.С., Дмитриев П.П., Иванцев Н.В. и др. Сетевые спутниковые радионавигационные системы / Под ред. В.С. Шебшаевича. – 2-е изд., перераб. и доп. – М.: Радио и связь, 1993. – 408 с.
- Proceedings of the 5th Field Robot Event 2007, Wageningen, June 14, 15 & 16 2007.
- Троелсен Э. Язык программирования C# 5.0 и платформа .NET 4.5. – 6-е издание. – М.: Вильямс, 2013. – 1311 с.: ил.
- Рихтер Дж. CLR via C#: Программирование на платформе Microsoft .NET Framework 4.5 на языке C#. – СПб.: Питер, 2013. – 896 с. – (Серия «Мастер-класс»). – 4-е издание (OCR).
Ключевые слова: агроробот, система управления, модель контроллера.
Development of a field agro robot movement control system
Egorova M.V., Moscow Aviation Institute (National Research University), 812 Chair, Lead Engineer
Abstract: This article reviews the existing solutions and methods for organizing the management of robot movement in the agricultural sector. The characteristics that the robot motion control system should have for technological processes of cultivating cultivated crops should be justified, and a specific control object should be selected. An algorithm was proposed for autonomous control over the movement of field agro robots based on fuzzy logic. The possibilities of fuzzy inference allow defining rules for movement and circumvention of arising obstacles, without having specific data on the robot motion model. The structure of the motion control system was developed, during which the basic elements of this system were determined: fuzzy controller, Vision System, rangefinders, navigation system, left and right track drives and data receiving and transmission module. To implement the algorithm, a fuzzy controller model was created and a program was developed in the C # programming language to demonstrate the operation of the algorithm in various situations. The program allows you to specify consecutive points of the trajectory of movement of the robot and have obstacles, then observe the operation of the algorithm.
Keywords: agro robot, control system, controller model.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|