Языки программирования роботов реферат

Обновлено: 30.06.2024

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

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

1. Проблемно ориентированные (языки объектного уровня).

2. Языки уровня манипулятора.

Языки объектного уровня.

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

На практике применяются, как правило, языки уровня манипулятора.

Языки уровня манипулятора.

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

1) поворот вокруг оси Z на 90 0;

2) перемещение по оси У вперёд на 275 мм;

3) перемещение по оси Z вниз на 34 мм;

4) схват зажат и т. д.)

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

В числе первых языков уровня манипулятора, которые стали использоваться на практике, следует назвать:

INDA международного исследовательского центра SRI .

Ассемблер.

Языки программирования компьютеров делятся на 2 основные группы:

1) языки низкого уровня;

2) языки высокого уровня.

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

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

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

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

Assembler – (Ассемблер)

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




Ассемблирование -

Мнемокод – слово или последовательность букв, заменяющая полное слово или фразу, удобную для запоминания.

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

Интерфейс – устройства, управляющие потоками и форматами данных между микропроцессором и внешними устройствами.

Листинг программы управления механизмом горизонтального перемещения вдоль оси Y


Команды

Одноадресные команды:

Мнемоника CLR INC
Команда CLEAR INCREASE
Произношение КЛИЭ ИНКРИЗ
Назначение ОЧИСТКА ПРИБАВЛЕНИЕ ЕДИНИЦЫ
Код 0050 DD 0052 DD

Двухадресные команды

Мнемоника MOV CMP BIT
Команда MOVE COMPARE BIT TEST
Произношение МУВ КЭМПЭА БИТ ТЕСТ
Назначение ПЕРЕСЫЛКА СРАВНЕНИЕ ПРОВЕРКА РАЗРЯДОВ
Код 01SSDD 02SSDD 03SSDD

Команды ветвления

Мнемоника BEQ BNE BLT BGT BLE BGE BR
Команда Branch if equal Branch if not equal Branch if less than Branch if greater than Branch if less or equal Branch if greater than or equal Branch
Произношение Бреньчь иф иквэл Бреньчь иф нот иквэл Бреньчь иф лиз вэн Бреньчь иф грит вэн Бреньчь иф лиз ор иквэл Бреньчь иф грит вэн ор иквэл Бреньчь
Назначение если = 0 если ≠ 0 если 0 если ≤ 0 если ≥ 0 ветвление безусловное
Код 001400+см 001000+см 002400+см 003000+см 003400+см 002000+см 000400+см

Алгоритм организации работы приводов механизмов перемещения по координатным осям должен включать подсчёт количества импульсов фотодатчиком и сравнение их с заданной величиной: Общее перемещение L = dl 0 * I , где L - перемещение в мм, dl 0 - дискретность счётного датчика, i - число импульсов датчика.

CLR R1

BEQ M1

BNE M2

INC R1

CMP R1,R0

BLT M 1

HALT

Коды: 27 – число; 37 – ячейка.

MOV CLR BIT BEQ BNE INC CMP BLT
01SSDD 0050DD 03SSDD 001774 001374 0052DD 02SSDD 0027 СМ

SS – 6 разрядный код источника;

DD – 6 разрядный код приёмника;

СМ – смещение: 65 – при перемещении,

74, 70 – при задержке.

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

. MACRO PAUSE

Время задержки составляет 100008 *1448 =14400008=40860010*9*10 -6 =3,677 сек.

Управление роботом осуществляется путём записи в ячейки с номерами 167762 и 167772 соответствующих чисел при этом робот выполняет следующие движения:

Ячейка 167772

Перемещение по осям Х и У, работа чёрного и жёлтого захватов.

Ячейка 167762

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




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

1. Человек пишет программу на языке программирования.

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

Как работает интерпретатор


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

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

Робот от Boston Dynamycs

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

Низкоуровневые и высокоуровневые языки программирования

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

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

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

Программирование и робототехника для детей

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

Мы подобрали пять языков, которые в тренде у робототехников.

Топ-5 языков программирования в робототехнике

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

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

Саймон Риттер – евангелист Java и один из создателей, является лучшим специалистом по использованию Java-технологии в мире робототехники. Он разработал Robotics Software Development Kit и регулярно показывает новые роботизированные системы.

MATLAB

Среди инженеров-робототехников популярен язык MATLAB со своей средой и его родственники с интерпретаторами с открытым исходным кодом, например Octave.

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

Python

Язык высокого уровня Python ценят за простоту и экономию времени, например при определении и приведении типов переменных.

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

Популярность языка в робототехнике в последние годы только растет. Он, к примеру, часто используется для программирования на Raspberry Pi. Этот микрокомпьютер просто создан для экспериментов и разработки IoT-устройств. Тем более для Python существует множество библиотек, где есть готовые решения для базовых программ. Благодаря несложному и интуитивно понятному синтаксису даже дети и новички могут легко создавать роботов на Python.

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

C++ используется для:

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

на языке С:

на языке С++

Если бы писали программу на Python, то для нас, роботов, она выглядела бы так:

Встать с кровати

На C++ она выглядела бы совершенно по-другому:

Вместо заключения

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

Робототехника для школьников

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

Доклад на тему

Программирование устройств робототехники

• 1. Актуальность темы

• 2. Цель и задачи исследования, планируемые результаты

• 3. Исследование классов роботов

• 3.1 Исследование сборных роботов

• 3.2 Исследование роботов-манипуляторов

• 3.3 Исследование коммерческих роботов

• 4. Алгоритмы поиска пути

• 4.1 Алгоритм Дейкстpы

• 4.2 Алгоритм Jump Point Search

• 5. Нейронные сети

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

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

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

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

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

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

Существует три класса устройств робототехники, это сборные устройства, манипуляторы и уже готовые работы.

1. Актуальность темы

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

Данная магистрская работа посвящена усовершенствованию алгоритмов поиска путей и адаптированию их для роботов.

2. Цель и задачи исследования, планируемые результаты

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

Основные задачи исследования:

1. Исследование сборных роботов;

2. Исследование роботов-манипуляторов;

3. Исследование коммерческих проектов в области робототехники;

4. Программное обеспечение для моделирования устройств робототехники;

5. Исследование алгоритмов поиска путей;

3. Исследование классов роботов

3.1 Исследование сборных роботов

Одной из таких разработок является экспериментальный малогабаритный маневренный робот "Интеллект -9". Основным преимуществом данного робота является хорошая маневренность и управляемость для достижения точности в управлении.


Структурная схема программного обеспечения робота "Интеллект-9" приведена на рис. 1. Программное обеспечение содержит ядро программной системы, включающее драйверы для взаимодействия с аппаратурой робота и средства переключения задач, а также набор программного обеспечения, обеспечивающего решение ряда задач

В настоящее время разработаны драйвер радиоинтерфейса (ДРИ), драйвер интерфейса движения (ДИД), драйвер средств сигнализации (ДСС) и драйвер звуковой карточки (ДЗК). В состав программного обеспечения робота включены также следующие прикладные задачи: речевого управления (РУ), планирования движения (ПД), синтеза речи (СР), настройки и градуировки (НГ). Планируется также подключение задачи анализа изображений (АИ) [ 3 ].

3.2 Исследование роботов-манипуляторов


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

Простые манипуляторы могут передвигаться вверх и вниз только в пределах ограниченной дуги; сложные механизмы приводятся в действие с помощью контрольного рычага управления. Типичный простой манипулятор для захвата может поднимать до 65 кг, но некоторые системы способны поднимать до 200 кг [ 4-5 ].

Рассмотрим пример такого устройства, робот KATANA. Он изображен на рисунке 2.

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

В литературном источнике [ 6 ] указано, что программное обеспечение для управления роботом Katana представляет собой библиотеку KNI 4.3.0 (Katana Native Interface) с открытым кодом на языке С++. Разработчику программного обеспечения для управления роботами-манипуляторами Katana также доступно описание системы команд самого робота. Это позволяет разрабатывать системы программного управления роботами-манипуляторами для различных предметных областей. С другой стороны, проанализировать использование этой библиотеки по научным публикациям достаточно сложно, так как пользователям доступны только сама библиотека и описание языка команд самого робота. Библиотеку KNI можно также использовать и в симуляторе роботов Webots, создавая модели роботов компании Neuronics AG. Поэтому при разработке ПО для управления работами используют два метода:

1. Моделирование в среде симулятора;

2. Программирование и тестирование с помощью программно-аппаратного комплекса с использованием робота.

3.3 Исследование коммерческих роботов

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

В качестве модели для изучения характеристик таких мобильных систем удобно использовать подвижной робототехнический комплекс Robotino (рисунок 3), оснащен всенаправленным приводом. Три двигателя привода обеспечивают перемещение системы под всех направлениях в горизонтальной плоскости, а также вращение вокруг вертикальной оси на месте. Система оснащена видеокамерой (5) и датчиками двух типов: цифровыми – для контроля фактической скорости (1) и аналоговыми – для измерения расстояния (3). Такое оснащение гарантирует выполнение широкого диапазона требований, предъявляемых к системам такого типа [ 7 ].

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

Дополнительно к Robotino могут быть подключены индуктивные и инфракрасные оптические датчики, которые через интерфейс ввода-вывода связываются с все направленным приводом [ 9 ].

При анализе программного обеспечения Robotino были выделены 2 группы программных средств:

1. Robotino view для визуального программирования;

2. Robotino SIM для моделирования и визуализации поведения.

В литературном источнике [ 10 ] была предложена иерархия построения программного обеспечения (рисунок 4):


В данной схеме имеется два уровня: уровень Robotino view – уровень построения схемы для управления роботом, и уровень Robotino SIM – уровень представления данных. Взаимодействие между машинным кодом робота и кодом высокого уровня осуществляется посредством .rvw 2-файла. Этот файл представляет собой верстку xml, причем каждый элемент имеет свою позицию в файле. Управление роботом осуществляется дистанционно по каналу беспроводной связи WLAN (взаимодействие между уровнем xml-файла и машинного кода Robotino). Следует также отметить, что данные с робота (например данные с датчиков ) передаются по тому же каналу [ 10 ].

4. Алгоритмы поиска пути

4.1 Алгоритм Дейкстры

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

1. Для заданной начальной вершины a найти кратчайшие пути от a до всех остальных вершин.

2. Найти кратчайшие пути между всеми парами вершин.

Оказывается что почти все методы решения задачи о кратчайшем пути от заданной начальной вершины a выбранному вершины z также позволяют найти и кратчайшие пути от вершины a ко всем другим вершинам графа. Итак, с их помощью можно решить задачу 1 небольшими дополнительными вычислительными затратами. С другой стороны, задачу 2 можно решить или n раз применив алгоритм задачи 1 с различными начальными вершинами, или один раз применив специальный алгоритм.

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

4.2 Алгоритм Jump Poiunt Search

Этот алгоритм является улучшенным алгоритмом поиска пути A*. JPS ускоряет поиск пути, “перепрыгивая” многие места, которые должны быть просмотрены. В отличие от подобных алгоритмов JPS не требует предварительной обработки и дополнительных затрат памяти. Данный алгоритм представлен в 2011 году, а в 2012 получил высокие отклики [14] .

Пример работы данного алгоритма изображен на следующей анимации (см. рис. 5).

5. Нейронные сети

Исследования по тематике нейронных сетей связаны с тем, что способ обработки информации человеческим мозгом в корне отличается от методов обычными цифровыми компьютерами. Мозг представляет собой чрезвычайно сложный, нелинейный, параллельный компьютер (систему обработки информации). Он обладает способностью организовывать свои структурные компоненты, называемые нейронами (neuron), так, чтобы они могли выполнять конкретные задачи (такие как распознавание образов, обработку сигналов чувств, моторные функции) во много раз быстрее, чем могут позволить самые быстродействующие современные компьютеры. Примером такой задачи обработки информации может служить обычное зрение (human vision) [15] .

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

В литературном источнике [16] дается следующее определение, что нейронная сеть – это огромный распределенный параллельный процессор, составлен из элементарных единиц обработки информации, накапливающих экспериментальные знания и предоставляют их для дальнейшей обработки. Нейронная сеть сходна с мозгом с двух точек зрения:

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

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

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

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

Проведенный анализ современного состояния проблемы показывает, что:

• Современные прикладные методы и технологии искусственного интеллекта можно использовать для роботов;

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

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

Достижение сформулированной цели связаны с решением следующих задач:

• Адаптирование алгоритмов поиска кратчайших путей для роботов;

• Создать модель робота и обеспечить интерфейс для его управления;

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

1. Прейко М., Устройства управления роботами: схемотехника и программирование – М.: Издательство ДМК, 2004, 202с.

2. Лаврущенко О.М., Шевченко В.Ю., Система вiзуальної орiєнтацiї мобільного роботу пiд керуванням RTAI/Debian //Материалы международной научно-технической конференции гидротехнологии, навигации, управления движением и конструирования авиационно-космической техники [Электронный ресурс]. – Режим доступа: ftp://ftp.linux.kiev.ua/pub/conference/2007/reports/rtai.pdf

7. Kopicki S., European Master in Advanced Robotics. –The University of Birmingham. March 2009.

9. Book of exercises. Festo Didactic GmbH & Co KG 2007, 29 p.

10. Курченков Н.И., Дацун Н.Н., Модификация алгоритма поиска путей Jump Point Search для робота Robotino // Інформаційні управляючі системи та комп’ютерний моніторинг (ІУС та КМ-2014) / Матерiали IV мiжнародної науково-технiчної конференцiї студентiв, аспiрантiв та молодих вчених. – Донецьк, ДонНТУ – 2014, Том 1, с. 231-236.

11. Гаврилов Г.П., Сапоженко А.А., Задачи и упражнения по курсу дискретной математики, – М.: Наука, 2007. – 408с.

12. Гончарова Г.А., Мочалін А.А. Элементы дискретной математики: учеб. Пособие – М.: Форум: ИНФРА-М, 2007.

13. Іванов Б.Н., Дискретная математика. Алгоритмы и программы. Расширенный курс – М: Известия, 2011. – 512 с.

16. Круглов В.В., Борисов В.В., Искусственные нейронные сети. Теория и практика – М.: Телеком – 2002. – 388 с.

17. Осовський С., Нейронные сети для обработки информации – М.: Финансы и статистика, 2002. – 344 с.

18. Поспелова Д.А., Штучний інтелект [У 3-х кн.]. – Кн. 2. Моделі и методи – М.: Радіо и св`язок, 1990. – 304 с.

19. Спірін О.С., Початки штучного інтелекту: Навчальний посібник для студ. Фіз.-мат. спеціальностей вищих пед. навч. закладів – Житомир: – Видавництво ЖДУ, 2004, – 172 с.

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

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

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

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

Бытовые роботы

Одним из первых примеров удачной массовой промышленной реализации бытовых роботов стала механическая собачка AIBO корпорации Sony.

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

Изобретатель Пит Редмонд (Pete Redmond) создал робота RuBot II, который может собрать кубик Рубика за 35 секунд.

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

Производители роботов

Известные коммерческие модели роботов

2. ПРОМЫШЛЕННЫЕ РОБОТЫ

История

Функциональная схема промышленного робота

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

Манипуляторы

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

Манипуляторы включают в себя подвижные звенья двух типов:

· звенья, обеспечивающие поступательные движения

· звенья, обеспечивающие угловые перемещения

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

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

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

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

Управление

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

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

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

3. Основанное на методах искусственного интеллекта.

4. Управление человеком (например, дистанционное управление).

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

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

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

Подчинённое управление

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

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

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

Действия промышленного робота

Среди самых распространённых действий, совершаемых промышленными роботами можно назвать следующие:

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

· сварка швов и точечная сварка;

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

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

Достоинства использования

· достаточно быстрая окупаемость

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

· повышение точности выполнения технологических операций и, как следствие, улучшение качества;

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

· рациональность использования производственных помещений;

· исключение воздействия вредных факторов на персонал на производствах с повышенной опасностью;

3. РОБОТ CKBOT

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

На выставке Wired NextFest 2008, прошедшей в конце сентября – начале октября в Чикаго, был показан забавный робот ckBot, которого можно было бы принять за художественный проект с техническим уклоном. Но он –часть серьёзной работы, чьи плоды однажды могут пригодиться сразу в нескольких прикладных областях.

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

Американские инженеры назвали это умение "Самосборка после взрыва" (Self-reassembly After Explosion), впрочем, уточняя, что "взрыв" – это просто некое сильное воздействие, не важно, какой природы.

Построил эту машину Марк Йим (Mark Yim), адъюнкт-профессор инженерии в университете Пенсильвании (University of Pennsylvania) и его коллеги из лаборатории модульных роботов (Modular Robotics Lab).

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

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

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

Что может при этом робота "раскидать" — не вполне понятно. Да и неважно. Главное — рассыпавшись, бот может вернуть себе первоначальный вид. Правда, в нынешнем варианте дроида рановато выпускать на настоящее поле боя, пусть сперва набьёт шишек (смотрите видео до конца).

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

Помните змейку Рубика (Rubik's Snake)? Тот же принцип, только всё крутится само. Так что новый бот мог бы стать классной игрушкой. Но Марк видит для него другое поле деятельности.

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

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

СkBot напомнил нам о целом ряде его идеологических предшественников. Вспомним, к примеру, робота из университета Корнелла (Cornell University).

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

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

4. РОБОТЫ AQUAJELLY И AIRJELLY

Таким путем пошли и разработчики компании Festo, создатели интереснейших роботов – AquaJelly и AirJelly, обратившие свое внимание на древнейших представителей фауны, медуз. Разумеется, к этому приложены самые современные технологии, доступные человечеству.

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

5. РОБОТ TETWALKER

TETwalker – это пирамида из шести стержней, соединённых узлами.

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

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

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

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

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

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

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

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

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

Она же сможет автоматически собираться в радиотелескоп или круглый планетоход типа "перекати-поле".

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

"Мы не жили бы долго, если бы наши тела работали, как современные космические корабли, — рассказал глава проекта доктор Стивен Кёртис (Steven Curtis). – Когда у нас возникает травма, новые клетки заменяют повреждённые. Подобным образом неповреждённые единицы роя объединятся, продолжая выполнение миссии, несмотря на обширное повреждение".

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

Как бы то ни было, нынешний треугольный робот – наглядный пример, как может работать одна клетка такого робота-роя.

Он не только ходил (если можно применить к нему такое слово) по полу лаборатории в центре Годдарда, но уже успел побывать на испытаниях в Антарктиде.

В январе 2005 года машина оказалась на научной станции Макмердо (McMurdo), где условия во многом напоминают Марс.

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

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

ПЕРЕЧЕНЬ ССЫЛОК

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