<element name="lidar" required="0">
  <description>These elements are specific to the lidar sensor.</description>

  <element name="scan" required="1">
    <description></description>
    <element name="horizontal" required="1">
      <description></description>

      <element name="samples" type="unsigned int" default="640" required="1">
        <description>The number of simulated lidar rays to generate per complete laser sweep cycle.</description>
      </element>

      <element name="resolution" type="double" default="1" required="1">
        <description>This number is multiplied by samples to determine the number of range data points returned. If resolution is less than one, range data is interpolated. If resolution is greater than one, range data is averaged.</description>
      </element>

      <element name="min_angle" type="double" default="0" required="1">
        <description></description>
      </element>

      <element name="max_angle" type="double" default="0" required="1">
        <description>Must be greater or equal to min_angle</description>
      </element>

    </element> <!-- End Horizontal -->

    <element name="vertical" required="0">
      <description></description>
      <element name="samples" type="unsigned int" default="1" required="1">
        <description>The number of simulated lidar rays to generate per complete laser sweep cycle.</description>
      </element>

      <element name="resolution" type="double" default="1" required="0">
        <description>This number is multiplied by samples to determine the number of range data points returned. If resolution is less than one, range data is interpolated. If resolution is greater than one, range data is averaged.</description>
      </element>

      <element name="min_angle" type="double" default="0" required="1">
        <description></description>
      </element>

      <element name="max_angle" type="double" default="0" required="1">
        <description>Must be greater or equal to min_angle</description>
      </element>

    </element> <!-- End Vertical -->
  </element> <!-- End Scan -->

  <element name="range" required="1">
    <description>specifies range properties of each simulated lidar</description>
    <element name="min" type="double" default="0" required="1">
      <description>The minimum distance for each lidar ray.</description>
    </element>
    <element name="max" type="double" default="0" required="1">
      <description>The maximum distance for each lidar ray.</description>
    </element>
    <element name="resolution" type="double" default="0" required="0">
      <description>Linear resolution of each lidar ray.</description>
    </element>
  </element> <!-- End Range -->

  <element name="noise" required="0">
    <description>The properties of the noise model that should be applied to generated scans</description>
    <element name="type" type="string" default="gaussian" required="1">
      <description>The type of noise.  Currently supported types are: "gaussian" (draw noise values independently for each beam from a Gaussian distribution).</description>
    </element>
    <element name="mean" type="double" default="0.0" required="0">
      <description>For type "gaussian," the mean of the Gaussian distribution from which noise values are drawn.</description>
    </element>
    <element name="stddev" type="double" default="0.0" required="0">
      <description>For type "gaussian," the standard deviation of the Gaussian distribution from which noise values are drawn.</description>
    </element>
  </element> <!-- End Noise -->
</element> <!-- End Lidar -->
