4.8.2 Моделирование руки

Создание URDF/Xacro для руки похоже на то, что мы уже сделали для панорамной наклонной головки. Единственная реальная разница заключается в том, что у нас больше стыков и кронштейн прикреплен к другому месту на туловище. Чтобы увидеть результат для однорукого Box Robot, запустите следующий файл запуска:

$ roslaunch rbx2_description box_robot_with_arm.launch

If RViz is not still running:

$ rosrun rviz rviz -d `rospack find rbx2_description`/urdf.rviz

Если RViz все еще работает, установите флажок Robot Display, чтобы обновить модель. Совместный графический интерфейс теперь должен выглядеть следующим образом:

И вид в RViz должен выглядеть примерно так:

Здесь мы расположили шарниры руки, а также захват с помощью ползунка управления в состоянии сустава GUI. Чтобы сэкономить место, мы не будем перечислять все файлы URDF/Xacro для руки. Определения суставов практически такие же, как и в случае с наклонно-поворотной головкой, покрытой ранее. Ключевые файлы следующие:

  • файл запуска box_robot_with_arm.launch загружает файл Xacro box_robot_with_arm.xacro из подкаталога urdf/box_robot

  • файл box_robot_with_arm.xacro, в свою очередь, включает Xacro-файлы для базы, туловища, головы поворота, руки и захвата

  • сама рука определяется в файле box_arm.urdf.xacro

  • захват определяется в файле box_gripper.urdf.xacro

В файле box_robot_with_arm.xacro мы прикрепляем руку к туловищу, а также захват к руке со следующими двумя кодовыми блоками:

<!-- Attach the right arm -->
<arm side="right" reflect="-1" parent="torso" color="White">
    <origin xyz="${arm_offset_x} ${arm_offset_y} ${arm_offset_z}" rpy="0 0 $ 
{PI/2}" />
    </arm>

<!-- Attach the right gripper -->
<gripper side="right" reflect="-1" parent="right_arm_gripper_attach" 
color="Green">
    <origin xyz="0 0 0" rpy="0 0 0" /> 
</gripper>

Ключевыми параметрами, которые следует отметить здесь, являются сторона и параметры отражения. Для правой руки мы устанавливаем параметр стороны на "right", а параметр отражения - на "-1". Эти параметры затем передаются в макросы в макросе box_arm.urdf.xacro для присвоения каждому соединению уникального имени (например, right_arm_shoulder_pan_joint против left_arm_shoulder_pan_joint) и (опционально) отражения любых смещений справа налево. (Как оказалось, наши текущие модели не требуют параметра отражения, но лучше знать об этом в случае, если он необходим для другой модели). Как мы увидим в следующем разделе, добавление второго рукава можно сделать, используя тот же файл box_arm.urdf.xacro с параметрами side="left" и reflect="1".

Не забудьте проверить вращения шарниров плеч с помощью метода, описанного в разделе 4.7.3. Если вы обнаружили, что определенный шарнир вращается в неправильном направлении, просто измените знак компонента оси в файле URDF/Xacro плеча.

Last updated