Робототехника с открытым исходным кодом — это отрасль робототехники , где роботы разрабатываются с использованием аппаратного обеспечения с открытым исходным кодом и бесплатного программного обеспечения с открытым исходным кодом , публично обмениваясь чертежами , схемами и исходным кодом . Таким образом, она тесно связана с движением за открытый дизайн , движением создателей [1] и открытой наукой .
Робототехника с открытым исходным кодом означает, что информация об оборудовании легко распознается, так что другие могут легко перестроить его. В свою очередь, это требует, чтобы проектирование использовало только легкодоступные стандартные подкомпоненты и инструменты, а процесс сборки был подробно документирован, включая спецификацию материалов и подробные («стиль Ikea») пошаговые инструкции по сборке и тестированию. (Одного файла CAD недостаточно, так как он не показывает шаги для выполнения или тестирования сборки). Эти требования являются стандартными для оборудования с открытым исходным кодом в целом и формализованы различными лицензиями, сертификациями, особенно теми, которые определены рецензируемыми журналами HardwareX и Journal of Open Hardware .
Требования к лицензированию программного обеспечения такие же, как и для любого программного обеспечения с открытым исходным кодом . Но, кроме того, для того, чтобы программные компоненты имели практическое применение в реальных робототехнических системах, они должны быть совместимы с другим программным обеспечением, как правило, как определено некоторым стандартом сообщества промежуточного программного обеспечения робототехники .
На сегодняшний день заявки включают:
Большинство определений оборудования с открытым исходным кодом позволяют использовать неоткрытые подкомпоненты в модульной конструкции , если они легкодоступны. Однако многие конструкции пытаются протолкнуть открытость в как можно большее количество подкомпонентов, с целью в конечном итоге достичь полностью открытых конструкций.
Открытые аппаратные средства с ручным управлением и их подкомпоненты, например, из Open Source Ecology , часто используются в качестве отправных точек и расширяются за счет систем автоматизации.
Открытые подкомпоненты могут включать в себя вычислительное оборудование с открытым исходным кодом в качестве подкомпонентов, например, Arduino и RISC-V , а также двигатели и драйверы с открытым исходным кодом, такие как Open Source Motor Controller и ODrive.
Роботы с открытым исходным кодом часто используются вместе с операционной системой Robot Operating System с открытым исходным кодом и различными симуляторами с открытым исходным кодом, такими как Gazebo , работающими на операционной системе Linux с открытым исходным кодом, поэтому они предназначены для взаимодействия с ней.
Промежуточное программное обеспечение для робототехники — это программное обеспечение, которое связывает вместе несколько других программных компонентов. В робототехнике это, в частности, означает системы связи в реальном времени со стандартизированными протоколами передачи сообщений. Преобладающим промежуточным программным обеспечением с открытым исходным кодом является ROS2 , операционная система робота, теперь как версия 2. Другие альтернативы включают ROS1, YARP — используется в iCub , URBI и Orca .
Большинству датчиков и приводов роботов требуются программные драйверы. На этом уровне существует небольшая стандартизация программного обеспечения с открытым исходным кодом, поскольку каждое аппаратное устройство отличается. Создание открытых драйверов для закрытого оборудования затруднено, поскольку требует как низкоуровневого программирования , так и обратного проектирования .
Симуляторы робототехники с открытым исходным кодом включают Gazebo , MuJoCo и Webots . Движки 3D-игр с открытым исходным кодом, такие как Godot, также иногда используются в качестве симуляторов, если они оснащены подходящими интерфейсами промежуточного программного обеспечения. [ необходима цитата ]
На уровне ИИ многие стандартные алгоритмы имеют реализации программного обеспечения с открытым исходным кодом, в основном в ROS2 . Основные компоненты включают:
Первые признаки растущей популярности создания и обмена конструкциями роботов были обнаружены в сообществе DIY . То, что началось с небольших соревнований для дистанционно управляемых транспортных средств (например, Robot battle ), вскоре переросло в создание автономных роботов телеприсутствия , таких как Sparky, а затем и настоящих роботов (способных самостоятельно принимать решения) как Open Automaton Project. Несколько коммерческих компаний теперь также производят наборы для создания простых роботов.
Сообщество приняло лицензии на оборудование с открытым исходным кодом , сертификации и рецензируемые публикации, которые проверяют, что исходный код был сделан правильно и постоянно доступен в соответствии с определениями сообщества, и которые подтверждают, что это было сделано. Эти процессы стали критически важными из-за многих исторических проектов, которые заявляли о себе как о проектах с открытым исходным кодом, но затем отказывались от обещания из-за коммерциализации или других давлений.
Как и в случае с другими формами оборудования с открытым исходным кодом , сообщество продолжает обсуждать точные критерии «простоты сборки». Распространенный стандарт заключается в том, что проекты должны быть доступны для сборки студентом технического университета за несколько дней с использованием типичных инструментов fablab , но определения всех этих подтерминов также могут быть предметом споров.
По сравнению с другими формами открытого исходного кода оборудования , робототехника с открытым исходным кодом обычно включает в себя большой программный элемент, поэтому вовлекает как программистов, так и инженеров по оборудованию. Концепции открытого исходного кода более устоялись в открытом исходном коде программного обеспечения , чем в оборудовании, поэтому робототехника является областью, в которой эти концепции могут быть общими и переноситься из программного обеспечения в оборудование.
В то время как сообщество робототехники с открытым исходным кодом многогранно и включает в себя широкий спектр специалистов, значительное подсообщество использует промежуточное программное обеспечение ROS и ежегодно встречается на конференции ROSCon [19] для обсуждения разработки самой ROS и компонентов автоматизации, созданных на ее основе.