Управление роботами Fanuk, Kuka, Staubli, Motoman, ABB, Nachi
CAM система для оффлайн программирования промышленных роботов
Решение
SprutCAM Robot переносит трудоемкую задачу по программированию робота из цеха на рабочее место за компьютером. Так программирование робота становится более простым и эффективным.
Задачи по программированию промышленных роботов, которые решает SprutCAM Robot
Фрезеровка Материалы: камень, дерево, пластик, пенопласт. Любые по форме детали: скульптуры, барельефы, ложементы, формы для литейной оснастки и т. д. Можно разместить робот на рельсе и использовать поворотный стол. |
Обрезка Обрезку можно запрограммировать с использованием концевых, дисковых или фасонных фрез. Подходит для обрезки как плоских деталей, так и для имеющих сложную форму. Можно вырезать отверстия, круглые или произвольной формы. |
Сварка Электрическая дуговая, точечная контактная, лазерная сварка. А так же наплавка. В траекторию движения заложены колебательные движения для правильного формирования сварного шва. |
Резка Плазменная, лазерная, гидроабразивная, резка ножом. Можно запрограммировать обработку как плоских деталей, так и сложные формы. Программирование учитывает параметры резки: ширина реза, высота заготовки, скорость резания, давление воды, торможения в углах траектории. |
Наплавка Аддитивные операции — новое применение для промышленных роботов. SprutCAM Robot поддерживает 3D печать. |
Шлифовка и полировка В SprutCAM Robot можно запрограммировать операции «деталь к инструменту». Не только шлифовку и полировку, но и фрезеровку. |
Внедрение
Предлагаем комплексное решение, а не просто программы для робототехники
ПО SprutCAM Robot |
Постпроцессор |
3D модель роботизированной ячейки |
Внедрение, обучение и техподдержка |
В результатеТеперь технолог работает за своим компьютером. Он составляет управляющую программу для робота полностью в виртуальной среде. Для симуляции он использует 3D модель роботизированной ячейки с учётом расположения и крепления робота в пространстве. Для отладки управляющей программы контролирует все виды проблем: соударения, выход за допустимые зоны перемещений, зоны сингулярности. Все это называется «оффлайн программирование» и происходит без задействования самого робота. В результате: уменьшается время простоя робота, снижается трудоемкость программирования, повышается качество обработки.
|
Процесс
Этапы внедрения SprutCAM
Выбор конфигурации ПО Подберем оптимальную конфигурацию ПО для ваших задач | ||
Разработка постпроцессора и схемы станка Предоставим готовый или разработаем новый постпроцессор |
||
Обучение Проведем обучение ваших сотрудников |
||
Техподдержка и обновление Наши эксперты буду на связи с вашими |
Функционал
Оффлайн программирование Благодаря оффлайн программированию уменьшаются простои робота и снижается стоимость программирования. Быстрее, чем программирование с пульта. |
|
SprutCAM позволяет создать G-код для работы с поворотным столом или для робота на рельсе. |
|
Автоматический контроль столкновений В процессе программирования SprutCAM Robot позволяет избежать столкновений робота с заготовкой, оснасткой и другими элементами роботизированной ячейки. |
|
Реалистичное моделирование в процессе программировани В SprutCAM Robot моделирование происходит после каждой созданной операции. И следующая операция всегда считается с учетом результата предыдущей. Такого нет ни в одной другой CAM системе. |
Поддерживаем оборудование
— Вашего производителя нет в списке?
— В SprutCAM Robot нет каких-либо ограничений, связанных с производителем робота. Так что можно быть уверенным, что любой другой промышленный робот можно запрограммировать в SprutCAM. Мы поможем.
Установите пробную версию SprutCAM Robot и получите запись двухдневного обученияЗаполните и отправьте форму, вам на почту придет ссылка на установщик ПО и ссылка на запись обучающего курса. Скачать пробную версию либо купить лицензию
|
Кто разработчики?
СПРУТ-Технология. 30 лет опыта в CAM.
Мы, команда разработчиков SprutCAM, пишем CAM софт с 1986 года. Сейчас у нас 10000 пользователей в 50+ странах. Мы расположены в России, город Набережные Челны. Работаем по всему миру.
Заинтересовал SprutCAM Robot?
Заполните заявку и получите ваше предложение
Робот-конструктор для сборки Little 8, сенсорное управление, передвижение на 8 ножках
Уникальный робот впечатлит любого ребенка и подарит много счастья и радости.
- имеет гладкий корпус из прочного пластика
- оснащен надежными креплениями, которые обеспечивают комфортную сборку
- имеет световые и звуковые эффекты
- работает от батареек
- может передвигаться
- интерактивный – работает в режиме следования за объектом и может обходить различные препятствия
- развивает логику, мышление, моторику, усидчивость и внимание
Характеристики:
- Длина: 130 мм
- Ширина: 125 мм
- Высота: 185 мм
Комплектация поставки:
- коробка
- крепеж
- плата
- держатель батареек
- моторчики
- детали
Рекомендуется докупить:
- 4 АА батарейки для робота
Сбер и Microsoft разработали уникальную ИИ-систему управления роботами — Новости и истории Microsoft
Компании разработали ИИ-систему управления роботами для взаимодействия с физическим миром. Она может применяться в различных сферах – от логистики до проведения спасательных операций. Испытания показали, что в реальных условиях система может работать с точностью до 95%. Исследовательский проект не имеет аналогов в России.
Москва, 7 декабря 2020 года. – Сбер и исследовательское подразделение Microsoft Research подвели итоги совместного проекта, анонсированного в октябре 2019 года. Разработанная уникальная ИИ-система дает возможность обучить роботов манипулировать физическими объектами непостоянной формы практически так, как это делает человек. Ключевой целью исследовательского проекта была разработка решения, способного взаимодействовать с людьми, освобождая их от механически сложной, рутинной работы и обеспечивая высокий уровень безопасности. Кроме того, это один из первых примеров переноса подобной технологии из симуляции в реальный мир – обученная система была внедрена и протестирована в Лаборатории робототехники Сбера.
Видео с демонстрацией функционала робота доступно здесь.
Click here to load media
«Совместно с Microsoft нам удалось добиться результатов, очень важных для развития искусственного интеллекта и робототехники. Система может быть востребована во множестве отраслей отечественной экономики. Мы намерены продолжать исследования, чтобы способствовать развитию цифровых технологий и обеспечивать российские компании современными высокопроизводительными роботами», – отметил заместитель председателя правления Сбербанка Станислав Кузнецов.
Работа над проектом осуществлялась в Лаборатории робототехники Сбера в Москве, Россия, и в Microsoft в Беркли и Редмонде, США, и в совокупности длилась больше года, с мая 2019 года по май 2020 г. Исследовательская группа состояла из 8 человек. Их практической задачей было разработать технологию выгрузки с помощью робота-манипулятора инкассаторских мешков с монетами весом до 6 килограмм из мобильных тележек для их последующей обработки в счетных машинах. В отличие от захвата твердотельных объектов, манипуляции объектами непостоянной формы из-за подвижного центра тяжести требуют постоянного вычисления положения и ориентации захватного устройства в каждом отдельном случае. Для расчета и предсказания этих параметров были применены методы глубокого обучения[1] и обучения с подкреплением[2]. Испытания продемонстрировали успешность выгрузки мешков с первого раза в более 95% в реальных условиях.
Процесс работы над проектом проходил в три этапа. Первый – разработка реалистичной симуляции робототехнической установки и объектов манипуляции – деформируемых мешков с монетами с учетом их физических характеристик. Вторым этапом была интеграция симуляторов с фреймворком машинного обучения с подкреплением и проведение экспериментов в симуляционной среде с обучением интеллектуального агента управлению виртуальным роботом. Для этого исследователями был применен подход machine teaching (англ. «обучение машин»). Методика предполагает не только обучение посредством взаимодействия алгоритма со средой, как в классическом обучении с подкреплением, но и использование «подсказок» от человека. На этом этапе необходимо было прописать правильные опорные точки для алгоритма, на основе которых он сможет обучаться. Это позволяет значительно ускорить процесс и сделать его более эффективным. На завершающем третьем этапе обученного в симуляторах интеллектуального агента перенесли непосредственно на физического робота. В результате в Лаборатории робототехники Сбера были успешно протестированы реальные манипуляции по разгрузке тележки с мешками монет роботом.
Создатели системы уверены, что подобная технология может быть востребована в широком ряде сфер. Особенно целесообразно ее применение для решения тех задач, где человек подвергается опасности или должен прилагать чрезвычайные физические усилия, например, в спасательных операциях, нефтедобыче, логистике и т.д. – везде, где необходимо совершать действия с объектами непостоянной формы.
«Мы высоко оцениваем результаты совместного исследовательского проекта и рады продолжать сотрудничество со Сбером в этом и других направлениях, – прокомментировала Кристина Тихонова, президент Microsoft в России. – Уровень доверия, сложившийся между нашими компаниями, позволяет внести существенный вклад в развитие прикладного ИИ в России и во всем мире, а также способствовать цифровой трансформации бизнеса и экономики в нашей стране».
Компании продолжат сотрудничество в исследовательской сфере, чтобы способствовать развитию и более широкому распространению своих разработок на стыке робототехники и искусственного интеллекта.
[1] Глубокое обучение (глубинное обучение; англ. deep learning) — разновидность машинного обучения, позволяющая вычислительным системам познавать предметную область, представляя ее в виде постепенно формируемой в процессе обучения (опыта) иерархии концепций – от простых к сложным. При этом от разработчика не требуется заранее задавать эти концепции. Многие современные системы глубокого обучения реализованы как многослойные (глубокие) искусственные нейронные сети, в которых разные слои отвечают разным уровням абстракции.
[2] Обучение с подкреплением (англ. reinforcement learning) — один из способов машинного обучения, в ходе которого целевая система (агент) обучается, взаимодействуя с некоторой средой, выступающей в роли «учителя». Такая среда может быть как естественной, так и виртуальной.
Tags: Microsoft, ИИ, робот, Сбер
Промышленный робот Kawasaki Robotics с датчиком управления по силе
Робот используется для тестирования новых бездатчиковых алгоритмов управления, которые позволяют делать промышленных роботов более безопасными в обращении.
В лаборатории робототехники ИТМО занимаются разработками новых алгоритмов управления, в том числе алгоритмами управления по силе: когда робот не просто перемещается из точки в точки, а взаимодействует с людьми, объектами, поверхностями, при этом контролируя силу воздействия.
Особый челлендж — это внедрение бездатчиковых технологий, которые позволят на программном уровне внедрять алгоритмы управления по силе в роботов, которые изначально для этого не были предназначены. Это, в первую очередь, решает проблему безопасности использования роботов при работе с человеком.
Классический робот не обладает датчиками присутствия — а без них он не может контролировать свою силу и менять траекторию своего движения, что может приводить к серьезным травмам. Аппаратная реализация, то есть установка дополнительных датчиков, стоит больших денег.
Бездатчиковые алгоритмы реализуются на программном, а не аппаратном уровне, и используют уже встроенные в любого промышленного робота функции, например, измерители тока. Это дает возможность настраивать роботов на новые виды взаимодействия с человеком и объектами, расширяет круг выполняемых ими задач — при этом без вмешательства в его программную начинку, которая чаще всего является закрытой.
Разработка алгоритма велась в том числе в рамках рамочного соглашения с компанией TRA Robotics — уже сейчас благодаря сотрудничеству с ИТМО компания может выпускать промышленных роботов, работающих с контролируемым усилием.
Перейти к содержаниюУправление и программирование промышленных роботов
На многих производствах наблюдается дефицит квалифицированных кадров. Система подготовки кадров в ПТУ разрушена, а из институтов мало кто идет на производства. В связи с этим появляется дополнительно требование к оборудованию – простота в использовании. И роботизированные комплексы с успехом выполняют его. В большинстве случаев для повседневной работы с ними операторам достаточно всего нескольких кнопок.
Рассмотрим вариант наиболее распространённого в России сварочного комплекса в составе: сварочный робот, сменщик станций, сварочное оборудование и ограждение:
Алгоритм работы оператора очень простой:
— снял готовое изделие
— закрепил новые заготовки в кондукторе
— вышел за ограждение
— нажал кнопку подтверждения и старта
С такой работой справится любой квалифицированный рабочий! Важным аспектом работы робота является программирование сварочного робота.
Если производство массовое и комплекс полностью загружен работой, то этот алгоритм работы будет сохраняться годами. С перерывами на ежегодное обслуживание комплекс производит несколько типов изделий, то и в этом случае задаче не сильно усложняется.
Если производственная программа требует большей гибкости. Вам нужно перейти с выпуска изделия А на выпуск изделия В, которое вы уже выпускали раньше. Все просто – снимаем установленные кондуктора (Для этого достаточно открутить несколько болтов). И устанавливаем нужные. На пульте управления выбираем программу для изделия В. И для своего спокойствия запускаем проверочный цикл. Все хорошо – комплекс готов к производству!
Даже написание новой программы под новое изделие не становится сложной задачей.
Вот вид экрана пульта управления АВВ с простейшей программой.
Все команды понятны программистам с минимальным знанием английского языка.
MOVEL – команда движения по прямой
PStart – название точки в которую нужно прийти
V1000 – скорость движения и т. д.
Нет необходимости заучивать коды и потом с листочком вспоминать какую команду нужно написать — M40 или M50?
В сложных случаях. Большое и сложное изделие или для фрезерования можно воспользоваться помощью дополнительного программного обеспечения.
АВВ предлагает пакет RobotStudio для симуляции работы роботизированных комплексов на компьютере.
В нем можно написать и отладить программу не останавливая роботизированную систему для этого и минимизировав время простоя оборудования для переналадки. А значит промышленная робототехника робот будет зарабатывать для вас все это время.
Простота в использовании – одно из необходимых качеств промышленной робототехники: если для управления роботизированным комплексом достаточно всего нескольких кнопок, это экономит ресурсы предприятия и сокращает количество персонала, необходимого для его обслуживания.
Как правило, фирмы-производители разрабатывают собственные языки программирования и вспомогательное программное обеспечение для своих роботов. «ДС-Роботикс», как системный интегратор, делает упор на вспомогательный софт, адаптированный для конкретной задачи, на разработку и модернизацию технологий, на внедрение измерительных систем.
Программирование промышленных роботов начинается с комплексной программной оболочки, куда при необходимости интегрируются дополнительные модули. Примерами таких модулей могут послужить система видеонаблюдения, система замера вращающего момента и т. п. Например, при помощи программирования промышленный робот можно научить распознавать положение обрабатываемой детали.
Управление промышленными роботами осуществляется при помощи программ, специально написанных для них (программы для робототехники одного производителя, как правило, не подходят для другого).
Онлайн- и офлайн-программирование
Для управления промышленными роботами программы разрабатываются двумя способами – онлайн и офлайн. Первое – это программирование роботов непосредственно на месте их установки. При онлайн-программировании робот программирует сам себя. Если применяется метод Teach-In, оператор при помощи консоли направляет робота в заданный участок пространства и выполняет необходимые задачи, а робот «запоминает» координаты местоположения, скорость движения в каждом пункте. При методе Playback оператор вручную обводит робота по траектории движения. Управление промышленными роботами при помощи онлайн-программирования не всегда удобно – в программы, созданные таким образом, нельзя вносить изменения.
Более продвинутый способ управления роботом – офлайн-программирование. В таком случае программы пишутся на обычном компьютере в редакторе, поставляемом с комплексом программного обеспечения робота: написание программ для современных роботов доступно любому сотруднику после недолгого обучения. Текстовая программа загружается в компьютер робота, отлаживается и корректируется. Также в последнее время набирают популярность 3D и CAD-модели. Такое программирование экономит время, не останавливает производственный процесс и дает отличную визуализацию и возможность предварительно оценить множество параметров и итоговый успех работы промышленных роботов.
Samsung поручила управление умным домом робошару Ballie
Samsung
Компания Samsung представила социального робота Ballie. Робошар способен самостоятельно управлять умным домом, а также взаимодействует с человеком и домашними питомцами. Презентация устройства прошла на выставке CES 2020.
Умным домом сегодня называют большую группу самых разных устройств и систем с возможностью удаленного мониторинга или управления. Поскольку отдельно управлять множеством разных устройств не очень удобно, для этого нередко используют центр управления, которым может выступать как мобильное приложение, так и отдельное устройство. Часто это голосовой помощник (например, «Алиса» от Яндекса или Google Home), но возможны и другие решения, среди которых есть даже самодельные очки.
Управление умным домом можно поручить и домашнему роботу-помощнику. Именно по такому пути предложила пойти Samsung, представив на CES 2020 робота Ballie. Это роботизированный шар, способный самостоятельно передвигаться по дому и воспринимать происходящее с помощью встроенной камеры, распознавая людей и домашних животных.
Ballie работает не только как обычный центр управления умным домом, включая устройства по таймеру или по команде, но также способен принимать самостоятельные решения — например, включит робот-пылесос, если заметит мусор, или позовет кого-нибудь на помощь, если увидит, что человек упал и не может подняться.
Стоит отметить, что у робота вращаются только боковые сегменты, поэтому непонятно, сможет ли Ballie преодолеть даже невысокий межкомнатный порог или, например, ковер — в ролике видно, что он запинается даже на небольшом препятствии.
Никаких других подробностей об устройстве не сообщается, поэтому неясно, какими еще сенсорами оснащен Ballie и какие функции ему доступны, кроме продемонстрированных в видео. Также неизвестно, когда и по какой цене робошар поступит в продажу.
В промо-ролике Ballie показана также и другая новинка Samsung — поворачивающийся умный телевизор The Sero. Благодаря тому, что экран может располагаться как горизонтально, так и вертикально, The Sero может полноценно дублировать экран смартфона.
Стоит отметить, что Ballie — не первая попытка передать управление умным домом в руки робота-помощника. В 2016 году, например, был представлен робот-дворецкий Vyo, который предназначен для тактильного управления умным домом с помощью физических иконок.
Николай Воронцов
Робот NAUMEN упростил управление счетами за ЖКХ для жителей Новосибирска
Компания NAUMEN завершила проект внедрения голосового робота в контактный центр АО «Новосибирскэнергосбыт», поставщика электроэнергии. Робот на AI-платформе Naumen Erudite принимает показания счетчиков, информирует о состоянии счета и помогает оформить заявки на дополнительные услуги. С момента запуска виртуальный сотрудник обслужил более 120 тыс. обращений клиентов.
Голосовой робот NAUMEN классифицирует обращения и в автоматическом режиме принимает у жителей города показания приборов учета электроэнергии, а также предоставляет данные о балансе лицевых счетов и последних переданных показаниях.
Если клиент передает показания счетчика непосредственно в ходе уточнения баланса, робот осуществляет перерасчет средств на лицевом счете и озвучивает актуальный остаток. Интеграция с биллинговой системой «Сирена» позволяет проводить авторизацию клиента по адресу, номеру лицевого счета или номеру телефона. Для распознавания реплик клиента в ходе разговора используется решение на базе технологий ЦРТ.
Виртуальный сотрудник также работает с заявками граждан на замену приборов учета или получение справки об отсутствии долгов по счетам. Робот отслеживает статус существующих заявок, озвучивая запланированную дату оказания услуги, а также помогает в создании новых, консультируя по видам сервисов и их стоимости.
С момента запуска в эксплуатацию голосовой робот обслужил более 120 тыс. входящих обращений клиентов АО «Новосибирскэнергосбыт», при этом около 50% запросов, поступающих ежемесячно, связаны с приемом показаний счетчиков электроэнергии.
«Роботизация типовых сервисов и тематик позволяет контактному центру не только успешно справляться с ежемесячными пиковыми нагрузками, которые приходятся на те несколько дней, когда клиенты массово передают показания приборов учета, но и целом гораздо быстрее обслуживать входящие обращения. Переход к подобной оперативности при стабильно высоком качестве — это значимый вклад в улучшение клиентского опыта и фундамент для роста компании», — отмечает Анна Марина, руководитель департамента по работе с населением «Новосибирскэнергосбыт».
В задачи голосового робота входит обслуживание юридических лиц, которые обращаются в контакт-центр, чтобы проверить состояние счета для оплаты электроэнергии и получить консультацию по часто задаваемым вопросам. После классификации обращения робот может рассказать о процедуре заключения договора, порядке получения счетов-фактур и актов сверки, а также действующих для организаций тарифах и ценах.
«Технологии обработки естественного языка и машинного обучения наравне с пониманием стандартов массового дистанционного обслуживания и специфики работы КЦ позволяют создавать голосовых роботов, которые успешно выполняют целый спектр функций — от определения темы обращения до предоставления востребованных сервисов без привлечения операторов. Эффективность подобных решений подтверждается тем, что роботы в контактных центрах энергосбытовых компаний уже становятся отраслевым стандартом», — считает Андрей Зайцев, руководитель департамента контактных центров и роботизированных систем NAUMEN.
Голосовые и текстовые роботы NAUMEN обеспечивают автоматизированный прием показаний приборов учета в «ЭнергосбыТ Плюс», «МосОблЕИРЦ» и «Омск РТС», помогают найти эвакуированный автомобиль в Москве, информируют о статусе почтовых отправлений клиентов «Почты России», обзванивают клиентов с дебиторской задолженностью в компании «Мосэнергосбыт» и обслуживают бизнес-клиентов «Промсвязьбанка».
О компании
АО «Новосибирскэнергосбыт» является ключевым поставщиком электроэнергии на территории Новосибирска и в Новосибирской области. Компания обслуживает 1 миллион потребителей и 30 000 организаций и активно развивает направление цифровых сервисов для клиентов, последовательно повышая качество предоставляемых услуг.
Методы управления роботом
Управление ПК
Эти демонстрации и проекты позволяют управлять роботом с помощью компьютера. Это может быть так же просто, как ввод команд в последовательном мониторе Arduino, или такое же сложное, как пользовательское приложение, такое как программное обеспечение Arm Link.
Обычно компьютерное управление осуществляется через USB-кабель, но некоторые демонстрации будут поддерживать беспроводное управление через XBees — см. Конкретную демонстрацию для получения дополнительной информации.
Прямое управление
Эти демонстрации и проекты управляют роботом напрямую с датчиков, подключенных непосредственно к плате управления робота (обычно это робот ArbotiX-M Robocontroller).Обычно это позволяет пользователю напрямую управлять роботом с помощью датчиков.
Позы управления
Эти демонстрации и проекты позволяют создавать и воспроизводить последовательность поз. Предварительно запрограммированные движения могут быть полезны для четко определенных повторяющихся задач.
Последовательный контроль
Эти демонстрации и проекты управляют роботом с помощью последовательного пакетного протокола.Последовательный пакет может быть отправлен с различных устройств, от компьютеров до микроконтроллеров. Эти демонстрации — отличное место для начала, если вы хотите динамически управлять роботом с другого устройства.
Автономный
Эти демонстрации и проекты созданы для того, чтобы ваш робот мог работать без компьютера или дополнительного микроконтроллера. В этих проектах используются роботизированный робот ArbotiX Robocontroller и датчики, подключенные к нему напрямую.
Для настройки и программирования робота потребуется компьютер, но после этого компьютер не потребуется.
Беспроводное управление
Эти демонстрации и проекты позволяют вам управлять роботом по беспроводной сети — обычно путем замены последовательного соединения модулями XBee.
Система управления несколькими роботами — SMP Robotics
Robots Rover S5 поставляется с планшетным компьютером с предустановленным специальным программным обеспечением «Система агента мобильного робота Rover».Это клиентское программное обеспечение многоагентной системы. Программное обеспечение обеспечивает отображение карты местности, показывающей текущее местоположение мобильного робота, а также отображает действия, выполняемые роботом, и состояние его систем, например, уровень заряда батареи, емкость канала связи, температуру и запас мощности.
Интуитивный дизайн сенсорного экрана
Программное обеспечение имеет интуитивно понятный интерфейс, не требующий от пользователя специальных знаний или навыков для работы. При необходимости в интерфейс приложения можно добавить экраны управления дополнительным мобильным оборудованием.В частности, для защиты робота-оператора экраны интерфейса могут предоставлять дополнительное онлайн-видео и возможность работы с видеоархивами. При совместном использовании программное обеспечение робота Rover S5 может обеспечить экран управления БПЛА (дроном) с интерфейсом для управления взлетом и посадкой БПЛА (дрона).
Для решения проблем, связанных с работой, проводимой на больших площадях и предполагающей использование большого количества роботов, SMP Robotics продолжает совершенствовать специальное программное обеспечение с элементами искусственного интеллекта.Проблемы с управлением большими группами роботов (интеллектуальных агентов) очень сложны. Такие проблемы часто не имеют полного алгоритмического решения из-за неполных знаний об окружающей среде, нестабильности и наличия непредсказуемых событий, которые приводят к отказу отдельных роботов. Кроме того, трудно управлять другими факторами с помощью формализованных решений для осуществления практического сотрудничества групп роботов, подходящих к реальной среде. SMP Robotics продолжает работать над такими алгоритмами искусственного интеллекта для удовлетворения потребностей крупных организаций в реальном времени на различных территориях и в других условиях по всему миру.
Миссии с участием нескольких роботов
В то же время, группы управления решениями роботов могут более полно раскрыть возможности мобильных робототехнических систем для максимальной эффективности их использования.
Программный комплекс «Патруль МАС» (мультиагентная система) предназначен для взаимодействия внутри группы мобильных роботов для решения сложных задач в недетерминированной динамической среде. Подход к успешному решению нетривиального класса задач основан на трех компонентах:
Первый , количество роботов на единицу в выбранной области должно быть достаточным для покрытия этой области и, возможно, избыточным в качестве прямого решения проблемы при одновременной поддержке улучшений на большие расстояния (например, большинство роботов, используемых для обеспечения безопасности находятся на заранее определенном маршруте, и эти роботы обеспечивают небольшую часть исследования новых оптимальных транспортных маршрутов).
Второй , такие решения могут обеспечить непрерывный канал связи между соседними роботами или роботами между любой из групп в целом. Свободное распространение информации необходимо для ее постоянного обновления, обеспечения доступа всех ботов к успешным стратегиям решения локальных проблем и постоянного движения к локальному динамическому перераспределению целей.
Обмен информацией между агентами предполагает ее оптимальное структурирование и формализованные решения в отношении состояния каждого робота по отношению к окружающей среде.Непрерывный обмен информацией между интеллектуальными агентами предполагает объединение роботов в один суперорганизм.
В-третьих, , обширное решение проблем движется к динамическому определению специализированных подзадач для каждого из роботов для успешного решения групповых задач роботов в целом. Например, робот Hazmat является единственным звеном в передаче информации роботу и выполняет функцию разведчика задач; в этом случае робот Hazmat должен отложить выполнение задачи по уходу за хазматом, несмотря на то, что это является приоритетом для группы в целом, при обеспечении связи для выполнения задач разведки. Рекомбинация целей возможна при двух условиях: избыточность или интеллектуальные агенты и их универсальность для реализации решений.
Вычислительные и сенсорные возможности интеллектуальных агентов, поскольку роботы не могут обрабатывать информацию об окружающей среде в целом, поэтому каждый из роботов имеет фрагмент знаний. Тем не менее, эта группа роботов в целом имеет полную и достоверную информацию об окружающей среде и других роботах как неотъемлемом компоненте своего окружения. Задачи, которые могут решить группировку роботов с таким интеллектом роя, значительно превышают возможности отдельных роботов, умноженные на количество и возможности каждого компонента робота — это отличная демонстрация того, как увеличение числа роботов создает новый уровень качества.
Как работает эта программа, довольно сложно объяснить в нескольких абзацах. Мы потратили более пяти лет на эти разработки, которые велась большой командой программистов и разработчиков роботов.
Продолжая стремиться к полному внедрению решений на основе робототехники, мы начали подготовку специального учебного курса по настройке и эксплуатации такого оборудования и программного обеспечения.
Программное обеспечениедля управления и моделирования роботов, которое можно бесплатно получить по адресу igus
Кельн, Германия, компания igus GmbH объявила, что она сделала программное обеспечение управления и моделирования для своих недорогих систем автоматизации доступным бесплатно.Производитель систем энергоцепей и полимерных подшипников скольжения заявил, что их предложение по управлению роботами может обеспечить простое в использовании введение в автоматизацию.
«Как машиностроительная компания мы хорошо знакомы с различной кинематикой, поэтому следующим логическим шагом для нас была разработка, соответственно, простой и интуитивно понятной системы управления роботом», — сказал Александр Мюленс, руководитель отдела технологий автоматизации в igus, недавний виртуальный выставочный зал. «Кинематика роботов меняется, и мы позволяем разработчикам создавать или покупать детали для роботов с линейным доступом. ”
Программное обеспечение дополняет модульные комплекты robolink igus для создания совместных манипуляторов роботов и продукт drylin для создания портальных роботов. Операции компании в США базируются в Провиденсе, штат Род-Айленд, и в настоящее время отгружаются продукты во время пандемии COVID-19.
Программное обеспечение igus для управления роботом имитирует движение
Новое программное обеспечение igus для управления роботами позволяет пользователям программировать и управлять различной кинематикой робота. Цифровой двойник имитирует их движения, позволяя операторам программировать свои системы, чтобы определить, какой тип робота лучше всего подходит для их приложений, перед покупкой.
Пользователи могут обучать цифрового двойника, как настоящего робота, и свободно перемещать все оси через трехмерный интерфейс. По словам igus, с функцией обучения они могут легко создать программу для робота даже без подключения к нему.
Кроме того, пользователь может определить, как робот должен двигаться, позиционируя его вручную. Повторяя процесс, программист робота может создать желаемый профиль движения. Можно легко добавить концевые эффекторы, такие как захваты, а центральная точка инструмента регулируется автоматически в соответствии с igus.
Виртуальные выставки-ярмарки. Источник: igus
Программное обеспечение, упрощающее программирование реальных роботов
По словам igus, с помощью моделирования управления роботом пользователи могут интуитивно запрограммировать устройство позже. Каждая программа впоследствии может быть применена к настоящему роботу.
«Вы можете попробовать его перед покупкой, а затем сможете купить доступное оборудование», — сказал Мюленс. Полный комплект оборудования — например, линейный робот drylin со встроенной системой управления в распределительном шкафу — доступен примерно за 5400 долларов.
Мюленс привел приложение Volkswagen для сбора мусора в качестве примера того, как роботы могут забирать товары из ящиков, собирать образцы или выдавать товары из торгового автомата. Портфель недорогой автоматизации igus включает кинематику для шарнирных манипуляторов, дельта-роботов или линейных роботов.
«Пользователи могут запрограммировать движение робота, отслеживая его на сенсорном экране», — сказал Мюленс. «Есть канал YouTube для помощи. [Пользователи] могут нажать кнопку Play, и кинематическая симуляция запустится. Они могут увеличить рабочий объем в четыре раза с помощью линейного ДП и контроллера.”
Например, виртуальные боксы также могут быть установлены, чтобы предотвратить столкновение робота с машиной. Система управления роботом igus также может быть подключена к системе управления более высокого уровня либо через интерфейс связи с цифровым вводом-выводом, либо через связь Ethernet с использованием IP-адреса.
Источник: igus
Поддержка нескольких роботов
igus заявила, что ее разработчики хотят еще больше расширить систему управления. «В будущем мы хотим предложить облачные услуги, такие как интеграция машинного зрения, удаленный ввод в эксплуатацию, а также онлайн-обучение за небольшую плату, которое заказчик может заказать», — сказал Мюленс. «Дальнейшие услуги, такие как оценка изображений с помощью веб-камеры или решения для сбора мусора, планируются как облачные решения».
Mühlens привел пример приложения торгового автомата, извлекающего шоколад с помощью линейной системы. «Мы обеспечиваем линейный доступ для роботов — не только для igus, но и для UR», — сказал он.
В прошлом году продавец бережливой робототехники RBTX запустил в прошлом году в Германии, Австрии, Великобритании и Франции.
«У нас была идея платформы, которая позволит клиентам находить экономичных роботов, захватов и систем технического зрения, которые работают вместе и прозрачно», — сказал Стефан Нирманн, руководитель подразделения линейных и приводных технологий drylin в компании igus.«Мы начали с шести партнеров, а в этом году мы получим еще 10, от 70 до 80 продуктов. В науке и образовании, в университетах существует большой спрос на шестиосевых роботов и роботов с малым треугольником ».
Программное обеспечение igus для управления роботами доступно в Интернете бесплатно и без лицензии.
Учебное пособие по программированию робототехники: как программировать простого робота
Примечание редактора: 16 октября 2018 г. эта статья была переработана для работы с новейшими технологиями.
Посмотрим правде в глаза, роботы классные.Они также собираются когда-нибудь править миром, и, надеюсь, тогда они пожалеют своих бедных мягкотелых создателей (также известных как разработчики робототехники) и помогут нам построить космическую утопию, наполненную изобилием. Я, конечно, шучу, но только вроде.
Стремясь хоть как-то повлиять на этот вопрос, в прошлом году я прошел курс теории управления автономными роботами, кульминацией которого стало создание симулятора робота на базе Python, который позволил мне практиковать теорию управления на простом, мобильном, программируемом робот.
В этой статье я собираюсь показать, как использовать платформу роботов Python для разработки управляющего программного обеспечения, описать схему управления, которую я разработал для своего смоделированного робота, проиллюстрировать, как он взаимодействует со своей средой и достигает своих целей, а также обсудить некоторые из фундаментальные проблемы программирования робототехники, с которыми я столкнулся на этом пути.
Чтобы следовать этому руководству по программированию робототехники для начинающих, у вас должны быть базовые знания о двух вещах:
- Математика — мы будем использовать некоторые тригонометрические функции и векторы
- Python — поскольку Python является одним из наиболее популярных базовых языков программирования роботов, мы будем использовать базовые библиотеки и функции Python.
Приведенные здесь фрагменты кода являются лишь частью всего симулятора, который полагается на классы и интерфейсы, поэтому для непосредственного чтения кода вам может потребоваться некоторый опыт в Python и объектно-ориентированном программировании.
Наконец, дополнительные темы, которые помогут вам лучше следовать этому руководству, — это знать, что такое конечный автомат и как работают датчики диапазона и кодеры.
Проблема программируемого робота: восприятие против реальности и хрупкость управления
Фундаментальная проблема всей робототехники заключается в следующем: невозможно когда-либо узнать истинное состояние окружающей среды. Программное обеспечение для управления роботами может только предполагать состояние реального мира на основе измерений, полученных от его датчиков.Он может только попытаться изменить состояние реального мира посредством генерации управляющих сигналов.
Программное обеспечение для управления роботами может только предполагать состояние реального мира на основе измерений, полученных от его датчиков.
Таким образом, одним из первых шагов в разработке системы управления является создание абстракции реального мира, известной как модель , с помощью которой можно интерпретировать показания наших датчиков и принимать решения. Пока реальный мир ведет себя в соответствии с предположениями модели, мы можем делать правильные предположения и контролировать ситуацию.Однако, как только реальный мир отклонится от этих предположений, мы больше не сможем делать правильные предположения, и контроль будет утерян. Часто, когда контроль теряется, его уже невозможно восстановить. (Если его не восстановит какая-нибудь доброжелательная внешняя сила.)
Это одна из основных причин того, что программирование робототехники так сложно. Мы часто видим в лаборатории видеоролики, на которых новейший исследовательский робот демонстрирует фантастические навыки ловкости, навигации или командной работы, и у нас возникает соблазн спросить: «Почему это не используется в реальном мире?» Что ж, в следующий раз, когда вы посмотрите такое видео, посмотрите, насколько строго контролируется лабораторная среда.В большинстве случаев эти роботы могут выполнять эти впечатляющие задачи только до тех пор, пока условия окружающей среды остаются в узких рамках его внутренней модели. Таким образом, одним из ключей к развитию робототехники является разработка более сложных, гибких и надежных моделей, и это продвижение зависит от ограничений доступных вычислительных ресурсов.
Одним из ключей к развитию робототехники является разработка более сложных, гибких и надежных моделей.
[Боковое примечание: и философы, и психологи отметили бы, что живые существа также страдают от зависимости от их собственного внутреннего восприятия того, что им говорят их чувства.Многие успехи в робототехнике достигаются благодаря наблюдению за живыми существами и их реакции на неожиданные раздражители. Подумай об этом. Какова ваша внутренняя модель мира? Он отличается от муравья, а от рыбы? (Надеюсь.) Однако, подобно муравью и рыбе, он, вероятно, слишком упрощает некоторые реалии мира. Когда ваши предположения о мире неверны, вы рискуете потерять контроль над ситуацией. Иногда мы называем это «опасностью». Точно так же, как наш маленький робот пытается выжить в неизвестной вселенной, мы все тоже.Это мощное открытие для робототехников.]
Программируемый симулятор робота
Симулятор, который я построил, написан на Python и очень умно назван Sobot Rimulator . Вы можете найти версию 1.0.0 на GitHub. В нем не так много наворотов, но он создан для одной цели очень хорошо: обеспечивает точное моделирование мобильного робота и дает начинающему робототехнику простую основу для практики программирования программного обеспечения роботов. Хотя всегда лучше иметь настоящего робота, чтобы играть с ним, хороший симулятор робота Python намного доступнее и является отличным местом для начала.
В реальных роботах программное обеспечение, генерирующее управляющие сигналы («контроллер»), должно работать на очень высокой скорости и производить сложные вычисления. Это влияет на выбор языков программирования роботов, которые лучше всего использовать: обычно для таких сценариев используется C ++, но в более простых робототехнических приложениях Python — очень хороший компромисс между скоростью выполнения и простотой разработки и тестирования.
Программное обеспечение, которое я написал, имитирует реального исследовательского робота под названием Khepera, но его можно адаптировать к ряду мобильных роботов с различными размерами и датчиками.Поскольку я пытался запрограммировать симулятор, максимально приближенный к возможностям реального робота, логику управления можно загрузить в настоящего робота Khepera с минимальным рефакторингом, и он будет работать так же, как моделируемый робот. Реализованные особенности относятся к Khepera III, но они могут быть легко адаптированы к новому Khepera IV.
Другими словами, программирование имитируемого робота аналогично программированию реального робота. Это очень важно, если симулятор будет полезен для разработки и оценки различных подходов к управляющему программному обеспечению.
В этом руководстве я опишу архитектуру программного обеспечения для управления роботами, которая поставляется с v1.0.0 из Sobot Rimulator , и предоставлю фрагменты из исходного кода Python (с небольшими изменениями для ясности). Тем не менее, я рекомендую вам погрузиться в источник и бездельничать. Симулятор был разветвлен и использовался для управления различными мобильными роботами, включая Roomba2 от iRobot. Точно так же, пожалуйста, не стесняйтесь разветвлять проект и улучшать его.
Логика управления роботом ограничена следующими классами / файлами Python:
-
моделей / супервайзер. py
— этот класс отвечает за взаимодействие между моделируемым миром вокруг робота и самим роботом. Он развивает конечный автомат нашего робота и запускает контроллеры для вычисления желаемого поведения. -
models / supervisor_state_machine.py
— этот класс представляет различные состояний , в которых может находиться робот, в зависимости от его интерпретации датчиков. - Файлы в каталоге
models / controllers
— эти классы реализуют различное поведение робота при известном состоянии окружающей среды.В частности, в зависимости от конечного автомата выбирается конкретный контроллер.
Цель
Роботам, как и людям, нужна цель в жизни. Цель нашего программного обеспечения, управляющего этим роботом, будет очень простой: он будет пытаться добраться до заранее определенной целевой точки. Обычно это основная функция, которой должен обладать любой мобильный робот, от автономных автомобилей до роботов-пылесосов. Координаты цели программируются в управляющем программном обеспечении до активации робота, но могут быть сгенерированы из дополнительного приложения Python, которое контролирует движения робота.Например, представьте, что он проезжает через несколько путевых точек.
Однако, чтобы усложнить ситуацию, окружение робота может быть усыпано препятствиями. Робот НЕ МОЖЕТ столкнуться с препятствием на пути к цели. Следовательно, если робот сталкивается с препятствием, ему придется найти путь, чтобы продолжить свой путь к цели.
Программируемый робот
Каждый робот имеет разные возможности и особенности управления. Давайте познакомимся с нашим смоделированным программируемым роботом.
Прежде всего следует отметить, что в этом руководстве нашим роботом будет автономный мобильный робот . Это означает, что он будет свободно перемещаться в пространстве и делать это под собственным контролем. В этом отличие, скажем, от робота с дистанционным управлением (который не является автономным) или заводского робота-манипулятора (который не является мобильным). Наш робот должен сам выяснить, как достичь своих целей и выжить в окружающей среде. Это оказывается удивительно сложной задачей для начинающих программистов-робототехников.
Управляющие входы: датчики
Робот может быть оснащен множеством различных способов мониторинга окружающей среды. Они могут включать в себя все, от датчиков приближения, датчиков освещенности, бамперов, камер и т. Д. Кроме того, роботы могут связываться с внешними датчиками, которые дают им информацию, которую они сами не могут наблюдать напрямую.
Наш эталонный робот оснащен девятью инфракрасными датчиками. — более новая модель имеет восемь инфракрасных и пять ультразвуковых датчиков приближения — расположенных в «юбке» во всех направлениях.Есть больше датчиков, обращенных к передней части робота, чем к задней, потому что для робота обычно более важно знать, что находится перед ним, чем то, что находится за ним.
Помимо датчиков приближения, у робота есть пар бегунов , которые отслеживают движение колес. Они позволяют отслеживать, сколько оборотов делает каждое колесо, при этом один полный оборот колеса вперед составляет 2765 тиков. Повороты в обратном направлении считают в обратном порядке, уменьшая количество тиков вместо увеличения.Вам не нужно беспокоиться о конкретных цифрах в этом руководстве, потому что программное обеспечение, которое мы напишем, использует пройденное расстояние, выраженное в метрах. Позже я покажу вам, как вычислить его по тикам с помощью простой функции Python.
Управляющие выходы: мобильность
Некоторые роботы передвигаются на ногах. Некоторые катятся, как мяч. Некоторые даже скользят, как змеи.
Наш робот — это робот с дифференциальным приводом, то есть он передвигается на двух колесах. Когда оба колеса вращаются с одинаковой скоростью, робот движется по прямой.Когда колеса движутся с разной скоростью, робот поворачивается. Таким образом, управление движением этого робота сводится к правильному контролю скорости вращения каждого из этих двух колес.
API
В Sobot Rimulator разделение между роботом «компьютером» и (смоделированным) физическим миром воплощено в файле robot_supervisor_interface.py
, который определяет весь API для взаимодействия с датчиками и двигателями «реального робота»:
-
read_proximity_sensors ()
возвращает массив из девяти значений в собственном формате датчиков -
read_wheel_encoders ()
возвращает массив из двух значений, указывающих общее количество тиков с начала -
set_wheel_drive_rates (v_l, v_r)
принимает два значения (в радианах в секунду) и устанавливает эти два значения для скорости левого и правого колес
Этот интерфейс внутренне использует объект-робот, который предоставляет данные от датчиков и возможность перемещать двигатели или колеса.Если вы хотите создать другого робота, вам просто нужно предоставить другой класс робота Python, который может использоваться в том же интерфейсе, а остальная часть кода (контроллеры, супервизор и симулятор) будет работать из коробки!
Симулятор
Так же, как вы использовали бы настоящего робота в реальном мире, не уделяя слишком много внимания задействованным законам физики, вы можете игнорировать то, как моделируется робот, и просто перейти непосредственно к программированию программного обеспечения контроллера, так как это будет почти то же самое между реальным миром и симуляцией. Но если вам интересно, я кратко представлю его здесь.
Файл world.py
— это класс Python, который представляет смоделированный мир с роботами и препятствиями внутри. Функция step внутри этого класса заботится о развитии нашего простого мира:
- Применение правил физики к движениям робота
- Учет столкновений с препятствиями
- Предоставление новых значений для датчиков робота
В конце он вызывает диспетчеров роботов, ответственных за выполнение программного обеспечения мозга робота.
Пошаговая функция выполняется в цикле, так что robot.step_motion ()
перемещает робота, используя скорость колеса, вычисленную супервизором на предыдущем этапе моделирования.
# пошаговое моделирование через один временной интервал
def step (self):
dt = self.dt
# шагаем всем роботам
для робота в self.robots:
# шаг движения робота
robot.step_motion (dt)
# применяем физические взаимодействия
self. physics.apply_physics ()
# ПРИМЕЧАНИЕ: супервизоры должны бежать последними, чтобы убедиться, что они наблюдают за «текущим» миром.
# шаг все супервизоры
для руководителя в себе.руководители:
supervisor.step (dt)
# увеличить мировое время
self.world_time + = dt
Функция apply_physics ()
внутренне обновляет значения датчиков приближения робота, чтобы супервизор мог оценить среду на текущем этапе моделирования. Те же принципы применимы к кодировщикам.
Простая модель
Во-первых, у нашего робота будет очень простая модель. Он сделает много предположений о мире. Некоторые из наиболее важных:
- Рельеф всегда ровный и ровный
- Препятствий не бывает круглых
- Колеса не скользят
- Ничто и никогда не сможет толкнуть робота вокруг
- Датчики никогда не выходят из строя и не дают ложных показаний
- Колеса всегда поворачиваются, когда им говорят на
Несмотря на то, что большинство из этих предположений разумны в условиях дома, могут присутствовать круглые препятствия. Наше программное обеспечение для предотвращения препятствий имеет простую реализацию и следует за границей препятствий, чтобы обойти их. Мы подскажем читателям, как улучшить систему управления нашим роботом с помощью дополнительной проверки, позволяющей избегать круговых препятствий.
Контур управления
Теперь мы войдем в ядро нашего управляющего программного обеспечения и объясним поведение, которое мы хотим запрограммировать внутри робота. В этот фреймворк можно добавить дополнительные модели поведения, и вы должны попробовать свои собственные идеи после того, как закончите читать! Программное обеспечение для робототехники на основе поведения было предложено более 20 лет назад и до сих пор остается мощным инструментом для мобильной робототехники.Например, в 2007 году набор моделей поведения использовался в DARPA Urban Challenge — первом соревновании для автомобилей с автономным вождением!
Робот — это динамическая система. Состояние робота, показания его датчиков и влияние его управляющих сигналов постоянно меняются. Управление ходом событий включает следующие три этапа:
- Подайте управляющие сигналы.
- Измерьте результаты.
- Генерировать новые управляющие сигналы, рассчитанные на то, чтобы приблизить нас к нашей цели.
Эти шаги повторяются снова и снова, пока мы не достигнем нашей цели. Чем больше раз мы сможем сделать это в секунду, тем более точным будет контроль над системой. Робот Sobot Rimulator повторяет эти шаги 20 раз в секунду (20 Гц), но многие роботы должны делать это тысячи или миллионы раз в секунду, чтобы иметь адекватный контроль. Вспомните наше предыдущее введение о разных языках программирования роботов для различных робототехнических систем и требований к скорости.
Как правило, каждый раз, когда наш робот выполняет измерения с помощью своих датчиков, он использует эти измерения для обновления своей внутренней оценки состояния мира, например, расстояния от своей цели.Он сравнивает это состояние с эталонным значением того, что хочет, чтобы состояние было (для расстояния он хочет, чтобы оно было равно нулю), и вычисляет ошибку между желаемым состоянием и фактическим состоянием. Как только эта информация известна, создание новых управляющих сигналов может быть сведено к проблеме , минимизируя ошибку , которая в конечном итоге приведет робота к цели.
Изящный трюк: упрощение модели
Чтобы управлять роботом, которого мы хотим запрограммировать, мы должны послать сигнал на левое колесо, сообщающее ему, как быстро поворачиваться, и отдельный сигнал на правое колесо, сообщающее и , как быстро вращаться.Назовем эти сигналы v L и v R . Однако постоянно мыслить категориями v L и v R очень громоздко. Вместо того, чтобы спрашивать: «С какой скоростью мы хотим, чтобы вращалось левое колесо, и с какой скоростью мы хотим, чтобы вращалось правое колесо?» естественнее спросить: «С какой скоростью мы хотим, чтобы робот двигался вперед, и с какой скоростью мы хотим, чтобы он поворачивался или менял свой курс?» Назовем эти параметры скоростью v и угловой (вращательной) скоростью ω (читается «омега»). Оказывается, мы можем основывать всю нашу модель на v и ω вместо v L и v R , и только после того, как мы определили, как мы хотим, чтобы наш запрограммированный робот двигался, математически преобразовывать эти два значения в v L и v R нам нужно для фактического управления колесами робота. Это известно как моноцикл , модель управления.
Вот код Python, реализующий окончательное преобразование в супервизоре .py
. Обратите внимание, что если ω равно 0, оба колеса будут вращаться с одинаковой скоростью:
# генерировать и отправлять роботу правильные команды
def _send_robot_commands (сам):
# ...
v_l, v_r = self._uni_to_diff (v, omega)
self.robot.set_wheel_drive_rates (v_l, v_r)
def _uni_to_diff (self, v, omega):
# v = поступательная скорость (м / с)
# омега = угловая скорость (рад / с)
R = self. robot_wheel_radius
L = self.robot_wheel_base_length
v_l = ((2.0 * v) - (омега * L)) / (2.0 * R)
v_r = ((2,0 * v) + (омега * L)) / (2,0 * R)
вернуть v_l, v_r
Оценка состояния: робот, познай себя
Используя свои датчики, робот должен попытаться оценить состояние окружающей среды, а также свое собственное состояние. Эти оценки никогда не будут идеальными, но они должны быть достаточно хорошими, потому что робот будет основывать все свои решения на этих оценках. Используя только свои датчики приближения и бегущие строки колес, он должен попытаться угадать следующее:
- Направление на препятствия
- Расстояние до препятствий
- Положение робота
- Заголовок робота
Первые два свойства определяются показаниями датчика приближения и довольно просты.Функция API read_proximity_sensors ()
возвращает массив из девяти значений, по одному для каждого датчика. Мы заранее знаем, что седьмое показание, например, соответствует датчику, который указывает на 75 градусов вправо от робота.
Таким образом, если это значение показывает значение, соответствующее расстоянию 0,1 метра, мы знаем, что есть препятствие на расстоянии 0,1 метра, 75 градусов влево. Если препятствий нет, датчик вернет значение максимальной дальности 0,2 метра.Таким образом, если мы прочитаем 0,2 метра на седьмом датчике, мы предположим, что на самом деле в этом направлении нет препятствий.
Из-за того, как работают инфракрасные датчики (измерение инфракрасного отражения), возвращаемые ими числа являются нелинейным преобразованием фактического обнаруженного расстояния. Таким образом, функция Python для определения указанного расстояния должна преобразовывать эти показания в метры. Это делается в supervisor.py
следующим образом:
# обновить расстояния, указанные датчиками приближения
def _update_proximity_sensor_distances (самостоятельно):
себя.близости_sensor_distances = [0,02- (журнал (значение чтения / 3960,0)) / 30,0 для
readval в self. robot.read_proximity_sensors ()]
Опять же, у нас есть конкретная модель датчика в этой среде роботов Python, в то время как в реальном мире датчики поставляются с сопутствующим программным обеспечением, которое должно обеспечивать аналогичные функции преобразования нелинейных значений в счетчики.
Определение положения и направления робота (вместе в программировании робототехники известное как поза ) является несколько более сложной задачей.Наш робот использует одометра , чтобы оценить свою позу. Вот здесь-то и пригодятся бегущие строки колес. Измеряя, насколько каждое колесо повернулось с момента последней итерации цикла управления, можно получить хорошую оценку того, как изменилась поза робота, но только если изменение небольшое .
Это одна из причин, по которой важно очень часто повторять цикл управления в реальном роботе, где двигатели, вращающие колеса, могут быть несовершенными. Если бы мы слишком долго ждали, чтобы измерить тикеры колес, оба колеса могли бы сделать довольно много, и было бы невозможно оценить, где мы оказались.
Учитывая наш текущий программный симулятор, мы можем позволить себе выполнять одометрические вычисления при 20 Гц — той же частоте, что и контроллеры. Но было бы неплохо иметь отдельный поток Python, работающий быстрее, чтобы улавливать меньшие движения тикеров.
Ниже приведена полная функция одометрии в supervisor.py
, которая обновляет оценку положения робота. Обратите внимание, что поза робота состоит из координат x
и y
и заголовка theta
, который измеряется в радианах от положительной оси X.Положительное значение x
находится на востоке, а положительное значение y
— на севере. Таким образом, заголовок 0
указывает на то, что робот смотрит прямо на восток. Робот всегда принимает свою начальную позу (0, 0), 0
.
# обновить расчетное положение робота, используя показания датчика положения колеса
def _update_odometry (самостоятельно):
R = self. robot_wheel_radius
N = плавающее (self.wheel_encoder_ticks_per_revolution)
# читать значения энкодера колеса
ticks_left, ticks_right = self.robot.read_wheel_encoders ()
# получить разницу в тиках с последней итерации
d_ticks_left = ticks_left - self.prev_ticks_left
d_ticks_right = ticks_right - self.prev_ticks_right
# оценить движения колеса
d_left_wheel = 2 * pi * R * (d_ticks_left / N)
d_right_wheel = 2 * pi * R * (d_ticks_right / N)
d_center = 0,5 * (d_left_wheel + d_right_wheel)
# рассчитываем новую позу
prev_x, prev_y, prev_theta = self.estimated_pose.scalar_unpack ()
new_x = prev_x + (d_center * cos (prev_theta))
new_y = prev_y + (d_center * sin (prev_theta))
new_theta = prev_theta + ((d_right_wheel - d_left_wheel) / self.robot_wheel_base_length)
# обновить оценку позы с новыми значениями
self.estimated_pose.scalar_update (new_x, new_y, new_theta)
# сохраняем текущий счетчик тиков для следующей итерации
self.prev_ticks_left = ticks_left
self. prev_ticks_right = ticks_right
Теперь, когда наш робот может дать точную оценку реального мира, давайте воспользуемся этой информацией для достижения наших целей.
Методы программирования роботов на Python: поведение при достижении цели
Высшая цель существования нашего маленького робота в этом руководстве по программированию — добраться до цели.Так как же заставить колеса повернуться, чтобы добраться туда? Давайте начнем с небольшого упрощения нашего мировоззрения и предположим, что на пути нет никаких препятствий.
Это становится простой задачей и может быть легко запрограммировано на Python. Если мы пойдем вперед, глядя на цель, мы доберемся до нее. Благодаря одометрии мы знаем наши текущие координаты и направление. Мы также знаем координаты цели, потому что они были запрограммированы заранее. Поэтому, используя небольшую линейную алгебру, мы можем определить вектор от нашего местоположения к цели, как в go_to_goal_controller. py
:
# вернуть вектор курса к цели в системе отсчета робота
def calculate_gtg_heading_vector (сам):
# получаем обратную позу робота
robot_inv_pos, robot_inv_theta = self.supervisor.estimated_pose (). inverse (). vector_unpack ()
# вычисляем вектор цели в системе отсчета робота
цель = self.supervisor.goal ()
goal = linalg.rotate_and_translate_vector (цель, robot_inv_theta, robot_inv_pos)
возвратный гол
Обратите внимание, что мы получаем вектор к цели в системе отсчета робота, а НЕ в мировых координатах.Если цель находится на оси X в системе отсчета робота, это означает, что она находится прямо перед роботом. Таким образом, угол этого вектора относительно оси X — это разница между нашим курсом и тем курсом, которым мы хотим быть. Другими словами, это ошибка между нашим текущим состоянием и тем, каким мы хотим видеть текущее состояние. Поэтому мы хотим настроить угол поворота на ω так, чтобы угол между нашим курсом и целью изменился в сторону 0. Мы хотим минимизировать ошибку:
# вычислить условия ошибки
theta_d = atan2 (сам.gtg_heading_vector [1], self.gtg_heading_vector [0])
# вычислить угловую скорость
omega = self.kP * theta_d
self.kP
в приведенном выше фрагменте реализации контроллера Python является усилением управления. Это коэффициент, который определяет, насколько быстро мы перейдем к соотношению к тому, насколько далеко от поставленной цели. Если в нашем заголовке ошибка 0
, то скорость поворота тоже 0
. В реальной функции Python внутри файла go_to_goal_controller.py
, вы увидите больше аналогичных приростов, поскольку мы использовали ПИД-регулятор вместо простого пропорционального коэффициента.
Теперь, когда у нас есть угловая скорость ω , как нам определить нашу поступательную скорость v ? Хорошее общее эмпирическое правило — это то, которое вы, вероятно, знаете инстинктивно: если мы не делаем поворот, мы можем идти вперед на полной скорости, и чем быстрее мы поворачиваем, тем больше нам следует замедляться. Обычно это помогает нам поддерживать стабильность нашей системы и действовать в рамках нашей модели.Таким образом, v является функцией ω . В go_to_goal_controller.py
уравнение:
# вычислить скорость поступательного движения
# скорость равна v_max, когда omega равно 0,
# быстро падает до нуля как | omega | поднимается
v = self.supervisor.v_max () / (абс (омега) + 1) ** 0,5
Предлагается уточнить эту формулу, учитывая, что мы обычно замедляемся, когда приближаемся к цели, чтобы достичь ее с нулевой скоростью. Как бы изменилась эта формула? Он должен каким-то образом включать замену v_max ()
чем-то, пропорциональным расстоянию.Хорошо, мы почти завершили единственный контур управления. Осталось только преобразовать эти два параметра модели одноколесного велосипеда в дифференциальные скорости колес и послать сигналы на колеса. Вот пример траектории робота без препятствий под контроллером перехода к цели:
Как мы видим, вектор к цели является для нас эффективным ориентиром, на котором основываются наши контрольные вычисления. Это внутреннее представление того, «куда мы хотим идти». Как мы увидим, единственное существенное различие между поведением к цели и другим поведением состоит в том, что иногда движение к цели — плохая идея, поэтому мы должны вычислить другой опорный вектор.
Методы программирования роботов на Python: поведение, позволяющее избегать препятствий
Показательный пример — движение к цели, когда в этом направлении есть препятствие. Вместо того, чтобы с головой бросаться в препятствия на нашем пути, давайте попробуем запрограммировать закон управления, который заставляет робота избегать их.
Чтобы упростить сценарий, давайте теперь полностью забудем о целевой точке и просто сделаем следующую нашу цель: Когда перед нами нет препятствий, двигайтесь вперед. Когда встретите препятствие, отворачивайтесь от него, пока оно не исчезнет перед нами.
Соответственно, когда перед нами нет препятствий, мы хотим, чтобы наш опорный вектор просто указывал вперед. Тогда ω будет нулевым, а v будет максимальной скоростью. Однако, как только мы обнаруживаем препятствие с помощью наших датчиков приближения, мы хотим, чтобы опорный вектор указывал в любом направлении, удаленном от препятствия. Это заставит ω взлететь вверх, чтобы отклонить нас от препятствия, и заставит v упасть, чтобы убедиться, что мы случайно не натолкнемся на препятствие в процессе.
Изящный способ сгенерировать желаемый опорный вектор — это преобразовать наши девять показаний близости в векторы и получить взвешенную сумму. Когда препятствий не обнаружено, векторы будут суммироваться симметрично, в результате чего будет получен опорный вектор, указывающий прямо вперед по желанию. Но если датчик, скажем, на правой стороне улавливает препятствие, он вносит меньший вектор в сумму, и результатом будет опорный вектор, смещенный влево.
Для обычного робота с другим размещением датчиков можно применить ту же идею, но может потребоваться изменение веса и / или дополнительная осторожность, когда датчики симметричны спереди и сзади робота, поскольку взвешенная сумма может стать нуль.
Вот код, который делает это в escape_obstacles_controller.py
:
# коэффициент усиления датчика (вес)
self.sensor_gains = [1.0+ ((0.4 * абс (p.theta)) / пи)
для p в supervisor.proximity_sensor_placements ()]
# ...
# возвращаем вектор уклонения от препятствий в системе отсчета робота
# также возвращает векторы к обнаруженным препятствиям в системе отсчета робота
def calculate_ao_heading_vector (сам):
# инициализировать вектор
Препятствие_векторах = [[0.0, 0,0]] * len (self.proximity_sensor_placements)
ao_heading_vector = [0,0, 0,0]
# получаем расстояния, указанные по показаниям сенсоров робота
sensor_distances = self.supervisor.proximity_sensor_distances ()
# вычислить положение обнаруженных препятствий и найти вектор уклонения
robot_pos, robot_theta = self.supervisor.estimated_pose (). vector_unpack ()
для i в диапазоне (len (sensor_distances)):
# вычисляем положение препятствия
sensor_pos, sensor_theta = сам. близости_sensor_placements [i] .vector_unpack ()
vector = [sensor_distances [i], 0,0]
vector = linalg.rotate_and_translate_vector (vector, sensor_theta, sensor_pos)
Препятствие_вектора [i] = вектор # сохранить векторы препятствия в системе отсчета робота
# накапливаем вектор курса в системе отсчета робота
ao_heading_vector = linalg.add (ao_heading_vector,
linalg.scale (вектор, self.sensor_gains [i]))
вернуть ao_heading_vector, препятствия_векторах
Используя полученный ao_heading_vector
в качестве эталона для робота, чтобы попытаться сопоставить, вот результаты запуска программного обеспечения робота в моделировании с использованием только контроллера избегания препятствий, полностью игнорируя точку цели.Робот бесцельно прыгает, но никогда не сталкивается с препятствием и даже умудряется перемещаться по очень узким пространствам:
Методы программирования роботов Python: гибридные автоматы (конечный автомат поведения)
До сих пор мы описали два типа поведения — стремление к цели и избегание препятствий — по отдельности. Оба они превосходно выполняют свои функции, но для того, чтобы успешно достичь цели в среде, полной препятствий, нам необходимо объединить их.
Решение, которое мы разработаем, относится к классу машин, который имеет в высшей степени классное обозначение гибридных автоматов .Гибридный автомат запрограммирован с несколькими различными поведениями или режимами, а также с контролирующим конечным автоматом. Конечный автомат контроля переключается из одного режима в другой в дискретные моменты времени (когда цели достигнуты или окружающая среда внезапно изменилась слишком сильно), в то время как каждое поведение использует датчики и колеса для непрерывной реакции на изменения окружающей среды. Решение было названо hybrid , потому что оно развивается как дискретным, так и непрерывным образом.
Наша платформа роботов Python реализует конечный автомат в файле supervisor_state_machine.py
.
Имея два наших удобных поведения, простая логика напрашивается сама собой: Когда препятствие не обнаружено, используйте поведение перехода к цели. При обнаружении препятствия переключайтесь на поведение избегания препятствий, пока препятствие не перестанет обнаруживаться.
Однако, как оказалось, эта логика вызовет множество проблем. Что эта система будет иметь тенденцию делать, когда сталкивается с препятствием, так это отвернуться от него, а затем, как только она отошла от него, развернуться назад и снова столкнуться с ним.В результате получается бесконечный цикл быстрого переключения, который делает робота бесполезным. В худшем случае робот может переключаться между поведениями с на каждой итерации контура управления — состояние, известное как условие Зенона .
Есть несколько решений этой проблемы, и читатели, которые ищут более глубокие знания, должны проверить, например, архитектуру программного обеспечения DAMN.
Для нашего простого смоделированного робота нам нужно более простое решение: еще одно поведение, специализирующееся на задаче обойти вокруг препятствия и достичь другой стороны.
Методы программирования роботов на Python: поведение следования за стеной
Вот идея: когда мы сталкиваемся с препятствием, снимаем показания двух датчиков, которые находятся ближе всего к препятствию, и используем их для оценки поверхности препятствия. Затем просто установите наш опорный вектор параллельно этой поверхности. Продолжайте следовать по этой стене до тех пор, пока А) препятствие больше не будет между нами и целью, и Б) мы не приблизимся к цели, чем были в начале. Тогда мы можем быть уверены, что правильно преодолели препятствие.
Обладая ограниченной информацией, мы не можем с уверенностью сказать, будет ли быстрее объехать препятствие слева или справа. Чтобы определиться, мы выбираем направление, которое сразу приблизит нас к цели. Чтобы выяснить, в каком направлении это происходит, нам нужно знать опорные векторы поведения движения к цели и поведения избегания препятствий, а также оба возможных опорных вектора следования за стеной. Вот иллюстрация того, как принимается окончательное решение (в этом случае робот решит пойти налево):
Оказывается, что определение опорных векторов следящей стены немного сложнее, чем опорных векторов уклонения от препятствий или движения к цели. Взгляните на код Python в follow_wall_controller.py
, чтобы увидеть, как это делается.
Дизайн окончательного контроля
Окончательный дизайн управления использует поведение следящей стены почти для всех встреч с препятствиями. Однако, если робот окажется в узком месте, опасно близко к столкновению, он переключится в режим чистого избегания препятствий, пока не окажется на более безопасном расстоянии, а затем вернется к следящей стене. После успешного преодоления препятствий робот переключается на путь к цели.Вот диаграмма конечного состояния, которая запрограммирована внутри supervisor_state_machine.py
:
Вот робот, успешно перемещающийся в многолюдной среде, используя эту схему управления:
Дополнительная функция конечного автомата, которую вы можете попытаться реализовать, — это способ избежать круговых препятствий, переключившись на достижение цели как можно скорее вместо того, чтобы следовать за границей препятствия до конца (чего не существует для круглых объектов. !)
Твик, твик, твик: пробная версия и ошибка
Схема управления, которая поставляется с Sobot Rimulator, очень точно настроена.Потребовалось много часов, чтобы настроить одну маленькую переменную здесь и еще одно уравнение там, чтобы заставить ее работать так, как я был удовлетворен. Программирование робототехники часто связано с большим количеством простых старых проб и ошибок. Роботы очень сложны, и есть несколько способов заставить их вести себя оптимальным образом в среде симулятора роботов … по крайней мере, не намного меньше машинного обучения, но это целая баня червей.
Робототехника часто связана с большим количеством простых старых проб и ошибок.
Я рекомендую вам поиграть с контрольными переменными в Sobot Rimulator, наблюдать и попытаться интерпретировать результаты. Все изменения следующих элементов оказывают сильное влияние на поведение моделируемого робота:
- Ошибка прироста
кПа
в каждом контроллере - Коэффициент усиления датчика, используемый контроллером объезда препятствий
- Расчет v как функции ω в каждом контроллере
- Расстояние от препятствия, используемое контроллером следящей стены
- Условия переключения, используемые
supervisor_state_machine. ру
- Практически все остальное
При отказе программируемых роботов
Мы проделали большую работу, чтобы добраться до этого момента, и этот робот кажется довольно умным. Тем не менее, если вы запустите Sobot Rimulator на нескольких случайных картах, не пройдет много времени, прежде чем вы найдете ту, с которой этот робот не сможет справиться. Иногда он заезжает прямо в крутые повороты и сталкивается. Иногда он просто бесконечно колеблется взад и вперед не с той стороны препятствия. Иногда его законно сажают в тюрьму без возможности достижения цели.После всего нашего тестирования и настройки иногда мы должны прийти к выводу, что модель, с которой мы работаем, просто не подходит для работы, и мы должны изменить дизайн или добавить функциональность.
Во вселенной мобильных роботов «мозг» нашего маленького робота находится на более простом конце спектра. Многие из возникающих сбоев можно было бы преодолеть, добавив более совершенное программное обеспечение. Более продвинутые роботы используют такие методы, как , отображая , чтобы запоминать, где он был, и избегать повторения одних и тех же вещей снова и снова; эвристика , чтобы генерировать приемлемые решения, когда идеальное решение не может быть найдено; и машинное обучение , чтобы более точно настроить различные параметры управления, управляющие поведением робота.
Пример того, что будет дальше
Роботы уже так много делают для нас, и только в будущем они будут делать больше. Хотя даже базовое программирование робототехники — сложная область изучения, требующая большого терпения, она также является увлекательной и очень полезной.
В этом руководстве мы узнали, как разработать программное обеспечение для реактивного управления роботом, используя язык программирования высокого уровня Python. Но есть много более сложных концепций, которые можно быстро изучить и протестировать с помощью фреймворка роботов Python, подобного тому, который мы здесь прототипировали. Я надеюсь, что вы подумаете об участии в формировании будущего!
Благодарность: Я хотел бы поблагодарить доктора Магнуса Эгерштедта и Жан-Пьера де ла Круа из Технологического института Джорджии за то, что они научили меня всему этому, и за их энтузиазм по поводу моей работы над Sobot Rimulator.
Robotics Foundation II — Robot Control
Робототехника обычно определяется как исследование интеллектуальной связи между восприятием и действием. Таким образом, полный спектр робототехники находится на пересечении механики, электроники, обработки сигналов, техники управления, вычислений и математического моделирования.
В этих очень широких рамках моделирование и управление играют основную роль — не только в традиционном контексте промышленной робототехники, но также и для передовых приложений полевых и сервисных роботов, которые вызывают растущий интерес со стороны исследовательского сообщества в последние двадцать лет. годы.
Основы робототехники рассматриваются в этом курсе, состоящем из двух частей. Вторая часть посвящена планированию и контролю. Представлены подходящие методы интерполяции для планирования траекторий в совместном или рабочем пространстве.Для управления роботом в свободном пространстве стратегии управления движением могут быть децентрализованными или централизованными. Первое приводит к независимому совместному управлению, которое рассматривает нелинейные динамические связи как возмущение, а второе основано на динамической модели робота. Представлено управление ЧР с компенсацией силы тяжести и управление обратной динамикой. Затем вводится оперативное управление пространством как предпосылка для управления роботом, взаимодействующим с окружающей средой. Для управления движением с ограничениями разработаны схемы косвенного и прямого управления силой.Подход визуального сервоуправления применяется для интеграции информации об объектах, присутствующих в сцене, в контур управления, где результирующие схемы могут быть трех типов: основанные на позиции, на основе изображения или гибридные. Последняя часть курса посвящена мобильным роботам. Представлены кинематические модели простых транспортных средств, а также методы планирования траектории, которые должны должным образом учитывать неголономные ограничения. Проблема управления движением решается применительно к задаче отслеживания траектории.Наконец, представлены методы одометрической локализации для практической реализации схем управления с обратной связью.
Цифровой двойник и адаптивное управление роботом в реальном времени
Цифровой двойник — это виртуальное представление телеметрии, полученной из удаленной системы и отображаемой либо в реальном времени, либо посредством автономного воспроизведения.
Хотя цифровые двойники не управляют оборудованием, они предоставляют ценные данные о реальном движении по сравнению с управляемым движением. Эта информация идеально подходит для прогнозной аналитики, обучения искусственному интеллекту (AI), принятия решений, взаимодействия с дополненной реальностью (AR) и дистанционного управления.
Потенциальные области применения цифровых двойников широки и могут включать в себя операции по изготовлению деталей, сборке, тестированию, укладке на поддоны, роботизированным манипуляциям и многое другое. При обработке детали цифровой двойник реального движения оборудования может быть использован для визуализации операций обработки от сырья до готовой детали. При использовании робота для аддитивного или субтрактивного производства повторяемость системы может снижаться по нескольким причинам, поэтому цифровой двойник является важным инструментом для сравнительного анализа.
Если производственный процесс является роботизированным, для сравнения и проверки заданных последовательностей движений можно использовать визуализацию цифрового двойника рабочей ячейки робота с использованием фактического движения, производимого оборудованием. Это важно, поскольку многие автомобильные рабочие ячейки представляют собой системы с несколькими роботами, в которых роботы работают в непосредственной близости. Чтобы подчеркнуть степень потенциального применения цифровых двойников, имейте в виду, что многие неартикулированные системы, использующие цифровых двойников, также могут управляться или модифицироваться роботизированными системами, которые сами могут использовать цифровых двойников.
Масштабы воздействия и использования технологии цифровых двойников ошеломляют; однако этот пост в блоге специально посвящен цифровым близнецам, поскольку они связаны с робототехникой.
В статье «Внутри линии Toyota Takaoka # 2: Самая гибкая линия в мире» Бертель Шмитт из модели Drive указывает, что сборочная линия Toyota Takaoka II не останавливает производство во время операций по переоборудованию, когда на конвейер выходит новая модель. линия.
Ажиотаж в отношении цифровых двойников может быстро утихнуть, если будет включен контекст, специфичный для конкретного приложения.
По мере того, как производство продолжает становиться более гибким, связанное с ним роботизированное управление и цифровые двойники должны будут иметь возможность быстро приспосабливаться к изменениям.
Усовершенствованное программное обеспечение для адаптивного управления в реальном времени, такое как Actin, обеспечивает возможность моделирования и управления любой роботизированной системой при автоматическом обновлении виртуальной модели на основе телеметрии с роботизированного оборудования в реальном времени. Затем захваченная информация может использоваться для визуализации цифрового двойника для представления через AR.Наложение цифрового двойника на визуализированную среду с помощью набора инструментов Actin выполняется с помощью простого вызова интерфейса прикладного программирования (API) «RenderVirtual».
Для большей ясности в использовании цифровых двойников в робототехнике давайте начнем с основного вопроса этого сообщения:
Термин «цифровой двойник» превратился в модное слово?
Ажиотаж в отношении цифровых двойников может быстро утихнуть, если будет включен контекст, специфичный для конкретного приложения. Определение термина цифровой двойник не полностью закреплено в отрасли, но оно стало повсеместным настолько быстро, что без детального рассмотрения каждого конкретного случая использования может отвлечь потенциальных пользователей от фундаментальной проблемы управления робототехникой и вместо этого сосредоточиться только на наблюдении. и сбор данных, когда пользователи могут иметь и то, и другое.Инструментарий Actin обеспечивает моделирование, управление и цифровые двойники вместе, поскольку в Actin моделирование и управление являются двусторонними побочными продуктами друг друга, и данные о производительности могут быть получены из цифрового двойника.
При этом в передовых роботизированных системах, использующих технологию цифровых двойников, есть много взаимозависимых и обычно отдельных компонентов. При планировании и управлении проектами робототехники, которые включают цифровых двойников, внимание к их синергии с другими элементами комплексной системы адаптивной робототехники в реальном времени может ускорить развертывание и повысить ценность.
Сфера робототехники все еще находится на той стадии, когда компании обычно сталкиваются со сценарием «сделай или купи» для моделирования роботов, управления или внедрения цифрового двойника из-за узкоспециализированной проблемы / возможности. Однако большинство команд разработчиков программного обеспечения с ценной и / или неизбежной возможностью предпочитают разработку решения с использованием надежного готового инструментария, а не использование ресурсов компании для управления теоретическими исследованиями и разработками.
..серьезные возможности робототехники требуют надежного, всеобъемлющего и расширяемого инструментария.
Цифровой двойник — полезный инструмент для любого решения моделирования, управления или дистанционного управления, но стоит помнить, что цифровой двойник на самом деле является побочным продуктом управления и / или внешних стимулов.
Итак, где находится компонент цифрового двойника в комплексном приложении для управления роботом, таком как парадигма пакета разработки программного обеспечения (SDK) Actin?
Следующие разделы помогут провести несколько различий между ключевыми элементами целостного подхода к управлению роботом.
Программные инструменты, которые не поддерживают
Аппаратное обеспечениеАнимация: виртуальное отображение концепции и намерений
Заявление: «Анимация — это не моделирование, а моделирование — это не управление». полезен для классификации основных аспектов управления роботом, но есть дополнительные категории, которые часто упускаются из виду даже опытным пользователем Actin. Начнем с анимации.
По моему опыту, самые эффективные инженеры — это те, кто лучше всего может передавать техническую информацию, а анимация является важным инструментом для передачи концепций, замысла проекта и инструкций, особенно на ранних стадиях проекта.На важные решения может сильно повлиять анимация — мы верим в то, что видим! Однако, как указано выше, анимация не эквивалентна моделированию и, следовательно, не обеспечивает точной кинематики (геометрии движения для связанных твердых тел) или динамики (физики движения, измененной силами).
Считайте анимацию чем-то вроде последовательности изображений, визуализированных в цифровом виде, которые можно использовать для эффективной передачи концепций. Благодаря их высокореалистичному внешнему виду, а также способности точно определять местонахождение зрителя там, где это задумано аниматором, выделять важную информацию и изменять направление и временной масштаб последовательности, ценность анимации реальна, но, конечно, не без ограничений.
Simulation: виртуальное отображение вычисленного и управляемого движения оборудования
Simulation — ценный инструмент для создания и проверки движения с возможностью определения реальных свойств или экспериментов с дополнительными материалами / свойствами / силами для оптимизации или определения требований или жизнеспособности, а затем сохранения и экспорта данных о производительности.
Помимо прочего анализа, кинематическое моделирование может включать в себя влияние длины звеньев, конфигураций соединений, угловых пределов и угловых скоростей для анализа задач и рабочего пространства.Динамическое моделирование может включать массу, напряжение, деформацию, свойства трения и многое другое. В случае с Actin эта информация предоставляется вместе с возможностью экспорта данных в реальном времени.
Digital Twin: виртуальный дисплей реального движения / телеметрии оборудования
В следующем видео показан пример цифрового двойника реального движения реального оборудования робототехники, визуализированного как прозрачное наложение на заданное движение.
Программные средства
, которые
выполняют Аппаратное обеспечение управленияOffline Programming: виртуальная разработка аппаратных команд движения с использованием моделирования, скомпилированного в статический файл
Автономное программирование — не новая технология, но это не означает, что она не имеет ценности в определенных областях использования робототехники, таких как роботизированная метрология, аддитивное или субтрактивное производство и т. Д.Автономное программирование, которое включает в себя онлайн-управление, выходит далеко за рамки создания и документирования последовательности поз робота. В контексте управления в реальном времени пользователи Actin называют это автономным заданием.
В автономном программировании часто существуют различия между смоделированной рабочей ячейкой и реальной средой. Это проблематично и часто требует многократных итераций между аппаратным и программным обеспечением для точной настройки регистрации физического оборудования и путевых точек.
Пульт дистанционного управления для программирования / обучения: разработка аппаратного обеспечения для управления роботами / создания сценариев с использованием пульта обучения для управления оборудованием
Онлайн-программирование обычно выполняется с помощью обучающего пульта.Подвеска — это портативная панель управления с человеко-машинным интерфейсом (HMI), которая может содержать информацию об углах соединения и других свойствах и может включать графический интерфейс пользователя (GUI) с виртуальным представлением системы. Подвеска используется для управления роботом в пространстве суставов или концевых исполнительных механизмов, что позволяет пользователю настраивать и сохранять позы робота для будущего воспроизведения.
Offline Tasking / Adaptive Online Control — Парадигма Actin
Парадигма Actin, показанная на рисунке выше, представляет собой комплексное решение для управления, которое лучше всего описать как набор инструментов для робототехники.
Комбинация всех вышеперечисленных программных компонентов создает комплексное решение для управления на основе моделей с дополнительным рендерингом с помощью моделирования и / или цифровым двойником, оперативным или автономным заданием с оперативным управлением с помощью потоковых совместных команд.
Автономное выполнение задач с онлайн-контролем по существу означает, что Actin сам программирует и передает угловые данные суставов в режиме реального времени на основе целей задачи, моделей окружающей среды, доступных степеней свободы (DOF), с переменными степенями ограничений, ограничениями производительности роботов и любыми другими ощущениями. данные.Чтобы узнать больше об Актине, посетите https://www.energid.com/actin.
Ключевой вывод из этого поста заключается в том, что ни анимация, ни цифровые двойники не заставляют робота двигаться физически. Однако цифровые двойники являются полезными инструментами как часть комплексного решения для управления, такого как набор инструментов для робототехники Actin. Совместное использование цифровых двойников и адаптивного управления движением Actin в реальном времени открывает новые возможности для сокращения времени вывода на рынок и повышения общей производительности передовых приложений робототехники, включая прогнозную аналитику, обучение ИИ, принятие решений, взаимодействие с дополненной реальностью, дистанционное управление и многое другое.
Чтобы сделать следующий шаг в применении аппаратно-независимого адаптивного управления несколькими роботами в реальном времени с помощью цифрового двойника, свяжитесь с представителем Energid, чтобы обсудить Actin (SDK) — самый продвинутый доступный инструментарий для робототехники.
Pololu — Контроллеры роботов
Сравнить все товары в этой категории
Подкатегории
Контроллеры роботов Orangutan — это наше первое поколение решений для управления на основе AVR для малых и средних роботов или аналогичных проектов.Все орангутаны оснащены микроконтроллерами Atmel AVR и несколькими H-мостами для прямого управления двигателями постоянного тока. Большинство устройств имеют встроенные ЖК-дисплеи.
Товары в категории «Контроллеры роботов»
Этот программируемый модуль в сочетании с Raspberry Pi служит центром управления небольшого робота или электронного проекта. Его микроконтроллер AVR ATmega32U4 поставляется с предустановленным загрузчиком, совместимым с Arduino, а плата включает драйверы для двух двигателей, которые могут обеспечивать 1.8 А на канал для двух щеточных двигателей постоянного тока. Эффективный регулятор напряжения (от 2,7 В до 11 В на входе ) и переключатели уровня позволяют ему питать и обмениваться данными с Raspberry Pi. Эта версия (элемент № 3117) — это , собранная с выбранными сквозными разъемами и установленными компонентами для использования в качестве надстройки Raspberry Pi.
Этот программируемый модуль спроектирован как ядро небольшого робота, либо как вспомогательный контроллер на базе Raspberry Pi, либо как самостоятельное решение для полного управления. Его микроконтроллер AVR ATmega32U4 поставляется с предустановленным загрузчиком, совместимым с Arduino. Встроенное оборудование включает в себя двойные драйверы двигателя, которые могут выдавать 1,8 А на канал, и эффективный регулятор напряжения, который позволяет контроллеру работать с входным напряжением от 2,7 В до 11 В , а также переключатели уровня, которые позволяют ему взаимодействовать с Raspberry. Число Пи. Эта версия (№ 3116) не включает в себя какие-либо компоненты со сквозным отверстием или соединители , что позволяет настраивать сборку или автономное использование.
Этот программируемый модуль в сочетании с Raspberry Pi служит центром управления небольшого робота или электронного проекта. Его микроконтроллер AVR ATmega32U4 поставляется с предустановленным загрузчиком, совместимым с Arduino, а плата включает в себя драйверы для двух двигателей, которые могут подавать 1,7 А на канал для двух щеточных двигателей постоянного тока. Эффективный регулятор напряжения (от 5,5 В до 36 В на входе ) и переключатели уровня позволяют ему питать и обмениваться данными с Raspberry Pi. Эта версия (элемент № 3119) — это , собранная с выбранными сквозными разъемами и установленными компонентами для использования в качестве надстройки Raspberry Pi.
Этот программируемый модуль спроектирован как ядро небольшого робота, либо как вспомогательный контроллер на базе Raspberry Pi, либо как самостоятельное решение для полного управления. Его микроконтроллер AVR ATmega32U4 поставляется с предустановленным загрузчиком, совместимым с Arduino. Встроенное оборудование включает в себя драйверы двух двигателей, которые могут выдавать 1,7 А на канал, и эффективный регулятор напряжения, который позволяет контроллеру работать с входным напряжением от 5,5 до 36 В , а также переключатели уровня, которые позволяют ему взаимодействовать с Raspberry Число Пи.Эта версия (элемент № 3118) не включает каких-либо компонентов со сквозным отверстием или соединителей , что позволяет выполнять сборку по индивидуальному заказу или автономное использование.