PyRoki: Библиотека кинематики роботов на Python

МЕНЮ


Главная страница
Поиск
Регистрация на сайте
Помощь проекту
Архив новостей

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


2025-12-14 11:34

роботы новости

PyRoki (Python Robot Kinematics) - это модульный, расширяемый и кроссплатформенный инструментарий (https://github.com/chungmin99/pyroki), заточенный под задачи кинематической оптимизации и реализованный полностью на Python.

Фишка библиотеки - в предоставлении дифференцируемой модели прямой кинематики робота, которая строится на основе URDF-файлов, тем самым избавляя инженера от необходимости вручную прописывать кинематические цепи: система не только парсит описание робота, но и автоматически генерирует примитивы коллизий.

С точки зрения математического аппарата, PyRoki интегрируется с решателем Levenberg-Marquardt (через jaxls). Это дает возможность проводить оптимизацию на многообразиях, а также обрабатывать жесткие ограничения с помощью решателя на основе модифицированной функции Лагранжа.

Библиотека предлагает готовые реализации cost-функций: поза рабочего органа, коллизии с самим собой или объектами мира и метрики манипулируемости.

Если стандартного набора недостаточно, архитектура позволяет задавать свои функции затрат, используя как автоматическое дифференцирование, так и аналитические якобианы.

Благодаря базе JAX, библиотека кроссплатформенна: ее работа возможна на CPU, GPU и TPU.

При внедрении PyRoki в пайплайн важно учитывать специфику JIT-компиляции в JAX.

Компиляция триггерится при первом запуске, а также каждый раз, когда меняются формы входных данных: например, количество целей или препятствий.

Чтобы избежать расходов на перекомпиляцию, рекомендуется использовать предварительный паддинг массивов, что позволяет векторизовать вычисления для входов с различными шейпами.

Также стоит учитывать, что в библиотеке отсутствуют планировщики, основанные на сэмплировании (графы, деревья), поэтому задачи глобального планирования пути придется решать внешними средствами.

Типы поддерживаемых соединений и геометрия ограничены.

На данный момент PyRoki работает исключительно с кинематическими деревьями; замкнутые механизмы или параллельные манипуляторы не поддерживаются.

Список доступных типов джоинтов ограничен 4 позициями: вращательные, непрерывные, призматические и фиксированные. Любые другие типы соединений, встреченные в URDF, будут автоматически интерпретироваться системой как фиксированные.

Для геометрии коллизий набор примитивов также фиксирован: поддерживаются сферы, капсулы, полупространства и карты высот.

Если ваша модель использует сложные меши, коллизии для них будут аппроксимироваться капсулами.

В вопросах производительности, особенно в сценариях с интенсивными проверками коллизий, PyRoki, вероятно, уступает CuRobo, хотя, как говорится в документации - сравнительные тесты скорости и точности авторами пока не проводились.

Лицензирование: MIT License.

Страница проекта (https://pyroki-toolkit.github.io/)

Arxiv (https://arxiv.org/pdf/2505.03728)

Документация (https://chungmin99.github.io/pyroki/)

GitHub (https://github.com/chungmin99/pyroki)


Источник: github.com

Комментарии: