Gazebo - это симулятор механических систем, и прежде всего роботов. Он позволяет учесть не только геометрию модели, но также и её динамику. Это бесплатная программа с открытым исходным кодом. Gazebo не является частью ROS, но глубоко интегрирован с этой системой, и обычно входит в full desctop версию. Когда-нибудь я напишу об этой программе подробнее, пока же достаточно знать, что она есть.
воскресенье, 26 августа 2018 г.
вторник, 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. Он также имеет клиент-сервисную архитектуру, но при этом клиент имеет возможность отслеживать текущее состояние процесса, а также прерывать его, если необходимо.
воскресенье, 1 октября 2017 г.
Xacro. Макросы
XML хорош тем, что позволяет описать почти всё, что угодно. В ROS он используется для описания роботов (URDF, SDF), и чем больше робот, тем больше текста содержит файл, который и создавать бывает не просто, а изменять параметры ещё сложнее. Xacro (XML Macros) является языком макрорасширений для работы с XML. Он позволяет определять как отдельные параметры, так и целые блоки, которые будут преобразованы в текст и вставлены в заданном месте. Если вы знакомы с макросами в C/C++, с Xmacro тоже легко разберётесь.
среда, 9 августа 2017 г.
ROS. Запись сессии
Если вы хотите сохранить все сообщения, которыми обмениваются ноды во время работы, воспользуйтесь командой rosbag. Она не только позволяет записать сообщения, но также повторно воспроизвести их, т.е. вы можете сохранить сессию, а затем заново её "прокрутить".
четверг, 3 августа 2017 г.
ROS. Сервисы
Наряду с нодами, ROS предоставляет ещё один тип программ, называемый сервисами. Их главное отличие заключается в способе общения. Если нода посылает сообщение на топик и не заботится о том, получил ли его кто-нибудь, то при обращении к сервису нужно указать конкретно, к какому именно. Кроме того, сервис возвращает своему клиенту ответ, так что связь оказывается двусторонней и направленной. Как следует из названия, данный тип программ введён для выполнения вспомогательных действий и оказания услуг. Если провести аналогию с вокзалом, топик - это информационное табло отправления/прибытия поездов (оператор публикует актуальную информацию, пассажир идёт в нужное время на требуемый путь), а сервисом будет являться покупка билета или обращение в справочное окно.
Подписаться на:
Сообщения (Atom)