订阅在Gazebosimulated世界中sdf模型的childlink

2024-09-27 02:19:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我有巴克斯特机器人(baxtersdkurdf)和操纵杆模型(简单的SDK文件)在Gazebo中模拟。需要记录的是操纵杆俯仰和滚动的位置,它们显示在露台上。在

(我无法在Gazebo中记录世界日志,因为baxtersdk使用Gazebo版本2,而这个特性在那里不起作用)。在

操纵杆的sdf如下所示:

<?xml version="1.0" ?>
<sdf version='1.4'>
  <model name='joystick'>
    <link name='joystick_base'>
      <pose>0 0 0 0 -0 0</pose>
      <inertial>
        <pose>0 0 0.75 0 -0 0</pose>
        <mass>0.01</mass>
        <inertia>
          <ixx>0.0001</ixx>
          <ixy>0</ixy>
          <ixz>0</ixz>
          <iyy>0.0001</iyy>
          <iyz>0</iyz>
          <izz>0.0001</izz>
        </inertia>
      </inertial>
      <collision name='joystick_base_collision'>
        <pose>0 -0 0.77 0 -0 0</pose>
        <geometry>
          <box>
            <size>0.07 0.07 0.04</size>
          </box>
        </geometry>
      </collision>
      <visual name='joystick_base_visual'>
        <pose>0 -0 0.775 0 -0 0</pose>
        <geometry>
          <box>
            <size>0.07 0.07 0.05</size>
          </box>
        </geometry>
      </visual>
      <velocity_decay>
        <linear>0</linear>
        <angular>0</angular>
      </velocity_decay>
    </link>
    <link name='link_roll'>
      <pose>0 0 0.05 0 -0 0</pose>
      <inertial>
        <pose>0 -0 0.75 0 -0 0</pose>
        <mass>0.01</mass>
        <inertia>
          <ixx>0.0002</ixx>
          <ixy>0</ixy>
          <ixz>0</ixz>
          <iyy>0.0002</iyy>
          <iyz>0</iyz>
          <izz>0.0002</izz>
        </inertia>
      </inertial>
      <velocity_decay>
        <linear>0</linear>
        <angular>0</angular>
      </velocity_decay>
    </link>
    <joint name='joint_roll' type='revolute'>
      <child>link_roll</child>
      <parent>joystick_base</parent>
      <axis>
        <xyz>0 1 0</xyz>
        <limit>
          <lower>-1.2</lower>
          <upper>1.2</upper>
          <effort>15</effort>
          <velocity>4</velocity>
        </limit>
        <dynamics>
          <damping>0.7</damping>
        </dynamics>
      </axis>
    </joint>
    <link name='joystick'>
      <pose>0 0 0.05 0 -0 0</pose>
      <inertial>
        <pose>0 -0 0.75 0 -0 0</pose>
        <mass>0.01</mass>
        <inertia>
          <ixx>0.0002</ixx>
          <ixy>0</ixy>
          <ixz>0</ixz>
          <iyy>0.0002</iyy>
          <iyz>0</iyz>
          <izz>0.0002</izz>
        </inertia>
      </inertial>
      <collision name='joystick_collision'>
        <pose>0 -0 0.835 0 -0 0</pose>
        <geometry>
          <cylinder>
            <length>0.17</length>
            <radius>0.01</radius>
          </cylinder>
        </geometry>
      </collision>
      <visual name='joystick_visual'>
        <pose>0 -0 0.835 0 -0 0</pose>
        <geometry>
          <cylinder>
            <length>0.17</length>
            <radius>0.01</radius>
          </cylinder>
        </geometry>
      </visual>
      <velocity_decay>
        <linear>0</linear>
        <angular>0</angular>
      </velocity_decay>
    </link>
    <joint name='joint_pitch' type='revolute'>
      <child>joystick</child>
      <parent>link_roll</parent>
      <axis>
        <xyz>1 0 0</xyz>
        <limit>
          <lower>-1.2</lower>
          <upper>1.2</upper>
          <effort>15</effort>
          <velocity>4</velocity>
        </limit>
        <dynamics>
          <damping>0.7</damping>
        </dynamics>
      </axis>
    </joint>
  </model>
</sdf>

我想订阅'joint_pitch'和{}来接收它们的值,例如:

^{pr2}$

有什么办法让它真正起作用吗?在


Tags: namelinkmassgeometryposevelocityjointjoystick

热门问题