На каком языке пишут программы для роботов. Основные тенденции робототехники. Реализация алгоритма следования вдоль стены

На каком языке пишут программы для роботов. Основные тенденции робототехники. Реализация алгоритма следования вдоль стены

Программирование промышленных роботов в SprutCAM

Николай Конов,
директор компании KROKK, d.o.o., Словения, г.Любляна (www.krokk.si)

Индустриальные роботы в современной промышленности

Мировой рынок роботов

Применение индустриальных роботов во всем мире каждый год увеличивается. К 2018 году более 1,3 млн роботов будут введены в эксплуатацию по всему миру. Средний показатель плотности применения роботов в производстве, по данным 2014 года, равен 66 единицам на 10 тыс. работников. В 21 стране этот показатель выше среднего (рис. 1).

В них входит большинство индустриально развитых страх Европы, США, Канада и Азиатский регион (Южная Корея, Япония, Тайвань). Словения занимает в этом списке не последнее место и с показателем 100 роботов на 10 тыс. человек занимает лидирующие позиции по автоматизации производства. Наибольшее применение роботы находят в автомобильной промышленности, где наблюдается более высокая плотность роботизации производства (рис. 2).

Области применения роботов

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

Робот, благодаря наличию шести степеней свободы, может также делать сложные многоосевые перемещения вдоль необходимой траектории, выполняя, таким образом, любую обработку, которая до этого была возможна только на специализированных станках. Это становится реальным прежде всего вследствие многолетней эволюции индустриальных роботов и контроллеров. Индустриальные роботы стали более точными и жесткими — возможно позиционирование робота с точностью до нескольких сотых долей миллиметра. Совершеннее стали и контроллеры роботов — они позволяют управлять несколькими роботами одновременно, а также интерполировать перемещения робота с дополнительными линейными и поворотными осями. Всё это создало предпосылки для использования роботов в тех отраслях, где до сих пор было возможно применение только специализированных станков с ЧПУ.

Возможности индустриальных роботов в обработке материалов

Тенденция применения индустриальных роботов для различных видов обработки материалов приобретает всё большую популярность в мировой промышленности. И этому есть объяснение: роботы имеют ряд преимуществ перед классическими станками с ЧПУ, такие как: шесть степеней свободы; большая зона обработки; использование того же робота для захвата заготовки; более низкая стоимость; использование дополнительных осей позиционирования детали.

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

Доступная пятиосевая обработка

Станки с ЧПУ, позволяющие обрабатывать деталь по пяти степеням свободы, безусловно, являются более дорогими по сравнению с простыми трехосевыми станками. А если такой станок предназначен для обработки крупногабаритных деталей, то его стоимость возрастает в геометрической прогрессии.

Все индустриальные роботы, так же как и пятиосевые станки, изначально имеют возможность позиционировать инструмент, но стоимость такого решения иногда в разы меньше сходного по характеристикам станка. В результате сложная пятиосевая обработка изделий, нетребовательных к точности, становится доступной даже для малых предприятий. Яркий пример тому — художественная обработка камня (рис. 3).

Художественная обработка материалов — не только камня, но и дерева, гипса, пластика и др. — одна из наиболее подходящих областей для применения роботов. Здесь не требуется высокая точность, при этом, как правило, заготовки бывают довольно внушительных размеров и всегда имеют поверхность сложной формы. Применение робота позволяет выполнять обработку любой сложности и полностью в многоосевом режиме.

Большая зона обработки

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

Однако робот может быть размещен на подвижной платформе, длина перемещения которой может быть практически любой. Современные контроллеры промышленных роботов позволяют выполнять интерполяцию движений робота и дополнительно до трех линейных осей перемещения самого робота. Это дает возможность применения промышленного робота практически в неограниченном пространстве. Пример — роботизированная ячейка обработки корпуса лодки (рис. 4).

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

Многоцелевое использование робота

Промышленный робот может в одном и том же технологическом процессе использоваться как для захвата заготовки, так и для перемещения ее через инструмент. Так называемая схема «заготовка к инструменту» позволяет реализовать целую технологическую цепочку обработки изделия, а также перемещения изделия в необходимое место для дальнейших операций всего на одном роботе (рис. 5).

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

Дополнительные степени свободы

Современные контроллеры роботов могут управлять не только дополнительными линейными перемещениями самого робота, но и дополнительными осями вращения рабочего стола с закрепленной на ней заготовкой. Такое решение задает дополнительную степень свободы заготовки и позволяет использовать более компактный робот для обработки заготовки со всех сторон. Естественно, управление дополнительными осями полностью синхронизировано с движениями суставов робота (рис. 6).

Для сварки бака со всех сторон используется дополнительная поворотная ось, которая управляется синхронно с осями робота и позволяет выполнить операцию сразу со всех сторон.

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

SprutCAM для программирования роботов

Стандартные возможности создания программ

Все вышеперечисленные примеры требуют программирования сложных перемещений инструмента и, как следствие, осей робота. При классическом программировании роботов задание перемещений происходит последовательно — от точки к точке. Такой подход очень трудно применить для сложных траекторий, связанных еще и с ориентацией инструмента. Подобное программирование также потребует много времени, в течение которого робот фактически будет занят и не будет задействован в производственном процессе. Многие производители предоставляют возможность создания программ для робота в G-коде или в близком формате, когда программист учитывает лишь координаты центральной точки инструмента и создает программу в обычном декартовом пространстве, а положение фактических осей робота пересчитывается контроллером. В этом случае можно провести аналогию со станками с ЧПУ, которые имеют схожие возможности.

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

Применение CAM-системы для программирования

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

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

Компания «СПРУТ-Технология» уже более 20 лет занимается разработкой программного обеспечения SprutCAM. Одной из опций данного продукта является возможность создания программ для промышленных роботов на основе загружаемой 3D-модели изделия.

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

Функции SprutCAM

Стратегии обработки

Будучи многофункциональной CAM-системой, SprutCAM содержит большое количество стратегий для любых видов обработки: фрезерования (черновые, чистовые, многоосевые операции); резания; сварки (рис. 7).

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

Поддержка

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

Преимущества использования SprutCAM для программирования роботов

  • Offline-программирование роботов увеличивает полезную загрузку;
  • гораздо более быстрое создание программ, чем от точки к точке;
  • легкое программирование роботов с дополнительными осями;
  • автоматическая оптимизация и поиск безаварийных перемещений;
  • реалистичная симуляция и проверка программ;
  • готовые постпроцессоры для генерации программы на языке контроллера;
  • создание программ такое же простое, как при программировании станков с ЧПУ.  

Многие робототехнические контроллеры реализованы с использованием языков программирования специального назначения. Например, многие программы для обобщающей архитектуры были реализованы на языке поведения , который был определен Бруксом. Этот язык представляет собой язык управления в реальном времени на основе правил, результатом компиляции которого становятся контроллеры AFSM . Отдельные правила этого языка, заданные с помощью синтаксиса, подобного Lisp , компилируются в автоматы AFSM, а группы автоматов AFSM объединяются с помощью совокупности механизмов передачи локальных и глобальных сообщений.

Так же как и обобщающая архитектура, язык поведения является ограниченным, поскольку он нацелен на создание простых автоматов AFSM с относительно узким определением потока связи между модулями. Но в последнее время на базе этой идеи проведены новые исследования, которые привели к созданию целого ряда языков программирования, аналогичных по своему духу языку поведения, но более мощных и обеспечивающих более быстрое выполнение.

Одним из таких языков является универсальный робототехнический язык , или сокращенно GRL (Generic Robot Language ). GRL- это функциональный язык программирования для создания больших модульных систем управления. Как и в языке поведения, в GRL в качестве основных конструктивных блоков используются конечные автоматы. Но в качестве настройки над этими автоматами язык GRL предлагает гораздо более широкий перечень конструкций для определения коммуникационного потока и синхронизации ограничений между различными модулями, чем язык поведения. Программы на языке GRL компилируются в эффективные программы на таких языках команд, как С .

Еще одним важным языком программирования (и связанной с ним архитектурой) для параллельного робототехнического программного обеспечения является система планирования реактивных действий, или сокращенно RAPS (Reactive Action Plan System) . Система RAPS позволяет программистам задавать цели, планы, связанные с этими целями (или частично определять политику), а также задавать условия, при которых эти планы по всей вероятности будут выполнены успешно.

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

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

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

Как только программа управления достигает точки недетерминированного выбора, вызывается планировщик (заданный в форме программы доказательства теорем) для определения того, что делать дальше. Таким образом программист может определять частично заданные контроллеры и опираться на использование встроенных планировщиков для принятия окончательного выбора плана управления.

Основной привлекательной особенностью языка Golog является предусмотренная в нем безукоризненная интеграция средств реактивного управления и алгоритмического управления. Несмотря на то что при использовании языка Golog приходится соблюдать строгие требования (полная наблюдаемость, дискретные состояния, полная модель), с помощью этого языка были созданы высокоуровневые средства управления для целого ряда мобильных роботов, предназначенных для применения внутри помещений.

Язык «JSk CES (сокращение от C++ for embedded systems - C++ для встроенных систем) - это языковое расширение C++, в котором объединяются вероятностные средства и средства обучения. В число типов данных CES входят распределения вероятностей, что позволяет программисту проводить расчеты с использованием неопределенной информации, не затрачивая тех усилий, которые обычно связаны с реализацией вероятностных методов.

Еще более важно то, что язык CES обеспечивает настройку робототехнического программного обеспечения с помощью обучения на основании примеров, во многом аналогично тому, что осуществляется в алгоритмах обучения. Язык CES позволяет программистам оставлять в коде «промежутки», которые заполняются обучающими функциями; обычно такими промежутками являются дифференцируемые параметрические представления, такие как нейронные сети. В дальнейшем на отдельных этапах обучения, для которых учитель должен задать требуемое выходное поведение, происходит индуктивное обучение с помощью этих функций. Практика показала, что язык CES может успешно применяться в проблемных областях, характерных для частично наблюдаемой и непрерывной среды.

Язык ALisp представляет собой расширение языка Lisp . Язык ALisp позволяет программистам задавать недетерминированные точки выбора, аналогичные точкам выбора в языке Golog. Но в языке ALisp для принятия решений применяется не программа доказательства теорем, а средства определения правильного действия с помощью индуктивного обучения, в которых используется обучение с подкреплением. Поэтому язык ALisp может рассматриваться как удобный способ внедрения знаний о проблемной области в процедуру обучения с подкреплением, особенно знаний об иерархической структуре «процедур» желаемого поведения. До сих пор язык ALispприменялся для решения задач робототехники только в имитационных исследованиях, но может стать основой многообещающей методологии создания роботов, способных к обучению в результате взаимодействия со своей средой.

Весь процесс состоит из двух этапов: сборки и программирования. Чтобы собрать хорошего робота, нужны знания в механике. Чтобы запрограммировать робота на определённые действия, нужно знать язык, который поймёт системная плата или программный блок. Школьными знаниями по информатике тут не обойтись.

Где взять материал?

Сначала нужно решить, как вы хотите собирать робота: из готовых наборов или самостоятельно подбирать материалы. Преимущество набора в том, что вам не нужно искать детали по отдельности. Чаще всего из одного набора можно собрать несколько устройств.

Конструкция, собранная не из готового набора, называется открытой системой. У неё тоже есть свои плюсы: ваш робот будет индивидуальностью, и вы сами сможете улучшать конструкцию. Но времени и сил потратите однозначно больше.

Из чего состоит робот?

Корпус – металлическое или пластмассовое «тело» , к которому прикрепляются остальные детали. У каждого робота есть источник энергии – батарейки или аккумулятор. В зависимости от того, какую задачу будет выполнять робот, выбирают датчики: они могут определять цвет и свет, реагировать на касание.

Чтобы заставить робота двигаться, понадобятся моторы. «Голова» всего механизма – системная плата или программный блок. С их помощью робот подключается к компьютеру и получает набор задач.

Как заставить его что‑то делать?

Чтобы робот выполнил какое‑то действие, нужно создать компьютерную программу. Сложность этого этапа зависит от сборки. Если робот собран из набора Lego Mindstorms или mBot, то с их программным обеспечением справятся даже дети.

Если вы собираете робота сами, вам нужно изучить основы программирования и язык, на котором собираетесь писать программу, например C++.

Почему робот может не выполнить программу?

Попадая в новое место, он может сбиться и выполнять программу неверно. Для того чтобы робот делал всё правильно, надо отрегулировать датчики. Например, слишком яркое освещение может помешать адекватно распознать цвета. В зависимости от поверхности, по которой передвигается робот, регулируют мощность моторов.

Можно научиться собирать и программировать в школе?

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

«После уроков с учителями физики и информатики мы учимся программировать. Уже умеем работать в LegoMindstorms и Robolab (программное обеспечение для роботов – прим. авт. ). Также иногда учимся делать 3D-чертежи деталей», – рассказали ученики Белгородского инженерного юношеского лицея-интерната и участники «РобоФеста-2018» Антон Першин и Дмитрий Чернов .

Где, кроме школы, можно стать робототехником?

В инжиниринговой школе БелГУ есть класс, в котором учат собирать и программировать роботов. В 2017 году в Белгороде открылся «Кванториум» , в котором робототехнике учат школьников с девяти лет.

Чтобы стать настоящим робототехником, можно поступить на робототехнический факультет. В Белгороде пока таких нет, но в БГТУ им. Шухова есть кафедра технической кибернетики . Её студенты занимают призовые места на всероссийских соревнованиях по робототехнике.

Можно ли научиться самому?

Да. Есть множество ресурсов в Интернете, на которых можно узнать, из чего собрать и как запрограммировать робота.

Будет ли робот полезным?

Его можно приспособить под бытовые задачи и сделать помощником в доме. В Интернете есть много примеров, как домашние изобретатели создают роботов для выпечки блинов или уборки квартиры.

Как подтвердить свои успехи в создании роботов?

Принять участие в таких соревнованиях, как «РобоФест». На них в зависимости от возраста и направления существуют разные номинации. В основном у каждого вида робота есть трасса, на которой он выполняет задания: захватить кубик или прочертить линию. Есть и статичные системы, в которых судьи оценивают презентацию проекта и работу механизмов.

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

Редакция благодарит за помощь в создании материала участников «РобоФеста-2018» Дмитрия Агафонова , Дмитрия Чернова , Антона Першина и Данила Мигрина .

Наталья Малыхина

Робототехника - одно из перспективнейших направлений в сфере интернет-технологий, а то, что за ИТ-сферой будущее, в наше время и объяснять не надо. Кроме того, роботостроение может показаться занимательней прочего: сконструировать робота значит почти что создать новое существо, пусть и электронное, что, конечно же, привлекает. Впрочем, и в этой отрасли все может оказаться непросто, особенно на первых порах. Вместе с экспертами попытаемся разобраться, зачем нужна роботехника и как к ней подступиться.

Робототехника — одно из перспективнейших направлений в сфере интернет-технологий, а то, что за ИТ-сферой будущее, в наше время и объяснять не надо. Роботостроение — увлекательнейшая штука: сконструировать робота значит почти что создать новое существо, пусть и электронное.

С 60-х годов прошлого века автоматизированные и самоуправляющиеся устройства, делающие какую-либо работу за человека, стали использоваться для исследований и в производстве, затем в сфере услуг и с тех с каждым годом прочнее занимают свое место в жизни людей. Конечно, нельзя сказать, что в России все сплошь выполняется самостоятельными механизмами, однако определенный вектор в эту сторону точно намечается. Вот уже и Сбербанк планирует заменить три тысячи юристов умными машинами.

Вместе с экспертами попытаемся разобраться, зачем нужна роботехника и как к ней подступиться.

Чем отличается робототехника для детей от профессиональной?

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

Татьяна Волкова, сотрудник Центра интеллектуальной робототехники: «Как правило, с чего все начинают: разбираются с моторами и заставляют робота элементарно ехать вперед, потом - делать повороты. Когда робот выполняет команды движения, можно уже подключить датчик и сделать так, чтобы робот ехал на свет или, наоборот, «убегал» от него. А дальше идет любимая задача всех новичков: робот, который ездит по линии. Устраиваются даже различные гонки роботов».

Как понять, есть ли у ребенка склонность к робототехнике?

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

Чем быстрее получится определиться с направлением роботехники — конструирование, электроника, программирование — тем лучше. Все три области обширны и требуют отдельного изучения.

Александр Колотов, ведущий специалист STEM-программ в Университете Иннополис: «Если ребенку нравится собирать конструктор, то ему подойдёт конструирование. Если ему интересно изучать, как устроена вещь, то ему понравится заниматься электроникой. Если у ребенка тяга к математике, то его заинтересует программирование».

Когда начинать обучение робототехнике?

Начинать изучение и записываться в кружки лучше всего с детства, впрочем, не слишком рано — в 8-12 лет , говорят специалисты. Раньше ребенку сложнее уловить понятные абстракция, а позднее, в подростковом возрасте, у него могут появиться другие интересы, и он станет отвлекаться. Также ребенка необходимо мотивировать на изучение математики, чтобы ему было интересно и легко в будущем проектировать механизмы и схемы, составлять алгоритмы.

С 8-9 лет ребята уже могут понимать и запоминать, что такое резистор, светодиод, конденсатор, а позже и понятия из школьной физики осваивать с опережением школьной программы. Не важно, станут они специалистами в этой области или нет, полученные знания и навыки точно даром не пропадут.

В 14-15 лет нужно продолжать заниматься математикой, отодвинуть занятия в кружке по робототехнике на второй план и начать изучение программирования более серьезно - разбираться не только в сложных алгоритмах, но и в структурах хранения данных. Далее идут математический базис и знания в алгоритмизации, погружение в теорию механизмов и машин, проектирование электромеханической оснастки робототехнического устройства, реализацию алгоритмов автоматической навигации, алгоритмы компьютерного зрения и машинное обучение.

Александр Колотов: «Если в этот момент познакомить будущего специалиста с основами линейной алгебры, комплексным счислением, теорией вероятности и статистики, то к поступлению в вуз он уже будет хорошо представлять, зачем ему стоит обращать дополнительное внимание на эти предметы при получении высшего образования».

Какие конструкторы выбрать?

Для каждого возраста существуют свои образовательные программы, конструкторы и платформы, различающиеся степенью сложности. Можно найти как зарубежные, так и отечественные продукты. Есть дорогие наборы для робототехники (в районе 30 тыс. руб. и выше), есть и подешевле, совсем простые (в пределах 1-3 тыс. руб.).

Если ребенку 8-11 лет , можно купить конструкторы Lego или Fischertechnik (хотя, конечно, производители имеют предложения как для более младшего, так и для старшего возрастов). Конструктор Lego для робототехники обладает интересными деталями, яркими фигурками, он легок в сборке и снабжен подробной инструкцией. Серия конструкторов Fischertechnik для робототехники приближает к настоящему процессу разработки, здесь вам и провода, и штекеры, и визуальная среда программирования.

В 13-14 лет можно начать работать с ТРИК или модулями Arduino, которые, по словам Татьяны Волковой, является практически стандартом в области образовательной робототехники, а также Raspberry. ТРИК сложнее Lego, но легче Arduino и Raspberry Ri. Последние две уже требуют базовых навыков программирования.

Что еще потребуется изучить?

Программирование . Избежать его возможно только на первоначальном этапе, потом же без него никуда. Начать можно с Lego Mindstorms, Python, ROS (Robot Operating System).

Базовую механику. Начинать можно с поделок из бумаги, картона, бутылок, что важно и для мелкой моторики, и для общего развития. Самого простого робота можно сделать вообще из отдельных деталей (моторчики, провода, фотодатчик и одна несложная микросхема). Познакомиться с базовой механикой поможет «Мастерилка с папашей Шперхом».

Основы электроники. Для начала научиться собирать простые схемы. Для детей до восьми лет эксперты советуют конструктор «Знаток», дальше можно перейти к набору «Основы электроники. Начало».

Где заниматься робототехникой детям?

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

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

Алексей Колотов: «Для серьезных занятий, проектов, участия в соревнованиях нужно выбирать кружки, с небольшими группами по 6—8 человек и тренером, который приводит учеников к призовым местам на соревнованиях, который постоянно сам развивается и дает интересные задачи. Для занятий в виде хобби можно пойти в группы до 20 человек».

Как выбирать курсы для занятий робототехникой?

При записи на курсы обратите внимание на педагога , рекомендует коммерческий директор компании Promobot Олег Кивокурцев. «Бывают прецеденты, когда педагог просто отдает ребятам оборудование, а дальше занимайтесь кто чем хочет», — согласна с Олегом Татьяна Волкова. От таких занятий толку будет мало.

При выборе курсов также стоит обратить внимание и на имеющуюся материально-техническую базу . Есть ли там конструкторские наборы (не только Lego), имеется ли возможность писать программы, изучать механику и электронику, самому делать проекты. На каждую пару учащихся должен быть свой робототехнический комплект. Желательно с дополнительными деталями (колесами, шестернями, элементами каркаса), если хочется участвовать в соревнованиях. Если с одним набором работает сразу несколько команд то, скорее всего, никаких серьезных соревнования не предполагается.

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

Соревнование Robocup 2014

Как изучать робототехнику самостоятельно?

Курсы требуют денег и времени. Если первого не хватает и регулярно ходить куда-либо не получится, можно заняться с ребенком самостоятельным изучением. Важно, чтобы родители обладали необходимой компетенцией в этой сфере: без помощи родителя, ребенку освоить робототехнику будет достаточно сложно, предостерегает Олег Кивокурцев.

Найдите материал для изучения. Их можно брать в Интернете, из заказываемых книг, на посещаемых конференциях, из журнала «Занимательная робототехника». Для самостоятельного изучения есть бесплатные онлайн-курсы, например, «Строим роботов и другие устройства на Arduino: от светофора до 3D-принтера».

Нужно ли изучать роботехнику взрослым?

Если Вы уже вышли из детского возраста, это не значит, что двери робототехники для Вас закрыты. Можно так же записаться на курсы или изучать ее самостоятельно.

Если человек решил заниматься этим как хобби, то путь его будет таким же, как у ребенка. Однако понятно, что дальше любительского уровня без профессионального образования (инженера-конструктора, программиста и электронщика) продвигаться вряд ли получится, хотя, конечно, устраиваться на стажировки в компании и упорно грызть гранит нового для вас направления никто не запрещает.

Олег Кивокурцев: «Взрослому будет проще освоить робототехнику, но важным фактором является время».

Для тех, у кого близкая специальность, но хочется переучиться, также есть разные курсы в помошь. Например, для специалистов по машинному обучению одойдет бесплатный онлайн-курс по вероятностной робототехнике «Искусственный интеллект в робототехнике». Также существуют образовательная программа Intel, просветительский проект «Лекториум», дистанционные курсы ИТМО. Не забудьте и про книги, например, есть много литературы для начинающих («Основы робототехники», «Введение в робототехнику», «Настольная книга робототехника»). Подберите то, что больше всего понятно и подходит вам.

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

В какие вузы идти учиться?


Направления, связанные с робототехникой, можно найти в следующих вузах:

— Московский технологический университет (МИРЭА, МГУПИ, МИТХТ);

— Московский государственный технический университет им. Н. Э. Баумана;

— Московский государственный технологический университет «Станкин»;

— Национальный исследовательский университет «МЭИ» (Москва);

— Сколковский институт науки и технологий (Москва);

— Московский государственный университет путей сообщения Императора Николая II;

— Московский государственный университет пищевых производств;

— Московский государственный университет леса;

— Санкт-Петербургский государственный университет аэрокосмического приборостроения (СГУАП);

— Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики (ИТМО);

— Магнитогорский государственный технический университет;

— Омский Государственный технический университет;

— Саратовский государственный технический университет;

— Университет Иннополис (Республика Татарстан);

— Южно-Российский федеральный университет (Новочеркасский ГТУ).

Самое главное

Знать азы робототехники в скором времени может оказаться полезно и обывателям, а возможность стать специалистом в этой сфере выглядит очень перспективно, так что хотя бы попробовать себя в «роботостроительстве» определенно стоит.

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

Google купила Boston Dynamics. Это сообщение у меня вызвало некий шок. Boston Dynamics - одна из самых известных компаний, специализирующихся на робототехнике, и, если учесть, что Google покупает уже восьмую компанию на этом рынке, возникает правомерный вопрос: что же они задумали? Похоже, нас ждет интересное десятилетие!

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

Физический и графический движок

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

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

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

Достоинства и недостатки симуляторов

Достоинства:

  • низкая стоимость;
  • возможность в любой момент доработать модель;
  • возможность отдельно тестировать функциональные составляющие робота;
  • возможность одновременной симуляции нескольких типов роботов.

Недостатки:

  • даже самый совершенный физический движок не может симулировать все законы реального мира;
  • требовательность к ресурсам машины.

Microsoft Robotics Developer Studio

Microsoft Robotics - это пакет программ, который может использоваться для управления различными роботами и включает в себя полноценный симулятор. В состав Robotics входят следующие компоненты:

  • библиотека Concurrent and Coordination Runtime (CCR) - предназначена для организации обработки данных с помощью параллельно и асинхронно выполняющихся методов. Взаимодействие между такими методами организуется на основе сообщений. Рассылка сообщений основана на использовании портов;
  • Decentralized Software Services (DSS) - среда, которая позволяет запускать алгоритмы обработки данных на разных ЭВМ, организовывать асинхронное взаимодействие процессов управления различными подсистемами робота;
  • Visual Simulation Environment (VSE) - среда визуализации, которая позволяет экспериментировать с моделями роботов, тестировать алгоритмы управления роботами;
  • Visual Programming Language (VPL) - язык, предназначенный для разработки программ управления роботами. Программа на таком языке представляется в виде последовательности блоков, которые выполняют обработку данных, и связей между ними.

За симулятор физики в Robotics отвечает Ageia Physx. Очень печально, но в симуляторе отсутствует трение между создаваемыми объектами, хотя моделируется трение между отдельным объектом и платформой, на которой он размещается.

Создать сцену в симуляторе и запрограммировать робота можно на VPL или C#. Естественно, что на C# сцену сделать сложнее, но зато и код получится более эффективный. Возможности Robotics позволяют смоделировать футбол роботов, железную дорогу, манипулятор, добавить на сцену нескольких роботов. Доступные из коробки сенсоры: GPS, лазерный дальномер, инфракрасный дальномер, компас, сенсор цвета, сенсор яркости, веб-камера.

Подробнее о работе с этой средой ты можешь прочитать в номерах 01’13 («Стань робототехником!») и 03’13 («Робот-шпион - это просто!»).

Robotino - робот, созданный Festo Didactic для обучения робототехнике. Для программирования робота требуется программа Robotino® View. На сайте Festo доступен симулятор робота для Windows - Robotino® SIM (есть профессиональная и бесплатная версия, бесплатная - немного урезанная по функциональности).

Немного о роботе, который встроен в симулятор. В его состав входят три двигателя, которые позволяют перемещаться роботу по плоскости в любом направлении. Сенсорная система робота включает девять инфракрасных сенсоров расстояния, два цифровых оптических сенсора и камеру. Программировать робота можно с помощью C/C++, Java, .NET.

Вообще, способности бесплатного симулятора удручают. Но! Если хорошенько поискать в интернете, то можно найти версии данного симулятора, заточенные под разные задачи. Да будет тебе известно, что компания Festo Didactic выступает одним из спонсоров RoboCup . Поэтому здесь goo.gl/Wtle15 и здесь goo.gl/pHA2oL ты сможешь найти версии этого симулятора, использовавшиеся в соревнованиях.

Gazebo - мощный симулятор роботов, разработанный для операционной системы Linux. Абсолютно бесплатен для использования. Gazebo может симулировать нескольких роботов с сенсорами в окружении различных объектов. Также тут доступен редактор, который позволяет создавать 3D-сцены без программирования. Моделируемые сенсоры: лазерный дальномер, камера, кинект-сенсор, устройство для чтения RFID-меток и бамперы. Из коробки в симуляторе имеются модели следующих роботов: PR2, Pioneer2 DX, iRobot Create, TurtleBot, а также манипуляторы и захваты. К симулятору для создания качественной графики можно подключить OGRE (графический движок с открытым исходным кодом). В Gazebo встроена возможность чтения файлов в формате Collada, что позволяет добавлять в симулятор объекты, спроектированные в одном из редакторов 3D-моделей.

Gazebo используется в качестве симулятора в DARPA Robotics Challenge (DRC). В рамках DRC разработано приложение CloudSim для запуска Gazebo на платформе облачных вычислений Amazon.

AnyKode Marilou Robotics Studio

AnyKode Marilou Robotics Studio - среда разработки и симулирования мобильных роботов, гуманоидов и манипуляторов с учетом физических законов реального мира. Для объектов можно указать следующие физические параметры: массу, упругость, свойства материала, вращающие моменты, а также некоторые другие.

Marilou позволяет подключать к роботу различные виртуальные устройства: компас, акселерометры, двигатели и сервомоторы, бампер, сенсоры расстояния (ультразвуковой и инфракрасный), GPS и другие устройства.

В редакторе объектов Marilou доступны статические и динамические объекты, которые можно размещать в симулируемом мире (поддерживается одновременная симуляция нескольких роботов). Сложные объекты в Marilou строятся из более простых (используется иерархический подход к представлению объекта), что позволяет повторно использовать части объектов. В симуляторе доступны несколько источников света: точечный, прожектор, внешний и направленный.

В Marilou есть MODA (Marilou Open Devices Access) - SDK для работы с роботами и их компонентами в симуляторе. После синхронизации с часами симулятора алгоритмы управления роботом могут запускаться на другом компьютере сети. В зависимости от выбранного языка MODA предоставляет библиотеки (.lib или.a) или.NET-сборки (.dll) для доступа к симулятору по сети. Программирование алгоритмов управления роботов возможно с помощью языков C/C++, C++ CLI, C#, J#, VB#.

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

В ноябре 2013 года вышел новый движок симулятора для Marilou - Exec V5. Бета-версия движка может работать на Windows, Ubuntu и Mint. Новый движок многопоточный, кросс-платформенный и использует OpenGL 2.1.

Code Rally: гонки на роботах

Code Rally (разработка IBM) нельзя назвать полноценным симулятором роботов. Если быть точным, Code Rally - симулятор гонок машин (бесплатный и с открытым исходным кодом).

Цель программиста - написать алгоритм управления движения машины («роботом») по трассе (кругу) с учетом следующих правил игры:

  1. В процессе движения машина должна проходить через контрольные точки, за что ей начисляются очки.
  2. Перемещаясь по трассе, машина тратит топливо, а также может расстреливать другие машины пулями.
  3. Машине доступны координаты заправочных станций, кассет с пулями и контрольных точек; трасса ограничена стенами, за пределы которых машина не может выехать.
  4. Допускается управление скоростью машины.
  5. На трассе могут находиться заправочные станции и кассеты с пулями. При заправке топливом машина должна оставаться неподвижной. Машина может включать защиту, но в это время в удвоенном объеме тратится топливо.
  6. Очки начисляются за проезд через контрольную точку (за проезд через точки в установленном порядке начисляется больше очков), за попадание в машину противника (подбитая машина теряет топливо) и за топливо, оставшееся на момент окончания гонки.

Побеждает машина, набравшая максимальное количество очков.

Тестировать свой алгоритм управления машиной можно на сервере (на своем компьютере), посоревноваться с друзьями по сети или запустить приложение на облачном сервере IBM (ведется рейтинг игроков).

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

Algodoo: специализированный симулятор физики

Algodoo - физический 2D-симулятор. Объекты, которые создаются в этом симуляторе, сразу начинают подчиняться законам физики. Конечно, полноценного робота в трехмерном пространстве ты в этой программе не сделаешь, зато сможешь проверить возможность работы любого механизма. В программе можно моделировать воду, пружины, оптические устройства, ракетные двигатели, оружие, автомобили.

Может показаться, что данный симулятор неполноценен в том смысле, что позволяет проектировать и исследовать только «плоских» роботов. Однако ты можешь сначала спроектировать 2D-робота, а потом создать в реале его трехмерную версию. Пример показан здесь (2:07): goo.gl/wzQ7q4 . В Algodoo встроен скриптовый язык программирования Thyme, который добавляет большую свободу действий в симуляторе. В Thyme доступны переменные, условный оператор, массивы, обработка событий, происходящих в песочнице (среде моделирования).

История Algodoo началась с игры Phun, которую разработал швед Эмиль Эрнерфельдт (это была его магистерская работа). Поддерживаемые ОС: Windows, OS X, iOS. На сайте доступна библиотека AlgoBox, в которой есть куча обучающих материалов и примеров разработки. Также посмотри



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows