Repolode
gbionics

gbionics/jaxsim

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

Звёзды
204
Форки
22
Открытые issues
8
Последний коммит
4 дня назад

Что это?

JaxSim — физический движок на Python, построенный поверх JAX и предназначенный для исследователей в области робототехники, которым нужны градиенты через симуляцию. Он использует динамику многотельных систем в редуцированных координатах и поддерживает роботов как с фиксированным, так и с плавающим основанием. Модели можно загружать из SDF; URDF поддерживается через конвертацию с помощью sdformat.

Поскольку динамика дифференцируема по параметрам аппаратуры, одну и ту же симуляцию можно использовать для проектирования и оптимизации на основе градиентов. Функции написаны в функциональном стиле, поэтому их можно компилировать с помощью JIT и векторизовать, а запускать — на CPU, GPU и TPU. Библиотека также предоставляет алгоритмы динамики твёрдого тела: вычисление матрицы масс, сил смещения, гравитационных и кориолисовых членов, а также якобианов систем координат, с автоматическим дифференцированием в прямом и обратном режимах.

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

Ключевые возможности

  • 01Дифференцируемая динамика по параметрам аппаратуры и кинематики.
  • 02Поддержка моделей роботов как с фиксированным, так и с плавающим основанием.
  • 03Загрузка моделей SDF напрямую и URDF через конвертацию с помощью sdformat.
  • 04JIT-компиляция и автоматическая векторизация средствами JAX с запуском на CPU, GPU и TPU.
  • 05Вычисление матрицы масс, сил смещения, гравитационных и кориолисовых членов, а также якобианов систем координат.

Сценарии использования

  • Оптимизация морфологии робота или совместного проектирования аппаратуры на основе градиентов.
  • Эксперименты по обучению роботов, для которых нужен дифференцируемый симулятор локомоции на ногах.
  • Использование алгоритмов динамики твёрдого тела как библиотеки динамики многотельных систем в коде на JAX.

Быстрый старт

  1. 1

    Установите пакет из PyPI с помощью pip в виртуальном окружении

    pip install jaxsim
  2. 2

    Запустите пример симуляции iCub из раздела «Как использовать» (требуется установить icub_models и jax)

Что важно знать

  • Проект всё ещё находится на экспериментальной стадии, поэтому API может меняться между релизами без предупреждения.
  • Поддерживаются только столкновения между телами и гладкими поверхностями земли; основной сценарий — передвижение.
  • Для поддержки URDF необходимо отдельно установить компоненты Gazebo Sim, например sdformat.

В подборках

Темы

#robotics#physics-engine#differentiable-simulation#jax#rigid-body-dynamics#multibody-dynamics#robot-learning#aba#ad#automatic-differentiation

Частые вопросы

Что такое jaxsim?
Дифференцируемый физический движок на JAX для управления роботами, совместного проектирования аппаратуры и обучения роботов. JaxSim — физический движок на Python, построенный поверх JAX и предназначенный для исследователей в области робототехники, которым нужны градиенты через симуляцию. Он использует динамику многотельных систем в редуцированных координатах и поддерживает роботов как с фиксированным, так и с плавающим основанием. Модели можно загружать из SDF; URDF поддерживается через конвертацию с помощью sdformat.
jaxsim можно использовать бесплатно? Какая у него лицензия?
jaxsim распространяется с открытым исходным кодом под лицензией BSD-3-Clause. Перед использованием в коммерческих продуктах проверьте условия лицензии.
jaxsim всё ещё поддерживается?
Активно поддерживается. Последний коммит в jaxsim — 2 нояб. 2026 г..
Для чего можно использовать jaxsim?
Оптимизация морфологии робота или совместного проектирования аппаратуры на основе градиентов. Эксперименты по обучению роботов, для которых нужен дифференцируемый симулятор локомоции на ногах. Использование алгоритмов динамики твёрдого тела как библиотеки динамики многотельных систем в коде на JAX.
Как установить jaxsim?
Установите пакет из PyPI с помощью pip в виртуальном окружении: pip install jaxsim Запустите пример симуляции iCub из раздела «Как использовать» (требуется установить icub_models и jax)
Где скачать jaxsim?
Исходный код и инструкции по установке — на GitHub: https://github.com/gbionics/jaxsim

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Быстрая header-only библиотека C++ с привязками к Python для динамики и кинематики твёрдых тел, а также их аналитических производных, применяемая в робототехнике.

3,9 тыс.+20 за неделю592C++BSD-2-ClauseАктивно поддерживаетсяОбновлён 5 часов назад

Библиотека мультифизического моделирования на C++ для систем из твёрдых и гибких тел, гранулярных сред, взаимодействия жидкости и твёрдых тел, а также транспортных средств и роботов.

3,1 тыс.+8 за неделю655C++BSD-3-ClauseОбновлён 4 часа назад

Физическая библиотека на C++17 с привязками Python для расчёта кинематики, динамики и контактов у сочленённых роботов и анимированных персонажей.

1,2 тыс.+1 за неделю307C++BSD-2-ClauseОбновлён 3 часа назад