Добро пожаловать
Добро пожаловать в робототехнику — инженерную дисциплину, где механика, электроника и программное обеспечение сходятся для создания машин, которые чувствуют, решают и действуют.
Слово робот происходит от чешского слова robota, означающего принудительный труд. Карел Чапек ввел это слово в пьесе 1920 года. Век спустя роботы сваривают автомобили, исследуют Марс, проводят операции и пылесосят гостиные.
Не каждая автоматизированная машина — это робот. Тостер автоматизирован — он нагревает и выскакивает — но он не может чувствовать окружающую среду и приспосабливаться. Робот имеет три необходимых способности:
- Чувствовать — собирать информацию о мире через датчики
- Решать — обрабатывать эту информацию и выбирать действие
- Действовать — двигаться или манипулировать физическим миром через исполнительные механизмы
Этот цикл чувствования-решения-действия работает непрерывно. Промышленный манипулятор проверяет положение своих шарниров тысячи раз в секунду. Марсоход анализирует изображения местности перед каждой командой колесам. Скорость и сложность цикла различаются, но структура одинакова.
Роботы существуют на спектре автономии. Телеуправляемый робот для обезвреживания бомб не имеет автономии — человек принимает каждое решение. Робот на складе, который ориентируется в проходах и избегает препятствий, имеет частичную автономию. Беспилотный автомобиль стремится к полной автономии, хотя это остается открытой инженерной задачей.
Основные категории роботов:
- Промышленные роботы — неподвижные манипуляторы, которые сваривают, красят, собирают и паллетируют на заводах
- Сервисные роботы — помогают людям в непроизводственных условиях: хирургические роботы, доставочные роботы, роботы для уборки
- Мобильные роботы — перемещаются по миру: колесные, шагающие, гусеничные, воздушные (дроны) и подводные (ROV и AUV)
Этот урок охватывает основные строительные блоки, которые должен понимать каждый робототехник: исполнительные механизмы, датчики, системы управления, концепции программирования и карьерные пути.
Разминка
Краткая проверка
Давайте посмотрим, откуда вы начинаете.
Моторы и движение
Исполнительные механизмы: Как двигаются роботы
Исполнительный механизм — это любое устройство, которое преобразует энергию в физическое движение. Исполнительные механизмы — это мышцы робота.
Двигатели постоянного тока — Простейший электрический двигатель. Подайте напряжение, вал вращается. Поменяйте полярность напряжения, он вращается в другую сторону. Скорость пропорциональна напряжению. Двигатели постоянного тока дешевы и быстры, но у них нет встроенного способа узнать свое положение. Они распространены в колесных роботах и простых механизмах.
Шаговые двигатели — движутся дискретными шагами, обычно по 1,8 градусов за шаг (200 шагов за оборот). Вы командуете определенным числом шагов, и двигатель движется именно на эту величину. Шаговые двигатели обеспечивают точное разомкнутое управление положением без датчика, но они могут потерять шаги под тяжелой нагрузкой. Распространены в 3D-принтерах, ЧПУ-маршрутизаторах и гимбалах камер.
Сервоприводы — двигатель, объединенный с датчиком положения (энкодер) и контроллером в замкнутой системе. Контроллер непрерывно сравнивает командуемое положение с фактическим положением и корректирует любую ошибку. Сервоприводы обеспечивают лучшее сочетание скорости, крутящего момента и точности. Промышленные манипуляторы почти исключительно используют сервоприводы.
Пневматические исполнительные механизмы — используют сжатый воздух для создания линейного или вращательного движения. Быстрые и мощные для своего размера, но их сложно управлять точно, потому что воздух сжимаем. Распространены в грабельных клещах фабрик и машинах для захвата и размещения.
Гидравлические исполнительные механизмы — используют находящуюся под давлением жидкость (масло) вместо воздуха. Поскольку жидкость практически несжимаема, гидравлика обеспечивает огромную силу с точным управлением. Тяжелое строительное оборудование, крупные промышленные прессы и некоторые шагающие роботы (такие как ранний Atlas от Boston Dynamics) используют гидравлику. Компромисс — вес, сложность и риск утечки жидкости.
Степени свободы (DOF) — каждая независимая ось движения — это одна степень свободы. Типичный промышленный манипулятор имеет 6 DOF: три для позиционирования конца рабочего инструмента в пространстве (X, Y, Z) и три для его ориентирования (крен, тангаж, рыскание). Человеческая рука имеет 7 DOF. Больше степеней свободы означает большую гибкость, но большую сложность в управлении и программировании.
Выбор правильного исполнительного механизма
Соответствие исполнительных механизмов задаче
Выбор правильного исполнительного механизма требует понимания требований приложения: скорость, точность, сила и окружающая среда.
Как роботы воспринимают мир
Датчики: Органы чувств робота
Без датчиков робот слеп и глух. Датчики обеспечивают необработанные данные, которые управляют каждым решением.
Энкодеры — измеряют вращение. Оптический энкодер имеет диск с прорезями; свет проходит через него и детектор считает импульсы по мере вращения диска. Это говорит контроллеру точно, насколько далеко переместился шарнир. Инкрементальные энкодеры считают относительное движение; абсолютные энкодеры сообщают точный угол при включении. Каждый сервопривод имеет энкодер.
IMU (инерциальные измерительные блоки) — объединяют акселерометры (измеряют линейное ускорение), гироскопы (измеряют угловую скорость) и иногда магнитометры (измеряют магнитное направление). IMU показывает роботу его ориентацию и как он движется через пространство. Критическая для дронов, шагающих роботов и любой мобильной платформы, которой нужно оставаться сбалансированной.
LIDAR (обнаружение света и определение расстояния) — испускает лазерные импульсы и измеряет время, за которое каждый импульс отражается обратно. Это создает детальную 2D или 3D карту окрестностей. Беспилотные автомобили и роботы на складах используют LIDAR для обнаружения препятствий и картографирования. Вращающийся LIDAR может выдавать сотни тысяч измерений расстояния в секунду.
Камеры — обеспечивают богатые визуальные данные, но требуют значительных вычислений для интерпретации. Одна камера дает 2D изображение; стереокамеры (две камеры с известным разделением) обеспечивают информацию о глубине. Алгоритмы компьютерного зрения обрабатывают данные камеры для распознавания объектов, отслеживания линий и визуального SLAM (одновременной локализации и картографирования).
Датчики силы/крутящего момента — измеряют силы и крутящие моменты, приложенные в точке, обычно в запястье робота или конечном эффекторе. Необходимые для задач, требующих управляемого контакта: сборка (вставка штифта в отверстие), полировка и коллаборативные роботы, которые должны обнаруживать контакт с человеком и немедленно останавливаться.
Слияние датчиков — ни один датчик не идеален. LIDAR обеспечивает точное расстояние, но не цвет. Камеры обеспечивают богатые изображения, но борются в темноте. IMU дрейфует со временем. Слияние датчиков объединяет данные от нескольких датчиков для получения более точной и надежной картины, чем любой датчик в отдельности. Беспилотный автомобиль непрерывно сливает данные LIDAR, камер, радара, GPS и IMU.
Выбор датчиков для задачи
Соответствие датчиков миссии
Выбор датчика зависит от того, что робот должен знать, окружающей среды и вычислительного бюджета.
Разомкнутое и замкнутое управление
Управление: заставляя роботов вести себя правильно
Робот без управления — это просто совокупность частей. Системы управления — это слой принятия решений — они принимают данные датчиков и вычисляют команды, которые управляют исполнительными механизмами.
Разомкнутое управление — отправьте команду и надейтесь на лучшее. Шаговый двигатель, которому команду выполнить 200 шагов, попытается, но если он потеряет шаг под нагрузкой, ничто не обнаружит ошибку. Разомкнутое управление просто и дешево, но оно не может исправить возмущения. Микроволновая печь управляется разомкнуто: она работает заданное время, независимо от того, действительно ли еда горячая.
Замкнутое управление — измеритьпроизведенный результат, сравнить его с желаемым значением и исправить разницу. Это управление с обратной связью, и оно является основой всей серьёзной робототехники. Сервопривод имеет замкнутое управление: энкодер измеряет фактическое положение, контроллер сравнивает его с командуемым положением и регулирует напряжение двигателя, чтобы закрыть разницу.
ПИД-управление — наиболее широко используемый регулятор обратной связи. ПИД означает пропорциональный-интегральный-дифференциальный.
- П (пропорциональный): коррекция пропорциональна текущей ошибке. Большая ошибка, большая коррекция. Но только П часто перерегулирует или стабилизируется с небольшой стойкой ошибкой.
- И (интегральный): накапливает прошлую ошибку во времени. Если система была немного смещена в течение некоторого времени, И накапливается и давит сильнее. Это исключает ошибку в установившемся режиме, но может вызвать колебания, если его слишком высоко.
- Д (дифференциальный): реагирует на скорость изменения ошибки. Если ошибка быстро уменьшается (система приближается к цели), Д уменьшает коррекцию, чтобы предотвратить перерегулирование. Д действует как амортизатор.
Настройка ПИД-регулятора — поиск правильных значений П, И и Д — это часть наука и часть мастерство. Слишком много П и система колеблется. Слишком много И и она раскручивается и перерегулирует. Слишком много Д и она реагирует на шум. Реальные роботы часто требуют ПИД-настройки для каждого шарнира.
Стабильность — система управления стабильна, если она сходится к желаемому состоянию. Нестабильная система колеблется с возрастающей амплитудой — робот трясется сам себя. Анализ стабильности — это основной навык в инженерии управления.
Применение концепций управления
Мышление, как инженер по управлению
Понимание обратной связи и ПИД — это не просто теория — это объясняет, почему роботы ведут себя так, как они это делают.
Конечные автоматы и ROS
Программное обеспечение: мозг робота
Программное обеспечение робота принципиально отличается от веб-программного обеспечения или бизнес-программного обеспечения. Оно работает в реальном времени, взаимодействует с физическим оборудованием и должно изящно справляться с неожиданными ситуациями — упавший предмет, застрявший шарнир, человек вступает в рабочую область.
Конечные автоматы — наиболее распространенный паттерн программирования в робототехнике. Конечный автомат определяет набор состояний (таких как IDLE, MOVING, GRIPPING, ERROR) и переходы между ними. Робот всегда находится ровно в одном состоянии. События запускают переходы.
Например, робот для захвата и размещения:
- IDLE: ожидание команды
- MOVING_TO_PICK: движение в место захвата
- GRIPPING: закрытие захвата на предмет
- MOVING_TO_PLACE: несение предмета в пункт назначения
- RELEASING: открытие захвата
- ERROR: что-то пошло не так (предмет упал, отказ шарнира, препятствие обнаружено)
Каждое состояние имеет определенные действия входа, действия выхода и условия переходов. Конечные автоматы предотвращают робот от выполнения бессмысленных действий — вы не можете отпустить предмет, который никогда не захватывали.
ROS (Robot Operating System) — на самом деле не операционная система. ROS — это middleware-фреймворк, который обеспечивает коммуникационную инфраструктуру, абстракцию оборудования и огромную библиотеку переиспользуемых пакетов. Он работает на Linux. Роботы, построенные с ROS, используют архитектуру издатель-подписчик: узлы датчиков публикуют данные в темы, а узлы управления подписываются на интересующие их темы. Такая модульная конструкция означает, что вы можете заменить датчик LIDAR, не переписывая код навигации.
Планирование пути — как робот решает свой маршрут от точки А к точке В, избегая препятствий. Простые подходы включают навигацию по путевым точкам (следование серии предопределенных точек) и поля потенциала (препятствия отталкивают, цели привлекают). Продвинутые подходы, такие как A* и RRT (быстро исследующие случайные деревья), ищут оптимальные или выполнимые пути через сложные окружения. Беспилотные автомобили перепланируют свои пути несколько раз в секунду, когда мир изменяется.
Проектирование поведения робота
Размышление о программном обеспечении робота
Хорошее программное обеспечение робота предусматривает отказ и справляется с ним изящно.
Карьера в робототехнике
Построение карьеры в робототехнике
Робототехника быстро растет в производстве, логистике, здравоохранении, сельском хозяйстве и обороне. Вот основные карьерные пути.
Техник робототехники — устанавливает, обслуживает, устраняет неисправности и ремонтирует роботехнические системы. Это наиболее доступная точка входа. Вы работаете непосредственно с оборудованием — замена моторов, калибровка датчиков, перемонтирование контроллеров и диагностика неисправностей. Программы технических колледжей и сертификаты производителей (FANUC, ABB, KUKA) помогут вам начать. Типичная начальная зарплата: $45,000-$65,000.
Инженер управления — проектирует и настраивает системы управления, которые делают роботов поведением правильно. Эта роль требует сильной математики (линейная алгебра, дифференциальные уравнения) и навыков программирования. Инженеры управления работают с ПИД-настройкой, профилированием движений, интеграцией датчиков и системами безопасности. Степень бакалавра в области электротехники, машиностроения или мехатроники является типичной. Диапазон зарплаты: $75,000-$120,000.
ROS-разработчик / инженер по программному обеспечению робототехники — пишет программное обеспечение, которое координирует восприятие, планирование и управление. Эти разработчики работают на C++ и Python, создают узлы ROS, реализуют алгоритмы планирования пути и интегрируют модели машинного обучения для восприятия. Необходимы сильные навыки информатики. Эта роль очень требуется для беспилотных автомобилей, складских роботов и систем дронов. Диапазон зарплаты: $90,000-$150,000.
Интегратор автоматизации — проектирует и реализует полные роботехнические рабочие ячейки для фабрик. Интегратор берет производственную проблему (сварить эти две детали вместе при 60 единиц в час), выбирает робот, конечный эффектор, систему безопасности и конвейер, программирует всю ячейку и вводит ее в эксплуатацию на заводском полу. Интеграторы должны иметь широкие знания в области механики, электроники и программного обеспечения. Многие работают в компаниях системной интеграции. Диапазон зарплаты: $70,000-$110,000.
Другие пути — механические конструкторы, которые создают конструкции роботов и механизмы. Инженеры-электротехники, которые проектируют системы питания и электрические цепи. Исследовательские ученые, которые продвигают границы манипулирования, движения и машинного обучения для восприятия. Инженеры полевой робототехники, которые развертывают роботов в экстремальных условиях — под водой, под землей или в космосе.
Общая нить: робототехника вознаграждает людей, которые могут думать между дисциплинами. Чистый механик борется без навыков программного обеспечения. Чистый программист борется без понимания физики. Лучшие робототехники имеют форму Т — глубокая экспертиза в одной области с работающими знаниями по всем остальным.
Ваш путь вперед
Размышление
Вы теперь охватили фундаментальные строительные блоки: исполнительные механизмы, датчики, системы управления, паттерны программирования и карьерные пути.