В прошлой части можно посмотреть про основные моменты экспорта / импорта моделей с помощью файлов URDF. Следующий шаг - импорт простого робота с четырьмя звеньями.
Для простоты составления URDF начало координат каждого звена этого робота находится в точке сочленения с родительским звеном. Так как их координаты совпадают, то при описании элементов link необходимо только правильно задать углы ориентации.
Модель я рисовал в SolidWorks, далее через STEP импортировал сборку в FreeCad. Если экспортировать в dae или stl тела прямо из сборки FreeCad, то они будут привязаны к началу координат сборки и для того, чтобы все оказалось на своих местах, приходится рассчитывать положение каждого звена относительно СК сборки. Чтобы этого не делать, можно разбить сборку на детали и расположить в них тела таким образом, чтобы их СК оказались в точках сочленений с родительским звеном после чего можно без проблем экспортировать в dae. Так выглядят модели звеньев робота, готовые к экспорту.
Модели экспортируются в папку meshes пакета urdf_test.
Для импорта робота в ROS папке urdf я создал файл robot_test.urdf:
Описание звеньев link в нем включает только блок visual, в котором указана ссылка на модель и задано положение модели относительно СК звена, определенного в описании сочленений joint. При этом у всех звеньев начала координат моделей совпадают с началом координат звеньев (origin xyz="0 0 0"), а поворот задан так, чтобы робот принял вертикальную стойку.
Сочленения joint имеют тип revolute - вращение вокруг оси в заданных пределах, они указываются в параметре limit. Не очень удобно то, что углы задаются в радианах, но уже как есть ...
Для запуска этого файла на визуализацию можно использовать несколько модифициронанный по сравнению с прошлым постом display.launch-файл:
Он запускается командой:
# roslaunch urdf_test display.launch
Результат ее выполнения должен выглядеть так:
Одновременно с Rviz запускается GUI пакета joint_state_publisher (спасибо исходному пакету urdf_tutorial). Так что звенья можно подвигать.
Робот импортирован - теперь нужно научиться управлять им с помощью контроллера PS3. Но это уже тема следующих постов.
Спасибо за внимание. Let`s go design!
Комментарии
Отправить комментарий