работа. Основы программирования роботов. От др греч. искусство управления наука об общих закономерностях
Скачать 2.66 Mb.
|
Кибернетика 3 © 2022 Огородников АИ от др.-греч. κυβερνητική «искусство управления» наука об общих закономерностях получения, хранения, преобразования и передачи информации в сложных управляющих системах, будь то машины, живые организмы или общество Кибернетика 4 © 2022 Огородников АИ Объектом кибернетики являются все управляемые системы . Системы, не поддающиеся управлению в принципе не являются объектами изучения кибернетики. 5 © 2022 Огородников АИ Примеры кибернетических систем — автоматические регуляторы в технике, ЭВМ, человеческий мозг, биологические популяции, человеческое общество. Основные технические средства для решения задач кибернетики — ЭВМ . Поэтому возникновение кибернетики как самостоятельной науки (Н. Винер, 1948) связано с созданием в 40-х годах XX века ЭВМ. Кибернетика Чистая кибернетика 6 © 2022 Огородников АИ Чистая кибернетика, или кибернетика второго порядка, изучает системы управления как понятие, пытаясь обнаружить основные её принципы. 1. Искусственный интеллект 2. Кибернетика второго порядка 3. Компьютерное зрение 4. Системы управления Биокибернетика 7 © 2022 Огородников АИ Кибернетика в биологии — это исследование кибернетических систем в биологических организмах , и как информация в форме генов может перейти от поколения к поколению. Также имеется второе направление — киборги. 1. Биоинженерия 2. Биоинформатика 3. Бионика 4. Нейрокибернетика Вычислительная кибернетика 8 © 2022 Огородников АИ В вычислительной технике методы кибернетики применяются для управления устройствами и анализа информации. 1. Робототехника 2. Симуляция 3. Компьютерное зрение 4. Искусственный интеллект 5. Распознавание объектов 6. Система управления АСУ Проблема робототехники 9 © 2022 Огородников АИ Проблема программируемого робота: восприятие против реальности и хрупкость контроля. Фундаментальная проблема всей робототехники заключается в следующем: невозможно узнать истинное состояние окружающей среды . Моделирование 10 © 2022 Огородников АИ Одним из первых шагов в разработке системы управления является создание абстракции реального мира, известной как модель , с помощью которой можно интерпретировать показания датчиков и принимать решения. Ограничения моделей 11 © 2022 Огородников АИ Пока реальный мир ведет себя в соответствии с предположениями модели, мы можем делать правильные предположения и осуществлять контроль. Однако как только реальный мир отклонится от этих предположений, мы больше не сможем делать правильные предположения, и контроль будет потерян. Часто, потеряв контроль, восстановить его уже невозможно. Выход из ситуации 12 © 2022 Огородников АИ Это одна из ключевых причин сложности программирования робототехники. Одним из ключей к развитию робототехники является разработка более сложных, гибких и надежных моделей. Многие достижения в робототехнике связаны с наблюдением за живыми существами и наблюдением за тем, как они реагируют на неожиданные раздражители. Конвеерный подход 13 © 2022 Огородников АИ Традиционно процесс программирования включает в себя следующие этапы: 1. Наблюдение за встроенными датчиками робота. Все данные, полученные на этом тапе, впоследствии станут вводными, которые робот получит для исполнения тех или иных задач. Конвеерный подход 14 © 2022 Огородников АИ 2. Оценка состояния системы. С помощью вводных данных, полученных на этапе наблюдения, описываются основные характеристики робота: его скорость движения, ориентация и др. Конвеерный подход 15 © 2022 Огородников АИ 3. Построение моделей и создание прогнозов. Представляет собой динамическую работу с периодической помощью в отношении модели робота и оценки его состояния. Конвеерный подход 16 © 2022 Огородников АИ 4. Планирование. Именно на этом этапе определяется палитра действий, необходимая для эффективного исполнения поставленной задачи Конвеерный подход 17 © 2022 Огородников АИ 5. Управление. Этап заключается в преобразовании команд и возможности модифицировать программы для управления роботом. Биологический подход 18 © 2022 Огородников АИ Искусственный интеллект и нейронные сети все чаще применяются в робототехнике. На сегодняшний день эти технологии призваны имитировать биологическую нейронную (синаптическую) мозговую активность человека. Биологический подход во многом противоречит традиционному конвейерному, но уже демонстрирует собственные достойные результаты. Определение 19 © 2022 Огородников АИ Программирование роботов — это разработка схемы управления тем, как машина взаимодействует с окружающей средой и достигает своих целей Ассемблер 20 © 2022 Огородников АИ от англ. assembler — сборщик транслятор программы из текста на языке ассемблера, в программу на машинном языке. в языке ассемблера каждой мнемонике соответствует одна машинная инструкция, в то время как в высокоуровневых языках каждое выражение может преобразовываться в большое число различных инструкций. Промышленные языки 21 © 2022 Огородников АИ Сегодня почти каждый робот имеет собственный язык программирования. Это означает, что пользователям приходится изучать новый язык каждый раз, когда они используют новый бренд роботов. Fanuc используют язык Karel, Yaskawa использует INFORM, Kuka - KRL, ABB имеет свой язык программирования RAPID. Сложность языков 22 © 2022 Огородников АИ • Низший. Служит для управления исполнительными приводами в формате заданных точных значений линейного или углового перемещения отдельных звеньев. • Манипулятивный уровень. С его помощью можно реализовать общее управление всей системой в целом, где рабочий орган робота будет зафиксирован в системе координат. Сложность языков 23 © 2022 Огородников АИ • Оперативный уровень. Предназначен для формирования рабочей программы, где методом установления последовательности определенных действий будет достигнут результат, запланированный оператором. • Высший уровень. При выходе на него программа самостоятельно, без детализации способна указать, какие именно действия необходимо совершить рабочему органу. С++ 24 © 2022 Огородников АИ Язык программирования номер один в робототехнике. Библиотеки позволяют взаимодействовать с низкоуровневым оборудованием, поддерживают производительность в реальном времени. В результате C и C++ ближе всего к стандартному языку программирования роботов. JAVA 25 © 2022 Огородников АИ Объектно-ориентированный язык программирования общего назначения, основанный на классах. Позволяет написать один раз и запускать где угодно без перекомпиляции. Например, это один из основных языков современных ИИ, таких как AlphaGo и IBM Watson. Python 26 © 2022 Огородников АИ Существенным преимуществом этого языка программирования является простота использования. С Python такие вещи, как определение и приведение типов переменных, становятся ненужными. На нём пишут навигацию и машинное обучение. С#/.NET 27 © 2022 Огородников АИ Собственный проприетарный язык программирования от Microsoft. Это основной язык Microsoft Robotics Developer Studio — среды на базе Windows для управления и моделирования роботов. Служит основой для некоторых популярных движков виртуальной реальности, таких как Unity LISP, PROLOG, LUA 28 © 2022 Огородников АИ LISP — один из первых языков программирования. В результате он стал пионером многих идей в информатике, таких как автоматическое управление памятью, условные операторы, рекурсия и функции более высокого. Пролог был одним из первых языков логического программирования. Помимо полезности для обработки естественного языка, Пролог также используется для доказательства теорем, экспертных систем и автоматизированного планирования. С++ или Python? 29 © 2022 Огородников АИ В робототехнике лучше всего использовать два основных языка программирования: C++ и Python, которые часто используются вместе, поскольку каждый из них имеет свои плюсы и минусы. C++ используется в циклах управления, обработке изображений и для взаимодействия с низкоуровневым оборудованием. Python используется для обработки поведения высокого уровня и для быстрой разработки тестов или проверки концепций. ROS 30 © 2022 Огородников АИ Cреды программирования общего назначения, такие как Industrial Robot Operating System, начинают предлагать стандартизированные параметры. Позволяет программистам разрабатывать передовое программное обеспечение, не зная, как работает конкретное оборудование ROS 31 © 2022 Огородников АИ ROS 32 © 2022 Огородников АИ Это промежуточное программное обеспечение — набор программных средств для разработки программного обеспечения для роботов: • Аппаратная абстракция • Низкоуровневое управление устройствами • Реализация часто используемого функционала • Обмен сообщениями между процессами • Управление пакетами Способы программирования 33 © 2022 Огородников АИ Для управления промышленными роботами управляющие программы разрабатываются двумя способами – онлайн и офлайн . Онлайн 34 © 2022 Огородников АИ Программирование роботов непосредственно на месте их установки. Оператор при помощи консоли направляет робота в заданный участок пространства и выполняет необходимые задачи. Не всегда удобно – в программы, созданные таким образом, нельзя вносить изменения. Онлайн 35 © 2022 Огородников АИ Как это работает 36 © 2022 Огородников АИ Алгоритм работы оператора очень простой: - снял готовое изделие - закрепил новые заготовки в кондукторе - вышел за ограждение -нажал кнопку подтверждения и старта Оффлайн 37 © 2022 Огородников АИ Программы пишутся на обычном компьютере в редакторе, написание программ для современных роботов доступно любому сотруднику после недолгого обучения. Текстовая программа загружается в компьютер робота, отлаживается и корректируется. Экономит время, не останавливает производственный процесс и дает отличную визуализацию и возможность предварительно оценить множество параметров. Как это работает 38 © 2022 Огородников АИ В сложных случаях можно воспользоваться помощью дополнительного программного обеспечения. АВВ предлагает пакет RobotStudio для симуляции работы роботизированных комплексов на компьютере. В нем можно написать и отладить программу не останавливая роботизированную систему для этого и минимизировав время простоя оборудования для переналадки. Sprut Cam Robot 39 © 2022 Огородников АИ SprutCAM Robot выходит за рамки традиционного ПО для програмирования роботов. Одно решение для автономного программирования, которое включает в себя: 1/ расчет траектории инструмента; 2/ моделирование; 3/ оптимизация движений без сингулярности и столкновений; 4/ постпроцессирование. Траектории инструмента рассчитываются в собственных 6- осевых кодах Sprut Cam Robot 40 © 2022 Огородников АИ 41 © 2022 Огородников АИ Matlab 42 © 2022 Огородников АИ От программирования – к симулированию всех систем роботов. Инженеры-робототехники полагаются на MATLAB для анализа данных и разработки систем управления. Помимо обработки данных, некоторые университетские курсы также используют этот язык программирования в исследовательских целях. • Алгоритмы настройки • Моделировать реальные системы • Генерация кодов автоматически Matlab 43 © 2022 Огородников АИ RobSim 5 от Dyn-Soft 44 © 2022 Огородников АИ Программный комплекс для моделирования роботов и робототехнических систем с элементами игрового программного обеспечения. Он предназначен для обучения школьников и студентов ВУЗов таким дисциплинам, как: 1. моделирование; 3. проектирование; 5. электроника; 7. программирование микроконтроллеров; 9. теория автоматического управления; 11. интеллектуальные системы; Последовательность 45 © 2022 Огородников АИ Кинематика и геометрия 46 © 2022 Огородников АИ Электроника 47 © 2022 Огородников АИ Управление 48 © 2022 Огородников АИ Титан моделирования 49 © 2022 Огородников АИ V-REP • имеет большой функционал (система разрабатывается с марта 2010 года) • полностью open-source (выложена в открытый доступ в 2013 году) • кроссплатформенная — windows, mac, linux (работает на Qt) • имеет API и библиотеки для работы с роботами через C/C++, Python, Java, Lua, Matlab, Octave или Urbi • бесплатная для некоммерческого использования! 50 © 2022 Огородников АИ Любые роботы 51 © 2022 Огородников АИ 52 © 2022 Огородников АИ 53 © 2022 Огородников АИ Будущее: 1. Нейросети 2. Нейроморфные системы 3. Самообучение |