robossembler.org/docs/technologies/open-source-robots-and-tools.md
2022-05-14 06:29:59 +00:00

26 KiB
Raw Blame History

id title
open-source-robots-and-tools Open source робототехника

Роботы-манипуляторы

Список разнообразных роборук - https://github.com/hobofan/collected-robotic-arms

  • Dexter - Open Source промышленный робот-манипулятор project. Разработчик Haddington Dynamics webpage. Для управления используется плата MicroZed - SoC(ARMv7 Cortex A9 + Xilinx FPGA на 28K вентилей на одном чипе), 1GB DDR3, microSD). Хорошо документирован, архитектура. Сборка сложная, с ремнями - более 300 деталей в номенклатуре, но всего два мотора. Инструкция по сборке в видео, картинках, тексте. В презентации автор объясняет ключевые достоинства робота - прежде всего это высокая точность(0.8-1.6 million points of precision (CPR)) за счёт использования системы оптических энкодеров и высокопроизводительном ПИД-регуляторе на FPGA. Код FPGA-логики выложен в формате idl, созданном для Viva - графической среды для проектирования FPGA, которую обещали опубликовать два года назад. Схема FPGA из Viva. Позиционируется как коллаборативный. Готовый робот без оснастки/инструмента продаётся за $13000. Исходники раскиданы по куче разных сайтов(GoogleDocs, Thigniverse, OnShape), очень неудобно собирать. Используются двигатели с волновой передачей производства фирмы http://www.hanzh.com/, которых нет на сайте(заказная позиция с сроком поставки 9-12 недель).
  • Faze4 - робот-манипулятор на шести шаговых двигателях с 6-DoF, все детали(кроме электроники и моторов) которого могут быть изготовлены на 3D-принтере. Функционально и по внешнему виду он похож на роботов-манипуляторов, изготавливаемых в промышленности, но ориентирован прежде всего для исследований, образования и любителей робототехники. Лицензия: MIT. Код в статусе "coming soon". Хорошая подробная документация. Дизайн вдохновлён FANUCs LR Mate 200iD. Подробная инструкция по сборке.
  • AR3 - 6-осевой робот-манипулятор на шаговых двигателях от Chris Annin. В его github опубликованы stl только на предыдущую модель - AR2, остальное на сайте. У разработчика сформировалось небольшое, но живое сообщество, занимающееся модификациями его манипулятора. Хороший пример - Dexter Ong - он выложил несколько модификаций железа для AR3(опубликовал в STEP) и сделал интеграцию с ROS и MoveIT(видео образца). Исходники AR3 (STEP + сборка Solidworks) продаются за $99, что весьма демократично. Инструкция по сборке очень подробная - более 300 страниц с фотками и скринами из Amazon.
  • Niryo One - миниатюрный робот-манипулятор на шаговых двигателях от Niryo Robotics. ROS-совместимый. Электроника выложена в pdf в виде эскиза, т.е. принципиальной схемы нет. В папке Integration выложены исходники в STEP и Solidworks. Вместе с самим роботом выложены и stl пяти приспособлений. Сборка в PDF: 27 деталей для изготовления на 3D-принтере, огромная номенклатура покупных деталей(более 30 наименований), фирменные моторы Niryo - 3 шт., для управления роботом используется Raspberry Pi 3B, для управления моторами - Arduino. Коммерческий проект для сбыта моторов Niryo.
  • Thor - 6-DoF на шаговых двигателях. Полный open source - FreeCAD, KiCAD, GRBL. Модифицировалась. Список соучастников проекта регулярно пополняется. Интеграции с ROS нет, управление шаговыми двигателями осуществляется через GRBL. Позиционируется как дешёвый робот для образовательных целей. Исходники не менялись 4 года.
  • Moveo - 6-DoF на шаговых двигателях. Открыты исходники CAD (Solidworks), firmware, Управляется с помощью Arduino MEGA. Инструкция по сборке. BOM содержит 300 позиций номенклатуры. Обзоры на русском. Разработка пакета для управления роботов в ROS. Обновлялся последний раз 5 лет назад.
  • Fred - робот-манипулятор на двигателях Dynamixel(разработаны Robotis). Всего используется пять наименований двигателей, управляются по шине RS485 с использованием проприетарного протокола на скоростях 9,600 [bps] ~ 4.5 [Mbps]. Спроектирован в Fusion360(исходники выложены архивом). Веб-панель управления манипулятором REST API на FLASK. Акцент в проекте сделан на использовании Reinforcement Learning (SAC + Tensorflow agents) в решении задач инверсной кинематики и движения без коллизий с окружающей средой. Симуляция реализована на pybullet с urdf-моделью робота. Планировщик движений реализован на базе самописной кинематики с использованием python-библиотек. Изготовлен протитоп на 3D-принтере Prusa mk2s из пластика PLA (нижнее звено усилено углеволокном) с камерой C922 PRO HD, на котором проверена работоспособность алгоритма.
  • kmriiwa - проект по коммуникации между KUKA KMR iiwa и ROS2. Для включения функциональности используются несколько пакетов ROS. Navigation2 используется для навигации по мобильному автомобилю. SLAM_Toolbox используется для SLAM. MoveIt2 используется для планирования пути манипулятора.

Другие роботы

  • open-dynamic-robot-initiative - проект открытого робота с управлением крутящим моментом (torque-control) - миниатюрный аналог Boston Dynamics Spot. Звенья робота также используются для бюджетного (около $5000) трёхпальцевого устройства захвата (сайт, paper). Развивается Нью-Йоркским университетом и Институтом Макса Планка.
  • OpenMower - открытый робот-газонокосильщик с ROS Hardware Interface. Авторы задались вопросом "Почему современные роботы-газонокосильщики настолько плохие?" и попробовали разобрать самого дешёвого серийного робота-газонокосильщика YardForce Classic 500. Изучив внутренности, они пришли к выводу, что железо разработано на весьма высоком уровне и проблемы заключаются прежде всего в программном обеспечении. Это побудило их начать проект OpenMower и приобщить к разработке более широкий круг разработчиков. Робот находится в фазе активной разработки, поэтому сейчас использовать исходники следует с осторожностью. Программное обеспечение ROS находится в отдельном репозитории ClemensElflein/open_mower_ros.

Станки с ЧПУ

  • CARVER_X5 - 5-осевой ЧПУ станок. Open Source: CAD - Soliworks, EDA - KiCAD. Proprietary: CAM software - Fusion 360, CNC-контроллер software - Mach3, CNC-interface software - Pokeys + controller.

3D-принтеры

  • Open5x - 5-осевой 3D-принтер
  • BigFDM - широко-форматный(рабочая зона 800мм x 800мм x 900мм) 3D-принтер

Контроллеры

Библиотеки, фреймворки

  • Хорошая подборка Free and Open source CAM/CNC software на Reddit
  • Machinekit - Machinekit-HAL является мощным программным обеспечением для контроля машин в реальном времени на основе Hardware Abstraction Layer. Применяется для управления промышленным роботом-манипулятором или станком с ЧПУ. Поддерживаются RT PREEMPT и Xenomai 2 патчи ядра Linux для поддержки реального времени. В обзоре одного из разработчиков machinekit описаны варианты интеграции с ROS и пример реализации для робота-манипулятора Borunte.
  • LinuxCNC - пакет Debian/Ubuntu для управления фрезерными и токарными станками, 3d-принтерами, лазерными резаками, плазменными резаками, манипуляторами, гексаподами и т.п. системами. 129 контрибьюторов, часто обновляется, используется коммерческими фирмами(в связке с machinekit для управления в реальном времени) - например, Tormach
  • CAMotics - программное обеспечение с открытым исходным кодом для симуляции трёх-осевого ЧПУ. Работает на Linux ((сборка для Armbian на RPi 4)), OS-X и Windows. Это отдельное приложение со своим GUI.
  • pyCAM - G-код генератор и симулятор для 3-осевого станка с ЧПУ. Сейчас активно не разрабатывается, последний релиз в апреле 2020.
  • Slic3r - G-код генератор. Генерит G-код из STL/OBJ/AMF моделей. 100 контрибьюторов. Изначально разрабатывался командой проекта RepRap. Последний релиз 10 мая 2018 года.
  • PrusaSlicer - G-код генератор, форк Slic3r. Создаёт G-код для FFF-принтеров или PNG-слои для mSLA-принтеров из STL/OBJ/AMF моделей. Работает с контроллерами ЧПУ Mach3, LinuxCNC и Machinekit. Развитое сообщество разработчиков - около 150 контрибьюторов. Поддерживается производителем 3D-принтеров компанией Josef Prusa. Лицензия AGPLv3. Последний релиз 16 июля 2021 года.
  • QP/C. Real-time embedded framework/RTOS for embedded systems based on active objects (actors) and hierarchical state machines.
  • Micro-ROS. Проект разработки ROS-совместимых устройств и приложений с ограниченными ресурсами
  • Mycodo - хорошо задокументированная система мониторинга и управления технологическими процессами. Изначально была разработана для гидропоники, но применялась автором и для других задач: Автоматизация выращивания грибов, Наземное выращивание растений, Поддержание гомеостаза пчелиной пасеки, Поддержание влажности в подземной искусственной пещере летучих мышей, Дистанционный радиационный мониторинг и картографирование. Написана на Python. Может быть развёрнута на любой из модификаций Raspberry Pi (Zero, 1, 2, 3, 4).
  • Isaac SDK (github). Представляет из себя комплекс модулей для разработки программного обеспечения для автономных роботизированных систем. Требует наличия GPU с поддержкой CUDA 10.2. Также на данный момент рекомендуется версия Ubuntu 18.04. Ввиду модульности есть возможность использования некоторых компонент GEMs с ROS2. Состоит из следующих компонентов:
    • Isaac SIM - Симулятор в нескольких реализациях. Сам по себе Isaac SIM предоставляет функционал по генерации данных для обучении моделей
      • Isaac Sim Omniverse - использует комплект NVIDIA Omniverse Kit. Он обеспечивает доступ к технологиям трассировки лучей NVIDIA PhysX и RTX для высокопроизводительного фотореалистичного моделирования роботов.
      • Isaac Unity 3D - интегрированный с unity симулятор
    • Isaac GEMs - Библиотека алгоритмов оптимизированных под работу на NVIDIA GPU. Включает в себя как реализации алгоритмов навигации, планирования, детектирования объектов, SLAM, ML.
    • Isaac Engine - Фреймворк для написания исполняемых узлов. Имеет cpp/python API. Основная идея написания программ состоит в реализации компонент (codelet), по аналогии с ROS2 components - исполняемые программы динамически выгружаемые в среду и из неё.

Сервисы

  • CADCloud - сервер для публикации 3D-моделей, их версионирования и коллективной разработки. На сервере запускается экземпляр FreeCAD, через который модели публикуются в хранилище. Авторизация пользователей осуществляется через TokenAuth и TokenSecret. Сервер самописный на go, фронтенд на js. Для разворачивания нужно 2 CPUs, 4 Гб ОЗУ, 4 Гб ПЗУ + отдельный SMTP-сервер для регистрации пользователей. Есть Docker-контейнер. 5 контрибьюторов (90% коммитов один разработчик).

Организации

  • Southwest Research Institute Robotics
  • ROS-Industrial
  • EEZ - Envox Experimental Zone - "Open hardware/open source that bridge the gap between DIY/hobbyist and professional solutions" - Открытое ПО и железо, устраняющее разрыв между любительскими и профессиональными решениями. Главная разработка - EEZ Bench Box 3 (BB3) - модульная платформа для испытания и измерений электрооборудования. Есть модули питания, релейного вывода, измерения температуры. Для программирования EEZ BB3 разработана специальная Studio IDE, где можно на FBD-подобном языке запрограммировать логику работу прибора и создать визуализацию с помощью drag&drop.

Государственные программы

  • ROSIN - проект поддержки консорциума ROS-Industrial, длившийся с 2017 по 2020 год, при финансировании со стороны Евросоюза и отдельных европейских коммерческих фирм. Гранты выделялись как конкретным техническим проектам (Focused Technical Project, FTP), так и образовательным (Educational Project, EP). В рамках проекта были разработаны-улучшены множество библиотек и конечных решений с открытым исходным кодом, среди которых можно выделить: