Articulo de referencia

OpenRTM-aist

OpenRTM-aist is a software platform developed on the basis of the RT middleware standard. [ 1 ] OpenRTM-aist is developed by National Institute of Advanced Industrial Science an...

OpenRTM-aist is a software platform developed on the basis of the RT middleware standard.[1] OpenRTM-aist is developed by National Institute of Advanced Industrial Science and Technology which also contributes to definition of the RT-middleware standard.

Abstract

In RT middleware, all robotic technological elements, such as actuators and sensors, are regarded as RT-components (RTC). Each RTC provides ports to communicate with other RTCs, and developers can implement their own robotics technology (RT) systems as RTCs. The RT-middleware can thus be considered as a distributed control architecture.[2]

RT-middleware is originally a platform independent model (PIM). Implementations of this model include CORBA, Enterprise JavaBean (EJB), and .NET Framework. OpenRTM-aist is based on the CORBA technology and implements the extended RTC specification. Experiences with OpenRTM-aist will be fed back to the RT-middleware standardization process.

Characteristics

OpenRTM-aist implements some extended RTC features, and it also includes a Manager component to help manipulating RTCs. RTCs in OpenRTM-aist can be implemented using many programming languages, and RTCs programmed in different languages can communicate with each other. A lot of tools to ease RTC manipulations are also released by the National Institute of Advanced Industrial Science and Technology and their co-workers (in a strict sense, OpenRTM-aist itself is a library and does not include these tools).

RT-component

The RT-component is a functional unit which conforms to the RT-component specification defined by OMG. In OpenRTM-aist, RTCs have data ports, service ports, and execution context which controls the RTC's state.

State Machine

In standards of RT-component, RTC must have 4 states such as CREATED, INACTIVE, ACTIVE, and ERROR. When the state changes, corresponding event-handlers are called by the execution context which manages the RTCs' state machine.

For example, "on_activated" callback function is called when the RTC is activated (from INACTIVE to ACTIVE state). In on_activated callback, initialization codes are implemented.

On the other hand, "on_deactivated" callback function is called when the RTC is deactivated (from ACTIVE to INACTIVE state). In this callback, finalization codes are implemented.

"on_execute" is periodically called when the RTC is in ACTIVE state. Here, controlling or some device management (ex., polling) functions are called.

Estas funciones de devolución de llamada son invocadas por el objeto "contexto de ejecución". Si el contexto de ejecución especial está asociado a los RTC, se modifica el método o la política de llamada (véase la sección de contexto de ejecución).

puerto de datos

Un puerto de datos es un punto final para comunicarse con otros RTC. Los puertos de datos tienen diferentes tipos. Los puertos del mismo tipo se pueden conectar entre sí.

En OpenRTM-aist, se implementan tipos de datos primitivos (como "TimedLong", "TimedDouble", etc.). Además, a partir de la versión 1.0 de OpenRTM-aist, se publicaron tipos de datos adicionales que se espera que se utilicen comúnmente en sistemas robóticos como ExtendedDataType (como "TimedVelocity2D", "TimedPose2D", etc.) [ 3 ].

Los desarrolladores pueden definir sus propios tipos de datos describiendo un archivo IDL . Las herramientas pueden analizar el archivo IDL y generar automáticamente el esqueleto y el archivo auxiliar de los tipos de datos originales.

Puerto de servicio

El puerto de servicio permite una comunicación mucho más flexible que los puertos de datos. Los desarrolladores deben definir las interfaces del puerto de servicio mediante sus archivos IDL .

Contextos de ejecución

Los contextos de ejecución gestionan las operaciones de la máquina de estados de los componentes RT. En OpenRTM-aist, se proporcionan varios tipos de contextos de ejecución. Por ejemplo:

  • El contexto de ejecución periódica , uno de los más utilizados, proporciona llamadas periódicas al controlador de eventos "on_execute" (la adquisición de datos del sensor o el control del actuador generalmente se implementan allí);
  • El contexto de ejecución en tiempo real , que utiliza la función de kernel preemptiva de Linux, admite el funcionamiento en tiempo real del RTC; [ 4 ]
  • El contexto de ejecución de disparador adicional es una característica importante de OpenRTM-aist. Proporciona la capacidad de sincronización con simuladores de dinámica como OpenHRP-3 .

Configuración

La configuración es una función que modifica dinámicamente los parámetros de los RTC durante su ejecución. La configuración puede ser numérica o de tipo cadena de caracteres.

Sistemas operativos compatibles

OpenRTM-aist se ejecuta en Windows , Linux y macOS . [ 5 ] Además, VxWorks es compatible experimentalmente. [ 6 ]

Lenguajes de programación compatibles

Dado que OpenRTM-aist se basa en la tecnología CORBA , admite varios lenguajes de programación, entre ellos: C++ , Java , Python y Erlang (no oficial).

Herramientas

Constructor de RTC

Constructor de RTC

RTC Builder es una herramienta para la generación de código base. Se ejecuta en el entorno de desarrollo Eclipse. OpenRTM-aist también es compatible con RTC-template, una herramienta de generación de código base que se ejecuta mediante línea de comandos.

Editor del sistema RT

Editor del sistema RT

RT System Editor es una herramienta para gestionar RTC. RT System Editor ofrece los siguientes servicios:

  • Estados que remiten a los RTC
  • Conexión de los puertos de los RTC
  • Configuración de RTC
  • Activar/desactivar/reiniciar RTC
  • Guardar/restaurar el sistema RT

rtshell

rtshell es una herramienta de línea de comandos que proporciona los siguientes servicios: [ 7 ]

  • Estados que remiten a los RTC
  • Conexión de los puertos de los RTC
  • Configuración de RTC
  • Activar/desactivar/reiniciar RTC
  • Restaurar el sistema RT
  • Salida de registro de DataPorts
  • Reproducir el registro de los puertos de datos

depurador RTC

El depurador RTC es una herramienta de depuración para RTC. El depurador RTC es un complemento de Eclipse. [ 8 ]

Licencia

OpenRTM-aist está licenciado bajo la Licencia Pública General Reducida de GNU (LGPL).

Véase también

Referencias

  1. Sitio web oficial de OpenRTM-aist, http://www.openrtm.org Archivado el 7 de febrero de 2011 en Wayback Machine
  2. Especificación de componentes de tecnología robótica versión 1.0 , Object Management Group (OMG)
  3. "Sitio oficial de OpenRTM-aist: Directrices de interfaz" . Consultado el 23 de abril de 2011 .
  4. Instituto Nacional de Ciencia y Tecnología Industrial Avanzada , comunicado de prensa, Desarrollo de HRP-4, una plataforma de investigación y desarrollo para robots humanoides de trabajo, http://www.aist.go.jp/aist_e/latest_research/2010/20101108/20101108.html Archivado el 30/12/2010 en Wayback Machine
  5. Sitio web oficial de OpenRTM-aist: plataformas compatibles, http://www.openrtm.org/openrtm/en/content/supported-platforms-0
  6. ^ Akihiro Ikezoe, Hiroyuki Nakamoto, Masayuki Nagase, "Plataforma OpenRT/Middleware RT para VxWorks", ROBOMEC2010 [en japonés]
  7. Sitio oficial de OpenRTM-aist: [rtshell http://www.openrtm.org/openrtm/en/content/rtshell-download ]
  8. Sec Co., LTD., [Depurador RTC http://www.sec.co.jp/robot/download_tool.html ]
  • Sitio web oficialEdita esto en Wikidata
  • Proyecto de middleware RT (en japonés)