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

Обновлено: 10.05.2024

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

Предлагаю двигаться по порядку:

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

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

1 регулятор температуры( бывает электронный или электромеханический).

2 Нагревательный элемент. (в нашем понимании, просто нагрузочное сопротивление)

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

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

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

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

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

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

Аналогично работает множество приборов. Но есть еще различные системы защиты.

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

Если на лампу необходимо подавать 3 вольта, а ток в цепи нагрева равен 10 Ампер, то получим номинал сопротивления, R=U/I R=0.3 Ома. Это низкоомное сопротивление или можно сказать шунтирующее.

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

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

• 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 с.

§ 25. Робототехника. Системы автоматического управления

В современном мире использование роботов стало обыденным явлением. По квартирам ползают роботы-пылесосы. На автомобилях и самолётах автопилоты-роботы ведут управление по круиз-контролю. Готовят пищу роботы-хлебопечки и роботы-мультиварки.

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

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

https://ovdi.ru/upload/iblock/1ac/1ac3422dca6356b2d731d02f58d578be.jpg

Рис. 1. Радиоуправляемая машинка

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


Рис. 2. Радиоуправляемый квадрокоптер

Подумаем, когда становится роботом пылесос. Обычный включённый пылесос (рис. 3, а) будет долго шуметь, стоя на одном месте, если его никто никуда не передвинет. Но робот-пылесос в виде таблетки (рис. 3, б) сам передвигается от одной стены комнаты до другой, причём таким образом, что проходит над каждым участком пола не более чем 2 – 3 раза. Как это он делает? Откуда робот-пылесос берёт координаты и как запоминает свой путь?



Рис.3. Пылесос: а - обыкновенный; б - робот-пылесос

Вот как сам Карел Чапек это описывает: – «…в один прекрасный день … автору пришёл в голову сюжет … пьесы. И пока железо было горячо, он прибежал с новой идеей к своему брату Йозефу, художнику, который в это время стоял у мольберта… Автор изложил сюжет так коротко, как только мог…

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

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

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

Все роботы можно разделить на две большие группы:

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

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

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

Роботы могут выполнять различные функции.

https://fleetnews.gr/wp-content/uploads/2020/06/AUDI-%CE%91%CE%9D%CE%91%CE%9A%CE%A5%CE%9A%CE%9B%CE%A9%CE%A3%CE%97-%CE%91%CE%9B%CE%9F%CE%A5%CE%9C%CE%99%CE%9D%CE%99%CE%9F%CE%A5-%CE%9A%CE%9B%CE%95%CE%99%CE%A3%CE%A4%CE%9F%CE%A5-%CE%92%CE%A1%CE%9F%CE%A7%CE%9F%CE%A5_4150379-696x464.jpg

Рис. 4. Сборочная линия с промышленными роботами

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

https://fb.ru/media/i/5/5/5/8/1/5/i/555815.jpg

Рис. 5. Использование медицинских роботов в хирургии

К медицинским роботам относятся экзоскелеты, которые помогают людям передвигаться (рис. 6).

https://qamshy.kz/uploads/thumbnail/20180410095403636_small.jpg?width=600&height=315

Рис. 6. Люди, использующие экзоскелеты

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

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

https://hozyaistvo.com/upload/000/u1/55/d3/innovacii-v-selskom-hozjaistve-kak-panasonik-vyraschivaet-morko.jpg

Рис. 7. Роботы, используемые в растениеводстве

Подводные роботы используются в морском деле для проведения аварийно-спасательных работ и различных исследований на дне моря (рис. 8).

https://storage.googleapis.com/kickbooster/production/campaign_images/26ef0c86feaf9f05962ff8353456e9dd.jpg

Рис. 8. Подводный робот

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

Первым космическим роботом можно считать луноход, отправленный на Луну ещё во времена СССР — в далёком 1970 году (рис. 9)

Рис. 9. Советский луноход

Робот был отправлен и к комете Чурюмова — Герасименко. Он проводил исследования поверхности в точке высадки, брал пробы грунта и анализировал их прямо на месте, передавая на Землю в цифровом виде данные о составе почвы и поверхности, на которой он работал.

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

Рис. 11. Робот телеприсутствия

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


Рис. 12. Робот в музее

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

Рис. 13. Японский робот Асимо

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

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

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

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

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

https://m.media-amazon.com/images/I/51dGubj5WqL.jpg

Рис. 14. Контроллер

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

Главная часть любого контроллера – микропроцессор.

Рис. 15. Микропроцессоры

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

Электроника в робототехнике

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

Рассмотрим самую главную часть любого робота – контроллер.

Рис. 16. Принципиальная схема простейшего процессора

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

Рис. 17. Микропроцессор и рисовое зернышко

Но процессоры не всегда были маленьких размеров.

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


Рис. 18. Вычислительная машина второй половины XX в.

Основные понятия и термины:

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

? Вопросы и задания

1. Объясните, чем робот отличается от неробота. Верно ли, что радиоуправляемые игрушки – это настоящие роботы?

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

3. Какую систему классификации вы можете предложить для роботов?

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

5. Какими должны быть подводные роботы: программно управляемыми (автономными) или дистанционно управляемыми? Почему?

6. Что можно считать первым космическим роботом? Какие ещё космические роботы вам известны?

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

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

Программирование роботов

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

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

В 1959 году в США родился первый промышленный робот Unimate, открыв новую эру развития промышленности. Подробнее про первых в истории роботов смотрите здесь: Краткая история робототехники

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

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

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

1. Интерфейс оператора

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

2. Подвижность или передвижение

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

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

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

4. Ощущения и восприятие

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

  • Где это ;
  • Куда идти ;
  • Как избежать препятствий.

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

5. Программирование

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

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

Что такое программирование роботов?

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

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

Робототехника и программирование роботов

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

Операционная система роботов (ROS)

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

Например, проект с открытым исходным кодом ROS-Industrial включает интерфейсы, уникальные для промышленных роботов. К ним относятся промышленные манипуляторы, захваты, датчики и сети устройств.

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

Автономное программирование роботов OLP

При автономном программировании роботизированная ячейка представлена в симуляторе посредством графической 3D-модели .

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

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

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

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

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

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

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

Автономное программирование роботов OLP

Программное обеспечение для управления роботами

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

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

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

Как научиться программировать робототехнику?

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

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

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

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

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

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

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

Обучение робототехнике

3. Языки промышленных роботов

Сегодня почти каждый робот имеет собственный язык программирования роботов.

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

Например, роботы Fanuc используют язык Karel, Yaskawa использует INFORM, Kuka - KRL, а ABB имеет свой язык программирования RAPID. Этот список можно продолжить.

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

4. LISP и Пролог

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

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

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

Действительно, вы можете программировать искусственный интеллект, используя другие языки из этого списка. Однако LISP и Prolog являются неотъемлемой частью некоторых реализаций искусственного интеллекта.

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

5. Язык описания оборудования

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

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

Самыми популярными языками описания оборудования являются Verilog и VHDL. И они широко используются в программировании PLD (programmable logic device), на русскоям языке - это программируемые логические интегральные схемы (ПЛИС).

Промышленная робототехника

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

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

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

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

Язык программирвоания J ava весьма полезен в некоторых аспектах робототехники. Например, это один из основных языков современных систем искусственного интеллекта, таких как AlphaGo и IBM Watson.

Python - один из самых популярных языков программирования благодаря быстрорастущей области машинного обучения. Фактически, IEEE Spectrum назвал его лучшим языком программирования в 2019 году.

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

Python полезен в робототехнике, потому что это один из основных языков программирования в операционной системе для роботов ROS (помимо C ++). Тем не менее, он может стать еще более популярным, поскольку более дружелюбная к роботам электроника, например одноплатные компьютеры Raspberry PI, поддерживает этот язык по умолчанию.

C и C++ - язык программирования номер один в робототехнике.

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

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

Обратите внимание, что языки C и C++ не так просты в использовании, как Python или MATLAB. Реализация той же функциональности с использованием C не только занимает больше времени, но также требует большего количества строк кода.

Однако робототехника во многом полагается на работу в реальном времени. В результате C и C++ - самые близкие к стандартному языку программирования роботов.

Робототехника для начинающих

Заключительное слово: какой язык программирования роботов вам следует изучить?

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

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

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

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

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