4.6.1 Моделирование лазерного сканера

Коробочно-цилиндровую модель лазерного сканера Hokuyo можно найти в файле laser.urdf.xacro под rbx2_description/urdf/sensors. Модель довольно проста, поэтому мы не будем перечислять ее здесь. Файл box_robot_with_laser.xacro показывает, как присоединить лазер к базе:

<?xml version="1.0"?> <robot name="box_robot">
<!-- Define a number of dimensions using properties --> <property name="laser_offset_x" value="0.123" /> <property name="laser_offset_y" value="0.0" /> <property name="laser_offset_z" value="0.08" />
<!-- Include all component files -->
<xacro:include filename="$(find rbx2_description)/urdf/materials.urdf.xacro" />
          <xacro:include filename="$(find
rbx2_description)/urdf/box_robot/base.urdf.xacro" />
          <xacro:include filename="$(find
rbx2_description)/urdf/sensors/laser.urdf.xacro" />

<!-- Add the base and wheels --> 
<base name="base" color="Black"/>

<!-- Add the laser -->
<laser parent="base" color="DarkGrey">
          <origin xyx="${laser_offset_x} ${laser_offset_y} ${laser_offset_z}" rpy="0 
0 0 " />
   </laser>
</robot>

Чтобы посмотреть, как это выглядит в RViz, завершите все текущие запусковые файлы URDF и запустите:

$ roslaunch rbx2_description box_robot_base_with_laser.launch

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

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

На изображении выше мы установили флажок Show Axes для ссылки base_laser. Это позволяет нам видеть, что базовая лазерная рама расположена в середине верхнего цилиндра, и что оси ориентированы в том же направлении, что и основание. (Помните, что красная ось находится в направлении x и мы хотим, чтобы она была направлена вперед).

Таким же образом можно добавить и другие датчики. Например, если на роботе установлен гидролокатор Ping(TM), вы можете смоделировать его как одиночный цилиндр, а затем прикрепить эту модель к основанию так же, как мы сделали это для лазерного сканера.

Last updated