Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial Internet of Things >> Tecnología de Internet de las cosas

ROS2 + DDS:Tócalo de nuevo

Las pruebas en el mundo real son necesarias, y a menudo caro:parte de la creación de sistemas distribuidos y autónomos. Las pruebas están diseñadas para someter el sistema a muchos escenarios diferentes y la recopilación de datos en tiempo real puede generar un valor duradero a partir de estas pruebas.

Piense en probar en la carretera un vehículo (semi) autónomo que incluye GPS, cámaras, LiDAR, RADAR, acelerómetros, giroscopios, brújula, velocímetro, señales de control, además de mapas y datos. Eso es * muchos * datos ... y muy caro de obtener. ¿No sería bueno si todos estos datos pudieran registrarse para reproducirlos a pedido, como si se estuviera ejecutando una prueba real? ¿Qué pasaría si pudiera crear una biblioteca digital de cada sesión de prueba y poder modificarla durante la reproducción, creando así escenarios de prueba aún más repetibles?

¿Sabía que la grabación y reproducción de gran ancho de banda / alta capacidad ha estado disponible para los usuarios de DDS durante muchos años con RTI Recording Service? Un caso de uso de ejemplo para el Servicio de grabación RTI sería la grabación continua (24 horas al día, 7 días a la semana) de todos los datos del sistema durante un despliegue de campo extendido, como una prueba en el mar de un barco de la Armada. El ancho de banda y la capacidad de grabación son casi ilimitados debido a la naturaleza distribuida de DDS:se pueden lanzar varias instancias de Recording Service para mantener el ritmo de la avalancha de datos.

El ecosistema ROS tiene su propio servicio de grabación llamado Rosbag, pero al momento de escribir este artículo, Rosbag se había lanzado recientemente para ROS2. Afortunadamente, ROS2 usa DDS como su marco de conectividad subyacente, por lo que debería ser sencillo usar el Servicio de grabación RTI probado en el campo para registrar datos de alto ancho de banda de ROS2 para su reproducción en cualquier momento.

Hagamos que eso suceda ...

Configuración de la grabadora

El servicio de grabación de RTI se puede configurar mediante un archivo XML para registrar todos los temas o temas seleccionados, con cualquier configuración de QoS que se necesite. En este ejemplo, lo configuraré para grabar un tema de ancho de banda moderado (datos LiDAR de ROS2) y luego volver a reproducirlo en ROS2, todo desde un conjunto de herramientas DDS puro.

El servicio de grabación de RTI normalmente deserializa los datos para registrarlos en las columnas de una base de datos convencional. Los datos ROS2 LiDAR tienen una gran cantidad de puntos por muestra, por lo que en este caso le indicaré al registrador que no deserialice los datos y los registre como una sola columna en la base de datos. El resto del archivo XML le dice al registrador qué tema y tipo de datos registrar y dónde almacenar los datos.

Esto está contenido en un archivo XML que he creado, llamado "ros2_record.xml":

  xsi:noNamespaceSchemaLocation ="http://community.rti.com/schema/5.3.1/rti_record.xsd"> 


DataReader y un DataWriter en el dominio especificado con la etiqueta . ->

verdadero
0




ros2_replay_example.dat
true




0
5k elementos en el tema) ->
RTIDDS_DESERIALIZEMODE_NEVER




rt / velodyne_points
*





domain0


ros-rt







dominio0






PointCloud2.xml



falso
sensor_msgs ::msg ::dds _ ::PointCloud2_

sensor_msgs ::msg ::dds _ ::PointCloud2_


rt / puntos_velodyne



2147483647



.







Para iniciar RTI Recording Service usando el archivo XML anterior, utilizo el siguiente comando (ejecutado desde el mismo directorio que el archivo XML anterior):

rtirecord -cfgFile ros2_record.xml -cfgName simple_example

Esto inicia el servicio de grabación que se suscribirá a los datos LiDAR y los grabará continuamente hasta que cierre el programa. El resultado final es un archivo de base de datos SQLite llamado "ros2_replay_example.dat_0_0"

Se añaden números al nombre del archivo para diferenciar entre las sesiones de grabación (el primer número) y qué archivo de base de datos se encuentra en una secuencia (los archivos se limitan automáticamente a un archivo seleccionable por el usuario tamaño; una vez que son demasiado grandes, se cierran y se abre otro archivo para contener el siguiente período de datos. Esto evita que los archivos de la base de datos aumenten demasiado).

Configuración del reproductor

Ahora que he registrado los datos LiDAR de ROS2, veamos si se pueden reproducir en ROS2.

Como se mencionó en artículos de blogs anteriores (Una guía de campo para la interoperabilidad y Cuándo se fusionan los ecosistemas), ROS2 requiere algunas configuraciones para garantizar la compatibilidad. En este ejemplo, se ha suprimido el envío de la información del código de tipo durante el descubrimiento para que sea compatible con la configuración predeterminada de la versión ROS2 "Bouncy Bolson", pero este ajuste también podría realizarse en ROS2 si se ejecuta rmw_connext_cpp como la capa RMW.

Estas configuraciones, junto con el tema, el dominio y la información del archivo, se colocan en otro archivo XML:

  
xsi:noNamespaceSchemaLocation ="http://community.rti.com/schema/5.3.1/rti_replay.xsd">






anotación>
Ejemplo de servicio de reproducción


1
AUTO
5




ros2_replay_example.dat_0_0
falso



0


0
0










PointCloud2.xml



falso
sensor_msgs ::msg ::dds _ ::PointCloud2_

sensor_msgs ::msg ::dds _ ::PointCloud2_

[1] [2] 下一页

Tecnología de Internet de las cosas

  1. Software Open DDS vs.RTI DDS
  2. MQTT y DDS:comunicación de máquina a máquina en IoT
  3. Connext DDS y el IoT industrial:las cinco cosas principales que debe saber
  4. ROS2 + DDS:una guía de campo para la interoperabilidad
  5. La Cuarta Revolución Industrial
  6. Mantener la conformidad de los datos en IoT
  7. ¡¿Qué hago con los datos ?!
  8. Democratizando el IoT
  9. 5 Tendencias en la conectividad
  10. Las 10 mejores plataformas de IIoT
  11. El futuro de los centros de datos