Управление роботом-манипулятором требует решения прямой и/или обратной задач кинематики, т.е. определение положения рабочего инструмента при заданных параметрах суставов, либо вычисление углов/смещений по осям для обеспечения желаемых координат и ориентации инструмента. В общем случае, это нетривиальная задача. К счастью, фреймворк MoveIt! в системе ROS берёт эти расчёты на себя. Документацию по его использованию можно найти на официальном сайте. В этом посте я попытаюсь применить MoveIt! к разработанной ранее модели робота.
воскресенье, 11 ноября 2018 г.
воскресенье, 26 августа 2018 г.
URDF. Запуск в Gazebo
Gazebo - это симулятор механических систем, и прежде всего роботов. Он позволяет учесть не только геометрию модели, но также и её динамику. Это бесплатная программа с открытым исходным кодом. Gazebo не является частью ROS, но глубоко интегрирован с этой системой, и обычно входит в full desctop версию. Когда-нибудь я напишу об этой программе подробнее, пока же достаточно знать, что она есть.
вторник, 26 июня 2018 г.
YAML. Формат представления данных
Описание параметров в ROS будет неполным без упоминания языка разметки для преставления этих самых параметров. Если в простейшем случае значение можно описать с помощью одного числа, и ничего дополнительного придумывать не нужно, то для списка величин уже потребуются некоторые правила разметки. Тут и возникает потребность в чём-то вроде YAML.
понедельник, 11 июня 2018 г.
URDF. Язык описания роботов
Для описания роботов в ROS используется язык URDF (Universal Robotic Description Format), который является, по сути, диалектом XML. Данный язык представляет робота как совокупность звеньев (link), сочленений (joint), сенсоров и ряда вспомогательных параметров. Для подробного ознакомления с данным форматом могут быть полезны ресурсы: руководство, спецификация элеметов.
Описание звена в общем виде может быть представлено следующим образом. Блок visual содержит видимую модель робота, т.е. описывает его геометрию и свойства поверхности. Геометрия может быть задана как простейшими формами (цилиндр, параллелепипед), так и сеткой, полученной в CAD-системе. Блок collision описывает ту модель, которая будет использована при выявлении столкновений с другими объектами. Чаще всего эта часть совпадает с описанием блока visible, но может и отличаться. Например, для ускорения расчётов сложный профиль поверхности может быть аппроксимирован каким-либо примитивом. В блоке inertial содержатся физические свойства звена, такие как масса или инерция.
среда, 3 января 2018 г.
ROS. Сервисы процессов
Среди рассмотренных способов взаимодействия объектов в ROS топики ориентированы на одностороннюю связь, а сервисы хоть и рассчитаны на общение типа "вопрос - ответ", но предполагают мгновенное исполнение команды. Если же процесс требует времени, придётся ждать, пока он не завершится.
Для того, чтобы работать с протяжёнными во времени процессами (типа вращения звеньев манипулятора) в ROS предусмотрен специальный тип сервиса - action. Он также имеет клиент-сервисную архитектуру, но при этом клиент имеет возможность отслеживать текущее состояние процесса, а также прерывать его, если необходимо.
Подписаться на:
Сообщения (Atom)