COMO AÑADIR UN SENSOR LIDAR A TU ROBOT EN GAZEBO

Para incorporar un sensor LIDAR a nuestro robot es necesario añadir a su modelo, en el archivo que contiene la información URDF, el siguiente código XML que proporciona la información necesaria a Gazebo. En él se define un nuevo sensor de tipo ray, indicando el link del modelo al que está unido, las características del sensor, el plugin a cargar que en este caso es libgazebo_ros_ray_sensor.so y su configuración.

<gazebo reference="link_${name}">
    <sensor type="ray" name="${name}" >
        <always_on>true</always_on>
        <update_rate>15</update_rate>
      
        <ray>
          <scan>
            <horizontal>
              <samples>640</samples>
              <resolution>1</resolution>
              <min_angle>0.00</min_angle>
              <max_angle>6.28</max_angle>
            </horizontal>
          </scan>
          <range>
            <min>0.2</min>
            <max>30.0</max>
            <resolution>0.05</resolution>
          </range>
          <noise>
            <type>gaussian</type>
            <mean>0.0</mean>
            <stddev>0.02</stddev>
          </noise>
        </ray>
      
        <plugin name="lidar_controller" filename="libgazebo_ros_ray_sensor.so">
          <ros>
            <namespace>my_robot</namespace>
            <remapping>~/out:=scan</remapping>
          </ros>
          <output_type>sensor_msgs/LaserScan</output_type>
          <frame_name>link_${name}</frame_name>
        </plugin>
      
    </sensor>
</gazebo>

Para que funcione también tendremos que proporcionar un valor a la propiedad name, lo que podemos hacer por ejemplo incluyendo la siguiente línea XACRO que le asigna el valor “my_lidar”.

<xacro:property name="name" value="my_lidar" />

O si lo preferimos podemos directamente sustituir en el código ${name} por la cadena de texto que queramos.

El significado de las distintas etiquetas que aparecen en el código XML asociadas a la configuración del sensor LIDAR y del plugin se indica a continuación.

Gazebo lidar parametros
Parámetros del sensor LIDAR
header:
  stamp:
    sec: 2038
    nanosec: 132000000
  frame_id: lidar
angle_min: 0.7850000262260437
angle_max: 2.3550000190734863
angle_increment: 0.004373258911073208
time_increment: 0.0
scan_time: 0.0
range_min: 0.11999999731779099
range_max: 3.5
ranges:
- .inf
- .inf
- .inf
- .inf
- .inf
- .inf
- .inf
- .inf
- .inf
- .inf
- 0.6356969475746155
- 0.6196209788322449
- 0.6120960116386414
- 0.5995888710021973
- 0.5964055061340332
- 0.5879242420196533
- 0.5600863099098206
- 0.5669693946838379
- 0.5543314218521118
- 0.5464122295379639
- '...'
intensities:
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- '...'
---

Una vez incluido el sensor LIDAR en nuestro modelo, si lo mostramos en Gazebo nos debe aparecer, según los nombres que hemos asignado en nuestro código, un nodo /my_robot/lidar_controller y un topic /my_robot/scan.

Comparte este artículo:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *