[Jderobot] Problemas al ejecutar diversos componentes de la rama stable
franciscomiguel.rivas en urjc.es
franciscomiguel.rivas en urjc.es
Mar Oct 29 13:31:51 CET 2013
Buenas,
no está la instalación de openni + nite 1.... estoy instalando un pc
con ubuntu 13.04 x64, ahora voy a instalar justo eso así que lo meto
en el manual.
En cuanto lo tenga te aviso para que hagas las pruebas.
un saludo,
Fran.
"Juan Navarro Bosgos" <jnbosgos en gmail.com> escribió:
> ¿Cómo se ejecutan las demos? He estado mirándolo en el manual [1] y por el
> código pero no lo encuentro.
>
> [1] http://jderobot.org/Manual-5
>
>
> El 29 de octubre de 2013 11:23, <franciscomiguel.rivas en urjc.es> escribió:
>
>> Buenas,
>> te funcionan las demos de openni1?
>>
>>
>> un saludo,>> Fran.
>>
>>
>> "Juan Navarro Bosgos" <jnbosgos en gmail.com> escribió:
>>
>> Hola Fran,
>>>
>>> gracia por responder; pero solo tengo conectado un kinect, y directamente
>>> a
>>> uno de los 3 puertos del portátil, y en otro un ratón y el último libre;
>>> por eso no entendía que podía estar pasando. Por probar si era cosa del
>>> puerto utilizado, he conectado el kinect en los otros 2 puertos, sin tener
>>> nada más conectado, y sigo con los mismos resultados.
>>>
>>> Un saludo,
>>> Juan
>>>
>>>
>>> El 29 de octubre de 2013 09:15, <franciscomiguel.rivas en urjc.es**>
>>> escribió:
>>>
>>> Buenas,
>>>> los warnings de openniServer tanto del 1 como del 2, son sólo warnings
>>>> y te dicen que no se están consiguiendo cumplir las demandas que se
>>>> han metido por configuración, es decir, que no se consigue adquirir a
>>>> los fps que se hayan fijado.
>>>>
>>>> El WaitAnyUpdateAll() es porque no se consigue acceder a los datos del
>>>> kinect, es necesario que cada kinect esté conectado a un bus usb y si
>>>> puede ser sólo para él mucho mejor, no se si tienes conectado algún
>>>> dispositivo que genere mucho tráfico en el mismo bus o incluso dos
>>>> kinects.
>>>>
>>>> un saludo,
>>>> Fran.
>>>>
>>>>
>>>>
>>>> "Juan Navarro Bosgos" <jnbosgos en gmail.com> escribió:
>>>>
>>>> > Hola,
>>>> >
>>>> > revisando esta incidencia que comenté, he observado algunos cambios:
>>>> >
>>>> > cameraserver ya no me lanza una "Violación de segmento", pero al
>>>> ejecutarlo
>>>> > se me cierra ofreciendo la siguiente salida:
>>>> >
>>>> > jnbosgos en teleko:~/pfc/**jderobot/trunk/src/stable/**
>>>> components/cameraserver$
>>>> > ./cameraserver --Ice.Config=cameraserver.cfg
>>>> > Constructor CameraI -> CameraSrv.Camera.0.
>>>> > URI: 0
>>>> > jnbosgos en teleko:~/pfc/**jderobot/trunk/src/stable/**
>>>> components/cameraserver$
>>>> >
>>>> >
>>>> > revisando el código de cameraserver.cpp he observado que el problema
>>>> > parecía ser que la condición de la línea 101 de dicha clase:
>>>> > "if(cap.isOpened())" devolvía cero; para comprobarlo he impreso el
>>>> estado
>>>> > por pantalla antes de que entrase a la condición y tras sus asignación
>>>> en
>>>> > las líneas 96 a 99, mediante "std::cout << "cap.isOpened: " <<
>>>> > cap.isOpened() << std::endl;", obteniendo:
>>>> >
>>>> > cap.isOpened: 0
>>>> >
>>>> >
>>>> > el fichero de configuración utilizado es el que está en el repositorio;
>>>> en
>>>> > el portátil que lo ejecuto hay una webcam integrada, y en versiones
>>>> > anteriores de jderobot el componente me funcionaba utilizando como Uri
>>>> > '/dev/video0' (si utilizo dicha uri ahora me salta la Violación de
>>>> > segmento), se supone que el '0' que aparece en el fichero de
>>>> configuración
>>>> > hace referencia a dicha ruta; entonces no sé cómo solucionarlo para que
>>>> > abra el capturador de video y no se termine la ejecución.
>>>> >
>>>> >
>>>> > Luego con respecto a openniServer, como utilizo Kinect como sensor
>>>> RGBD,
>>>> no
>>>> > me podía funcionar ya que OpenNI2 no lo soporta; así que debía utilizar
>>>> > openni1Server. Utilizando un kinect real, openni1Server lo detecta pero
>>>> se
>>>> > produce un fallo por TimeOut mientras espera datos nuevos, y la mayoría
>>>> de
>>>> > las veces termina la ejecución inesperadamente con una Violación de
>>>> > segmento, otras pocas se queda ejecutando pero lanzando avisos de
>>>> timeouts
>>>> > de las distintas cámaras:
>>>> >
>>>> > Sin violación de segmento:
>>>> >
>>>> > jnbosgos en teleko
>>>> :~/pfc/jderobot/trunk/src/**stable/components/**openni1Server$
>>>> > ./openni1Server --Ice.Config=openni1Server.cfg
>>>> > -! 10/28/13 17:29:17.519 warning: found unknown properties for object
>>>> > adapter `openni1Server':
>>>> > openni1Server.CameraDEPTH
>>>> > openni1Server.CameraDEPTH.**Format
>>>> > openni1Server.CameraDEPTH.Name
>>>> > openni1Server.CameraDEPTH.fps
>>>> > openni1Server.CameraRGB
>>>> > openni1Server.CameraRGB.Format
>>>> > openni1Server.CameraRGB.Name
>>>> > openni1Server.CameraRGB.fps
>>>> > openni1Server.Fps
>>>> > openni1Server.Height
>>>> > openni1Server.KinectLedsActive
>>>> > openni1Server.NCameras
>>>> > openni1Server.PlayerDetection
>>>> > openni1Server.**Pose3DMotorsActive
>>>> > openni1Server.Width
>>>> > openni1Server.calibration
>>>> > openni1Server.deviceId
>>>> > openni1Server.pointCloud.Fps
>>>> > openni1Server.pointCloudActive
>>>> > Selected device: 0
>>>> > NCAMERAS = 2
>>>> > Found device: vendor PrimeSense name SensorKinect
>>>> > Number of detected devices: 1
>>>> > [Device 0] PrimeSense, SensorKinect, serial=A00365905701052A
>>>> > Creating camera cameraA
>>>> > openni1Server.CameraRGB.**PlayerDetection
>>>> > Starting thread for camera: cameraA
>>>> > -------- openni1Server: Component: CameraRGB created
>>>> > successfully --------
>>>> > Creating camera cameraB
>>>> > Starting thread for camera: cameraB
>>>> > -------- openni1Server: Component: CameraDEPTH created
>>>> > successfully --------
>>>> > Creating pointcloud1 pointcloud1
>>>> > -------- openni1Server: Component: PointCloud created
>>>> > successfully --------
>>>> > CREADO
>>>> > FPS: 10
>>>> > ------------------------------**------------------------
>>>> > Camera
>>>> >
>>>> > Position: (X,Y,Z,H)=(1895.0,4983.0,857.**0,1.0)
>>>> > Focus of Attention: (x,y,z,h)=(4633.0,642.0,1088.**0,1.0)
>>>> >
>>>> > Focus DistanceX(vertical): 515.0 mm
>>>> > Focus DistanceY(horizontal): 515.0 mm
>>>> > Skew: 0.00000
>>>> > Optical Center: (x,y)=(219.0,323.0)
>>>> >
>>>> > K Matrix: | 515.0 0.0 219.0 0.0 |
>>>> > | 0.0 515.0 323.0 0.0 |
>>>> > | 0.0 0.0 1.0 0.0 |
>>>> >
>>>> > R&T Matrix: | -0.0 0.0 1.0 -1000.2 |
>>>> > | -0.8 -0.5 0.0 4261.1 |
>>>> > | 0.5 -0.8 0.0 3162.0 |
>>>> > | 0.0 0.0 0.0 1.0 |
>>>> >
>>>> > ------------------------------**------------------------
>>>> > WaitAnyUpdateAll() failed failed: A timeout has occurred when waiting
>>>> for
>>>> > new data!
>>>> > -------- openni1Server: WARNING- DEPTH timeout-
>>>> > -------- openni1Server: WARNING- POINTCLOUD timeout-
>>>> > -------- openni1Server: WARNING- RGB timeout-
>>>> > WaitAnyUpdateAll() failed failed: A timeout has occurred when waiting
>>>> for
>>>> > new data!
>>>> > WaitAnyUpdateAll() failed failed: A timeout has occurred when waiting
>>>> for
>>>> > new data!
>>>> > -------- openni1Server: WARNING- POINTCLOUD timeout-
>>>> > -------- openni1Server: WARNING- DEPTH timeout-
>>>> > -------- openni1Server: WARNING- RGB timeout-
>>>> > WaitAnyUpdateAll() failed failed: A timeout has occurred when waiting
>>>> for
>>>> > new data!
>>>> > -------- openni1Server: WARNING- POINTCLOUD timeout-
>>>> > -------- openni1Server: WARNING- DEPTH timeout-
>>>> > -------- openni1Server: WARNING- RGB timeout-
>>>> > WaitAnyUpdateAll() failed failed: A timeout has occurred when waiting
>>>> for
>>>> > new data!
>>>> > -------- openni1Server: WARNING- POINTCLOUD timeout-
>>>> > -------- openni1Server: WARNING- DEPTH timeout-
>>>> > -------- openni1Server: WARNING- RGB timeout-
>>>> > -------- openni1Server: WARNING- RGB timeout-
>>>> > -------- openni1Server: WARNING- POINTCLOUD timeout-
>>>> > -------- openni1Server: WARNING- DEPTH timeout-
>>>> > WaitAnyUpdateAll() failed failed: A timeout has occurred when waiting
>>>> for
>>>> > new data!
>>>> > WaitAnyUpdateAll() failed failed: A timeout has occurred when waiting
>>>> for
>>>> > new data!
>>>> > -------- openni1Server: WARNING- POINTCLOUD timeout-
>>>> > -------- openni1Server: WARNING- DEPTH timeout-
>>>> > -------- openni1Server: WARNING- RGB timeout-
>>>> > ^C
>>>> > jnbosgos en teleko
>>>> :~/pfc/jderobot/trunk/src/**stable/components/**openni1Server$
>>>> >
>>>> >
>>>> > Con violación de segmento:
>>>> >
>>>> > jnbosgos en teleko
>>>> :~/pfc/jderobot/trunk/src/**stable/components/**openni1Server$
>>>> > ./openni1Server --Ice.Config=openni1Server.cfg
>>>> > -! 10/28/13 17:31:16.425 warning: found unknown properties for object
>>>> > adapter `openni1Server':
>>>> > openni1Server.CameraDEPTH
>>>> > openni1Server.CameraDEPTH.**Format
>>>> > openni1Server.CameraDEPTH.Name
>>>> > openni1Server.CameraDEPTH.fps
>>>> > openni1Server.CameraRGB
>>>> > openni1Server.CameraRGB.Format
>>>> > openni1Server.CameraRGB.Name
>>>> > openni1Server.CameraRGB.fps
>>>> > openni1Server.Fps
>>>> > openni1Server.Height
>>>> > openni1Server.KinectLedsActive
>>>> > openni1Server.NCameras
>>>> > openni1Server.PlayerDetection
>>>> > openni1Server.**Pose3DMotorsActive
>>>> > openni1Server.Width
>>>> > openni1Server.calibration
>>>> > openni1Server.deviceId
>>>> > openni1Server.pointCloud.Fps
>>>> > openni1Server.pointCloudActive
>>>> > Selected device: 0
>>>> > NCAMERAS = 2
>>>> > Found device: vendor PrimeSense name SensorKinect
>>>> > Number of detected devices: 1
>>>> > [Device 0] PrimeSense, SensorKinect, serial=A00365905701052A
>>>> > Creating camera cameraA
>>>> > openni1Server.CameraRGB.**PlayerDetection
>>>> > Starting thread for camera: cameraA
>>>> > -------- openni1Server: Component: CameraRGB created
>>>> > successfully --------
>>>> > Creating camera cameraB
>>>> > Starting thread for camera: cameraB
>>>> > -------- openni1Server: Component: CameraDEPTH created
>>>> > successfully --------
>>>> > Creating pointcloud1 pointcloud1
>>>> > -------- openni1Server: Component: PointCloud created
>>>> > successfully --------
>>>> > FPS: 10
>>>> > CREADO
>>>> > ------------------------------**------------------------
>>>> > Camera
>>>> >
>>>> > Position: (X,Y,Z,H)=(1895.0,4983.0,857.**0,1.0)
>>>> > Focus of Attention: (x,y,z,h)=(4633.0,642.0,1088.**0,1.0)
>>>> >
>>>> > Focus DistanceX(vertical): 515.0 mm
>>>> > Focus DistanceY(horizontal): 515.0 mm
>>>> > Skew: 0.00000
>>>> > Optical Center: (x,y)=(219.0,323.0)
>>>> >
>>>> > K Matrix: | 515.0 0.0 219.0 0.0 |
>>>> > | 0.0 515.0 323.0 0.0 |
>>>> > | 0.0 0.0 1.0 0.0 |
>>>> >
>>>> > R&T Matrix: | -0.0 0.0 1.0 -1000.2 |
>>>> > | -0.8 -0.5 0.0 4261.1 |
>>>> > | 0.5 -0.8 0.0 3162.0 |
>>>> > | 0.0 0.0 0.0 1.0 |
>>>> >
>>>> > ------------------------------**------------------------
>>>> > WaitAnyUpdateAll() failed failed: A timeout has occurred when waiting
>>>> for
>>>> > new data!
>>>> > Violación de segmento (`core' generado)
>>>> > jnbosgos en teleko
>>>> :~/pfc/jderobot/trunk/src/**stable/components/**openni1Server$
>>>> >
>>>> >
>>>> >
>>>> > Si alguno sabéis como solucionar alguno de los 2 problemas, o por dónde
>>>> > puede estar el fallo, os lo agradecería.
>>>> >
>>>> > Saludos,
>>>> > Juan
>>>> >
>>>> >
>>>> > 2013/10/8 Juan Navarro Bosgos <jnbosgos en gmail.com>
>>>> >
>>>> >> Hola,
>>>> >>
>>>> >> tras el problema con basic_component al compilar todo jderobot [1], he
>>>> >> utilizado el método de compilación por componentes para compilar todos
>>>> >> menos ese (basic_component) y el make ha resultado bien.
>>>> >>
>>>> >> Ahora el problema lo tengo al ejecutar los componentes, al menos los
>>>> que
>>>> >> he probado; y tras pegarme con ficheros de configuración, la wiki y
>>>> mirar
>>>> >> los códigos de los componentes, he decidido comentarlo a ver si
>>>> alguien
>>>> >> sabe por dónde puede estar el problema.
>>>> >> El único que consigo hacer funcionar es el plugin de kinect en gazebo
>>>> >> 1.7.3. Los problemas los tengo con (los ficheros de las salidas en
>>>> general
>>>> >> son los del repositorio, aunque modificándolos obtengo los mismos
>>>> >> resultados):
>>>> >>
>>>> >> cameraserver probado conectado a la webcam del portatil (también he
>>>> >> probado con un video dándole la ruta, con los mismos resultados) :
>>>> >>
>>>> >> jnbosgos en teleko
>>>> :~/pfc/jderobot/trunk/src/**stable/components/**cameraserver$
>>>> >> ./cameraserver --Ice.Config=cameraserver.cfg
>>>> >> Constructor CameraI -> CameraSrv.Camera.0.
>>>> >> URI: v4l2:///dev/video0
>>>> >> Violación de segmento (`core' generado)
>>>> >>
>>>> >>
>>>> >> openniServer con un kinect real:
>>>> >>
>>>> >> jnbosgos en teleko
>>>> :~/pfc/jderobot/trunk/src/**stable/components/**openniServer$
>>>> >> ./openniServer --Ice.Config=openniServer.cfg
>>>> >> -! 10/08/13 21:59:39.670 warning: found unknown properties for object
>>>> >> adapter `openniServer':
>>>> >> openniServer.CameraDEPTH
>>>> >> openniServer.CameraDEPTH.**Format
>>>> >> openniServer.CameraDEPTH.**Mirror
>>>> >> openniServer.CameraDEPTH.Name
>>>> >> openniServer.CameraDEPTH.**PlayerDetection
>>>> >> openniServer.CameraDEPTH.fps
>>>> >> openniServer.CameraIR
>>>> >> openniServer.CameraRGB
>>>> >> openniServer.CameraRGB.Format
>>>> >> openniServer.CameraRGB.Mirror
>>>> >> openniServer.CameraRGB.Name
>>>> >> openniServer.CameraRGB.**PlayerDetection
>>>> >> openniServer.CameraRGB.fps
>>>> >> openniServer.ImageRegistration
>>>> >> openniServer.KinectLedsActive
>>>> >> openniServer.Mode
>>>> >> openniServer.NCameras
>>>> >> openniServer.PlayerDetection
>>>> >> openniServer.PointCloud.Name
>>>> >> openniServer.**Pose3DMotorsActive
>>>> >> openniServer.deviceId
>>>> >> openniServer.pointCloud.Fps
>>>> >> openniServer.pointCloudActive
>>>> >> Selected device: 0
>>>> >> NCAMERAS = 2
>>>> >> Missing devices
>>>> >> 0 : Couldn't open device ????1: DeviceOpen: Couldn't open device
>>>> '????1'
>>>> >>
>>>> >> Violación de segmento (`core' generado)
>>>> >>
>>>> >>
>>>> >> recorder conectado a gazebo con el plugin de kinect:
>>>> >>
>>>> >> jnbosgos en teleko:~/pfc/**jderobot/trunk/src/stable/**
>>>> components/recorder$
>>>> >> ./recorder --Ice.Config=simulatedKinect.**cfg
>>>> >> Outgoing.cpp:424: Ice::ObjectNotExistException:
>>>> >> object does not exist:
>>>> >> identity: `CameraI'
>>>> >> facet:
>>>> >> operation: ice_isA
>>>> >>
>>>> >>
>>>> >>
>>>> >> kinectViewer conectado a gazebo con plugin de kinect:
>>>> >>
>>>> >> jnbosgos en teleko
>>>> :~/pfc/jderobot/trunk/src/**stable/components/**kinectViewer$
>>>> >> ./kinectViewer --Ice.Config=kinectViewer.cfg
>>>> >> Outgoing.cpp:424: Ice::ObjectNotExistException:
>>>> >> object does not exist:
>>>> >> identity: `CameraI'
>>>> >> facet:
>>>> >> operation: ice_isA
>>>> >> terminate called after throwing an instance of
>>>> >> 'IceUtil::NullHandleException'
>>>> >> what(): /usr/include/IceUtil/Handle.h:**46:
>>>> IceUtil::NullHandleException
>>>> >> Abortado (`core' generado)
>>>> >>
>>>> >>
>>>> >>
>>>> >> La salida de la ejecución de gazebo con el plugin de kinect al que
>>>> conecto
>>>> >> algunos de los componentes anteriores, por si puede ser de utilidad,
>>>> es:
>>>> >>
>>>> >> jnbosgos en teleko
>>>> :~/pfc/jderobot/trunk/src/**stable/components/**
>>>> gazeboserver/pluginsGazebo/**kinect$
>>>> >> gazebo kinect.world
>>>> >> Gazebo multi-robot simulator, version 1.7.3
>>>> >> Copyright (C) 2013 Open Source Robotics Foundation.
>>>> >> Released under the Apache 2 License.
>>>> >> http://gazebosim.org
>>>> >>
>>>> >> Gazebo multi-robot simulator, version 1.7.3
>>>> >> Copyright (C) 2013 Open Source Robotics Foundation.
>>>> >> Released under the Apache 2 License.
>>>> >> http://gazebosim.org
>>>> >>
>>>> >> Msg Waiting for master.Warning [parser.cc:361] Converting a deprecated
>>>> SDF
>>>> >>
>>>> source[/home/jnbosgos/pfc/**jderobot/trunk/src/stable/**
>>>> components/gazeboserver/**pluginsGazebo/kinect/kinect.**world].
>>>> >> Warning [Converter.cc:58] Version[1.0] to Version[1.4]
>>>> >> Please use the gzsdf tool to update your SDF files.
>>>> >> $ gzsdf convert [sdf_file]
>>>> >> Warning [parser.cc:361] Converting a deprecated SDF
>>>> >> source[/home/jnbosgos/.gazebo/**models/ground_plane/model.sdf]**.
>>>> >> Warning [Converter.cc:58] Version[1.2] to Version[1.4]
>>>> >> Please use the gzsdf tool to update your SDF files.
>>>> >> $ gzsdf convert [sdf_file]
>>>> >> Warning [parser.cc:361] Converting a deprecated SDF
>>>> >> source[/home/jnbosgos/.gazebo/**models/sun/model.sdf].
>>>> >> Warning [Converter.cc:58] Version[1.2] to Version[1.4]
>>>> >> Please use the gzsdf tool to update your SDF files.
>>>> >> $ gzsdf convert [sdf_file]
>>>> >> Msg Waiting for master
>>>> >> Msg Connected to gazebo master @ http://127.0.0.1:11345
>>>> >> Msg Publicized address: 192.168.1.108
>>>> >>
>>>> >> Msg Connected to gazebo master @ http://127.0.0.1:11345
>>>> >> Msg Publicized address: 192.168.1.108
>>>> >> Kinect Endpoints > default -h localhost -p 9998
>>>> >> Constructor CameraI
>>>> >> safeThread
>>>> >> Constructor CameraDepth
>>>> >> safeThread
>>>> >> adapter->add(object, ic->stringToIdentity(Kinect));
>>>> >>
>>>> >>
>>>> >> y el fichero de configuración de recorder 'simulatedKinect.cfg':
>>>> >>
>>>> >> Recorder.FileName=datos.jde
>>>> >> Recorder.nCameras=1
>>>> >> Recorder.nDethSensors=1
>>>> >> Recorder.nLasers=0
>>>> >> Recorder.DepthSensor1.Proxy=**CameraDepth:tcp -h localhost -p 9998
>>>> >> Recorder.Camera1.Proxy=**CameraI:tcp -h localhost -p 9998
>>>> >> Recorder.GUI=1
>>>> >>
>>>> >> Recorder.Hostname=localhost
>>>> >> Recorder.Port=9990
>>>> >> Recorder.Format=png
>>>> >> Recorder.PngCompression=0
>>>> >> #from 0 to 9. A higher value means a smaller size
>>>> >> Recorder.JpgQuality=80
>>>> >> # from 0 to 100 (the higher is the better)
>>>> >> Recorder.Laser.Samples=180
>>>> >> Recorder.Hz=10
>>>> >>
>>>> >>
>>>> >> Un saludo,
>>>> >> Juan
>>>> >>
>>>> >> [1] [Jderobot] Problema con openniServer al hacer el
>>>> >> make<
>>>> http://jderobot-developer-**list.2315034.n4.nabble.com/**
>>>> Jderobot-Problema-con-**openniServer-al-hacer-el-make-**tp4641664.html<http://jderobot-developer-list.2315034.n4.nabble.com/Jderobot-Problema-con-openniServer-al-hacer-el-make-tp4641664.html>
>>>> >
>>>> >>
>>>> >
>>>>
>>>>
>>>>
>>>> ------------------------------**------------------------------**------
>>>> Laboratorio de Análisis del Movimiento, Biomecánica, Ergonomía y
>>>> Control Motor (LAMBECOM).
>>>> Departamento de Fisioterapia, Terapia Ocupacional, Rehabilitación y
>>>> Medicina Física.
>>>> Universidad Rey Juan Carlos (URJC).
>>>> ______________________________**_________________
>>>> Jde-developers mailing list
>>>> Jde-developers en gsyc.es
>>>> http://gsyc.escet.urjc.es/cgi-**bin/mailman/listinfo/jde-**developers<http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers>
>>>>
>>>>
>>>
>>
>>
>> ------------------------------**------------------------------**------
>> Laboratorio de Análisis del Movimiento, Biomecánica, Ergonomía y Control
>> Motor (LAMBECOM).
>> Departamento de Fisioterapia, Terapia Ocupacional, Rehabilitación y
>> Medicina Física.
>> Universidad Rey Juan Carlos (URJC).
>>
>
------------------------------------------------------------------
Laboratorio de Análisis del Movimiento, Biomecánica, Ergonomía y
Control Motor (LAMBECOM).
Departamento de Fisioterapia, Terapia Ocupacional, Rehabilitación y
Medicina Física.
Universidad Rey Juan Carlos (URJC).
More information about the Jde-developers
mailing list