Мастерство симуляции робототехнических конвейеров: проверенные лучшие практики
Одна из самых сложных задач в офлайн-программировании — симуляция робототехнического конвейера. Вот 10 лучших практик, чтобы упростить этот процесс.
Конвейеры трудно симулировать. Как только вы добавляете движущиеся объекты в программу робота, всё становится сложнее.
К счастью, есть определенные шаги, которые облегчают симуляцию конвейера с помощью офлайн-программирования.
3 хороших примера симулированных конвейеров
Лучший способ научиться хорошим практикам программирования — изучить хорошо спроектированные примеры.
В RoboDK мы старались сделать добавление конвейера в симуляцию максимально простым. В библиотеке, устанавливаемой вместе с RoboDK, можно найти три демонстрационных примера с конвейерами.
Разные способы программирования в RoboDK
Есть три способа программировать аспекты симуляции RoboDK. Каждый продемонстрирован в примерах конвейеров. Это:
- Как механизм/робот: Роботы программируются как механизмы в RoboDK, а конвейеры могут быть запрограммированы как линейные механизмы.
- Как графическая программа: Можно создавать программы роботов с графическим программированием, используя иконки инструкций: Линейное движение, Пауза, Установка I/O и др.
- Как Python-скрипт: Почти всё можно запрограммировать в RoboDK как простой Python-скрипт, включая программы роботов и механизмы. Датчики всегда симулируются как Python-скрипты.
Пример 1: Конвейер с 2 роботами
Наш самый популярный демо показывает двух роботов, загружающих и разгружающих конвейер с помощью захватов. Видео содержит полное руководство по созданию этого демо самостоятельно.
- Тип конвейера: Python-скрипт
- Программа робота: Графическое программирование
Пример 2: Pick-and-Place с 2D-камерой
Этот демо использует ту же настройку, что и пример с лазерным датчиком ниже. Однако здесь применяется симулированная 2D-камера для определения позиции и ориентации коробок.
- Тип конвейера: Линейный механизм
- Программа робота: Python-скрипт
Пример 3: Pick-and-Place с лазерным датчиком
Демонстрация загрузки и разгрузки коробок на движущийся конвейер. Используется лазерный датчик для обнаружения моментов, когда коробки на конвейере находятся в позиции для захвата. Поскольку он не может определить вращение объектов, они должны быть ориентированы одинаково каждый раз.
- Тип конвейера: Линейный механизм
- Программа робота: Python-скрипт
10 лучших практик для симуляции робототехнических конвейеров
Многие уроки можно извлечь, просто изучив показанные выше демо.
Вот 10 лучших практик, которые можно увидеть в действии в этих демо:
1. Используйте демо как отправную точку
Зачем изобретать велосипед, если в этом нет необходимости? Мы предоставили демо, чтобы облегчить вам программирование собственного робота. Используйте их как отправную точку и адаптируйте под свои нужды. Это позволит начать работу гораздо быстрее.
2. Работайте с каждой зоной и роботом отдельно
Частая ошибка — пытаться управлять всеми частями симуляции из одной графической программы или Python-скрипта. Это быстро становится неудобоваримым и ведет к запутанному коду.
В демо мы разделили каждую симуляцию на три зоны:
- Зона захвата
- Конвейер
- Зона разгрузки
Каждая из этих зон обрабатывается отдельно, и каждый робот также обрабатывается отдельно.
3. Создавайте системы координат для каждой зоны
Если посмотреть на первый демо (со столом), можно заметить, что команда Установить систему координат используется очень часто. Это видно, кликнув правой кнопкой по программе FeedConveyor и выбрав Показать инструкции.
Каждый раз, когда робот выполняет операцию, мы меняем систему координат. Это хорошая практика программирования, но новички часто забывают о ней. Наличие уникальной системы координат для каждой зоны упрощает перемещение конвейера и роботов при необходимости.
4. Устанавливайте домашние позиции для каждой зоны
Точно так же, из того же демо видно, что каждому роботу назначена домашняя позиция для каждой зоны. Это перемещает робота близко к зоне, но на безопасном расстоянии для избежания столкновений. Каждый раз, когда робот захватывает объект из зоны, он должен сначала быстро переместиться в эту домашнюю позицию, а затем двигаться к объекту контролируемым образом.
5. Установите максимальное расстояние захвата
RoboDK моделирует конечные эффекторы довольно простым методом. Когда вызывается инструкция Действие присоединения, любой захватываемый объект рядом с захватом робота будет схвачен. Максимальное расстояние для этого можно задать в меню Инструменты > Настройки, установив Максимальное расстояние для присоединения объекта к инструменту робота.
6. Выбирайте правильный метод конвейера
Как видно из демо, конвейер можно запрограммировать либо как линейный механизм, либо как Python-программу. О преимуществах обоих подходов можно прочитать в нашей статье «Как запрограммировать робототехнический конвейер, не сходя с ума».
7. Используйте имена деталей для обнаружения
Если посмотреть на второй демо (с 2D-камерой), не сразу понятно, как датчик обнаруживает каждую деталь. «Секрет» в том, что RoboDK использует общие имена деталей для отслеживания объектов, которые можно манипулировать.
Кликните правой кнопкой по Python-скрипту PartsToPallet и выберите Редактировать Python-скрипт. Вы увидите, что PART_KEYWORD установлен как «Part». Все захватываемые объекты в симуляции начинаются с этого ключевого слова. Датчик будет обнаруживать только объекты с правильным именем.
8. Тщательно согласовывайте скорости
Одна из крупнейших проблем программирования конвейеров — необходимость тщательно согласовать скорости робота и конвейера.
Если посмотреть на третий демо (с лазерным датчиком), можно увидеть эффект несогласованных скоростей. Дважды кликните по скрипту SetSimulationParams. Нажмите OK для размера коробки и паллета, но измените скорость конвейера на 60 мм/с. Дважды кликните по MainSimulation для запуска программы. Вы увидите, что робот начнет пропускать некоторые коробки.
9. Старайтесь «сломать» программу!
Один из лучших способов разработать надежную программу робота — попытаться её «сломать», как мы только что сделали, меняя скорость конвейера. Когда программа работает правильно, это может ввести в ложное чувство безопасности.
Попытайтесь найти ситуации, вызывающие сбой программы. Так вы будете уверены, что ваша программа действительно устойчива к изменениям.
10. Готовьтесь к тестированию в реальном мире
В конце концов, симуляция — всего лишь симуляция. Только когда вы загрузите программу в реальный робот и протестируете её с физическим конвейером, вы увидите, работает ли она на практике.
Помните, конвейеры — штука коварная. Будьте готовы тестировать программу тщательнее, чем если бы вы не использовали конвейер.
Есть вопросы об использовании конвейеров в RoboDK? Расскажите в комментариях ниже или присоединитесь к обсуждению в LinkedIn, Twitter, Facebook или Instagram.
Промышленный робот
- Робототехническое зрение в промышленности: От зрения к само-программированию
- Что такое само-программируемый робот и почему это важно
- Archimedes: Робот-совица с ИИ для распознавания эмоций
- Максимизация эффективности: почему квалифицированные операторы роботов необходимы
- Робототехника в производстве: доказанная эволюция эффективности и инноваций
- Мастерство чистки стола 3D-принтера: пошаговое руководство
- Мастерство роботизированной сварки: простое руководство к безупречным результатам
- Мастерство углов Эйлера робота: подробное руководство
- 6 проверенных шагов для эффективной перепрофиляции промышленных роботов
- Как выбрать лучшее ПО для роботизированного пикинга: эффективная автоматизация