Descargar PDF - Universidad Central

Anuncio
Second International Conference on Advanced Mechatronics, Design, and Manufacturing Technology - AMDM 2014
1
HERRAMIENTA PARA REALIZAR SOFTWARE-IN-THE-LOOP MEDIANTE ROBOT
OPERATING SYSTEM
Tool to Perform Software-In-the-Loop through Robot Operating System
RESUMEN
En este artículo se expone el uso de Software-in-the-loop (SIL) y Robot
Operating System (ROS) como herramientas para la implementación de
controladores y simulación de plantas en tiempo discreto. Para la validación
experimental se utiliza como planta un levitador magnético, el cual se
modela utilizando el formalismo de Lagrange obteniendo un modelo no
lineal el cual es tratado mediante el uso del jacobiano para obtener una
representación lineal. Este modelo es discretizado mediante una
transformación de Tustin para la posterior implementación del lazo de
control. Se implementa una retroalimentación de variables de estado como
estrategia de control para su validación experimental sobre un sistema
(Raspberry-Pi / fit-PC ; Matlab / PC). Se optó por el uso de ROS ya que se
encuentra disponible para equipos con sistemas operativos basados en linux,
como los utilizados en varios de los sistemas embebidos disponibles en el
mercado com el Fit-PC, Beagle-Board y Raspberry-Pi, ROS ocupa poco
espacio en disco (instalación básica), se hace la programación en C++ lo que
permite un uso más a fondo del hardware. Para las pruebas se
implementaron tres módulos (nodos); “reference_node” el cual se encarga
de solicitar al usuario la posición deseada y transmitirla al siguiente nodo,
“control_node” es el responsable de realizar el control, el cual recibe como
entradas la referencia (posición deseada) y la salida de la planta (posición
actual), y tiene como salida la señal de control (u), finalmente “plant_node”
es el nodo que simula el comportamiento de la planta.
Palabras clave: Robot Operating System, Raspberry-Pi, SIL.
ABSTRACT
This article describes the use of Software-in-the-loop (SIL) and Robot
Operating System (ROS) as tools for controller implementation and
simulation of discrete-time plants is exposed. For the experimental
validation is used as a magnetic levitation plant, which is modeled using the
Lagrange formalism of obtaining a nonlinear model which is treated by
using the Jacobian to obtain a linear representation. This model is
discretized using a Tustin transformation for subsequent implementation of
the control loop. Feedback state variable is implemented as control strategy
for experimental validation on a system (Raspberry-Pi / fit-PC, Matlab /
PC). We chose to use ROS as it is available for computers running
operating systems based on linux, as used in various embedded systems
commercially available com the Fit-PC, Beagle-Board and Raspberry-Pi,
ROS occupies low disk space (basic installation), programming is done in C
++ allowing more thorough use of the hardware. For testing three modules
(node) implemented; "Reference_node" which is responsible for requesting
the user to the desired position and transmit it to the next node,
"control_node" is responsible for carrying out checks, which receives as
inputs the reference (desired position) and the output of the plant (position
current), and which outputs the control signal (u), finally "plant_node" is
the node that simulates the behavior of the plant.
Keywords: Robot Operating System, Raspberry-Pi, SIL.
Fecha de recepción: 23 de septiembre de 2014
Fecha de aceptación: 2 de octubre de 2014
CRHISTIAN SEGURA GÓMEZ
Ingeniero Mecatrónico, M. Sc.
Profesor Catedra
Universidad Militar Nueva Granada
crhistian.segura@unimilitar.edu.co
JUAN CAMILO HERNÁNDEZ
Ingeniero Mecatrónico, M. Sc.
Asistente de Investigación
Universidad Militar Nueva Granada
juankmilo8405@gmail.com
ÓSCAR FERNANDO AVILÉS
Ingeniero Electrónico, Ph.D.
Profesor Tiempo Completo
Universidad Militar Nueva Granada
oscar.aviles@unimilitar.edu.co
MAURICIO MAULEDOUX
Ingeniero en Mecatrónica, Ph.D.
Profesor Tiempo Completo
Universidad Militar Nueva Granada
mauricio.mauledoux@unimilitar.edu.co
2
Second International Conference on Advanced Mechatronics, Design, and Manufacturing Technology - AMDM 2014
1. INTRODUCCIÓN
En este artículo se expone el uso de Software-in-the-loop
(SIL) y Robot Operating System (ROS) como
herramientas para la implementación de controladores y
simulación de plantas en tiempo discreto, SIL ha sido
usado para implementacion de distintos modelos como se
observa en [1,2,3,4]. Para la validación experimental se
utiliza como planta un levitador magnético, el cual se
modela utilizando el formalismo de Lagrange y
obteniendo un modelo no lineal el cual es tratado
mediante el uso del jacobiano para obtener una
representación lineal [5].
Este modelo es discretizado mediante una transformación
de Tustin para la posterior implementación del lazo de
control. Se implementa una retroalimentación de
variables de estado como estrategia de control para su
validación experimental sobre un sistema (Raspberry-Pi /
fit-PC ; Matlab / PC). Se optó por el uso de ROS ya que
se encuentra disponible para equipos con sistemas
operativos basados en linux, como los utilizados en
varios de los sistemas embebidos disponibles en el
mercado com el Fit-PC, Beagle-Board y Raspberry-Pi.
ROS ocupa poco espacio en disco (instalación básica), se
hace la programación en C++ lo que permite un uso más
a fondo del hardware, ejemplos de esto se encuentran
descritos en [6, 7, 8].
controlador PID. La planta fue utilizada para probar el
modelamiento del levitador magnético, ver figura. 1,
donde m es la masa de la esfera, g la constante
gravitacional, R la resistencia del embobinado y L la
inductancia del mismo.
Figura 1. Modelo físico.
Se realizó un modelado matemático del sistema mediante
la segunda ley de Newton y la Ley de Kirchhoff, con el
fin de obtener las ecuaciones diferenciales, ver ecuación
(1) las que permiten representen el comportamiento del
sistema.
(
)
(1)
Para las pruebas se implementaron tres módulos (nodos);
“reference_node” el cual se encarga de solicitar al
usuario la posición deseada y transmitirla al siguiente
nodo. “control_node” es el responsable de realizar el
control, el cual recibe como entradas la referencia
(posición deseada) y la salida de la planta (posición
actual), y tiene como salida la señal de control (u).
Finalmente “plant_node” es el nodo que simula el
comportamiento de la planta.
2. DESARROLLO DEL PROBLEMA
A lo largo de estas secciones se presenta la linealización
y discretización de un levitador magnético, junto con la
implementación de un controlador de realimentación de
variables de estados, todo esto embebido en un sistema
embebido, y programado con la herramienta ROS [9, 10].
Como se puede evidenciar el modelo matemático es no
lineal, con el fin de implementar métodos de control
lineales hay que eliminar los componentes de la ecuación
que sean no-lineales, ver ecuación. (2). De esta forma es
posible implementar estas ecuaciones dentro de un
sistema digital para realizar las simulaciones. El término
que se agrega al modelo no lineal hace referencia a la
posición deseada de la esfera( ). Para todo el proceso de
simulación los valores utilizados para cada elemento son:
masa (m=0.1Kg), gravedad (g=9.8m/s^2), resistencia del
embobinado (R=1Ω), inductancia de la bobina (L=0.01H)
y fuerza contra electromotriz (c=1V).
̇
̇
√
2.1 Modelado del sistema
A continuación se pretende explicar el procedimiento
utilizado para obtener un modelo linealizado digital que
sea funcional en un lazo de control en tiempo discreto
para realizar la comparación de dos métodos de control
como son la realimentación por variables de estado y un
(2)
̇
Se cambió la representación a variables de estado para
poder realizar los cálculos de forma matricial como se
explica en [11, 12], quedando un sistema en espacio de
Second International Conference on Advanced Mechatronics, Design, and Manufacturing Technology - AMDM 20142
estados de la forma ̇
,
en la
ecuación. (3, 4) se encuentra el modelo del levitador en
este formalismo. En la figura 2 se encuentra el modelo de
la planta en Matlab utilizando las matrices A, B, C, D,
como se observa en la figura 3 al aplicar una entrada
escalón de 10cm al sistema linealizado.
̇
̇
[ ]
̇
√
[
[
]
[ ]
(3)
]
Figura 4. Diagrama de polos y ceros del levitador.
Luego de conocer la cantidad y la posición de polos se
procede a verificar que el sistema sea observable y
controlable, lo que se realiza mediante el cálculo de los
determinantes de las matrices de observabilidad y
controlabilidad, ver ecuación (5), de ahí se tiene que
ambos son diferentes de cero, con esto es posible
implementar un controlador y un observador para obtener
la salida deseada.
Figura 2. Sistema linealizado.
[
]
[
(5)
]
2.2 Retro de estado
Figura 3. Respuesta frente a entrada escalón 10cm.
Para poder implementar un controlador se deben conocer
las características de la planta, como puede ser la
ubicación de polos y ceros del sistema, estos se pueden
obtener calculando el polinomio característico
y despejando las raíces, ver ecuación (4). En la figura
4 se encuentra el diagrama de polos y ceros donde se
observa un polo ubicado en el semiplano derecho que
hace al sistema inestable.
Para el control por retroalimentación de variables de
estado se utilizó el modelo en espacio de estados como se
propone en [5], pero debido a que la salida del sistema
solo permite medir de manera directa uno de los estados,
se planteó el uso de un observador que permitiera obtener
los demás estados, para obtener los valores del
controlador (K) y del observador (L) que se
implementaron, se utilizó el método de Ackerman. Se
escogieron como parámetros de diseño un cita de 0.7 y
un ts de 0.5s, el sistema completo se observa en la figura
5, y las constantes del control en la ecuación (6), en la
figura 6 se observa la respuesta del sistema controlado.
(4)
Figura 5. Modelo controlado por una realimentación de
variables de estado.
Second
International Conference on Advanced Mechatronics, Design, and Manufacturing Technology - AMDM 2014
3
[
]
(6)
Figura 6. Respuesta del sistema realimentado frente a entrada
escalón de 10 cm.
3 ROS
Para la realización de las pruebas del software in the loop
se implementaron varios nodos, y la información que
comparten se llama topics, en la figura 7 se encuentra la
arquitectura desarrollada en ROS, los nodos son ref_node
que se encarga de pedir al usuario la referencia deseada y
la transmite mediante el topic “/ref” al ctrl_node que
recibe adicionalmente /sal y /obs, internamente realiza el
cálculo del error y genera la señal de control a través el
topic /ctrl. El planta_node tiene implementada la
ecuación en diferencias que genera la salida del sistema
frente a la entrada presentada, pero dado que por la
matriz C solo sale un estado, es necesario implementar un
observador para estimar los otros dos estados que
requiere el método de realimentación por espacio de
estados, esto se realiza en obs_node.
computadores en la misma red, de tal forma que apunten
a la IP del equipo que lanzo el roscore. Se puede
evidenciar que los demás nodos están al mismo nivel
jerárquico por lo tanto se pueden iniciar en cualquier
orden.
Figura 8. Nodos y su jerarquía en ROS.
En la figuras 9, 10, 11 y 12 se encuentran los diagramas
de secuencia de cada uno de los nodos en donde los
bloques indican acciones, y las flechas muestran el
sentido que sigue el programa. También se evidencia
quién publica (emite) los mensajes y cuál nodo es el
encargado de recibirlos para poder desarrollar las
operaciones pertinentes.
Figura 9. Diagrama de secuencia del nodo referencia.
Figura 7. Arquitectura de módulos en ROS.
Las ecuaciones del observador se encuentran en (7)
donde A, B y C son las matrices del sistema,
es la
matriz de ganancias del observador, ̃ y ̃ son las
variables estimadas y la salida estimada respectivamente.
̃
̃
̃
̃
̃
(7)
En la figura 8 se observa la jerarquía de los programas en
ROS, de ahí se puede ver que primero es necesario iniciar
el nodo roscore, el cual se encarga de coordinarlos a
todos y también crea un servidor, esto permite que los
demás nodos puedan ser lanzados desde otros
Figura 10. Diagrama de secuencia del nodo planta.
Second International Conference on Advanced Mechatronics, Design, and Manufacturing Technology - AMDM 20144
ROS tiene implementada la comunicación entre “Nodos”
que facilita la implementación de múltiples programas ya
que se pueden usar los protocolos establecidos por
defecto o implementar los propios; además, almacena la
información transferida permitiendo para el caso de
controles y sistemas discretos ver “muestras” o eventos
del pasado para la implementación de las ecuaciones en
diferencias.
5. BIBLIOGRAFÍA
Figura 11 Diagrama de secuencia del nodo de control.
[1] M.
ubera,
onsa,
llera, Exergetic
evaluation of solar controller using Software-In-TheLoop method, ScienceDirect ELSEVIER 850-857,
2014Demers, S.; Gopalakrishnan, P.; Kant, L., "A
Generic Solution to Software-in-the-Loop," Military
Communications Conference, 2007. MILCOM 2007.
IEEE , vol., no., pp.1,6, 29-31 Oct. 2007.
[2] Hassani, K.; Won-Sook Lee, A software-in-the-loop
simulation of an intelligent microsatellite within a
virtual environment, Computational Intelligence and
Virtual Environments for Measurement Systems and
Applications (CIVEMSA), 2013 IEEE International
Conference on , vol., no., pp.31,36, 15-17 July 2013.
[3] G. Vandia, N. Cavinaa, E. Cortia, G. Mancinia, D.
Moroa, F. Pontia, V. Ravagliolia ,Development of a
software in the loop environment for automotive
powertrain systems, 789 – 798, 2014.
[4] Muresan, M.; Pitica, D., Software in the Loop
environment reliability for testing embedded code,
Design and Technology in Electronic Packaging
(SIITME), 2012 IEEE 18th International Symposium
for , vol., no., pp.325,328, 25-28 Oct. 2012.
[5] F. Grognarda, R. Sepulchreb, G. Bastina, Global
stabilization
of
feedforward
systems
with
exponentially unstable Jacobian linearization, 107–
115.
Figura 12. Diagrama de secuencia del nodo del observador.
4. CONCLUSIONES
El uso de ROS como herramienta de simulación de
sistemas, mediante la técnica de SIL, permite validar
controladores diseñados en discreto dentro de un lazo de
control, de este modo se pueden probar las plantas en
ambientes de trabajo críticos sin arriesgar maquinaria,
equipos o vidas.
El uso de sistemas embebidos, con sistemas operativos
que tienen un bajo consumo de recursos, tiene como
ventaja que los algoritmos implementados se ejecuten de
forma eficiente, para el caso de la herramienta ROS
permite que se puedan asegurar tiempos de generación de
señales, y de este modo se puede obtener una buena
representación en discreto de las señales continuas.
[6] I. Mayachita, R. Widyarini, H. R. Sono, A. R.
Ibrahim, W. Adiprawita Implementation of
Entertaining
Robot
on
ROS
Framework
ScienceDirect ELSEVIER 380-387, 2011.
[7] André Araújoa, David Portugala,*, Micael S.
Couceiroa,b, Jorge Salesc y Rui P. Rochaa,
Desarrollo de un robot móvil compacto integrado en
el middleware ROS, 315–326, 2014.
[8] Fetter Lages, Walter; Ioris, Darlan; Santini, Diego
Caberlon, An Architecture for Controlling the Barrett
WAM Robot Using ROS and OROCOS, ISR/Robotik
2014; 41st International Symposium on Robotics;
Proceedings of , vol., no., pp.1,8, 2-3 June 2014.
[9] DeMarco, K.; West, M.E.; Collins, T.R., An
implementation of ROS on the Yellowfin autonomous
underwater vehicle (AUV), OCEANS 2011 , vol., no.,
pp.1,7, 19-22 Sept. 2011.
[10] Speers, A; Forooshani, P.M.; Dicke, M.; Jenkin, M.,
Lightweight tablet devices for command and control
of ROS-enabled robots, Advanced Robotics (ICAR),
2013 16th International Conference on , vol., no.,
pp.1,6, 25-29 Nov. 2013.
Second
International Conference on Advanced Mechatronics, Design, and Manufacturing Technology - AMDM 2014
5
[11] K. Ogata, Ingenieria de Control Moderna, Prentice
Hall; 3rd edition edition (March 1999)
[12] S. Ramirez Control de Sistemas No Lineales,
Prentice Hall; (Mayo 2004).
Descargar