Как управлять роботом: 6 правил, о которых мало кто знает :: Autonews

Содержание

Как управлять роботом?

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

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

1) Подойди к «зебре»

2) Посмотри налево

3) Дождись, пока слева нет машин

4) Иди до середины дороги

5) Посмотри направо

6) Дождись, пока справа нет машин

7) Иди до тротуара

Всё правильно? Вы уверены? А бабушку-то в самом начале взять за руку мы и забыли. Она с другой стороны улицы осталась. А если машина слева есть, но припаркована? Бабушка замерзнет, робот заржавеет, а дорогу они так и не перейдут.

Если бы мы дали такую инструкцию человеку, он, скорее всего, понял бы её правильно, додумав недостающие детали. Главное отличие робота в том, что думать он не умеет, а строго следует всем данным ему инструкциям. А инструкции-программы пишет для него программист. Поэтому программистом стать может очень внимательный человек.

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

На наших уроках ребята 5-6 классов учатся управлять Lego-роботами. И это, как вы уже, наверное, поняли, не так просто, как может показаться на первый взгляд. Поэтому не всегда удаётся добиться результата с первой попытки. Зато, как здорово, когда «он всё-таки заработал»!

 

Вам будет это интересно: клуб робототехники для детей

 

Наш робот отправляется в экспедицию на Луну. Управляет им с Земли команда юных программистов. Быстренько слетать и что-то там подправить мы не сможем. Управлять можно только по радио. А для этого нужно написать правильную программу. Без единой ошибки! Иначе робот может упасть в кратер и застрять или просто не вернуться. У наших роботов, почти как у людей, есть «глаза», которые умеют различать цвета. Подобно летучей мыши, с помощью инфракрасного датчика, робот верно определит расстояние и не налетит на препятствие. Ну и, конечно же, у него есть моторы, позволяющие передвигаться. А ещё он умеет разговаривать!

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

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

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

 

Как управляют боевым роботом «Уран-6» — Российская газета

На полигоне под Воронежем военные испытали первый на западной границе России саперный робот «Уран-6». Бронированная гусеничная машина, чья задача — уничтожать мины и другие взрывоопасные предметы, не подвергая риску жизнь и здоровье людей, — пришла в инженерный полк совсем недавно, в декабре 2020 года. На первом ее практическом применении присутствовал корреспондент «РГ» — он освоил азы управления шеститонным роботом, понял, почему это под силу только крепким мужчинам, и узнал, зачем на броне «Урана» большая красная кнопка.

Оператора «Урана» и сам похож на киборга. Лицо скрыто прозрачным забралом, защищающим от осколков, на груди броня, способная выдержать очередь из автомата, на локтях, коленях и кистях — кевларовые щитки. За спиной массивный рюкзак на стальной раме с аппаратурой связи и аккумуляторами, из рюкзака торчит частокол антенн и тянется кабель к пульту на груди. Тот похож на игровую приставку: два джойстика, сенсорные экраны и россыпь кнопок, — только защитного цвета, массивнее и гораздо тяжелее.

Чтобы активировать робота, необходимо ввести на пульте шестизначный пароль. Если код верен, на корме «Урана» начинает мерцать красный маячок — он показывает, что машина признала хозяина и готова ему повиноваться. Прикосновением к сенсорному экрану запускается 240-сильный дизель ярославского производства. На фоне рева двигателей танков и другой военной техники работает он на удивление тихо и мирно, лишь в напряженные моменты посвистывая турбиной. Другой сенсор регулирует обороты: можно поддать газку и робот задвигается шустрее или наоборот, убавить ход.

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

Фото: Пресс-служба ЗВО

Дальше начинается самое интересное.

— Пальцем левой руки надо нажать на кнопку присутствия оператора, она снизу. Без нее робот двигаться не будет, если отпустить кнопку — «Уран» сразу остановится, — объясняет оператор «Урана» старший лейтенант Андрей Дудкин, прошедший двухнедельный курс роботовождения в Подмосковье. — Лучше всего использовать средний палец — указательный и большой нужны для манипуляций джойстиком.

Левая ручка управляет ходом машины: вперед-назад, вправо-влево в различных вариациях. Правая — работой навесного оборудования. В комплекте с «Ураном» идут пять тралов для разных типов мин. Для оставшихся пальцев тоже есть свои клавиши, а если рук не хватает, на уровне живота из пульта торчит большая красная кнопка остановки двигателя. Я умудрился нажать ее несколько раз подряд. Красная кнопка еще большего размера размещена на броне самого робота в районе кормы — с ее помощью можно экстренно остановить машину. Под кнопкой небольшой круглый лючок, прикрытый стальной заслонкой. Если аккумуляторы в рюкзаке у оператора разрядятся, в лючок можно вставить кабель, подключить его к пульту и работать дальше. Радиоканал управления защищен от помех и перехвата — потому и антенн так много.

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

— Инженерные войска постоянно получают новую технику. Установка разминирования УР-15 (она сейчас проходит испытания) способна проделать проход в минном поле длиной в километр, — рассказал начальник инженерных войск общевойсковой армии ЗВО полковник Семен Пыпин. — К тому же базируется она на шасси БМП-3, имеющем режим электрохода и способна появляться на позиции практически бесшумно.

Также, по его словам, интересен комплекс КРИК — помещающийся в трех чемоданах набор излучателей создает на радарах противника полную иллюзию колонны военной техники. Противник наносит удар по пустому месту, а мы ответным ударом уничтожаем его средства поражения. Новые защитный комплект бережет сапера от ударной волны и осколков, а его штурмовой вариант выдерживает и автоматные пули. Та же задача у робота «Уран-6» — выполнить задачу, сохранив жизнь и здоровье военнослужащих.

Как управлять роботом пылесосом: полезные советы

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

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

Робо-пылесос считается настоящей находкой:

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

Производители робот пылесосов: известные и не очень

К основным брендам, специализирующимся на создании роботов-уборщиков, относятся iRobot (США), iClebo (Корея), и Neato (США). С их конвейеров сошли самых топовые модели, которых отличает высокое качество. Среди разнообразия выпускаемых ими моделей можно найти и новинки с наличием дополнительных функций (одну из ключевых обсудим позже), и варианты, выпущенные прежде, которые будут справляться с задачей также хорошо, но при этом ценна будет существенно ниже.

Всемирно известные бренды, производящие технику: Samsung, LG, Philips также предлагают свои варианты помощников. Не каждый опыт был удачен, поэтому перед покупкой помощника, следует внимательно ознакомиться с отзывами и обзорами (некоторые образцы не всегда справляются хорошо с работой). Это тот случай, когда «имя» не гарантирует качество.

XRobot, Genio, iBoto, iLife и еще десятки других названий – продукция из Поднебесной. Выбирая технику перечисленных или аналогичных торговых марок необходимо тщательно изучить информацию: даже при идентичных характеристиках с iRobot или iClebo, китайские роботы-пылесосы уступают по качеству уборки, функциям и продолжительности сроку службы.

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

Как управлять роботом-пылесосом

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

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

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

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

Самый популярный – пульт дистанционного управления (ДУ). Для управления роботом используются инфракрасный луч, поэтому зона управления ограничена (до 20 м). Процесс очень похож на управление машинкой на радиоуправлении: можно запускать и останавливать устройство, поворачивать и при необходимости повторно проходить отдельные участки. Это легко и понятно, но не очень удобно (должно же «автоматически»).

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

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

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

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

Начиная с 1997 года, когда BBC показали по ТВ первый робот-пылесос от шведского бренда «Electrolux», эти устройства были существенно модернизированы, и теперь это полноценные помощники, облегчающие наш быт, в то время как владелец может заниматься более важными делами, например, прогулкой на свежем воздухе.

Управление промышленным роботом

Управление промышленных роботов бывает нескольких типов:

  • Программное управление — самый простой тип системы управления, используется для управления роботами на промышленных объектах. В таких моделях отсутствует сенсорная часть, все действия жёстко фиксированы и регулярно повторяются. Для программирования могут применяться среды программирования типа VxWorks/Eclipse или языки программирования например Forth, Оберон, Компонентный Паскаль, Си. В качестве аппаратного обеспечения обычно используются промышленные компьютеры в мобильном исполнении PC/104 реже MicroPC.
  • Адаптивное управление — роботы с адаптивной системой управления оснащены сенсорной частью. Сигналы, передаваемые датчиками, анализируются и в зависимости от результатов, принимается решение о дальнейших действиях, переходе к следующей стадии действий и т. д.
  • Программирование основанное на методах искусственного интеллекта.
  • Управление человеком (например, ручное дистанционное управление).

Принципы управления промышленным роботом:

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

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

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

Как пользоваться роботом-пылесосом Xiaomi: простая и понятная инструкция | Статьи

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


Фото: gadgets.ndtv.com

Первая зарядка пылесоса

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

  1. Подключите к розетке станцию зарядки и спрячьте излишки кабеля в соответствующем кармане.
  2. Разместите базу так, чтобы по бокам от нее было по 50 см и перед ней 100 см свободного места.
  3. Поставьте на станцию пылесос. Если все сделали правильно, сверху на нем замигают индикаторы.
  4. Если индикатор на корпусе устройства горит, не моргая, батарея заряжена и готова к работе. Нажмите кнопку включения. 

Уровень заряда ниже 20% показывается красным индикатором, менее 50% — желтым, а при достаточном заряде горит белый светодиод. 


Размеры Mi Robot позволяют ему заезжать под кровать. Фото: innrechmarket.com

Как настроить приложение для робота-пылесоса

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

  1. Скачайте приложение Mi Home для Android или iOS.
  2. После запуска программы выберите сервер. Лучше указать Европу, США или Сингапур, так как на китайских серверах некоторые опции заблокированы. 
  3. Войдите в учетную запись или зарегистрируйтесь.
  4. В пункте добавления устройства выберите из списка Mi Robot. 
  5. На пылесосе нажмите кнопку с иконкой домика и подержите ее не менее 5 секунд до звукового сигнала. Он говорит об успешном подключении устройства к приложению.
  6. Снова выберите Mi Robot и укажите домашнюю сеть Wi-Fi.
  7. Задайте основное местоположение робота, например «Гостиная», и завершите настройку. 

Проделав эти манипуляции, вы сможете управлять пылесосом через приложение, даже находясь не дома.


MiJia 1C (белый) тоньше, чем Mi Robot Vacuum Mop P (черный), и заезжает почти под любую мебель. Фото: smartrobotreviews.com

Небольшая, но важная подготовка квартиры

Чтобы в процессе уборки не возникло проблем, лучше потратить несколько минут на небольшую подготовку комнат:

  • Все провода, в которых может запутаться Mi Robot, уберите с пола.
  • Мелкие вещи пылесос может всосать, поэтому их тоже нужно убрать.
  • Зоны, в которые пылесосу нельзя заезжать, нужно ограничить магнитными лентами (приобретаются отдельно). Конечно, можно расставить какие-либо физические барьеры, но это нерационально. 
  • Обязательно ограничьте пылесосу доступ к ступенькам, с которых он может упасть и сломаться. 

Выбираем подходящий режим уборки

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

Полная уборка

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


Робот-пылесос Xiaomi способен переезжать небольшие пороги. Фото: diyprojects.io

Частичная уборка

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

Как пользоваться приложением для робота-пылесоса

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

  • Через приложение задается время уборки: например, можно настроить пылесос так, что он будет включаться каждый вторник и пятницу ровно в 15:00.
  • В приложении можно выбирать отдельные комнаты или зоны для проведения уборки.
  • Если в определенном месте остался мусор, можно переключиться на режим ручного управления. В этом случае Mi Robot превратится в радиоуправляемую машинку, которая будет двигаться в нужном вам направлении.
  • В Mi Home приходят уведомления о старте и завершении уборки.
  • В приложении собирается статистика по уборкам, их периодичности и продолжительности. Она помогает своевременно менять щетки и прочие расходники.

Уход за роботом-пылесосом, который продлит его срок службы

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

  • Контейнер и фильтр рекомендовано чистить каждый раз после уборки.
  • Мыть в воде фильтр не следует: его нужно вытряхивать или продувать.
  • Центральная щетка нуждается в еженедельной чистке. Боковые щетки, колеса и датчики достаточно очищать один раз в месяц.

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


Фильтры и щетки легко снимаются для чистки и мойки. Фото: gearbest.com

Частые вопросы владельцев роботов-пылесосов

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

Что делать, если робот-пылесос перестал отображаться в приложении?

Такое происходит, когда теряется связь между смартфоном и роботом, а происходит это по разным причинам: изменилась домашняя сеть, обновилась конфигурация маршрутизатора и так далее. Вам нужно в таком случае одновременно нажать кнопку питания и «Домой» и держать их до голосового оповещения о перезагрузке Wi-Fi. Если индикатор начнет медленно моргать, сброс связи прошел успешно и можно заново добавить Mi Robot в приложение.


Прорезиненные колеса обеспечивают хорошее сцепление даже со скользкими полами. Фото china-gadgets.com

Нужно ли обновлять прошивку и как?

Обновление прошивки рекомендовано, так как с ним производитель вносит определенные коррективы в работу устройства и исправляет выявленные ошибки. Обновлять версию ПО можно через приложение. Главное — подключить пылесос к станции и убедиться, что уровень заряда выше 20%. 

Что делать, если робот перестал реагировать на кнопки и не выключается?

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

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

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

Почему Mi Robot перестал включаться?

Основных причин может быть три:

  1. Батарея не заряжена.
  2. Окружающая температура ниже 0°C или выше 50°C. 
  3. Пылесос сломался.

Что делать, если робот перестал заряжаться?

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

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

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

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


Как управлять роботом с пейнтбольным пистолетом от MSCHF

Американские художники MSCHF установили пейнтбольный пистолет на робопса компании Boston Dynamics, чтобы испортить экспонаты в арт-галерее. Правда, выбирать цель будет не робот-собака, а обычные люди онлайн. Маленьким Бэнкси сможет стать любой пользователь Сети.

Команда MSCHF — художники из США, которые прославились своими перформансами в рамках современного искусства. Например, в 2019 году пранкеры, как их называют журналисты, совместно с брендом Nike выпустили кроссовки серии «Обувь Иисуса», высмеяв культуру коллабораций, а позднее поиздевались на американской антимонопольной политикой, запустив игру, в которой можно приготовить своего любимого персонажа.

Робо-пёс с пейнтбольным оружием в галерее

В 2021 году MSCHF пошли дальше: художники купили робопса компании Boston Dynamics, назвали его Спот, установили на его спину пейнтбольное ружьё и заперли машину в арт-галерее (какой именно — неизвестно). В среду, 24 февраля, в девять часов вечера по московскому времени, мастера передадут людям со всего мира контроль над роботом.

Чтобы воспользоваться опцией, нужно перейти на сайт мероприятия Spot’s Rampage, войти в «Режим контроллера» во время полноэкранной трансляции, ввести своё имя и ждать, пока рандомайзер выберет вас в качестве хозяина робота. Задача собаки — слушаться, а ваша — отдать ей команду через свой телефон и, возможно, испортить картину или экспозицию, находящиеся поблизости.

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

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

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

Спот — это инструмент эмпатии, он похож на лучшего друга человека. Однако все в этом мире, глядя на миленького Спота, знают: эта штука определенно будет использована полицией и военными для нанесения вреда людям. А что есть у полицейских отделов? Сильные профсоюзы! Спот — работник месяца. Никто не захочет, чтобы профсоюз арестовал робота, но робот может арестовать тебя.

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

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

Hyundai Motor Group представляет Factory Safety Service Robot – первый совместный проект с Boston Dynamics

17 сентября 2021 г.

Hyundai Motor Group официально представила новый андроид для обеспечения безопасности промышленных объектов Factory Safety Service Robot (далее – Robot), а также сообщила о начале его тестовой эксплуатации на заводе Kia в Южной Корее. Группа также опубликовала видеоролик с участием нового робота в своем канале на YouTube.

В основе андроида Robot лежит четырехногий робот Spot производства Boston Dynamics с искусственным интеллектом, автономной навигацией, технологиями удаленного управления и вычислительной техникой (блоком обработки данных искусственного интеллекта), которые были разработаны лабораторией робототехники Hyundai Motor Group для решения различных промышленных задач.

«Robot – наш первый совместный проект с Boston Dynamics. Этот андроид способен обнаруживать риски и обеспечивать безопасность сотрудников на промышленных объектах, – заявил Хюн Дон Чжин (Dong Jin Hyun), глава лаборатории робототехники Hyundai Motor Group. – В рамках непрерывного партнерства с Boston Dynamics мы также продолжим создание интеллектуальных сервисов, помогающих распознавать угрозы на промышленных объектах и поддерживающих безопасные условия труда».

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

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

Помимо этого, четырехногий робот способен перемещаться в узких пространствах и рассматривать «слепые зоны», недоступные человеческому глазу. Сочетание технологий, разработанных Группой, и робота Spot разработки Boston Dynamics обеспечивает новому андроиду расширенные функции автономности. Благодаря опыту Группы в разработке сервисных роботов, Robot оснащен различными системами, предназначенными для автономного патрулирования промышленных объектов. К ним относится функция управления задачами и технология машинного зрения на основе нейронных сетей.

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

Во время тестовой эксплуатации на заводе Kia в Южной Корее Hyundai Motor Group будет использовать нового робота для ночного патрулирования, а также создания более безопасных условий труда для сотрудников завода. Также Группа оценит концепцию андроида, его эффективность и пригодность, перед тем как расширить зону патрулирования и рассмотреть возможности его применения на других промышленных объектах.

В 2021 году Hyundai Motor Group приобрела контрольных пакет акций компании Boston Dynamics с целью развития робототехники, позволяющей улучшить жизнь людей и повысить безопасность. Развитие робототехники обеспечит взаимодействие промышленных объектов Группы, беспилотных автомобилей и будущих средств городской воздушной мобильности (UAM).

Методы управления роботом

Управление ПК

Эти демонстрации и проекты позволяют управлять роботом с помощью компьютера. Это может быть так же просто, как ввод команд в последовательном мониторе Arduino, или такое же сложное, как пользовательское приложение, такое как программное обеспечение Arm Link.

Обычно управление компьютером осуществляется через USB-кабель, но некоторые демонстрации будут поддерживать беспроводное управление через XBee — см. Конкретную демонстрацию для получения дополнительной информации.

Прямое управление

Эти демонстрации и проекты управляют роботом напрямую с датчиков, подключенных непосредственно к плате управления робота (обычно это робот ArbotiX-M).Обычно это позволяет пользователю напрямую управлять роботом с помощью датчиков.

Позы управления

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

Последовательный контроль

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

Автономный

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

Для настройки и программирования робота потребуется компьютер, но после этого компьютер не потребуется.

Беспроводное управление

Эти демонстрации и проекты позволяют вам управлять роботом по беспроводной сети — обычно путем замены последовательного соединения модулями XBee.

Введение в системы управления роботами | Автор: Матанрадж Шарма

ПК: PickPik (https: // www.pickpik.com/wall-e-robot-toy-cute-wallpaper-romantic-2954)

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

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

Система управления с обратной связью (фото автора)
  • Состояние — вывод, производимый роботизированной системой, называется состоянием. Обычно мы обозначаем его как x , состояние зависит от его предыдущих состояний, стимулов (сигналов), применяемых к исполнительным механизмам, и физики окружающей среды. Состояние может быть любым: поза, скорость, скорость, угловая скорость, сила и т. Д.
  • Оценка — Роботы не могут определить точное состояние x , но они могут оценить с помощью прикрепленных к ним датчиков. Эти оценки обозначены цифрами y . Инженер-робот несет ответственность за выбор достаточно хороших датчиков или их точную калибровку, чтобы они могли выдавать y ~ x.
  • Ссылка — состояние цели, которого мы хотим достичь, обозначается с помощью r.
  • Ошибка — разница между эталоном и оценкой называется ошибкой.
  • Управляющий сигнал — стимул, производимый / выводимый контроллером, известен как управляющий сигнал, он обозначается с помощью u.
  • Dynamics — это также называется системной моделью объекта / системы, она обозначает, как система будет вести себя в нестатических условиях. На динамику влияет среда, которая может меняться или не всегда линейна. Например, тип пола (бетон / дерево), сопротивление воздуха, уклон и т.д. ~ 0 & x ~ r.

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

    • Скорость (x) вашего робота — это состояние
    • Расчетная текущая скорость (y) от предпочтительного датчика (пример кодировщика колеса)
    • скорость, которую вы хотите достичь, является опорной (r)
    • ошибка это просто разница между r & y
    • Напряжение, создаваемое вашим контроллером для увеличения или уменьшения скорости, является вашим управляющим сигналом (u)
    • Характеристики окружающей среды, такие как трение и сопротивление воздуха, могут влиять на динамику системы.Вы должны рассмотреть их, прежде чем создавать уравнения системы управления.

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

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

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

    1. Контроллер должен уменьшить ошибку ближе к нулю, e ~ 0, Он должен привести оценку к эталону, y ~ r
    2. Они должны быть устойчивыми, они не должны зависеть от того, чего мы не знаем.Если в окружающей среде робота произойдут какие-либо изменения, он сможет адаптироваться к нему.
    3. Они должны быть стабильными , то есть они не должны выходить из-под контроля.
    4. Они должны быть плавными, в своих движениях.
    5. Контроллер должен быть отзывчивым . Он должен быть достаточно быстрым, чтобы получить выходной сигнал на эталонном уровне за приемлемое время.

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

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

    Учебное пособие по программированию робототехники: как программировать простого робота

    Примечание редактора: 16 октября 2018 года эта статья была переработана для работы с новейшими технологиями.

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

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

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

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

    • Математика — мы будем использовать некоторые тригонометрические функции и векторы.
    • Python — поскольку Python является одним из наиболее популярных базовых языков программирования роботов, мы будем использовать базовые библиотеки и функции Python.

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

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

    Проблема программируемого робота: восприятие против реальности и хрупкость управления

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

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

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

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

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

    [Примечание: и философы, и психологи отметили бы, что живые существа также страдают от зависимости от собственного внутреннего восприятия того, что им говорят их чувства.Многие успехи в робототехнике достигаются благодаря наблюдению за живыми существами и их реакции на неожиданные раздражители. Думаю об этом. Какова ваша внутренняя модель мира? Он отличается от муравья, а от рыбы? (Надеюсь.) Однако, подобно муравью и рыбе, он, вероятно, слишком упрощает некоторые реалии мира. Когда ваши предположения о мире неверны, вы рискуете потерять контроль над ситуацией. Иногда мы называем это «опасностью». Так же, как наш маленький робот пытается выжить в неизвестной вселенной, мы все тоже.Это мощное открытие для робототехников.]

    Программируемый симулятор робота

    Симулятор, который я построил, написан на Python и очень умно назван Sobot Rimulator . Вы можете найти версию 1.0.0 на GitHub. В нем не так много наворотов, но он создан для одной цели очень хорошо: обеспечивает точное моделирование мобильного робота и дает начинающему робототехнику простую основу для практики программирования программного обеспечения роботов. Хотя всегда лучше иметь настоящего робота, чтобы играть с ним, хороший симулятор робота Python намного доступнее и является отличным местом для начала.

    В реальных роботах программное обеспечение, генерирующее управляющие сигналы («контроллер»), должно работать на очень высокой скорости и производить сложные вычисления. Это влияет на выбор языков программирования роботов, которые лучше всего использовать: обычно для таких сценариев используется C ++, но в более простых робототехнических приложениях Python — очень хороший компромисс между скоростью выполнения и простотой разработки и тестирования.

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

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

    В этом руководстве я опишу архитектуру программного обеспечения для управления роботами, которая поставляется с v1.0.0 из Sobot Rimulator , и предоставлю фрагменты из исходного кода Python (с небольшими изменениями для ясности). Тем не менее, я рекомендую вам погрузиться в источник и бездельничать. Симулятор был разветвлен и использовался для управления различными мобильными роботами, включая Roomba2 от iRobot. Точно так же, пожалуйста, не стесняйтесь разветвлять проект и улучшать его.

    Управляющая логика робота ограничена следующими классами / файлами Python:

    • моделей / супервайзер.py — этот класс отвечает за взаимодействие между моделируемым миром вокруг робота и самим роботом. Он развивает конечный автомат нашего робота и запускает контроллеры для вычисления желаемого поведения.
    • models / supervisor_state_machine.py — этот класс представляет различные состояния , в которых может находиться робот, в зависимости от его интерпретации датчиков.
    • Файлы в каталоге models / controllers — эти классы реализуют различное поведение робота при известном состоянии окружающей среды.В частности, в зависимости от конечного автомата выбирается конкретный контроллер.

    Цель

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

    Однако, чтобы усложнить ситуацию, окружение робота может быть усыпано препятствиями. Робот НЕ МОЖЕТ столкнуться с препятствием на пути к цели. Следовательно, если робот сталкивается с препятствием, ему придется найти путь, чтобы продолжить свой путь к цели.

    Программируемый робот

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

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

    Управляющие входы: датчики

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

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

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

    Управляющие выходы: мобильность

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

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

    API

    В Sobot Rimulator разделение между роботом «компьютером» и (смоделированным) физическим миром воплощено в файле robot_supervisor_interface.py , который определяет весь API для взаимодействия с датчиками и двигателями «реального робота»:

    • read_proximity_sensors () возвращает массив из девяти значений в собственном формате датчиков
    • read_wheel_encoders () возвращает массив из двух значений, указывающих общее количество тиков с начала
    • set_wheel_drive_rates (v_l, v_r) принимает два значения (в радианах в секунду) и устанавливает эти два значения для скорости левого и правого колес.

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

    Симулятор

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

    Файл world.py — это класс Python, который представляет смоделированный мир с роботами и препятствиями внутри. Функция step внутри этого класса заботится о развитии нашего простого мира:

    • Применение правил физики к движениям робота
    • Учет столкновений с препятствиями
    • Предоставление новых значений для датчиков робота

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

    Пошаговая функция выполняется в цикле, так что robot.step_motion () перемещает робота, используя скорость колеса, вычисленную супервизором на предыдущем шаге моделирования.

      # пошаговое моделирование через один временной интервал
    def step (self):
    dt = self.dt
    # шаг всем роботам
    для робота в self.robots:
    # шаг движения робота
    robot.step_motion (dt)
    
    # применяем физические взаимодействия
    self.physics.apply_physics ()
    
    # ПРИМЕЧАНИЕ: супервизоры должны бежать последними, чтобы убедиться, что они наблюдают за «текущим» миром.
    # шаг всем супервизорам
    для руководителя в себе.руководители:
    supervisor.step (dt)
    
    # увеличить мировое время
    self.world_time + = dt
      

    Функция apply_physics () внутренне обновляет значения датчиков приближения робота, чтобы супервизор мог оценить окружающую среду на текущем этапе моделирования. Те же принципы применимы к кодировщикам.

    Простая модель

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

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

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

    Контур управления

    Теперь мы войдем в ядро ​​нашего управляющего программного обеспечения и объясним поведение, которое мы хотим запрограммировать внутри робота. В эту структуру можно добавить дополнительные модели поведения, и вы должны попробовать свои собственные идеи после того, как закончите читать! Программное обеспечение для робототехники на основе поведения было предложено более 20 лет назад и до сих пор остается мощным инструментом для мобильной робототехники.Например, в 2007 году набор моделей поведения был использован в DARPA Urban Challenge — первом соревновании для автомобилей с автономным вождением!

    Робот — это динамическая система. Состояние робота, показания его датчиков и влияние его управляющих сигналов постоянно меняются. Управление ходом событий включает следующие три этапа:

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

    Эти шаги повторяются снова и снова, пока мы не достигнем нашей цели. Чем больше раз мы сможем сделать это в секунду, тем более точным будет контроль над системой. Робот Sobot Rimulator повторяет эти шаги 20 раз в секунду (20 Гц), но многие роботы должны делать это тысячи или миллионы раз в секунду, чтобы иметь адекватный контроль. Вспомните наше предыдущее введение о разных языках программирования роботов для разных робототехнических систем и требований к скорости.

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

    Отличный трюк: упрощение модели

    Чтобы управлять роботом, которого мы хотим запрограммировать, мы должны послать сигнал на левое колесо, сообщающее ему, с какой скоростью поворачивать, и отдельный сигнал на правое колесо, сообщающее и , как быстро вращаться.Назовем эти сигналы v L и v R . Однако постоянно мыслить категориями v L и v R очень громоздко. Вместо того, чтобы спрашивать: «С какой скоростью мы хотим, чтобы вращалось левое колесо, и с какой скоростью мы хотим, чтобы вращалось правое колесо?» естественнее спросить: «С какой скоростью мы хотим, чтобы робот двигался вперед, и с какой скоростью мы хотим, чтобы он поворачивался или менял свой курс?» Назовем эти параметры скоростью v и угловой (вращательной) скоростью ω (читать «омега»).Оказывается, мы можем основывать всю нашу модель на v и ω вместо v L и v R , и только после того, как мы определили, как мы хотим, чтобы наш запрограммированный робот двигался, математически преобразовывать эти два значения в v L и v R нам нужно для фактического управления колесами робота. Это известно как моноцикл , модель управления.

    Вот код Python, реализующий окончательное преобразование в супервизоре .py . Обратите внимание, что если ω равно 0, оба колеса будут вращаться с одинаковой скоростью:

      # генерировать и отправлять роботу правильные команды
    def _send_robot_commands (сам):
      # ...
      v_l, v_r = self._uni_to_diff (v, омега)
      self.robot.set_wheel_drive_rates (v_l, v_r)
    
    def _uni_to_diff (self, v, omega):
      # v = поступательная скорость (м / с)
      # омега = угловая скорость (рад / с)
    
      R = self.robot_wheel_radius
      L = self.robot_wheel_base_length
    
      v_l = ((2.0 * v) - (омега * L)) / (2.0 * R)
      v_r = ((2,0 * v) + (омега * L)) / (2,0 * R)
    
      вернуть v_l, v_r
      

    Оценка состояния: робот, познай себя

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

    • Направление на препятствия
    • Расстояние до препятствий
    • Положение робота
    • Заголовок робота

    Первые два свойства определяются показаниями датчика приближения и довольно просты.Функция API read_proximity_sensors () возвращает массив из девяти значений, по одному для каждого датчика. Мы заранее знаем, что седьмое показание, например, соответствует датчику, который указывает на 75 градусов вправо от робота.

    Таким образом, если это значение показывает значение, соответствующее расстоянию 0,1 метра, мы знаем, что есть препятствие на расстоянии 0,1 метра, 75 градусов влево. Если препятствий нет, датчик вернет значение максимальной дальности 0,2 метра.Таким образом, если мы прочитаем 0,2 метра на седьмом датчике, мы предположим, что на самом деле препятствий в этом направлении нет.

    Из-за того, как работают инфракрасные датчики (измерение инфракрасного отражения), возвращаемые ими числа являются нелинейным преобразованием фактического обнаруженного расстояния. Таким образом, функция Python для определения указанного расстояния должна преобразовывать эти показания в метры. Это делается в supervisor.py следующим образом:

      # обновить расстояния, указанные датчиками приближения
    def _update_proximity_sensor_distances (самостоятельно):
        себя.близости_sensor_distances = [0,02- (журнал (значение чтения / 3960,0)) / 30,0 для
            readval в self.robot.read_proximity_sensors ()]
      

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

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

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

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

    Ниже представлена ​​полная функция одометрии в файле supervisor.py , которая обновляет оценку позы робота. Обратите внимание, что поза робота состоит из координат x и y и заголовка theta , который измеряется в радианах от положительной оси X.Положительное значение x находится на востоке, а положительное значение y — на севере. Таким образом, заголовок 0 указывает на то, что робот смотрит прямо на восток. Робот всегда принимает исходную позу (0, 0), 0 .

      # обновить расчетное положение робота, используя показания датчика положения колеса
    def _update_odometry (самостоятельно):
      R = self.robot_wheel_radius
      N = плавающее (self.wheel_encoder_ticks_per_revolution)
      
      # считываем значения энкодера колеса
      ticks_left, ticks_right = self.robot.read_wheel_encoders ()
      
      # получить разницу в тиках с последней итерации
      d_ticks_left = ticks_left - self.prev_ticks_left
      d_ticks_right = ticks_right - self.prev_ticks_right
      
      # оценить движения колеса
      d_left_wheel = 2 * pi * R * (d_ticks_left / N)
      d_right_wheel = 2 * pi * R * (d_ticks_right / N)
      d_center = 0,5 * (d_left_wheel + d_right_wheel)
      
      # рассчитываем новую позу
      prev_x, prev_y, prev_theta = self.estimated_pose.scalar_unpack ()
      new_x = prev_x + (d_center * cos (prev_theta))
      new_y = prev_y + (d_center * sin (prev_theta))
      new_theta = prev_theta + ((d_right_wheel - d_left_wheel) / self.robot_wheel_base_length)
      
      # обновить оценку позы с новыми значениями
      self.estimated_pose.scalar_update (new_x, new_y, new_theta)
      
      # сохраняем текущий счетчик тиков для следующей итерации
      self.prev_ticks_left = ticks_left
      self.prev_ticks_right = ticks_right
      

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

    Методы программирования роботов на Python: поведение при достижении цели

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

    Это становится простой задачей, и ее можно легко запрограммировать на Python. Если мы пойдем вперед, глядя на цель, мы ее добьемся. Благодаря одометрии мы знаем наши текущие координаты и направление. Мы также знаем координаты цели, потому что они были запрограммированы заранее. Поэтому, используя небольшую линейную алгебру, мы можем определить вектор от нашего местоположения к цели, как в go_to_goal_controller.py :

      # вернуть вектор курса к цели в системе отсчета робота
    def calculate_gtg_heading_vector (сам):
      # получаем обратную позу робота
      robot_inv_pos, robot_inv_theta = self.supervisor.estimated_pose (). inverse (). vector_unpack ()
      
      # вычисляем вектор цели в системе отсчета робота
      цель = self.supervisor.goal ()
      goal = linalg.rotate_and_translate_vector (цель, robot_inv_theta, robot_inv_pos)
      
      возвратный гол
      

    Обратите внимание, что мы получаем вектор к цели в системе отсчета робота, а НЕ в мировых координатах.Если цель находится на оси X в системе отсчета робота, это означает, что она находится прямо перед роботом. Таким образом, угол этого вектора от оси X — это разница между нашим курсом и тем курсом, которым мы хотим быть. Другими словами, это ошибка между нашим текущим состоянием и тем, каким мы хотим видеть текущее состояние. Таким образом, мы хотим настроить угол поворота на угол ω так, чтобы угол между нашим курсом и целью изменился в сторону 0. Мы хотим минимизировать ошибку:

      # вычислить условия ошибки
    theta_d = atan2 (сам.gtg_heading_vector [1], self.gtg_heading_vector [0])
    
    # вычислить угловую скорость
    omega = self.kP * theta_d
      

    self.kP в приведенном выше фрагменте реализации контроллера Python является усилением управления. Это коэффициент, который определяет, насколько быстро мы перейдем к соотношению к тому, насколько далеко от цели, которая стоит перед нами. Если в нашем заголовке ошибка 0 , то скорость поворота тоже 0 . В реальной функции Python внутри файла go_to_goal_controller.py , вы увидите больше аналогичных приростов, поскольку мы использовали ПИД-регулятор вместо простого пропорционального коэффициента.

    Теперь, когда у нас есть угловая скорость ω , как нам определить нашу поступательную скорость v ? Хорошее общее эмпирическое правило — это то, которое вы, вероятно, знаете инстинктивно: если мы не делаем поворот, мы можем двигаться вперед на полной скорости, и чем быстрее мы поворачиваем, тем больше нам следует замедляться. Это обычно помогает нам поддерживать стабильность нашей системы и действовать в рамках нашей модели.Таким образом, v является функцией ω . В go_to_goal_controller.py уравнение:

      # вычислить поступательную скорость
    # скорость равна v_max, когда omega равно 0,
    # быстро падает до нуля как | omega | поднимается
    v = self.supervisor.v_max () / (абс (омега) + 1) ** 0,5
      

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

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

    Методы программирования роботов на Python: поведение без препятствий

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

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

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

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

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

    Вот код, который делает это в escape_obstacles_controller.py :

      # коэффициенты усиления (веса)
    self.sensor_gains = [1.0+ ((0.4 * абс (p.theta)) / пи)
                          для p в supervisor.proximity_sensor_placements ()]
    
    # ...
    
    # возвращаем вектор уклонения от препятствий в системе отсчета робота
    # также возвращает векторы к обнаруженным препятствиям в системе отсчета робота
    def calculate_ao_heading_vector (сам):
      # инициализировать вектор
      Препятствие_векторах = [[0.0, 0,0]] * len (self.proximity_sensor_placements)
      ao_heading_vector = [0,0, 0,0]
      
      # получаем расстояния, обозначенные показаниями сенсоров робота
      sensor_distances = self.supervisor.proximity_sensor_distances ()
      
      # вычислить положение обнаруженных препятствий и найти вектор уклонения
      robot_pos, robot_theta = self.supervisor.estimated_pose (). vector_unpack ()
      
      для i в диапазоне (len (sensor_distances)):
        # вычислить положение препятствия
        sensor_pos, sensor_theta = self.близости_sensor_placements [i] .vector_unpack ()
        vector = [sensor_distances [i], 0,0]
        vector = linalg.rotate_and_translate_vector (vector, sensor_theta, sensor_pos)
        Препятствие_вектора [i] = вектор # сохранить векторы препятствия в системе отсчета робота
        
        # накапливаем вектор курса в системе отсчета робота
        ao_heading_vector = linalg.add (ao_heading_vector,
                                     linalg.scale (вектор, self.sensor_gains [i]))
                                     
      вернуть ao_heading_vector, преподобный_вектор
      

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

    Методы программирования роботов на Python: гибридные автоматы (конечный автомат поведения)

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

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

    Наша платформа роботов Python реализует конечный автомат в файле supervisor_state_machine.py .

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

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

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

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

    Методы программирования роботов на Python: поведение следования за стеной

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

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

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

    Дизайн окончательного контроля

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

    Вот робот, успешно перемещающийся в многолюдной среде, используя эту схему управления:

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

    Твик, твик, твик: пробная версия и ошибка

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

    Робототехника часто связана с большим количеством простых старых проб и ошибок.

    Я рекомендую вам поиграть с контрольными переменными в Sobot Rimulator, понаблюдать и попытаться интерпретировать результаты. Все изменения следующих элементов оказывают сильное влияние на поведение моделируемого робота:

    • Ошибка прироста кПа в каждом контроллере
    • Коэффициент усиления датчика, используемый контроллером объезда препятствий
    • Расчет v как функции ω в каждом контроллере
    • Расстояние от препятствия, используемое контроллером следящей стены
    • Условия переключения, используемые supervisor_state_machine.ру
    • Практически все остальное

    При отказе программируемых роботов

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

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

    Пример того, что будет дальше

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

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


    Благодарность: Я хотел бы поблагодарить доктора Магнуса Эгерштедта и Жан-Пьера де ла Круа из Технологического института Джорджии за то, что они научили меня всему этому, и за их энтузиазм по поводу моей работы над Sobot Rimulator.

    Решение задач управления движением робота в реальном времени

    Рис. 1. Проблема управления движением состоит в том, что суставы управляются, пока инструмент (или концевой эффектор) выполняет свою работу, и взаимосвязь между ними сложна.(Источник: Energid Technologies)

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

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

    Инструменты выполняют свою работу, но соединения контролируются

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

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

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

    Рисунок 2: Некоторые роботы имеют больше степеней свободы, чем минимум, необходимый для выполнения задачи. Эти роботы с кинематическим резервированием мощны, но ими сложно управлять. (Источник: Energid Technologies)

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

    Сложность методов управления требует обработки в реальном времени

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

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

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

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

    Рис. 3. Программное обеспечение Energid Actin, управляющее UR5. Слева ползунки позволяют напрямую размещать стыки. В центре изображен робот с взаимодействием с мышью для размещения инструмента.Справа настроены коллизии, которых следует избегать. (Источник: Energid Technologies)

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

    Управление движением для практических робототехнических систем

    Сегодня эти потребности удовлетворяют множество бесплатных коммерческих программных пакетов с открытым исходным кодом.Актин компании Energid Technologies, показанный на Рисунке 3, является коммерческим примером. Он контролирует вооружение в таких областях, как производство, медицина и энергетика. Ярким примером использования Актина является сбор бункеров, когда по одной части нужно удалять из случайной кучи частей. Для захвата бункера требуется быстрое и плавное управление движением, позволяющее избежать столкновений с бункером, в котором хранятся детали, и с другими частями в бункере. Усовершенствованное управление движением делает роботизированный сборщик мусора практичным.

    Об авторе

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

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

    Управление роботом-манипулятором в реальном времени с использованием одновременно записанных нейронов в моторной коре

  • 1

    Георгопулос, А. П., Кеттнер, Р. Э. и Шварц, А. Б. Кодирование направления движения нейрональной популяцией. Science 233 , 1416–1419 (1986).

    CAS Статья Google ученый

  • 2

    Эриксон, Р. Кодирование стимулов в топографических и нетопографических афферентных модальностях: о значении активности отдельных сенсорных нейронов. Psychol. Ред. 75 , 447–465 (1968).

    CAS Статья Google ученый

  • 3

    Николелис, М. А., Газанфар, А. А., Фаггин, Б. М. Вотав С. и Оливейра Л. М. Реконструкция инграммы: одновременные, множественные, множественные записи нейронов. Нейрон 18 , 529–537 (1997).

    CAS Статья Google ученый

  • 4

    Николелис, М.А., Лин, С.-С., Вудворд, Д. Дж. И Чапин, Дж. К. Распределенная обработка соматической информации сетями таламических клеток вызывает зависящие от времени сдвиги их рецептивных полей. Proc. Natl. Акад. Sci. США 90 , 2212–2216 (1993).

    CAS Статья Google ученый

  • 5

    Nicolelis, M. A., Baccala, L.A., Lin, C.-S. И Чапин, Дж. К. Синхронная активность нейронального ансамбля на нескольких уровнях соматосенсорной системы крысы предвосхищает начало и частоту тактильных исследовательских движений. Наука 268 , 1353–1358 (1995).

    CAS Статья Google ученый

  • 6

    Nicolelis, M. A., Lin, C.-S. И Чапин, Дж. К. Удаление усов новорожденных снижает различение тактильных стимулов таламическими ансамблями у взрослых крыс. J. Neurophysiol. 78 , 1691–1706 (1997).

    CAS Статья Google ученый

  • 7

    Deadwyler, S.А. и Хэмпсон, Р. Э. Значение кодов нейронного ансамбля во время познания поведения. Annu. Rev. Neurosci. 20 , 217–244 (1997).

    CAS Статья Google ученый

  • 8

    Чапин, Дж. К. и Вудворд, Д. Дж. Распределение соматических сенсорных свойств и свойств нейронов активного движения в пограничной области коры головного мозга MI – SI у крыс. Exp. Neurol. 91 , 502–523 (1986).

    CAS Статья Google ученый

  • 9

    Чапин, Дж. К. и Вудворд, Д. Дж. Передача соматических сенсорных сигналов к коре во время движения: I. Стробирование одноклеточных реакций на прикосновение. Exp. Neurol. 78 , 654–669 (1982).

    CAS Статья Google ученый

  • 10

    Чапин, Дж. К. и Вудворд, Д. Дж. Передача соматических сенсорных сигналов к коре во время движения: II.Фазовая модуляция цикла двигательного шага. Exp. Neurol. 78 , 670–684 (1982).

    CAS Статья Google ученый

  • 11

    Shin, H.-C. И Чапин, Дж. К. Движение-индуцированная модуляция афферентной передачи к одиночным нейронам в вентропо-заднем таламусе и соматосенсорной коре у крыс. Exp. Brain Res. 81 , 515–522 (1990).

    CAS Статья Google ученый

  • 12

    Чапин, Дж.K. in Neural and Behavioral Approaches to High Brain Function (eds. Wise, S. P. & Evarts, E. V.) 201–216 (Wiley, New York, 1987).

    Google ученый

  • 13

    Эвартс, Э. В. Связь активности пирамидного тракта с силой, прилагаемой во время произвольного движения. J. Neurophysiol. 31 , 14–27 (1968).

    CAS Статья Google ученый

  • 14

    Гез, К., Викарио, Д., Мартин, Дж. Х. и Юмия, Х. Роль моторной коры головного мозга в инициации произвольных моторных реакций у кошек. Электроэнцефалогр. Clin. Neurophysiol. Дополнение 36 , 409–414 (1982).

    CAS PubMed Google ученый

  • 15

    Донохью Дж. П. Контрастные свойства нейронов в двух частях первичной моторной коры бодрствующей крысы. Brain Res. 333 , 173–177 (1985).

    CAS Статья Google ученый

  • 16

    Чапин, Дж. К. в записи нейрональной популяции (изд. Николелис, М. А.) 193– 228 (CRC Press, Boca Raton 1998).

    Google ученый

  • 17

    Чапин, Дж. К. и Николелис, М. А. Нейросетевые механизмы колебательных состояний мозга: характеристика с использованием одновременных записей нескольких нейронов. Электроэнцефалогр.Clin. Neurophysiol. Дополнение 45 , 113–122 (1996).

    CAS PubMed Google ученый

  • 18

    Evarts, E. V. Активность пирамидного тракта, связанная с условным движением руки у обезьяны. J. Neurophysiol. 29 , 1011–1027 (1966).

    CAS Статья Google ученый

  • 19

    Шмидт, Э. М., Йост, Р. Г. и Дэвис, К.К. Пересмотр силовой взаимосвязи паттернов разряда корковых клеток с условными движениями запястья. Brain Res. 83 , 213–223 (1975).

    CAS Статья Google ученый

  • 20

    Скотт, С. Х. и Каласка, Дж. Ф. Изменения активности моторной коры во время движений по достижению схожей траектории движения рук, но различных положений рук. J. Neurophysiol. 73 , 2563–2567 (1995).

    CAS Статья Google ученый

  • 21

    Мур, Г. П., Перкель, Д. Х. и Сегундо, Дж. П. Статистический анализ и функциональная интерпретация данных нейронных спайков. Annu. Rev. Physiol. 28 , 493–522 (1966).

    CAS Статья Google ученый

  • 22

    Хамфри, Д. Р., Шмидт, Э. М. и Томпсон, В. Д. Прогнозирование показателей двигательной активности на основе множественных кортикальных спайковых поездов. Наука 170 , 758–762 (1970).

    CAS Статья Google ученый

  • 23

    Дормонт, Дж. Ф., Шмид, А. и Конде, Х. Двигательная команда в вентролатеральном таламическом ядре: изменчивость нейронов может быть преодолена с помощью среднего по ансамблю. Exp. Brain Res. 48 , 315–322 (1982).

    CAS Статья Google ученый

  • 24

    Лукашин, А.В., Амирикян Б. Р. и Георгопулос А. П. Моделируемый исполнительный механизм, приводимый в действие моторными корковыми сигналами. Neuroreport 7 , 2597–2601 (1996).

    CAS Статья Google ученый

  • 25

    Nicolelis, A. L. et al. Одновременное представление тактильной информации различными областями коры приматов зависит от разных стратегий кодирования. Nat. Neurosci. 1 , 621–630 (1998).

    CAS Статья Google ученый

  • 26

    Уайз, С. П., Муди, С. Л., Бломстрем, К. Дж. И Митц, А. Р. Изменения моторной корковой активности во время зрительно-моторной адаптации. Exp. Brain Res. 121 , 285–299 (1998).

    CAS Статья Google ученый

  • 27

    Фец, Э. Э. Оперантное кондиционирование активности корковых единиц. Наука 28 , 955–958 (1969).

    Артикул Google ученый

  • 28

    Фец, Э. Э. и Финоккио, Д. В. Оперантное обусловливание определенных паттернов нервной и мышечной активности. Наука 174 , 431–435 (1971).

    CAS Статья Google ученый

  • 29

    Фец, Э. Э. и Финоккио, Д. В. Оперантное кондиционирование изолированной активности в конкретных мышцах и прецентральных клетках. Brain Res. 40 , 19–23 (1972).

    CAS Статья Google ученый

  • 30

    Фец, Э. Э. и Бейкер, М. А. Функционально обусловленные паттерны на активность прецентральных единиц и коррелированные ответы в соседних клетках и контралатеральных мышцах. J. Neurophysiol. 36 , 179–204 (1973).

    CAS Статья Google ученый

  • 31

    Фец, Э.Э. и Финоккио, Д. В. Корреляция между активностью клеток моторной коры и мышц рук во время паттернов функционально обусловленных реакций. Exp. Brain Res. 23 , 217–240 (1975).

    CAS Статья Google ученый

  • 32

    Санес, Дж. Н., Санер, С., Ландо, Дж. Ф. и Донохью, Дж. П. Быстрая реорганизация паттернов соматической репрезентативности моторной коры взрослых крыс после повреждения двигательного нерва. Proc.Natl. Акад. Sci. 85 , 2003– 2007 (1988).

    CAS Статья Google ученый

  • 33

    Шмидт, Э. М. Запись одиночного нейрона из моторной коры как возможный источник сигналов для управления внешними устройствами. Ann. Биомед. Англ. 8 , 339–349 (1980).

    CAS Статья Google ученый

  • 34

    Кеннеди, П. Р. и Бакай, Р.A. Восстановление нейронного выхода парализованного пациента путем прямого подключения к мозгу. Neuroreport 9 , 1707–1711 (1998).

    CAS Статья Google ученый

  • 35

    Бхадра Н. и Пекхэм П. Х. Стимуляция периферических нервов для восстановления двигательной функции. J. Clin. Neurophysiol. 14 , 378–393 (1997).

    CAS Статья Google ученый

  • 36

    Донохью, Дж.П. и Уайз, С. П. Моторная кора крысы: цитоархитектура и микростимуляционное картирование. J. Comp. Neurol. 212 , 76–88 (1982).

    CAS Статья Google ученый

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

    Одна из функций робота — двигаться в указанное место или по заранее определенный путь, чтобы он мог выполнить задачу. Движение может состоять из сам робот движется, или шарнирно-сочлененная рука приводится в действие из фиксированное положение поворота. Здесь мы хотим рассмотреть проблему контроль над движение очень простой шарнирной руки — двухсегментной руки, которая может двигаться только в плоскости x-y и поворачивается вокруг положения x = 0, y = 0.Степпер Двигатель M 1 в точке (0,0) прикреплен к первому сегменту рычага L 1 и контролирует угол L 1 относительно ось абсцисс. Второй шаговый двигатель M 2 , прикреплен к концу L 1 , прикреплен к второй сегмент плеча L 2 и регулирует его угол относительно ось абсцисс. Каждый сегмент руки имеет длину 100 единиц, что в сумме составляет максимум пристройка на 200 шт. Ни один из сегментов руки не может двигаться ниже база, т.е., y = 0.

    Цель состоит в том, чтобы разработать последовательность команд двигателя для перемещения кончик второго сегмента руки как можно дальше по предписанной канал. Эти команды изменят углы 1 и 2 как функцию времени T следующим образом:

      угол 1 = a 1 + b 1 * (T-T 0 ) + c 1 * (Т-Т 0 ) 2
      угол 2 = a 2 + b 2 * (T-T 0 ) + c 2 * (T-T 0 ) 2

    Коэффициенты a, b, c определяют поведение каждого двигателя: a — начальный угол двигателя, b — линейная скорость угловое изменение, c — «ускорение» углового изменения.Каждый команда двигателя начинается в момент времени T 0 и будет выполняться в течение некоторого времени. одной единицы времени, то есть диапазон (T-T 0 ) составляет 0-1.

    ИНСТРУКЦИЯ:

    После того, как вы нажмете ниже, чтобы начать эксперимент, вам будет представлен экран дисплея эксперимента. Щелкните Begin / Clear . Это будет создать горизонтальный канал (выбранный случайным образом), через который вы должны переместите кончик руки 2. Прежде чем вы сможете начать программировать двигатель действие, чтобы выполнить это, вы должны сначала поместить кончик руки внутри канала, желательно как можно дальше вправо (или влево).Сделайте это, выбрав значения для двух ведущих коэффициентов ( a’s в уравнениях выше). Затем нажмите Инициализировать . Это соответственно изменит углы двигателей. Если чаевые все еще не попадает в канал, введите новые значения коэффициентов и нажимайте Инициализировать , пока он не появится. Теперь вы готовы к программированию двигатели.

    Определите, какая комбинация коэффициентов будет перемещать наконечник по траектории. что остается в канале.Ваша цель — сдвинуть наконечник с одного конец канала на другой. Когда коэффициенты введены, нажмите Выполнить . Рука будет двигаться по вашей «программе» либо на время (T-T 0 ) = 1 или пока он не попадет в канал стена. Рука также остановится, если одна из рук коснется основания. (В черном). Чтобы переместить наконечник дальше по каналу, вам понадобится другой программный сегмент. Щелкните Другой сегмент будут автоматически сброшены в текущее положение наконечника. Введите новую комбинацию b, и c, . Начать движение для этого нового сегмента, щелкнув еще раз на Run . Повторить этот Другой сегмент, Запустите последовательность , пока вы не успешно переместил наконечник на противоположный конец канала.

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

    Есть три режима работы эксперимента:

      1) Практический режим: Нет ограничивающего канала. Используйте этот режим ознакомиться с поведением сегментов руки с относительно параметров программирования.
      2) Простой режим: Ограничивающий канал относительно широк. Большой отклонения движения руки могут быть компенсированы.
      3) Жесткий режим: Ограничивающий канал относительно узкий. Только небольшие отклонения движения руки могут быть приспособлены.

    ПРОБЛЕМЫ:

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

    2. Выполните задачу 1 еще раз, на этот раз используя «жесткий» канал.

    3. Это теоретическая проблема. Рассчитайте и нанесите на график минимальное и максимальные горизонтальные пределы движения для двухсегментной руки как функция высоты канала. Предположим, что длина плеча равна 100, что является бесконечно малым каналом. ширина, и никакие позиции рук ниже y = 0.

    Учебные пособия по сборке робота


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

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

    Вот основные категории:

    Автомат «Интеллект»
    Самый низкий уровень «интеллекта» робота — это простое устройство-автомат. Мое определение автомата — это устройство, в котором нет абсолютно нулевых решений. вне зависимости от данной среды.Это простые устройства, в которых действие повторяется и выполняется автоматически. Простая схема с двигателем или комбинацией шестерен и пружины может легко быть автоматом. Вы когда-нибудь слышали об этих «роботах» 1800-х годов, которые, по-видимому, может писать имена и стихи и прочую бесполезную фигню? Они были очень хорошо спроектированные интеграции оборудования. Однако эти «роботы» продолжали бы писать, даже если бы чернила хорошо текли. закончились чернила. . . Устройство просто не имеет отказоустойчивости и продолжит попытки выполнения действия.У них даже не было способа ощущать окружающую среду — требование для принятия решений. BEAM «роботы» в основном попадают в ту же категорию, за исключением того, что они сделаны из очень хорошо продуманной электроники, а не из шестеренок.

    Пульт дистанционного управления Intelligence
    Дистанционное управление — это следующий уровень «интеллекта» роботов. Наша текущая технология способен построить так много машин, физически способных на гораздо большее, чем любая форма жизни на нашей планете. Наши самолеты летают во много раз быстрее звука, наши повседневные автомобили могут пересечь пустыню Сахара за считанные дни, но наши лучшие компьютеры даже не могут сравниться с мозгом таракана с точки зрения автономности.Решение? Поставьте человеческий мозг на место водителя наших машин. Это позволяет лучшее из обоих миров. Сила и расходуемость машины, мозг человека. Battlebots — прекрасный тому пример.

    Дистанционное управление
    Дистанционное управление — это на ступень выше дистанционное управление. Преимущество компьютера над человеческим мозгом идет скорость. Типичный домашний компьютер сегодня может обрабатывать больше чисел за на несколько секунд, чем человек может за всю жизнь. Но, несмотря на такую ​​скорость, компьютер плохо разбирается в ситуации.К тому же наши самые продвинутые электронные датчики не могут соответствовать нашим человеческим глазам и ушам для наблюдения за ситуацией. Решение? Позвольте человеку принимать решения, но пусть компьютер выполняет их. Идеальным применением для этого был бы робот-паук. Человек-оператор никоим образом не может контролировать 8 ног по 3 сустава на каждой. Вместо этого человек будет отдавать команды типа «иди вперед». или «поверните», а все остальное сделает компьютер. Этот метод тоже очень распространен с космическими роботами из-за большой задержки передачи.

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


    Как собрать робота с дистанционным управлением
    Робот с дистанционным управлением, вероятно, самый простой из всех роботов, которые вы можете создать. Абсолютный новичок, вероятно, сможет сделать простого робота с дистанционным управлением менее чем за час. Часть электроники Plug-n-play, шасси робота быть тем, что займет немного времени. Робототехника с дистанционным управлением отлично подходит для тех, кто хочет построить робота — пока нет достаточно времени, навыков и / или терпения, чтобы довести большой проект до конца.Взгляните на пример робота для лазанья по стене с рукой.

    Во-первых, видео, которое поможет вам начать работу:

    Все, что вам нужно, это несколько дешевых имеющихся в продаже предметов:

      Передатчик дистанционного управления
      Пульт дистанционного управления — это портативная штука с ручками, кнопками и длинной антенной. торчит из него. Это будет самая дорогая деталь, которую вам нужно будет купить, примерно от 40 до 200 долларов.Для этого потребуется собственный аккумулятор и зарядное устройство. Передатчик дистанционного управления обычно имеет очень хороший ассортимент. Один раз в качестве теста поставил своего робота в подвале дома, поднялся на 10 этаж, потом без проблем эксплуатировал. Если вы когда-нибудь планируете использовать USAR (городской поиск и спасение) , это полезная функция. Самая важная особенность, о которой вам нужно позаботиться, — это количество каналов, на которых она может работать. Каждый канал позволяет вам управлять еще одним элементом вашего робота. Я рекомендую как минимум три, но в прошлом я часто использовал до шести на одном роботе.

      Ресивер
      Приемник — это маленькая коробочка, которую вы надеваете на своего робота. Принимает сигнал от вашего передатчика, обрабатывает его, а затем выдает сигнал готовности сервопривода. Это будет вторая самая дорогая часть, обычно около 30-60 долларов. Это потребует около ~ 5В для его питания.

      Ресиверы могут быть очень маленькими:

      Если вы хотите использовать более высокое напряжение для сервоприводов, возьмите что-нибудь называется Y-образным ремнем (см. изображение ниже).

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

      Кристалл рабочей частоты
      И ваш передатчик, и ваш приемник потребуют кристалл. Это необходимо чтобы убедиться, что оба ваших устройства работают с одинаковой частотой (поэтому приобретите оба кристалла с одинаковым каналом !!!).Для RC есть две частоты, о которых вам нужно знать. Один для воздуха и один для поверхности . Помните, это незаконная и плохая практика — управлять автомобилем с дистанционным управлением с воздушной частотой. Вы можете случайно разбить чей-то самолет с дистанционным управлением и убить какую-нибудь бедную милую невинную белку! Но вы это уже знали. . . При покупке приемника / передатчика они укажут, следует использовать для воздушного или наземного RC. Еще одно замечание, кристалл хрупкий.Если ваш автомобиль с дистанционным управлением часто вылетает, кристалл может быть поврежден. Однажды я сделал робота для соревнований USAR который был разработан, чтобы выдерживать падение с высоты 7 футов. Но, видимо, кристалла не было. Оно сломалось. Грусть. Решение? Ресиверы часто поставляются с прокладкой из пеноматериала , чтобы обернуть ее для амортизации . Если нет, найдите немного поролона и используйте его. Кристаллы обычно входят в состав вашего передатчика и приемник, но в противном случае или если вы сломаете его, они будут стоить около 8 долларов плюс доставка на замену.

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

      Дополнительно: Материал рамы робота
      HDPE и / или алюминий следует использовать для каркаса. Хотите построить его за 5 минут? Простой квадратный лист HDPE с всеми частями на липучке действительно будет работать! Но для хорошо спроектированного робота вы должны прикрепить все более надежно.

      Дополнительно: сервоприводы
      Сервоприводы, хотя и не требуются, предназначены для использоваться с автомобилями с дистанционным управлением.Все, что вам нужно сделать, это буквально подключить его прямо к ваш приемник, и он мгновенно работает. Получите два сервопривода — по одному для каждой стороны вашего робота — так что у вас есть дифференциал водить машину. Положите ролик назад для баланса. Вы также можете использовать дополнительные сервоприводы для других вещей, таких как вращение камеры, подъем лопаты или управление манипулятором. Если у вас ограниченный бюджет, я настоятельно рекомендую сервоприводы Hitec HS-311 . Они только стоят около 8 долларов и действительно хорошо работают для того, что вам нужно. Но, конечно, сервоприводы за 30 долларов работают даже лучше.. . А вот как установить сервоприводы на шасси робота.

      Дополнительно: дистанционное управление
      Теперь микроконтроллер ни для каких базовый робот с дистанционным управлением. Но если вы хотите, чтобы это работало дистанционно, у вас должно быть что-то для обработки ваших команд. Так, как это работает? Основная концепция

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

      Сервосигнал в схему преобразователя аналогового сигнала:

      Дополнительно: драйвер двигателя высокой мощности / регулятор скорости
      Если вам нужен мощный робот, который использует что-то гораздо более мощное, чем хобби сервоприводы, вместо этого вам нужен драйвер двигателя. Большинство на рынке должны напрямую принять сигнал, сделанный для сервопривода, и преобразовать его в то, что вам нужно для Двигатели постоянного тока. Просто подключите это устройство к приемнику, прикрепите к нему моторы и аккумулятор, и, к счастью, вы получить мгновенный Battlebot.Имейте в виду, что это может быть немного дороже, и многие способны работать только с одним двигателем, а это означает, что вам нужно будет купить два.

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




    Последний шаг: сборка робота с дистанционным управлением
    Думаю, лучший способ объяснить это — показать пример. Этот конкретный робот был сделан мной и моим другом менее чем за 5 часов в начале 2003 года. В нем используются довольно дорогие пластины lexan , колесико лего и супер клей, двусторонний скотч и липучка соединить все вместе. Гетто, да. Но он держался очень хорошо, и сделать его было легко / быстро.

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

    Пульт дистанционного управления, который я использовал, был Лазер 6.

    А вот две команды футбольных роботов
    с дистанционным управлением, выполненные в одном стиле:


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

    72 мегагерца, каналы 11–60: это самый популярный выбор для летающих моделей. На этих каналах будет доступно большинство радиостанций, предназначенных для авиамоделей и вертолетов. НЕ используйте эту частоту для чего-либо, кроме самолетов, поскольку вы можете непреднамеренно вызвать крушение чужого самолета с дистанционным управлением поблизости. Подумаешь? Не так уж и много, когда они проигрывают сотни долларов в долларах. от повреждений или, что еще хуже, смерть или травмы в результате аварии. . .

    75 мегагерц, каналы 61-90: автомобили, лодки и другие нелетающие модели должны использовать один из этих каналов.Радиостанции с пистолетной рукояткой доступны как на 27, так и на 75 МГц.

    27 мегагерц, каналы A1-A6 и 50 мегагерц, каналы 00-09: разрешены для использования в воздухе или на поверхности, мы рекомендуем использовать частоту 27 МГц только для наземных моделей. Пилот и водитель вещают на одной частоте 27 МГц частота может вызвать помехи и привести к аварии.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *