Управление и моделирование нескольких роботов склада
Управление и моделирование нескольких роботов склада

Robotics System Toolbox предоставляет готовые алгоритмы для разработки летающих, наземных, промышленных и гуманоидных роботов, а также возможности по подключению к оборудованию. Включены алгоритмы для планирования и следования траектории, построения карт, SLAM, оценки состояния и другие. Для манипуляторов имеются алгоритмы обратной кинематики с учетом ограничений и обратной динамики твердых тел.

Тулбокс также позволяет работать из MATLAB и Simulink с Robot Operating System (ROS), что позволяет тестировать и верифицировать алгоритмы непосредственно на роботах или в симуляторах вроде Gazebo. Имеются примеры по работе с виртуальными роботами в Gazebo и с реальными ROS-роботами.

Robotics System Toolbox поддерживает генерацию С++ кода, что позволяет создавать узлы ROS непосредственно из Simulink-моделей и автоматически разворачивать их в сети ROS. Поддерживается Simulink External Mode, поэтому вы можете наблюдать сигналы и изменять параметры через Simulink прямо на роботе во время выполнения алгоритма.

Управление и моделирование нескольких роботов склада Управление и моделирование нескольких роботов склада

Ключевые особенности

Разработка робототехники на базе ROS
Разработка робототехники на базе ROS
  • Алгоритмы для построения карт, планирования и следования траектории, оценки состояния

  • Локализация робота и одновременное построение карты (SLAM) с помощью лидара

  • Алгоритмы кинематики и динамики твердых тел

  • Двусторонняя связь с роботами, работающими под управлением ROS

  • Импорт данных формата rosbag, извлечение сообщений, преобразование координат

  • Интерфейс для работы с Gazebo и другими ROS-симуляторами

  • Генерация узлов ROS из моделей SimulinkSimulink Coder)

Разработка робототехники на базе ROS Разработка робототехники на базе ROS

Преобразование систем координат

Преобразования координат в робототехнике
Преобразования координат в робототехнике
Преобразования координат в робототехнике
Преобразования координат в робототехнике

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

Robotics System Toolbox поддерживает распространенные в робототехнике способы описания местоположения и позволяет переходить между ними. Работайте с поворотами вокруг оси (axis-angle), углами Эйлера, матрицами однородных преобразований, кватернионами, матрицами перехода, векторами трансляции и не только.

Robot Operating System (ROS)

Подключение к сети ROS
Подключение к сети ROS

Robotics System Toolbox предоставляет интерфейс для связи между MATLAB и Simulink и Robot Operating System (ROS). Благодаря ему вы можете подключится к сети ROS, работать со стандартными и специализированными ROS-сообщениями, обмениваться данными с издателями и подписчиками, работать с сервисами и сервером параметров ROS, импортировать файлы rosbag, получаете доступ к дереву трансформаций из пакета ROS tf.

Вы можете получать данные с датчиков любого робота на ROS или из симулятора напрямую в MATLAB для визуализации, исследования, идентификации или калибровки. Также вы можете посылать команды на исполнительные элементы робота и исследовать его возможности и ограничения. Например, вы можете получать данные с дальномера робота Husky для проверки его диапазона и точности. Или можете считывать изображения напрямую с камеры робота Baxter для выполнения её калибровки с помощью Computer Vision Toolbox. Также вы можете, например, отправлять команды на моторы робота TurtleBot для исследования его поведения на различных поверхностях.

Подключение к сети ROS
Подключение к сети ROS

Алгоритмы наземных роботов

Одновременная локализация и построение карты (SLAM) с лазерным дальномером
Одновременная локализация и построение карты (SLAM) с лазерным дальномером
Одновременная локализация и построение карты (SLAM) с лазерным дальномером
Одновременная локализация и построение карты (SLAM) с лазерным дальномером

Robotics System Toolbox предоставляет алгоритмы для мобильных роботов и наземных транспортных средств. Вы можете создавать карты окружения, сетку препятствий, выполнять одновременную локализацию и картографию (SLAM), планировать траекторию в известном окружении, настраивать контроллеры для следования через заданные точки. Выполняйте также объезд препятствий, оценку состояния и локализацию на основе данных с датчиков.

Тулбокс позволяет взаимодействовать с симуляторами на ROS. Например, вы можете считывать из виртуального окружения свойства моделей и симуляции, добавлять, изменять и удалять объекты, прикладывать силы и моменты и тестировать автономность робота непосредственно из MATLAB. Если симулятора у вас нет, тулбокс предоставляет образ виртуальной машины, который вы можете использовать для тестирования ваших алгоритмов. Загрузите образ с Ubuntu, ROS и симулятором Gazebo.

Алгоритмы манипуляторов

Управление движением руки робота PR2 через обратную кинематику
Управление движением руки робота PR2 через обратную кинематику

Robotics System Toolbox поддерживает рабочие процессы, связанные с сочлененными роботами. Вы можете задать модель вашего робота, состоящую из твердых тел и сочленений. Такое представление робота включает в себя также кинематические ограничения и динамические характеристики. С помощью этой модели вы можете выполнять вычисления обратной кинематики и динамики. Если у вас есть описание робота в формате URDF, вы можете импортировать модель робота из него.

Управление движением руки робота PR2 через обратную кинематику Управление движением руки робота PR2 через обратную кинематику

Генерация кода

Генерация независимого узла ROS из Simulink
Генерация независимого узла ROS из Simulink
Генерация независимого узла ROS из Simulink
Генерация независимого узла ROS из Simulink

Robotics System Toolbox поддерживает работу с ROS из Simulink, что позволяет создавать модели, которые взаимодействуют с сетью ROS, посылая и принимая сообщения. Вы можете тестировать ваши алгоритмы с данными из “живой” ROS-сети, а затем генерировать из них C++ код или независимые ROS-узлы, работающие в любой системе Ubuntu. Сгенерированные узлы ROS не требуют MATLAB для работы.

Реализация алгоритмов на поддерживаемом оборудовании

Отслеживание объекта
Отслеживание объекта

Когда вы готовы тестировать алгоритмы на настоящем роботе с ROS, вы можете использовать те же алгоритмы, которые вы разработали и протестировали с помощью симуляции. С минимальными изменениями в коде или в модели вы можете подключить реального робота вместо симулятора. При подключении к роботу с ROS вы можете интерактивно изменять и настраивать алгоритмы в MATLAB и сразу же наблюдать результат на роботе.

Поскольку один и тот же код MATLAB используется для работы и с симулятором и с реальным роботом, преподаватели робототехники могут обучать основам предмета с использованием виртуальной среды (например, TurtleBot в Gazebo) перед переходом к реальному роботу. Студенты могут тестировать алгоритмы в симуляторе на своих компьютерах в любимой операционной системе. Затем они смогут перенести алгоритм на реального робота с минимальными изменениями в коде, которые не затрагивают сам алгоритм. Такой подход снимает физические ограничения на использование ограниченного количества роботов большим числом студентов, потому что каждый может создать и протестировать алгоритм в виртуальной среде.

Отслеживание объекта
Отслеживание объекта

Импорт и анализ логов

Работа с лог-файлами rosbag
Работа с лог-файлами rosbag
Работа с лог-файлами rosbag
Работа с лог-файлами rosbag

Если вы хотите верифицировать и валидировать работу ваших алгоритмов, вы можете импортировать лог-файлы ROS в MATLAB для анализа и визуализации. Robotics System Toolbox позволяет импортировать данные в формате rosbag и получать информацию об их содержимом. Вы можете считывать подмножества сообщений по времени и темам из bag-файлов. И наконец, вы можете извлекать временные ряды из одного или нескольких сообщений и использовать их для дальнейшей обработки.

Мультиплатформенная поддержка нескольких мастеров ROS

Подключение к мастеру ROS
Подключение к мастеру ROS


С Robotics System Toolbox вы получаете доступ к функционалу ROS из Windows, Mac OS X и Ubuntu Linux. Вы можете создавать ROS-мастеры в MATLAB или подключаться к внешнему мастеру, работающему на роботе или в симуляторе. Для настройки симулятора вы можете использовать настроенную виртуальную машину с Ubuntu, ROS и симулятором Gazebo.

Кроме того, тулбокс позволяет подключаться к нескольким ROS-мастерам для управления несколькими роботами. Например, вы можете подключится к роботам Hasky и TurtleBot для организации наружного и внутреннего наблюдения одновременно. Или вы можете подключится к нескольким роботом Baxter, каждый из которых является ROS-мастером, для их совместного выполнения задач.


Подключение к мастеру ROS Подключение к мастеру ROS