Gazebo | Ignition | Community
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

How do you co-boresight sensors?

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?

<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>

How do you co-boresight sensors?

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?

<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>

How do you co-boresight sensors?

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>