Робототехника с открытым исходным кодом
Робототехника с открытым исходным кодом — это отрасль робототехники , в которой роботы разрабатываются с использованием оборудования с открытым исходным кодом и бесплатного программного обеспечения с открытым исходным кодом , при этом публично публикуются чертежи , схемы и исходный код . Таким образом, оно тесно связано с движением открытого дизайна , движением производителей. [1] и открытая наука .
Требования
[ редактировать ]Робототехника с открытым исходным кодом означает, что информация об оборудовании легко распознается, поэтому другие могут легко ее восстановить. В свою очередь, это требует, чтобы при проектировании использовались только легкодоступные стандартные подкомпоненты и инструменты, а процесс сборки был подробно задокументирован, включая спецификацию материалов и подробные («в стиле Ikea») пошаговые инструкции по сборке и тестированию. (Одного файла САПР недостаточно, поскольку в нем не показаны этапы выполнения или тестирования сборки). Эти требования являются стандартными для оборудования с открытым исходным кодом в целом и формализованы различными лицензиями и сертификатами, особенно теми, которые определены рецензируемыми журналами HardwareX и Journal of Open Hardware .
Лицензионные требования к программному обеспечению такие же, как и к любому программному обеспечению с открытым исходным кодом . Но кроме того, чтобы программные компоненты могли иметь практическое применение в реальных робототехнических системах, они должны быть совместимы с другим программным обеспечением, как правило, как это определено каким-либо стандартом сообщества промежуточного программного обеспечения робототехники .
Аппаратные системы
[ редактировать ]На сегодняшний день приложения включают в себя:
- Роботизированные руки, например PARA [2] [3]
- Колесные мобильные роботы. например OpenScout [4]
- четвероногие роботы, такие как Open Dynamic Robot Initiative [5]
- БПЛА-квадрокоптеры, такие как Agilicious [6]
- Роботы-гуманоиды, например iCub
- Беспилотные автомобили , например OpenPodcar [7] (→ Персональный скоростной транспорт )
- Лабораторная робототехника, такая как обработка химических жидкостей. [8]
- Рыба-робот , например. OpenFish [9]
- Вертикальное земледелие [10]
- Роевые роботы, например HeRoSwarm [11]
- Домашние задачи: уборка пылесосом , [12] [13] мытье полов [ нужна ссылка ] и автоматическое кошение [ нужна ссылка ] .
- Роботизированный спорт, включая боевых роботов [ нужна ссылка ] и гонки [14]
- Образование [15]
- 3D photogrammetry [16] [ необходимы дополнительные ссылки ]
Подкомпоненты аппаратного обеспечения
[ редактировать ]Большинство определений аппаратного обеспечения с открытым исходным кодом позволяют использовать закрытые подкомпоненты в модульной конструкции , если они легко доступны. Однако многие проекты пытаются свести открытость к как можно большему количеству подкомпонентов с целью в конечном итоге достичь полностью открытых проектов.
Открытые подкомпоненты могут включать в себя вычислительное оборудование с открытым исходным кодом в качестве подкомпонентов, такое как Arduino и RISC-V , а также двигатели и драйверы с открытым исходным кодом, такие как контроллер двигателя с открытым исходным кодом и ODrive .
Роботы с открытым исходным кодом часто используются вместе с промежуточным программным обеспечением робототехники с открытым исходным кодом Robot Operating System и различными симуляторами с открытым исходным кодом, такими как Gazebo , работающими на Linux операционной системе с открытым исходным кодом, и поэтому предназначены для взаимодействия с ними.
Промежуточное ПО
[ редактировать ]Промежуточное программное обеспечение для робототехники — это программное обеспечение, которое связывает вместе несколько других программных компонентов. В робототехнике это, в частности, означает системы связи в реальном времени со стандартизированными протоколами передачи сообщений. Преобладающим промежуточным программным обеспечением с открытым исходным кодом является ROS , операционная система роботов. Другие альтернативы включают YARP, используемый в iCub , URBI и Orca .
Программное обеспечение драйвера
[ редактировать ]Большинству датчиков и приводов роботов требуются программные драйверы. На этом уровне существует небольшая стандартизация программного обеспечения с открытым исходным кодом, поскольку каждое аппаратное устройство отличается. Создание открытых драйверов для закрытого оборудования затруднено, поскольку требует как низкоуровневого программирования , так и обратного проектирования .
Программное обеспечение для моделирования
[ редактировать ]Симуляторы робототехники с открытым исходным кодом включают Gazebo и Webots . Движки 3D-игр с открытым исходным кодом, такие как Godot, также иногда используются в качестве симуляторов, если они оснащены подходящими интерфейсами промежуточного программного обеспечения.
Программное обеспечение для автоматизации
[ редактировать ]На уровне ИИ многие стандартные алгоритмы имеют программные реализации с открытым исходным кодом, в основном в ROS . Основные компоненты включают в себя:
- SLAM, например gmapping
- Планирование мобильных роботов, например move_base
- Обратная кинематика рычага, такая как moveIt.
- системы машинного зрения , такие как детектор объектов YOLO .
Сообщество
[ редактировать ]Первые признаки растущей популярности самостоятельного создания роботов были обнаружены в сообществе DIY . То, что началось с небольших соревнований по дистанционно управляемым транспортным средствам (например, бой роботов ), вскоре переросло в создание автономных роботов телеприсутствия , таких как Спарки , а затем и настоящих роботов (способных самостоятельно принимать решения) в рамках проекта «Открытый автомат». Несколько коммерческих компаний теперь также производят наборы для изготовления простых роботов.
Сообщество приняло лицензии на оборудование с открытым исходным кодом , сертификаты и рецензируемые публикации, которые проверяют, что исходный код был сделан правильно и постоянно доступен в соответствии с определениями сообщества, и которые подтверждают, что это было сделано. Эти процессы стали критически важными из-за того, что многие исторические проекты заявляли о том, что они имеют открытый исходный код, но отказывались от обещаний из-за коммерциализации или другого давления.
Как и в случае с другими формами аппаратного обеспечения с открытым исходным кодом , сообщество продолжает обсуждать точные критерии «простоты сборки». Общепринятым стандартом является то, что студент технического университета должен создать проект за несколько дней с использованием типичных инструментов Falablab , но определения всех этих подтерминов также могут быть обсуждены.
По сравнению с другими формами аппаратного обеспечения с открытым исходным кодом , робототехника с открытым исходным кодом обычно включает в себя большой программный элемент, поэтому в нем участвуют как программисты, так и инженеры по аппаратному обеспечению. Концепции с открытым исходным кодом более укоренены в программном обеспечении с открытым исходным кодом, чем в аппаратном обеспечении, поэтому робототехника — это область, в которой эти концепции могут использоваться совместно и переноситься из программного обеспечения в аппаратное обеспечение.
Сообщество разработчиков программного обеспечения сосредоточено вокруг ROS и ежегодно встречается на конференции RosCon, чтобы обсудить разработку самой ROS и построенных на ее основе компонентов автоматизации.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Гибб, Алисия (2015). Создание оборудования с открытым исходным кодом: производство своими руками для хакеров и производителей . Нью-Йорк: Аддисон-Уэсли. стр. 253–277. ISBN 978-0-321-90604-5 .
- ^ Тай, Альберт; др. и др. (2021). «PARA: роботизированная рука с радиусом действия один метр, полезной нагрузкой два кг, трехстепенной роботизированной рукой с открытым исходным кодом и настраиваемым концевым эффектором» . Аппаратное обеспечениеX . 10 (209): e00209. дои : 10.1016/j.ohx.2021.e00209 . ПМЦ 9123426 . ПМИД 35607683 .
- ^ Мансур, Сара; др. и др. (2014). «Сочлененная роботизированная образовательная платформа с открытым исходным кодом и несколькими степенями свободы для автономного манипулирования объектами» . Робототехника и компьютерно-интегрированное производство . 30 (3): 351–362. дои : 10.1016/j.rcim.2013.11.003 .
- ^ Картер, Сэм; Цагкопулос, Николаос; Клоусон, Гарри; Фокс, Чарльз (2023). «OpenScout: аппаратный мобильный робот с открытым исходным кодом» . Журнал открытого оборудования . 7 (1). дои : 10.5334/joh.54 .
- ^ Гриммингер, Ф; Медури, А; и др. (2020). «Открытая модульная архитектура робота с управлением крутящим моментом для исследования движения ног». Письма IEEE по робототехнике и автоматизации . 5 (2): 3650–3657. arXiv : 1910.00093 . дои : 10.1109/LRA.2020.2976639 . S2CID 203610542 .
- ^ Фен, Филипп; Кауфманн, Элия; Ромеро, Анхель; Пеница, Роберт; Сунь, Сихао; Бауэрсфельд, Леонард; Лэнгл, Томас; Чоффи, Джованни; Сун, Юньлун; Локерсио, Антонио; Скарамуцца, Давиде (22 июня 2022 г.). «Agilicious: гибкий квадрокоптер с открытым исходным кодом и открытым аппаратным обеспечением для полета на основе зрения». Научная робототехника . 7 (67): eabl6259. arXiv : 2307.06100 . doi : 10.1126/scirobotics.abl6259 . ISSN 2470-9476 . ПМИД 35731886 . S2CID 249955269 .
- ^ Камара, Фанта; Уолтем, Крис; Черчилль, Грей; Фокс, Чарльз (2023). «OpenPodcar: средство с открытым исходным кодом для исследования беспилотных автомобилей» . Журнал открытого оборудования . 7 (1). arXiv : 2205.04454 . дои : 10.5334/joh.46 .
- ^ Фаина, Андрес; Неджати, Брайан; Стой, Каспер (2020). «Evobot: Модульный робот с открытым исходным кодом, работающий с жидкостями, для научных экспериментов» . Прикладные науки . 10 (3): 814. дои : 10.3390/app10030814 .
- ^ ван ден Берг, Сандер; Шарфф, Роб; Русак, Золтан; Ву, Цзюнь (2022 г.). «OpenFish: Биомиметический дизайн мягкой роботизированной рыбы для высокоскоростного передвижения» . Аппаратное обеспечение Х. 12 : e00320. arXiv : 2108.12285 . дои : 10.1016/j.ohx.2022.e00320 .
- ^ Вичитвечкарн, Виджа; Фокс, Чарльз (2023). «МАКАРОНС: модульная система автоматизации с открытым исходным кодом для вертикального земледелия» . Журнал открытого оборудования . 7 (1). arXiv : 2210.04975 . дои : 10.5334/joh.53 .
- ^ Старкс, Майкл; и др. (2023). «HeRoSwarm: полнофункциональная аппаратная конструкция миниатюрного робота Swarm с поддержкой ROS с открытым исходным кодом». Международный симпозиум IEEE/SICE по системной интеграции (SII) 2023 г. стр. 1–7. arXiv : 2211.03014 . дои : 10.1109/SII55687.2023.10039174 . ISBN 979-8-3503-9868-7 . S2CID 253384613 .
- ^ «Коммерческий вакуумный робот своими руками» . Журнал «Красный хорек» . 30 октября 2007 года . Проверено 13 сентября 2014 г.
- ^ «Препозиция DIY Roomba на материнской плате Arduino» . Архивировано из оригинала 3 декабря 2010 года . Проверено 13 сентября 2014 г.
- ^ «пятый десятый» .
- ^ Врочиду, Элени; Маниос, Михаил; Папакостас, Джордж А.; Айцидис, Харалабос Н.; Панагиотопулос, Фотис (сентябрь 2018 г.). «Робототехника с открытым исходным кодом: исследование существующих платформ и их применение в образовании». 2018 26-я Международная конференция по программному обеспечению, телекоммуникациям и компьютерным сетям (SoftCOM) . стр. 1–6. дои : 10.23919/SOFTCOM.2018.8555860 . ISBN 978-9-5329-0087-3 . S2CID 54438146 .
- ^ Дженсен, Остин М.; Морган, Дэниел; Чен, ЯнЦюань; Клеменс, Шеннон; Харди, Томас (1 января 2009 г.). «Использование нескольких недорогих беспилотных летательных аппаратов (БПЛА) с открытым исходным кодом для трехмерной фотограмметрии и распределенного измерения ветра». Том 3: Международная конференция ASME/IEEE 2009 по мехатронным и встраиваемым системам и приложениям; 20-я конференция по надежности, стресс-анализу и предотвращению отказов . стр. 629–634. дои : 10.1115/DETC2009-87586 . ISBN 978-0-7918-4900-2 .