diff --git a/docs/technologies/open-source-robots-and-tools.md b/docs/technologies/open-source-robots-and-tools.md new file mode 100644 index 0000000..3feb0ee --- /dev/null +++ b/docs/technologies/open-source-robots-and-tools.md @@ -0,0 +1,74 @@ +--- +id: open-source-robots-and-tools +title: Open source робототехника +--- + +## Роботы-манипуляторы + +Список разнообразных роборук - https://github.com/hobofan/collected-robotic-arms + +* [Dexter](https://github.com/HaddingtonDynamics/Dexter/wiki) - Open Source промышленный робот-манипулятор project. Разработчик [Haddington Dynamics webpage](http://hdrobotic.com/open-source). Для управления используется плата [MicroZed](http://zedboard.org/product/microzed) - SoC(ARMv7 Cortex A9 + Xilinx FPGA на 28K вентилей на одном чипе), 1GB DDR3, microSD). Хорошо [документирован](https://github.com/HaddingtonDynamics/Dexter/wiki), [архитектура](https://camo.githubusercontent.com/09708df6bfe916898d1d89fb56bd67914034655eea4e53219276d24133f74658/68747470733a2f2f68616464696e67746f6e64796e616d6963732e6769746875622e696f2f48445f436f6e74726f6c53797374656d5f32303230313031352e737667). Сборка сложная, с ремнями - более 300 деталей в номенклатуре, но всего два мотора. Инструкция по сборке в [видео](https://www.youtube.com/watch?v=AYD2PSslqfU&list=PLEJQ7hsad17fC2tqTDGNFI_LPk1kX2aE6), [картинках](https://photos.app.goo.gl/jGmsnxtytvdYhgUi8), [тексте](https://github.com/HaddingtonDynamics/Dexter/wiki/HD-Build-Notes). В [презентации](https://www.youtube.com/watch?v=t7lnbrI4B5Q) автор объясняет ключевые достоинства робота - прежде всего это высокая точность(0.8-1.6 million points of precision (CPR)) за счёт использования системы оптических энкодеров и высокопроизводительном ПИД-регуляторе на FPGA. Код FPGA-логики выложен в формате idl, созданном для Viva - графической среды для проектирования FPGA, которую обещали опубликовать два года назад. [Схема](https://user-images.githubusercontent.com/419392/57746151-be2ea780-7684-11e9-80b5-95490f015973.png) FPGA из Viva. Позиционируется как коллаборативный. Готовый робот без оснастки/инструмента продаётся за $13000. Исходники раскиданы по куче разных сайтов(GoogleDocs, Thigniverse, OnShape), очень неудобно собирать. Используются двигатели с волновой передачей производства фирмы http://www.hanzh.com/, которых нет на сайте(заказная позиция с сроком поставки 9-12 недель). +* [Faze4](https://github.com/PCrnjak/Faze4-Robotic-arm) - робот-манипулятор на шести *шаговых двигателях* с 6-DoF, все детали(кроме электроники и моторов) которого могут быть изготовлены на 3D-принтере. Функционально и по внешнему виду он похож на роботов-манипуляторов, изготавливаемых в промышленности, но ориентирован прежде всего для исследований, образования и любителей робототехники. Лицензия: MIT. Код в статусе "coming soon". Хорошая подробная [документация](https://faze4-robotic-arm-docs.readthedocs.io/en/latest/). Дизайн вдохновлён FANUC’s LR Mate 200iD. Подробная [инструкция](https://github.com/PCrnjak/Faze4-Robotic-arm/blob/master/Assembly%20instructions%203.1.pdf) по сборке. +* [AR3](https://www.anninrobotics.com/downloads) - 6-осевой робот-манипулятор на *шаговых двигателях* от Chris Annin. В [его github](https://github.com/Chris-Annin) опубликованы stl только на предыдущую модель - AR2, остальное на сайте. У разработчика сформировалось небольшое, но [живое сообщество](https://www.anninrobotics.com/forum/robot-builds), занимающееся модификациями его манипулятора. Хороший пример - [Dexter Ong](https://github.com/ongdexter) - он выложил [несколько модификаций железа](https://github.com/ongdexter/ar3_hardware_mods) для AR3(опубликовал в STEP) и [сделал интеграцию](https://github.com/ongdexter/ar3_core) с ROS и MoveIT([видео образца](https://www.youtube.com/watch?v=0f0Cw46Jx0U)). Исходники AR3 (STEP + сборка Solidworks) [продаются](https://www.anninrobotics.com/product-page/ar3-complete-solidworks-assembly-step-files) за $99, что весьма демократично. [Инструкция по сборке](https://drive.google.com/file/d/1T_u_RsGdRljIm2Luju5j7sy7eQUTs7K-/view) очень подробная - более 300 страниц с фотками и скринами из Amazon. +* [Niryo One](https://github.com/NiryoRobotics/niryo_one) - миниатюрный робот-манипулятор на *шаговых двигателях* от [Niryo Robotics](https://niryo.com/). [ROS-совместимый](https://github.com/NiryoRobotics/niryo_one_ros). [Электроника](https://github.com/NiryoRobotics/niryo_one/tree/master/Electronics) выложена в pdf в виде эскиза, т.е. принципиальной схемы нет. В папке [Integration](https://github.com/NiryoRobotics/niryo_one/tree/master/Integration) выложены исходники в STEP и Solidworks. Вместе с самим роботом выложены и stl [пяти приспособлений](https://github.com/NiryoRobotics/niryo_one/tree/master/STL/7-Tools). Сборка [в PDF](https://github.com/NiryoRobotics/niryo_one/blob/master/BOM/BOM_StepByStep.pdf): 27 деталей для изготовления на 3D-принтере, огромная номенклатура покупных деталей(более 30 наименований), фирменные моторы Niryo - 3 шт., для управления роботом используется Raspberry Pi 3B, для управления моторами - Arduino. Коммерческий проект для сбыта моторов Niryo. +* [Thor](https://github.com/AngelLM/Thor) - 6-DoF на шаговых двигателях. Полный open source - FreeCAD, KiCAD, GRBL. Модифицировалась. [Список](https://github.com/AngelLM/Thor/wiki/List-of-Thor-Builders) соучастников проекта регулярно пополняется. Интеграции с ROS нет, управление шаговыми двигателями осуществляется через GRBL. Позиционируется как дешёвый робот для образовательных целей. Исходники не менялись 4 года. +* [Moveo](https://github.com/BCN3D/BCN3D-Moveo) - 6-DoF на шаговых двигателях. Открыты исходники CAD (Solidworks), firmware, Управляется с помощью Arduino MEGA. [Инструкция по сборке](https://github.com/BCN3D/BCN3D-Moveo/blob/master/USER%20MANUAL/User%20Manual%20BCN3D%20Moveo.pdf). BOM содержит 300 позиций номенклатуры. [Обзоры](https://www.youtube.com/channel/UChWE6IRkO8CkiihtDZKGA9A) на русском. [Разработка пакета](http://lets-go-design-with-lexmaister.blogspot.com/2021/03/moveops3-ros-1-urdf.html) для управления роботов в ROS. Обновлялся последний раз 5 лет назад. +* [Fred](https://github.com/thomashiemstra/fred) - робот-манипулятор на двигателях Dynamixel(разработаны [Robotis](https://emanual.robotis.com/)). Всего используется пять наименований двигателей, управляются по шине RS485 с использованием проприетарного [протокола](https://emanual.robotis.com/docs/en/dxl/protocol2/) на скоростях 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](https://github.com/MortenMDahl/kmriiwa_ws_devel) - проект по коммуникации между KUKA KMR iiwa и ROS2. Для включения функциональности используются несколько пакетов ROS. Navigation2 используется для навигации по мобильному автомобилю. SLAM_Toolbox используется для SLAM. MoveIt2 используется для планирования пути манипулятора. + +## Другие роботы + +* [open-dynamic-robot-initiative](https://github.com/open-dynamic-robot-initiative) - проект открытого робота с управлением крутящим моментом (torque-control) - миниатюрный аналог Boston Dynamics Spot. Звенья робота также используются для бюджетного (около $5000) трёхпальцевого устройства захвата ([сайт](https://sites.google.com/view/trifinger/home-page), [paper](https://arxiv.org/pdf/2008.03596.pdf)). Развивается Нью-Йоркским университетом и Институтом Макса Планка. + +## Станки с ЧПУ + +* [CARVER_X5](https://github.com/MakerLabTunisia/CARVER_X5) - 5-осевой ЧПУ станок. Open Source: CAD - Soliworks, EDA - KiCAD. Proprietary: CAM software - Fusion 360, CNC-контроллер software - Mach3, CNC-interface software - Pokeys + [controller](https://www.poscope.com/product/pokeys57cnc/). + +## 3D-принтеры + +* [Open5x](https://github.com/FreddieHong19/Open5x) - 5-осевой 3D-принтер +* [BigFDM](https://github.com/fab-machines/BigFDM) - широко-форматный(рабочая зона 800мм x 800мм x 900мм) 3D-принтер + +## Контроллеры + +* [ODrive](https://github.com/odriverobotics/ODrive) - контроллер бесщёточного двигателя, ориентированный на [высокую производительность](https://www.youtube.com/channel/UC0vmOsLFTCTsaYcL2PmWscA). 70 контрибьюторов! Поддерживается компанией ODrive, которая производит моторы([сравнительная таблица разных моторов](https://docs.google.com/spreadsheets/d/12vzz7XVEK6YNIOqH0jAz51F5VUpc-lJEs3mmkWP1H4Y/edit#gid=0)). Изначальный автор - https://github.com/madcowswe , в его репозиториях давно не было обновлений. +* [AC Servo Driver for STM32F4](https://github.com/rene-dev/stmbl) +* [Buildbotics](https://github.com/buildbotics) - контроллер ЧПУ для 4-осевого станка. 100% open source. Опубликованы [firmware](https://github.com/buildbotics/bbctrl-firmware) (Си), [schematics+pcb](https://github.com/buildbotics/bbctrl-pcb) (gEDA), [конструктив](https://github.com/buildbotics/bbctrl-enclosure) (AutoCAD, dxf) и другие вспомогательные репозитории. Архитектура контроллера основана на Raspberry Pi3, MCU Atmega193 и веб-интерфейсе - [схема](https://cdn-cfepe.nitrocdn.com/IaOOhnrZOaEuMnEtFXeLBmaDvzjPJeJV/assets/static/optimized/rev-4dccca7/wp-content/uploads/2021/07/Buildbotics-controller-connections-1.png). + +## Библиотеки, фреймворки + +* Хорошая подборка [Free and Open source CAM/CNC software](https://www.reddit.com/r/CNC/comments/aizatc/free_and_open_source_camcnc_software/) на Reddit +* [Machinekit](https://github.com/machinekit/) - Machinekit-HAL является мощным программным обеспечением для контроля машин *в реальном времени* на основе Hardware Abstraction Layer. Применяется для управления промышленным роботом-манипулятором или станком с ЧПУ. Поддерживаются RT PREEMPT и [Xenomai 2](http://xenomai.org) патчи ядра Linux для поддержки реального времени. В обзоре [одного из разработчиков](https://github.com/machinekoder) machinekit описаны [варианты интеграции с ROS](](https://machinekoder.com/machinekit-ros-open-source-robots/)) и [пример реализации](https://machinekoder.com/machinekit-ros-industrial-robot/) для робота-манипулятора Borunte. +* [LinuxCNC](https://github.com/LinuxCNC/linuxcnc) - пакет Debian/Ubuntu для управления фрезерными и токарными станками, 3d-принтерами, лазерными резаками, плазменными резаками, манипуляторами, гексаподами и т.п. системами. 129 контрибьюторов, часто обновляется, используется коммерческими фирмами(в связке с machinekit для управления в реальном времени) - например, [Tormach](https://rosindustrial.org/s/Tormach-and-a-ROS-Open-Manipulator.pdf) +* [CAMotics](https://github.com/CauldronDevelopmentLLC/CAMotics) - программное обеспечение с открытым исходным кодом для симуляции трёх-осевого ЧПУ. Работает на Linux (([сборка для Armbian](https://github.com/koendv/camotics-raspberrypi) на RPi 4)), OS-X и Windows. Это отдельное приложение со своим GUI. +* [pyCAM](https://github.com/SebKuzminsky/pycam) - G-код генератор и симулятор для 3-осевого станка с ЧПУ. Сейчас активно не разрабатывается, последний релиз *в апреле 2020*. +* [Slic3r](https://github.com/slic3r/Slic3r) - G-код генератор. Генерит G-код из STL/OBJ/AMF моделей. 100 контрибьюторов. Изначально разрабатывался командой проекта RepRap. Последний релиз *10 мая 2018 года*. +* [PrusaSlicer](https://github.com/prusa3d/PrusaSlicer) - G-код генератор, форк [Slic3r](https://github.com/slic3r/Slic3r). Создаёт G-код для FFF-принтеров или PNG-слои для mSLA-принтеров из STL/OBJ/AMF моделей. Работает с контроллерами ЧПУ Mach3, LinuxCNC и Machinekit. Развитое сообщество разработчиков - около 150 контрибьюторов. Поддерживается производителем 3D-принтеров компанией Josef Prusa. Лицензия AGPLv3. Последний релиз *16 июля 2021 года*. +* [QP/C](https://github.com/QuantumLeaps/qpc). Real-time embedded framework/RTOS for embedded systems based on active objects (actors) and hierarchical state machines. +* [Micro-ROS](https://github.com/micro-ROS). Проект разработки ROS-совместимых устройств и приложений с ограниченными ресурсами + * [Sensor micro-ROS use case in Modular Arm - PDF](http://www.ofera.eu/storage/deliverables/M36/OFERA_61_D64_sensor_use_case_final__PU.pdf) + * [micro-ROS meets Moveit2](https://www.eprosima.com/index.php/company-all/news/166-micro-ros-meets-moveit) - [Github](https://github.com/micro-ROS/micro-ROS_moveit2_demo) + * [micro-ROS Open Manipulator demo](https://github.com/micro-ROS/micro-ROS_openmanipulator_demo), [msg/srv spec](http://wiki.ros.org/open_manipulator_msgs), Open Manipulator [repo](https://github.com/ROBOTIS-GIT/open_manipulator) + + +## Сервисы + +* [CADCloud](https://github.com/opencomputeproject/CADCloud) - сервер для публикации 3D-моделей, их версионирования и коллективной разработки. На сервере запускается экземпляр FreeCAD, через который модели публикуются в хранилище. Авторизация пользователей осуществляется через TokenAuth и TokenSecret. Сервер самописный на go, фронтенд на js. Для разворачивания нужно 2 CPUs, 4 Гб ОЗУ, 4 Гб ПЗУ + отдельный SMTP-сервер для регистрации пользователей. Есть Docker-контейнер. 5 контрибьюторов (90% коммитов один разработчик). + +## Организации + +* [Southwest Research Institute Robotics](https://github.com/swri-robotics) +* [ROS-Industrial](https://github.com/ros-industrial) +* [EEZ - Envox Experimental Zone](https://github.com/eez-open) - "Open hardware/open source that bridge the gap between DIY/hobbyist and professional solutions" - Открытое ПО и железо, устраняющее разрыв между любительскими и профессиональными решениями. Главная разработка - [EEZ Bench Box 3 (BB3)](https://github.com/eez-open/modular-psu) - модульная платформа для испытания и измерений электрооборудования. Есть модули питания, релейного вывода, измерения температуры. Для программирования EEZ BB3 разработана специальная [Studio IDE](https://github.com/eez-open/studio), где можно на FBD-подобном языке запрограммировать логику работу прибора и создать визуализацию с помощью drag&drop. + +## Государственные программы + +* [ROSIN](https://www.rosin-project.eu/) - проект поддержки консорциума [ROS-Industrial](https://github.com/ros-industrial), длившийся с 2017 по 2020 год, при финансировании со стороны Евросоюза и отдельных европейских коммерческих фирм. Гранты выделялись как конкретным техническим проектам (Focused Technical Project, FTP), так и образовательным (Educational Project, EP). В рамках проекта были разработаны-улучшены [множество библиотек и конечных решений](https://www.rosin-project.eu/results) с открытым исходным кодом, среди которых можно выделить: + * планировщик движений MoveIt2 + * пакет [ros_control](http://wiki.ros.org/ros_control) - обобщённый интерфейс для управления двигателями + * [ROBIN](https://github.com/ScalABLE40/robin) - мост через разделяемую память между Codesys и ROS + * [биндинги](https://github.com/ada-ros/) для языка программирования [Ada](https://ru.wikipedia.org/wiki/%D0%90%D0%B4%D0%B0_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)) + * [интерфейс](https://github.com/cyberbotics/webots_ros) между ROS и симулятором [Webots](https://github.com/cyberbotics/webots) + * [Integration Service](https://github.com/eProsima/Integration-Service) - сервис для интеграции ROS2 с другими middleware + * [ROS-драйвер](https://github.com/UniversalRobots/Universal_Robots_ROS_Driver) для манипулятора UR + * [ROS-пакет](https://gitlab.com/beta-robots/imc_driver) для работы с [servo-контроллерами IMC](https://ingeniamc.com/) через [ros_control](http://wiki.ros.org/ros_control)/[EtherCAT](https://www.ethercat.org/en/technology.html) diff --git a/sidebars.js b/sidebars.js index 7261903..7633e69 100644 --- a/sidebars.js +++ b/sidebars.js @@ -23,6 +23,7 @@ module.exports = { type: 'category', label: 'Технологии', items: [ + 'technologies/open-source-robots-and-tools', 'technologies/robonomics', 'technologies/machine-learning-in-robotics', 'technologies/wrs2020-assembly-challenge',