Robotics System Toolbox предоставляет готовые алгоритмы для разработки летающих, наземных, промышленных и гуманоидных роботов, а также возможности по подключению к оборудованию. Включены алгоритмы для планирования и следования траектории, построения карт, SLAM, оценки состояния и другие. Для манипуляторов имеются алгоритмы обратной кинематики с учетом ограничений и обратной динамики твердых тел.
Тулбокс также позволяет работать из MATLAB и Simulink с Robot Operating System (ROS), что позволяет тестировать и верифицировать алгоритмы непосредственно на роботах или в симуляторах вроде Gazebo. Имеются примеры по работе с виртуальными роботами в Gazebo и с реальными ROS-роботами.
Robotics System Toolbox поддерживает генерацию С++ кода, что позволяет создавать узлы ROS непосредственно из Simulink-моделей и автоматически разворачивать их в сети ROS. Поддерживается Simulink External Mode, поэтому вы можете наблюдать сигналы и изменять параметры через Simulink прямо на роботе во время выполнения алгоритма.
Алгоритмы для построения карт, планирования и следования траектории, оценки состояния
Локализация робота и одновременное построение карты (SLAM) с помощью лидара
Алгоритмы кинематики и динамики твердых тел
Двусторонняя связь с роботами, работающими под управлением ROS
Импорт данных формата rosbag, извлечение сообщений, преобразование координат
Интерфейс для работы с Gazebo и другими ROS-симуляторами
Генерация узлов ROS из моделей Simulink (с Simulink Coder)
В робототехнике для определения местоположения робота, положения его датчиков и других объектов используется большое количество систем координат. В общем случае положение объекта в пространстве описывается через его координаты и углы ориентации.
Robotics System Toolbox поддерживает распространенные в робототехнике способы описания местоположения и позволяет переходить между ними. Работайте с поворотами вокруг оси (axis-angle), углами Эйлера, матрицами однородных преобразований, кватернионами, матрицами перехода, векторами трансляции и не только.
Robotics System Toolbox предоставляет интерфейс для связи между MATLAB и Simulink и Robot Operating System (ROS). Благодаря ему вы можете подключится к сети ROS, работать со стандартными и специализированными ROS-сообщениями, обмениваться данными с издателями и подписчиками, работать с сервисами и сервером параметров ROS, импортировать файлы rosbag, получаете доступ к дереву трансформаций из пакета ROS tf.
Вы можете получать данные с датчиков любого робота на ROS или из симулятора напрямую в MATLAB для визуализации, исследования, идентификации или калибровки. Также вы можете посылать команды на исполнительные элементы робота и исследовать его возможности и ограничения. Например, вы можете получать данные с дальномера робота Husky для проверки его диапазона и точности. Или можете считывать изображения напрямую с камеры робота Baxter для выполнения её калибровки с помощью Computer Vision Toolbox. Также вы можете, например, отправлять команды на моторы робота TurtleBot для исследования его поведения на различных поверхностях.
Robotics System Toolbox предоставляет алгоритмы для мобильных роботов и наземных транспортных средств. Вы можете создавать карты окружения, сетку препятствий, выполнять одновременную локализацию и картографию (SLAM), планировать траекторию в известном окружении, настраивать контроллеры для следования через заданные точки. Выполняйте также объезд препятствий, оценку состояния и локализацию на основе данных с датчиков.
Тулбокс позволяет взаимодействовать с симуляторами на ROS. Например, вы можете считывать из виртуального окружения свойства моделей и симуляции, добавлять, изменять и удалять объекты, прикладывать силы и моменты и тестировать автономность робота непосредственно из MATLAB. Если симулятора у вас нет, тулбокс предоставляет образ виртуальной машины, который вы можете использовать для тестирования ваших алгоритмов. Загрузите образ с Ubuntu, ROS и симулятором Gazebo.
Robotics System Toolbox поддерживает рабочие процессы, связанные с сочлененными роботами. Вы можете задать модель вашего робота, состоящую из твердых тел и сочленений. Такое представление робота включает в себя также кинематические ограничения и динамические характеристики. С помощью этой модели вы можете выполнять вычисления обратной кинематики и динамики. Если у вас есть описание робота в формате URDF, вы можете импортировать модель робота из него.
Robotics System Toolbox поддерживает работу с ROS из Simulink, что позволяет создавать модели, которые взаимодействуют с сетью ROS, посылая и принимая сообщения. Вы можете тестировать ваши алгоритмы с данными из “живой” ROS-сети, а затем генерировать из них C++ код или независимые ROS-узлы, работающие в любой системе Ubuntu. Сгенерированные узлы ROS не требуют MATLAB для работы.
Когда вы готовы тестировать алгоритмы на настоящем роботе с ROS, вы можете использовать те же алгоритмы, которые вы разработали и протестировали с помощью симуляции. С минимальными изменениями в коде или в модели вы можете подключить реального робота вместо симулятора. При подключении к роботу с ROS вы можете интерактивно изменять и настраивать алгоритмы в MATLAB и сразу же наблюдать результат на роботе.
Поскольку один и тот же код MATLAB используется для работы и с симулятором и с реальным роботом, преподаватели робототехники могут обучать основам предмета с использованием виртуальной среды (например, TurtleBot в Gazebo) перед переходом к реальному роботу. Студенты могут тестировать алгоритмы в симуляторе на своих компьютерах в любимой операционной системе. Затем они смогут перенести алгоритм на реального робота с минимальными изменениями в коде, которые не затрагивают сам алгоритм. Такой подход снимает физические ограничения на использование ограниченного количества роботов большим числом студентов, потому что каждый может создать и протестировать алгоритм в виртуальной среде.
Если вы хотите верифицировать и валидировать работу ваших алгоритмов, вы можете импортировать лог-файлы ROS в MATLAB для анализа и визуализации. Robotics System Toolbox позволяет импортировать данные в формате rosbag и получать информацию об их содержимом. Вы можете считывать подмножества сообщений по времени и темам из bag-файлов. И наконец, вы можете извлекать временные ряды из одного или нескольких сообщений и использовать их для дальнейшей обработки.
С Robotics System Toolbox вы получаете доступ к функционалу ROS из Windows, Mac OS X и Ubuntu Linux. Вы можете создавать ROS-мастеры в MATLAB или подключаться к внешнему мастеру, работающему на роботе или в симуляторе. Для настройки симулятора вы можете использовать настроенную виртуальную машину с Ubuntu, ROS и симулятором Gazebo.
Кроме того, тулбокс позволяет подключаться к нескольким ROS-мастерам для управления несколькими роботами. Например, вы можете подключится к роботам Hasky и TurtleBot для организации наружного и внутреннего наблюдения одновременно. Или вы можете подключится к нескольким роботом Baxter, каждый из которых является ROS-мастером, для их совместного выполнения задач.