petercorke/robotics-toolbox-python

Robotics Toolbox for Python

Робототехника⭐ 3 497C++последний релиз: v1.4.4
Открыть на GitHub ↗

Что это за инструмент

Robotics Toolbox for Python — это библиотека для моделирования кинематики и динамики роботизированных манипуляторов и мобильных роботов, являющаяся портом известного MATLAB-инструментария.

Зачем нужен

Инструмент позволяет инженерам и исследователям быстро создавать модели роботов (в том числе импортировать URDF), рассчитывать прямую и обратную кинематику, а также планировать траектории. Он полезен для прототипирования алгоритмов управления и обучения, так как предоставляет проверенные реализации классических алгоритмов.

Что можно реализовать

  • Моделирование и симуляция движения промышленных манипуляторов (например, Franka-Emika, Universal Robots) с использованием форм Денавита-Хартенберга.
  • Расчет кинематики в реальном времени: прямая кинематика и якобиан вычисляются менее чем за 1 микросекунду, обратная кинематика — за 4 микросекунды.
  • Планирование путей и локализация для мобильных роботов: реализация алгоритмов D*, PRM, RRT, а также фильтрация Эйлера-Калмана (EKF) и частичных фильтров.
  • Обучение робототехнике: использование понятного исходного кода и интеграция с Jupyter для визуализации и отладки алгоритмов.

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

  • Поддержка более 30 готовых моделей современных и классических роботов, а также импорт URDF-файлов.
  • Высокая производительность вычислений кинематики (менее 1 мкс для прямых задач).
  • Интеграция с Spatial Maths для работы с кватернионами, матрицами SO(n)/SE(n) и пространственными векторами.
  • Наличие опциональных модулей для визуализации (Swift), проверки столкновений (PyBullet) и решателей квадратичного программирования (QP).
  • Полная обратная совместимость с Robotics Toolbox for MATLAB.

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

Релизы

v1.4.4patch
🕐 вчера · релиз на GitHub ↗

Исправления в RNE, кинематике и IK, улучшение работы с URDF и документацией.

  • Fixed: Исправлены критические ошибки в RNE: корректное распределение массы статических звеньев и передача сил.
  • Fixed: Решены проблемы в кинематике: self.tool применяется по умолчанию, исправлено обращение tool transform в ikine_6s.
  • Added: Добавлена опция use_robot_descriptions=True для URDF-роботов Panda с документацией компромиссов.
  • Fixed: Исправлена работа link_collision_damper, сохранение типов суставов в численном IK и другие баги.
  • Обновлена документация: добавлены ссылки на robot_descriptions и уточнены данные по UR10.
v1.4.3patch
🕐 8 дн назад · релиз на GitHub ↗

Исправлена проверка сходимости ИК, обновлены зависимости CI и улучшена документация.

  • Fixed: Добавлена проверка сходимости инверсной кинематики перед шагом решателя.
  • Added: Расширены примеры использования runblock в trchain.
  • Fixed: Обновлены зависимости CI: actions/cache до v6 и cibuildwheel до v4.2.0.
  • Исправлены битые ссылки и удалена информация о WASM из README.
v1.4.2patch
🕐 26 дн назад · релиз на GitHub ↗

Исправлены критические ошибки в кинематике, IK и визуализации, добавлена поддержка компактных q для ETS.

  • Fixed: Исправлен баг fkine_all(), вычислявший неверные позы для звеньев после номинального конца манипулятора.
  • Fixed: Унифицированы типы возвращаемых значений IK-решателей и исправлена документация по inverse kinematics.
  • Fixed: Устранены падения pyplot при сохранении анимации и переопределении скалярных параметров визуализации.
  • Added: Функции fkine, jacob0, jacobe и другие для ETS теперь принимают компактные векторы q.
  • Fixed: Исправлена генерация случайных конфигураций _random_q() при некорректных пределах суставов.
v1.4.1minor
🕐 27 дн назад · релиз на GitHub ↗

Релиз 1.4.1: добавлены новые трансформационные оценщики trchain, исправлены вычисления ускорения и проблемы совместимости с matplotlib и CI.

  • Added: Добавлены новые трансформационные оценщики trchain и trchain2 в модуль ets.
  • Fixed: Исправлено вычисление ускорения (accel_x) с использованием аналитической производной матрицы Якоби.
  • Fixed: Устранены ошибки в графике: теперь используется реестр цветовых карт matplotlib вместо устаревшего метода get_cmap.
  • Fixed: Исправлены два реальных бага, обнаруженных при запуске тестового набора на чистом Python.
  • Fixed: Обновлена конфигурация CI для корректной сборки Pyodide и предотвращения конфликтов в пайплайнах релизов.
v1.4.0major
🕐 29 дн назад · релиз на GitHub ↗

Релиз v1.4.0: замена PyBullet на Coal, интеграция с Robot Descriptions, новые возможности RNE и ETS, а также множество исправлений.

  • Added: Движок коллизий заменен с PyBullet на Coal, а зависимость Spatial Geometry интегрирована как чистый Python.
  • Added: Добавлена поддержка загрузки более 150 URDF-моделей из Robot Descriptions с локальным кэшированием.
  • Added: В метод Robot.rne() добавлены параметры инерции якоря и трения, а также улучшена работа с ETS.
  • Added: Добавлены новые методы: Robot.graph() для визуализации связей, Robot.fkine_geometry() и поддержка teach() в Swift.
  • Fixed: Исправлены ошибки в вычислении якобиана, работе с qlim, порядке массивов и символьном выводе.
v1.3.1patch
🕐 2 мес назад · релиз на GitHub ↗

Выпуск v1.3.1: исправление зависимости rtb-data для предотвращения конфликтов с будущей версией 2.0.

  • Fixed: Зафиксирована версия rtb-data<2 для защиты от ломающих изменений в предстоящем релизе 2.0.
  • Fixed: Исправлена проблема с загрузкой встроенных моделей роботов при установке пакета.
  • Релиз выполнен вручную вне основного цикла, так как ветка main расхождения с в-progress изменениями.