How do you co-boresight sensors?

asked 2016-10-17 16:04:05 -0600

sebudge gravatar image

updated 2016-10-18 08:49:20 -0600

I have tried to co-boresight two sensors using the SDF below. When I visualize it in the Gazebo GUI, it appears that there is an offset between the center of projection of the camera and the center of projection of the ray sensor. In addition, the FOV of the camera and the angle range of the ray sensor do not seem to match. What am I doing wrong?

It seems that the two important questions are first, where is the point about which the pose frame is defined, i.e., is the pose defined at the center of projection (COP) or is it defined somewhere else (for both the ray and camera sensors)? Second, are the fields of view of sensors represented correctly in the visualization in the GUI?

<model name='box'>
  <pose frame=''>0 0 0 0 0 0</pose>
  <link name='link'>
    <sensor name='camera' type='camera'>
      <pose frame=''>0 0 0 0 0 0</pose>
      <camera name='__default__'>
        <horizontal_fov>0.7</horizontal_fov>
        <image>
          <width>2048</width>
          <height>2048</height>
        </image>
        <clip>
          <near>0.1</near>
          <far>500</far>
        </clip>
      </camera>
      <always_on>1</always_on>
      <update_rate>5</update_rate>
      <visualize>1</visualize>
    </sensor>
    <sensor name='laser' type='ray'>
      <pose frame=''>0 0 0 0 0 0</pose>
      <ray>
        <scan>
          <horizontal>
            <samples>300</samples>
            <resolution>1</resolution>
            <min_angle>-0.35</min_angle>
            <max_angle>0.35</max_angle>
          </horizontal>
          <vertical>
            <samples>1</samples>
            <min_angle>0</min_angle>
            <max_angle>0</max_angle>
          </vertical>
        </scan>
        <range>
          <min>0.08</min>
          <max>500</max>
          <resolution>0.01</resolution>
        </range>
      </ray>
      <always_on>1</always_on>
      <update_rate>5</update_rate>
      <visualize>1</visualize>
    </sensor>
    <self_collide>0</self_collide>
    <inertial>
      <inertia>
        <ixx>1</ixx>
        <ixy>0</ixy>
        <ixz>0</ixz>
        <iyy>1</iyy>
        <iyz>0</iyz>
        <izz>1</izz>
      </inertia>
      <mass>1</mass>
    </inertial>
    <kinematic>0</kinematic>
    <gravity>1</gravity>
  </link>
  <plugin name='push_animate' filename='libanimated_box.so'/>
</model>
edit retag flag offensive close merge delete