Шаг 6. управление роботом

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 («Робот-шпион — это просто!»).

Мир без пчел: роботизированное опыление мыльными пузырями

Школьный курс биологии научил нас тому, что все живые организмы так или иначе связаны друг с другом. Посудите сами, на поле растет трава, зайцы едят траву, лисы едят зайцев. Но если одно из звеньев этой демонстрационной цепи исчезнет, то пострадают другие: исчезнут хищники — зайцы начнут плодиться и съедят всю траву; исчезнет трава — зайцам нечего будет есть, следовательно, лисы также будут голодать; исчезнут зайцы — трава будет расти бесконтрольно, а лисы будут голодать. Пример достаточно утрирован, но суть доносит. Подобная ситуация касается и пчел, численность которых за последние годы катастрофически упала. Пчелы, как мы знаем, не только делают мед, но и выполняют одну из важнейших операций в природе — опыление. Сегодня мы рассмотрим исследование, в котором ученые Си Ян и Эйдзиро Мияко описывают роботизированную систему опыления цветов посредством мыльных пузырей. Из чего состоит система, как именно она работает, и почему мыльные пузыри? Об этом мы узнаем из доклада ученых. Поехали.

Ксеноботы: живые нанороботы из клеток лягушки

В далеком 1495 году Леонардо да Винчи создал чертеж живых доспехов. И лишь спустя 425 лет чешский фантаст Карел Чапек впервые использовал слово «робот» в своей пьесе «R.U.R.». Современные роботы намного умнее, сложнее и мобильнее робота да Винчи, но у них есть общие черты. Одной из них является материал, из которого изготавливаются эти удивительные машины. Когда мы говорим о роботах, то чаще всего представляем себе что-то синтетическое, недаром в книгах и кино роботов порой именуют синтетиками.
Однако роботов создавать можно далеко не только из металла, пластика или углеволокна. Ученые из университета Вермонта (США) решили использовать в качестве строительных материалов клетки лягушек. Полученные в результате микроскопические роботы, названные «ксеноботами», способны путешествовать по телу живого организма и выполнять поставленные перед ними задачи. Как именно ученые создали искусственную жизнь, какими талантами могут похвастаться ксеноботы и где можно применить столь необычное изобретение? Об этом мы узнаем из доклада исследовательской группы. Поехали.

Разработка hardware-продуктов — что и как устроено

Привет, меня зовут Дмитрий Каржицкий, я работаю QA Lead в белорусском hardware-стартапе Rozum Robotics. Недавно вместе с Университетом Иннополис мы провели митап, посвящённый разработке hardware-продуктов. По следам митапа хочу рассказать про специфику разработки и тестирования роботов и про особенности организации работы в hardware-стартапе.

Кажется, что сфера hardware менее заметна, чем software, как минимум по количеству упоминаний. У всех на слуху разработчики в области веб- и мобильных приложений, которые пишут код на макбуках, попивая смузи. А у hardware специалистов скорее образ классического бородатого инженера, который может и плату спаять, и код написать. Если с задачей на разработку софта верхнего уровня хороший Java-программист должен справиться, то в embedded без понимания железа не обойтись.

Разработку новых продуктов, в том числе и в hardware, можно разделить на два больших направления: коммерческие продукты (стартапы) и научно-исследовательская деятельность (R&D). Процессы и подходы к разработке и тестированию могут быть похожи, отличаются задачи и масштаб. Продукт разрабатывается для конкретных пользователей на основе идеи и исследования, что потенциальным клиентам нужна ваша разработка. В таком подходе больше рисков. Один из рисков — сложность масштабирования продукта. Выпустить новую версию приложения недорого, а создать копию робота всё ещё довольно сложно и дорого. О других рисках я расскажу ниже.

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

Цикл со счетчиком.

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

Для того, чтобы написать цикл со счетчиком для исполнителя необходимо знать его синтаксис. А он такой:

нц <количество повторений> раз

<команда 1>

<команда 2>

<команда n>

кц

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

Давайте рассмотрим это на примере.

Закрасим 7 клеток, как на рисунке. Рекомендую почитать про стартовую обстановку Робота и про его простые команды.

Изначально Робот находился в левой верхней клетке.

Давайте для начала решим задачу линейно. В этом случае мы будет закрашивать текущую клетку и перемещаться на 1 клетку вправо и программа будет выглядеть так:использовать Роботалгнач

закрасить

вправо

закрасить

вправо

закрасить

вправо

закрасить

вправо

закрасить

вправо

закрасить

вправо

закрасить

вправо

кон

Как видим, команды закрасить и вправо повторяются 7 раз. Давайте теперь перепишем программу с использованием цикла. Кстати, чтобы вставить цикл в свою программу можно в меню Вставка выбрать пункт нц-раз-кц или нажать одну из комбинаций клавиш Esc, Р (русская буква Р) или Esc, H (латинская буква H). Причем клавиши надо нажимать последовательно — сначала Esc, отпустить ее и только потом Р или H.

Так вот, наша программа с циклом будет выглядеть так:

использовать Робот

алг

нач

нц 7 раз

закрасить

вправо

кц

кон

Если мы ее запустим, то увидим, что в результате получится тоже самое — 7 закрашенных клеток. Однако программа стала короче и значительно грамотней с алгоритмической точки зрения!

Цикл с условием.

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

пока не устал

сделай приседание

конец цикла

Слова не устал в нашем случае — это условие. Когда оно истинно, цикл выполняется. Если же оно ложно (устал) тело цикла не будет выполнено. У исполнителя Робот есть несколько условий

сверху свободно

снизу свободно

слева свободно

справа свободно

сверху стена

снизу стена

слева стена

справа стена

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

Давайте сначала сформулируем словесный алгоритм — т. е. опишем словами что нужно делать Роботу. Этот алгоритм будет звучать примерно так:

«Пока справа свободно делай шаг вправо и закрашивай клетку»

В результате Робот пробежит по всем клеткам вправо и будет их закрашивать до тех пор, пока справа не окажется стена.

Исходный код нашей программы для Робота будет примерно такой:

использовать Робот

алг

нач

нц пока справа свободно

вправо

закрасить

кц

кон

В результате выполнения этой программы мы увидим вот такую картину:

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

Для закрепления прошу написать программу, которая будет делать рамку вокруг рабочего поля Робота независимо от его размера. Конечно же с использованием циклов с условием. В итоге должно получиться так:

Программирование EV3 при помощи Scratch

Scratch является графической средой программирования. Программировать EV3 при помощи Scratch можно если установить нужное программное обеспечение и настроить его. Программное обеспечение можно установить на любые операционные системы. Для примера выберем операционную систему Windows.

Как и в случае с программированием на Python, потребуется карта памяти с такими же параметрами. Карту памяти нужно отформатировать в файловой системе FAT32. На компьютер надо установить виртуальную Java-машину под названием leJOS.

Затем устанавливаем виртуальную машину на компьютер со всеми компонентами.

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

Также на компьютере должна быть установлена свежая версия Adobe AIR. Затем можно установить редактор Scratch.

Установка редактора не занимает много времени.

Следующим шагом является установка ev3-scratch-helper-app. Это приложение служит для связи редактора Scratch и микроконтроллера EV3. Также в редакторе можно в настойках установить русский язык и нужно добавить блоки EV3 в редактор Scratch. После добавления блоков можно приступать к написанию программ.

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

Как мы делали дрон, который не боится упасть, и что общего между архитектурой, роботом-манипулятором и коптером

У нас было десять разбитых дронов за год, тестовые полеты два раза в день, три кандидата технических наук в команде, прототип из палочек для суши и желание найти способ больше не бить дроны.
Очень спорно, очень необычно, очень странно, но работает! На стыке архитектуры, коллаборативной робототехники и беспилотных летательных аппаратов. Представляем: Tensodrone.
Tensodrone (Тенсодрон) — беспилотный летательный аппарат (БПЛА) мультироторного типа новой конструкции с защитой от столкновений, сделанный по принципу тенсегрити. Такой подход позволяет повысить устойчивость к ударам при меньшей массе, совместив защитную клетку и конструкцию несущей рамы.
Проект является ярким примером взаимодействия различных команд Центра компетенций НТИ по направлению «Технологии компонентов робототехники и мехатроники» на базе Университета Иннополис.

Что мне потребуется?

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

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

В логике конструктора

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

— В сфере робототехники до сих пор не существует удобной операционной системы, которую можно было бы легко подстраивать под различные образцы с минимальными затратами, как это происходит, например, с компьютерами, для которых существуют Windows, Linux, Mac OS и другие программы, — рассказал руководитель лаборатории нейроробототехники Московского физико-технического института (МФТИ), гендиректор Neurobotics Владимир Конышев. — Поэтому создатели андроидов вынуждены пользоваться набором специализированных библиотек. Каждая из них содержит небольшие фрагменты программного кода, которые достаточно сложно собрать в работающую конфигурацию.

н2

Фото: агентство городских новостей «Москва»/Сергей Киселев

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

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

Роботизированный манипулятор

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

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

Задача вашей руки — перемещаться с места на место. Аналогичным образом, задача манипулятора — перемещать концевой эффектор с места на место. Вы можете оснастить манипулятор разными концевыми эффекторами, предназначенными для конкретных задач. Один из распространенных эффекторов — упрощенная версия руки, которая может хватать и переносить разные объекты. Манипуляторы часто обладают встроенными датчиками давления, которые предписывают компьютеру, с какой силой захватывать конкретный объект. Это позволяет роботу не ломать все, что он хватает. Другие конечные эффекторы включают паяльные лампы, дрели и распылители порошка или краски.

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

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

Boston Dynamics: от заказов для армии США к коммерческому роботу Spot

Boston Dynamics последний десяток лет удивляет нас видео со своими роботами. Компания начала с жутковатого BigDog по заказу армии США, а закончила ярко-желтым и дружелюбным SpotMini для промышленности. Их машины могут сканировать помещения, переносить грузы, а еще — балансировать на льду, танцевать и исполнять паркур — даже покруче людей. Кажется, нужно еще чуть-чуть подождать, и роботы начнут свободно ходить по улицам. Сейчас, когда полмира сидит по домам, это смотрелось бы особенно комично. История Boston Dynamics началась почти 30 лет назад, а может и все 40 — когда основатель компании придумал одноногого прыгающего робота.

Так что же такое робот?

Исходя из приведенных выше определений, если бы мы захотели чёткой однозначности понятий, мы могли бы пойти двумя путями:

  • расширительное толкование: считать роботами вообще всё, что подходит хоть под какой-то из перечисленных признаков;
  • ограничительное толкование: не признавать роботами вообще ничего, что не соответствует строго всем признакам.

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

Думаю, надо честно признать, что на данный момент мы не сможем придумать бесспорное, устраивающее всех определение понятия «робот», которому, к тому же, все будут неукоснительно следовать. Да оно и не нужно! Иначе, разговаривая с не подкованными теоретически людьми (заказчиками, коллегами, знакомыми), мы вынуждены будем постоянно их поправлять: «Нет, это не робот. А вот это, да, кажется робот… Если я не ошибаюсь… Подождите, проверю…» Это утомительно и отвлекает от других дел, полезных.

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

Во-вторых. Для себя, мощных робототехников, нам будет полезно знать несколько типовых признаков, характеризующих (но не всегда определяющих) робот:

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

И при этом мы помним, что в других областях могут быть собственные определения понятия «робот», такие как , родившееся в мире информационных технологий. Виртуальный мир — он вообще склонен переносить понятия из реального мира к себе, одновременно дополняя их своими, новыми смыслами.

Ну, и в-третьих. Для буквоедов и заядлых классификаторов приведём определение робота на основе , только немного исправленное:

Вот так. Пусть каждому будет своё, и все будут довольны.

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

Роботы, на самом деле, гораздо раньше заняли место в нашей жизни, чем мы это заметили! Даже если их не называют роботами, имеет ли это для них значение? Нет, они просто делают свою работу

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

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

  1. В связи с этим не могу не процитировать отрывок из ГОСТ Р 60.0.0.2-2016 «Роботы и робототехнические устройства. Классификация», раздел «4 Общие положения». Он того стоит: «В общем случае все устройства, принадлежащие к классу роботов,… подразделяются на две группы в зависимости от числа программируемых степеней подвижности и степени автономности: роботы (3.1) и робототехнические устройства (3.2). Однако в дальнейшем в настоящем стандарте и в других стандартах комплекса «Роботы и робототехнические устройства» термин «робот», если иное не оговорено особо, обозначает устройства, относящиеся к обеим этим группам, т.е. соответствующие как определению 3.1, так и определению 3.2.»
    Это шедевр! В стандарте (!), устанавливающем классификацию (!!), сразу после введения терминологии (!!!) заявлено: классификация классификацией, а называть будем как хотим!
  2. ГОСТ Р 60.0.0.4-2019/ИСО 8373:2012 «Роботы и робототехнические устройства. Термины и определения»
  3. См. .
  4. См. .
  5. См. , .

Робототехника для детей как опережающее обучение

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

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

Соревнования по робототехнике для детей

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

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

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

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

Материалы

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

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

Использовать существующие коммерческие продукты

Вероятно, вы видели школьные проекты, которые были основаны на существующих массовых продуктах. В первую очередь таких как бутылки, картонные коробки и т.д. Это, по сути, «повторное использование» продукта.

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

Полезные советы.

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

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

Документируйте все в коде, используя комментарии.

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

Сохраняйте разные версии кода.

Не всегда перезаписывайте один и тот же файл. Если вы обнаружите, что ваши 200+ строк кода не будут компилироваться, не стоит останавливаться только на этой версии кода.  Вместо этого вы можете вернуться к ранее сохраненной (и функциональной) версии и добавить или изменить ее по мере необходимости. Код не занимает много места на жестком диске. Поэтому вы можете спокойно сохранять несколько копий.

При отладке робота поднимите его.

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

Если код делает что-то, что кажется неработоспособным.

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

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.

Оцените статью:
Оставить комментарий
Adblock
detector