4.9 Добавление телескопического туловища к бокс-роботу

Ряд коммерческих роботов, таких как Willow Garage PR2 и UBR1 от компании Unbound Robotics, используют регулируемый по высоте торс, который может двигаться вертикально, чтобы поднять или опустить робота. Это повышает достижимость руки (рук) и позволяет расположить камеру головы на большем диапазоне высоты. Прежде чем стать одним из основателей и главным техническим директором компании Unbound Robotics, Майкл Фергюсон создал уровень хобби Maxwell со специальным линейным приводом, который позволяет одной руке двигаться вертикально. (Голова и туловище фактически остаются на фиксированной высоте).

Относительно просто добавить линейный шарнир к модели туловища нашего робота, чтобы мы могли экспериментировать с регулировкой высоты робота на лету. Чтобы попробовать его с нашим коробчатым роботом, запустите файл запуска:

$ roslaunch rbx2_description box_robot_tele_torso_with_arm.launch

Если RViz все еще не работает:

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

(Если RViz все еще работает с предыдущей сессии, установите флажок рядом с дисплеем RobotModel, чтобы перезагрузить модель).

Обратите внимание, что на панели управления шарнира теперь есть ползунок для туловища. Перемещение этого регулятора позволит регулировать высоту туловища вверх и вниз. URDF, который делает это, можно найти в файле tele_torso.urdf.xacro в каталоге rbx2_description/urdf/box_robot. Ключевым элементом является добавление призматического (линейного) шарнира, который разделяет туловище на верхний и нижний сегменты подобным образом:

<joint name="${name}_joint" type="prismatic">
    <parent link="lower_${name}_link"/>
    <child link="upper_${name}_link"/>
    <axis xyz="0 0 1" />
    <origin xyz="0 0 0.1" rpy="0 0 0"/>
    <limit lower="-0.15" upper="0.15" velocity="0.1" effort="1.0" /> 
</joint>

(ROS использует ключевое слово "призматический" для обозначения линейного соединения.) Мы определяем ось, которая должна быть в положительном направлении z, и определяем начало, которое должно иметь смещение на 10 см (0,1 метра) так, чтобы начальная позиция помещала робота на нейтральную высоту. Затем мы даем суставу 15-сантиметровое смещение, используя нижние и верхние параметры.

Last updated