Робототехника и компьютерное зрение на Python без платных лицензий MATLAB

05 Aug, 2026

Репозиторий давно не обновлялся

Последнее обновление было 1 год назад.

730
🔱 159
👥 14

Почему робототехники долго сидели на MATLAB

Если вы учились или работали в сфере робототехники лет пять–десять назад, то наверняка помните Robotics Toolbox для MATLAB. Питер Корк создал его еще в девяностых годах. Долгое время эта библиотека оставалась стандартом для академической среды и инженерных лабораторий. Захотели построить матрицу пространственного трансформа, нарисовать траекторию манипулятора или посчитать инверсную кинематику — сразу открывали MATLAB.

Главная проблема этого подхода очевидна: стоимость лицензий. К тому же встроить код из MATLAB в современный продакшн-пайплайн бывает той еще задачей. Несколько лет назад автор полностью переписал свои инструменты на Python, а в 2023 году выпустил третью редакцию книги Robotics, Vision & Control вместе с открытым репозиторием RVC3-python.

Что входит в комплект

В репозитории собраны примеры и единая обертка для четырех профильных библиотек:

  • Robotics Toolbox отвечает за кинематику, динамику и траектории манипуляторов.
  • Machine Vision Toolbox решает задачи обработки изображений, поиска ключевых точек и стереозрения.
  • Spatial Maths Toolbox берет на себя математику трехмерных преобразований, кватернионы и группы Ли SE(3)/SO(3).
  • BDSim помогает симулировать динамические системы и структурные схемы.

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

Быстрый старт через интерактивную консоль

Разработчики сделали удобную CLI-утилиту rvctool. Она разворачивает сессию IPython, где заранее импортированы все необходимые модули, математические функции и готовые модели популярного железа.

Установка занимает одну команду:

pip install rvc3python

Затем запускаем рабочую среду:

rvctool

Консоль работает с оглядкой на синтаксический опыт MATLAB. Если в конце строки не поставить точку с запятой, результат выражения сразу выводится в терминал. При этом вам доступен обычный Python со всеми удобствами.

Кинематика манипулятора в несколько строк

Попробуем задать модель промышленного робота Franka Emika Panda, посчитать положение его фланца и решить обратную задачу кинематики.

panda = models.ETS.Panda()
T = panda.fkine(panda.qz)
sol = panda.ikine_LM(SE3.Trans(0.4, 0.5, 0.2) * SE3.Ry(np.pi/2))

Метод fkine считает прямую кинематику и дает матрицу жесткого перемещения SE3. Метод ikine_LM ищет углы сочленений через алгоритм Левенберга — Маркварда.

Если вызвать метод panda.teach(panda.qz), откроется графическое окно, где можно двигать ползунки суставов и наблюдать за изменением поз робота.

Модель робота Panda

Обработка изображений и компьютерное зрение

Для базовых задач компьютерного зрения не требуется подключать громоздкие внешние фреймворки. Например, сопоставление ключевых точек SIFT на двух кадрах выглядит так:

sf1 = Image.Read("eiffel-1.png", mono=True).SIFT()
sf2 = Image.Read("eiffel-2.png", mono=True).SIFT()
matches = sf1.match(sf2)
matches.subset(100).plot("w")

Под капотом используются проверенные NumPy и SciPy. Если вам понадобятся примеры глубокого обучения из 11-й главы книги (например, нейросетевая сегментация), PyTorch подтягивается отдельным флажком:

pip install rvc3python[pytorch]

Сопоставление фич SIFT

Симуляция систем управления

Отдельного упоминания заслуживает пакет bdsim. Это попытка сделать аналог Simulink без громоздкой среды разработки.

Схемы блоков создаются прямо в Python-коде или собираются визуально через графический редактор bdedit. Данные сохраняются в обычные JSON-файлы с расширением .bd. В репозиторий уже зашито 25 готовых учебных моделей из книги, которые можно запустить напрямую из rvctool.

О чем нужно помнить перед запускaми

Перед началом работы стоит взять на заметку три момента:

  1. Требуется Python версии не ниже 3.8 из-за активного использования аннотаций типов.
  2. На чипах Apple Silicon (M1/M2/M3) бывают нюансы с отрисовкой через Open3D. В вики проекта есть отдельная страница с вариантами решения.
  3. В Jupyter Notebook и Google Colab код работает, но сложная 3D-анимация может подтормаживать из-за специфики передачи кадров в веб-интерфейс.

Кому пригодится этот репозиторий

Если вы преподаете робототехнику, пишите диплом, исследуете алгоритмы навигации или хотите быстро проверить гипотезу без разворачивания тяжелых среды типа ROS 2, RVC3-python сэкономит кучу времени. Проект избавляет от необходимости писать собственные обертки для матриц трансформаций и дает готовую базу для прототипирования.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.