Сообщение по теме роботы симуляторы

Обновлено: 02.07.2024

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

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

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

Примеры использования роботов в различных сферах деятельности

Медицина

Здравоохранение – одна из самых прогрессивных сфер, в которой применяется труд роботов. В настоящее время активно развивается роботизированная хирургия .

Так весной 2017 года в Московском клиническом научном центре была проведена успешная операция на желудке 77-летней пациентки под руководством доктора из Южной Кореи Янга Ву Кима. Уникальность события в том, что большую часть манипуляций в брюшной полости онкобольной произвел медицинский робот.

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

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

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

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

Более того, при помощи протеза человек может чувствовать прикосновение, тепло и давление.

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

Космос

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

На 2021 год запланирован запуск российского космического робота на МКС – для технического обслуживания аппаратов и работ в открытом космосе.

Системы безопасности

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

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

Производство

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

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

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

Быт

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

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

Развлечения

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

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

Проведение презентаций

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

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

Применение роботов в различных областях влечет плюсы и минусы.

Преимущества роботизации:

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

Недостатки роботизации:

  • хрупкость – как и любые другие механизмы, роботы нуждаются в техническом обслуживании и ремонте;
  • энергопотребление – работоспособность механизмов полностью зависит от источников питания, и объемы потребления энергии довольно велики;
  • безработица – замена кадров роботами может привести к сокращению как синих, так и белых воротничков: в Сбербанке, например, планируют заменить 4,5 тыс. сотрудников искусственным интеллектом (впрочем, старший вице-президент банка обещает, что работники будут переобучены и смогут работать над другими проектами);
  • деградация – существует мнение, согласно которому современные роботы и их применение может негативно сказаться на человеке в будущем. Если всю тяжелую (а в дальнейшем – и мыслительную) работу будет выполнять искусственный интеллект, человек может перестать развиваться.

Главное отличие робота от человека

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

Разработчик Кристофер Гессе представил проект Edges2cats, который превращает рисунки домов, котов, обуви и сумок в фотографичные изображения.

Что будет дальше?

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

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

В качестве симулятора мы возьмем пакет Gazebo 3D, а человекоподобный DARwIn-OP, которого мы заставим играть в футбол, будет использован в качестве универсальной робототехнической платформы.

image


DARwIn-OP в симуляторе Gazebo

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

Gazebo 3D, разрабатываемый некоммерческой организацией OSRF (Open Source Robotics Foundation), имеет ряд преимуществ по сравнению с другими робототехническими симуляторами. Во-первых, он бесплатный и имеет открытый код. Во-вторых, он очень популярен среди мирового робототехнического сообщества и является официальным симулятором соревнований DARPA. В-третьих, Gazebo отлично интегрируется с программной платформой ROS (Robot Operating System), а значит разработанную вами программу управления виртуальным роботом в Gazebo и ROS будет относительно несложно перенести на реального робота.

image


Робот PR2 в симуляторе Gazebo

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

Установка ROS

Первым и самым трудоемким шагом является установка ROS и Gazebo. Для установки ROS нам понадобится ПК с Linux (например Ubuntu 15.04). Если вы пользователь Windows или Mac OS, то можно воспользоваться виртуальной машиной, например Virtual Box c установкой Linux Ubuntu. Сразу хочется отметить, что мне не удалось настроить нормальную поддержку 3D под виртуальной машиной, Gazebo либо вылетал, либо работал с тормозами. Поэтому в качестве тренировки, можно воспользоваться виртуальной машиной, но для реальной разработки целесообразно все-таки использовать Linux.

ROS можно установить двумя способами. Первый способ относительно простой — это установка уже готовых Debian пакетов. Данный способ подходит в том случае, если у вас установлен Ubuntu Saucy (13.10) или Trusty (14.04), или, например, Debian Wheezy. Второй способ более сложный и запутанный — это установка из исходников. С помощью него можно произвести установку ROS в более свежих версиях Ubuntu или других дистрибутивов Linux.

Пример установки приведенный ниже осуществлялся в Linux Ubuntu 15.04.

То же самое можно сделать с помощью менеджера пакетов pip, но для пользователей Ubuntu первый вариант более предпочтителен.

Инициализируем rosdep. Rosdep — инструмент командной строки для установки системных зависимостей ROS.


Теперь приступим к сборке пакетов ROS с помощью утилиты catkin. Catkin — это набор макросов для сборки и управления инфраструктурой ROS.

Создадим каталог для установки ROS и загрузим ключевые пакеты.


Команда rosinstall_generator создает список пакетов необходимых для установки ROS, в качестве параметров может быть указана минимальная установка ros_comm, базовая desktop или полная desktop_full. Установка desktop_full включает версию Gazebo 2.0. Эта версия уже устарела, текущей является версия 5.x. Поэтому мы выберем конфигурацию desktop, а Gazebo установим отдельно.


После того как список пакетов для установки сгенерирован в файл indigo-desktop-wet.rosinstall, воспользуемся утилитой wstool для инициализации рабочей области и загрузки пакетов.

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

image


После установки в каталоге src можно найти скачанные пакеты

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


После успешной установки всех зависимостей, наконец можно откомпилировать пакеты с помощью системы автоматизации сборки catkin. Это делается командой catkin_make_isolated или командой catkin_make. Сatkin_make_isolated следует использовать, если часть ваших пакетов использует CMake (другая популярная система автоматизации сборки), а часть catkin, если же все пакеты используют catkin, следует применять catkin_make. Базовый репозиторий имеет смешанный тип, поэтому используем команду catkin_make_isolated.


Для того, чтобы инфраструктура ROS заработала, необходимо настроить переменные окружения и прописать все необходимые пути. Для этого следует выполнить скрипт setup.bash.


Это команда настроит переменные окружения только для текущей bash консоли. Если Вы хотите добавить переменные окружения ROS в bash по умолчанию, то можно записать команду source в файл .bashrc. Этот файл исполняется при открытии новой bash консоли.


Поздравляю! На этому установка ROS окончена, давайте выполним несколько команд, чтобы проверить правильность работы.

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

image


Список команд ROS. Все команды начинаются с префикса ros

Давайте что-нибудь запустим, например простое телеуправление. Для начала нам нужен объект которым мы хотим управлять, пускай им будет черепаха из turtlesim. Итак, запускаем сервер turtlesim c помощью команды rosrun. Для этого открываем новую консоль и выполняем команду.


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


А теперь с помощью клавиш курсора попробуйте подвигать черепаху. Например, вот так.

image


Пример телеуправления черепахой

Итак, только что мы построили распределенную систему для телеуправления, где turtlesim и teleop являются независимыми процессами коммуницирующими через связующее программное обеспечение ros_comm. Процессы turtlesim и teleop могут находиться как на одном, так и на различных ПК, объединенных в сеть. Отобразить взаимосвязь этих процессов можно с помощью утилиты rqt_graph.

image



Утилита rqt_graph служит для отображения топологии распределенной системы управления роботом

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

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

image


Содержимое /turtle1/cmd_vel — заданная линейная и угловая скорость черепахи

После успешной установки ROS приступим к установке симулятора Gazebo.

Установка Gazebo

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


Теперь необходимо настроить конфигурацию rosdep так, чтобы система игнорировала зависимость пакетов от более старой версии Gazebo, являющейся частью ROS Indigo, а использовала бы последнюю версию, которую мы только что установили. Для этого мы перейдем в каталог конфигурационных файлов rosdep, создадим файл local.yaml, в котором укажем игнорировать пакет gazebo. Далее перейдем в каталог sources.list.d и добавим только что созданный скрипт в список 10-local.list. Далее выполним команду update для того, чтобы новая конфигурация вступила в действие.


На финальном этапе необходимо установить пакеты связующие симулятор Gazebo с инфраструктурой ROS, а также пакеты с описанием 3D модели и контроллеров робота DARwIn-OP. Для упрощения этого процесса мы подготовили небольшой скрипт, который произведет загрузку всех необходимых зависимостей.

Перейдем в рабочий каталог и загрузим скрипт из нашего репозитория на github.


Далее заходим в каталог ros_gazebo_darwin, как было описано ранее, инициализируем рабочую область catkin и загружаем пакеты перечисленные в файле indigo-gazebo-darwin.rosinstall.


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


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


Отлично! Установка Gazebo и модели DARwIn-OP успешно завершена, давайте поскорее запустим результат.

Работа в симуляторе Gazebo

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


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

image


Симулятор Gazebo с загруженной моделью робота DARwIn-OP. (Не забудьте нажать на кнопку play, помеченную красным)

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


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

image



Телеуправление роботом DARwIn-OP в симуляторе Gazebo

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


Как видите, по сравнению с примером turtlesim, данная система управления гораздо сложнее и имеет больше элементов. Такое количество элементов, обусловлено тем, что модель Darwin-OP имеет 24 виртуальных сервомотора, которыми управляют программы darwin_walker и walker, получая заданную скорость от программы darwin_teleop.

image


Устройство системы управления роботом DARwIn-OP в симуляторе Gazebo

Подведем итог. В данном уроке мы изучили процесс установки и компиляции ROS Indigo из исходного кода. Сделали мы это с образовательной целью, чтобы немного разобраться с устройством системы ROS и ее команд, а также для того, чтобы подключить последнюю версию симулятора Gazebo 3D. Далее мы загрузили модель человекоподобного робота DARwIn-OP, производимого компанией Robotis, и настроили простую систему управления. Благодаря возможностям ROS наша системы способна работать как на одном, так и на нескольких ПК, объединенных в сеть.

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

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


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

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

Как расширить бизнес по детской робототехнике

Симулятор Virtual Robotics Toolkit

Симулятор Virtual Robotics Toolkit

Робототехника дистанционно?

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

Зачем?

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

Платформы для дистанционных занятий

Образовательная робототехника включает в себя две главные части:

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

Системы САПР

САПР для LEGO

Например, для подготовки проектной документации для Lego существует несколько:

Lego Digital Disigner

Lego Digital Disigner

САПР для VEX

Для конструкторов VEX используют другие САПР. Наиболее популярная система на текущий момент SnapCAD для VEX IQ. Достаточно простая в использования, содержит библиотеку элементов VEX IQ, есть возможность создать свои детали и распечатать на 3D-принтере.

SnapCAD

САПР для других платформ

Например, работая в tinkercad, можно не только создать 3D-модель для изготовления, но и создать виртуальную электронную схему с Arduino, которую потом и запрограммировать, и посмотреть работу в симуляторе. Таким образом, данная платформа удачно объединяет все возможности для виртуальной работы.

Виртуальные симуляторы роботов

Наиболее известные в данной категории симуляторы:

Virtrual Robotics Toolkit

Virtrual Robotics Toolkit

TRIK Studio

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

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

Open Roberta

vr.vex.com

Безусловно, рассматривая симуляторы в робототехнике, нельзя не отметить еще одну отечественную разработку от Центра робототехники из Владивостока – среду MUR IDE (Python), созданную для робототехнического конструктора Автономный подводный робот.

Используя симулятор, можно подготовиться к различным соревнованиям, таким как ОНТИ, Олимпиада Innopolis Open и другие.

Среда MUR IDE (Python)

Среда MUR IDE (Python)

Симулятор роботов CoppeliaSim

Симулятор роботов CoppeliaSim

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

ColoBot

А для развития конструкторского мышления стоит рассмотреть игру Bad Piggies – для смартфонов и планшетов, в которую с удовольствием играют и успешно осваивают основы физики и конструирования и дошкольники, и взрослые.

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


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

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

СОДЕРЖАНИЕ

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

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

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

    Читайте также: