[Jderobot-dev] kinectserver y kinectviewer

franciscomiguel.rivas en urjc.es franciscomiguel.rivas en urjc.es
Mar Mar 6 19:31:22 CET 2012


Buenas,
ya veo... has utilizado el openni-grabber que ofrece PCL para acceder  
al driver... consume mucha cpu?? estar�a bien probar cual tiene mejor  
rendimiento... tiene muy buena pinta la verdad..

Los dos peros que le veo son:
1. Necesitar PCL instalado (si se van a hacer cosas con solo con las  
c�maras es un poco mas complicado... aunque por lo general siempre se  
va a usar con PCL)
2. Perder toda la funcionalidad que nos ofrece openni como es la  
detecci�n de "players", detecci�n autom�tica de la mano y una serie de  
patrones que est�n ya funcionando de forma robusta en openni y que  
igual en alg�n trabajo nos puede venir bien.

Las ventajas:
Si vas a trabajar con nube de puntos tienes soporte ya en PCL en ambos  
lados y no tienes casi ninguna conversi�n.

�que pens�is?

un saludo!


"Alejandro Hern�ndez" <ahcorde en gmail.com> escribi�:

> Hola Fran,
>
> he rescrito completamente el componente. Los tengo en [1] y [2]. La
> estructura es la misma cliente-servidor con las interfaces ICE.
>
> �lex.
>
> [1]https://svn.jderobot.org/users/ahcorde/pfc/trunk/kinect/kinectServer/
> [2]https://svn.jderobot.org/users/ahcorde/pfc/trunk/kinect/visorKinect/
>
> El 6 de marzo de 2012 19:03, <franciscomiguel.rivas en urjc.es> escribi�:
>
>> Buenas a todos,
>>
>>  Mejora 0: Creo que no es tan sencillo como un corta pega, ahora mismo mi
>>> componente utiliza un wrapper que esta sobre PCL, ya que de esta manera
>>> tengo las imagen de color, profundidad y nube de puntos en variables sin
>>> necesidad de hacer ninguna transformaci�n. Como creo que ser�a necesario
>>> de
>>> sacar la nube de puntos a partir de la imagen de profundidad.
>>>
>>
>> mmm... la forma de funcionar es la misma? tienes un "servidor" que se
>> conecta al kinect y ofrece los datos en interfaces de ICE y otro que se
>> coneta en modo "cliente"??
>> Si es as� �has reecrito los componentes por completo? �me puedes decir
>> donde tienes los componentes para echarles un ojo y ver que podemos hacer
>> para unificar lo m�ximo posible? Si no es posible de ninguna manera nos
>> tendremos que decantar por usar uno de los dos y ahora es un buen momento
>> para decidirnos.
>>
>>
>> Creo que de momento tendremos que abordar esto antes de seguir con las
>> siguiente mejoras, �no os parece?
>>
>> un saludo!
>>
>>
>>
>>
>> "Alejandro Hern�ndez" <ahcorde en gmail.com> escribi�:
>>
>>  Hola Jose Mar�a,
>>>
>>> Te comento:
>>>
>>> Mejora 0: Creo que no es tan sencillo como un corta pega, ahora mismo mi
>>> componente utiliza un wrapper que esta sobre PCL, ya que de esta manera
>>> tengo las imagen de color, profundidad y nube de puntos en variables sin
>>> necesidad de hacer ninguna transformaci�n. Como creo que ser�a necesario
>>> de
>>> sacar la nube de puntos a partir de la imagen de profundidad.
>>>
>>> Mejora 1 y 2 : Ahora mismo esta incluido en el fichero de configuraci�n
>>> pero se puede incluir una par de m�todos que modifiquen ese valor sin
>>> problema.
>>>
>>> Mejora 3: Cualquiera de las dos versiones deber�a de funcionar con esto.
>>>
>>> Mejora 4: La mejora 4 no la entiendo muy bien
>>>
>>> Mejora 5: Tiene que ver con la interfaz.
>>>
>>> Mejora 6: Creo que lo mejor es usar Openni porque es lo que est�n usando
>>> las librer�as que est�n saliendo alrededor de Kinect.
>>>
>>> En cuento a las dos versiones de KinectServer, creo que estas son las
>>> diferencias despu�s de mirarme lo componentes:
>>>
>>>   - El componente de Fran da la imagen a color, profundidad, controla el
>>>
>>>   servo y el color del LED
>>>   - Mi componente da la imagen a color, profundidad y nube de puntos.
>>>   - Las interfaces de las imagenes cambian yo utilizo la interfaz c�mara
>>>
>>>   sin modificar y Fran utiliza una que extiende de la interfaz camera (
>>>   entiendo que esta interfaz es compatible 100% con cameraview, no?)
>>>
>>> Espero no dejarme nada sin comentar.
>>>
>>> Saludos!
>>>
>>> �lex.
>>>
>>> El 5 de marzo de 2012 14:21, JoseMaria <josemaria.plaza en gmail.com>
>>> escribi�:
>>>
>>>  Hola,
>>>>
>>>> retomo aqu� los avances sobre kinectServer y kinectViewer, contando con
>>>> los que ha subido Fran al repositorio oficial y las mejoras de Alex, que
>>>> no s� hasta que punto est�n unificadas.... Sigamos asent�ndolo.
>>>>
>>>> Decisiones que hemos tomado:
>>>> 1.- unificar en un �nico servidor que ofreciera varios interfaces, las
>>>> dos c�maras (color y profundidad) y el nuevo interfaz de puntos.
>>>> 2.- kinectserver basado en OpenNI. Ten�amos otra implementaci�n del
>>>> driver basada en libfreenect (ahora openkinect), pero tienen una
>>>> comunidad detr�s menos activa que la de OpenNI y consume mucha CPU. Si
>>>> luego mejoran ya veremos.
>>>> 3.- el interfaz de nube de puntos es muuuuy voluminoso, para que ice
>>>> pueda con ello hay que muestrear esa nube de puntos para reducirla a un
>>>> tama�o manejable.
>>>>
>>>>
>>>> Mejoras:
>>>> 0.- unificar c�digo. Ahora mismo no s� si hay una o dos versiones
>>>> (Alex-Fran). �Podriamos tomar como referencia los que hay actualmente en
>>>> el repositorio? Corta-pegando lo necesario para incorporar tus �ltimas
>>>> mejoras Alex?
>>>>
>>>> 1.- Alex, podr�as unificar dentro del mismo interfaz de nube de puntos
>>>> dos nuevos m�todos, el que fija el ratio de muestreo y el que lo
>>>> pregunta (SetSamplingRate y GetSamplingRate o algo as�). Es que ese
>>>> par�metro s�lo tiene sentido asociado con los puntos. El interfaz podr�a
>>>> ser algo asi como la secuencia de puntos en 3D y estos m�todos metidos.
>>>> �C�mo lo ves?
>>>>
>>>> 2.- Si ves que no es necesario cambiarlo en tiempo de ejecuci�n lo
>>>> dejamos exclusivamente como par�metro del fichero de configuraci�n y
>>>> listo. Habr�a que incluir en cualquier caso que pudiera coger el
>>>> par�metro de SamplingRate desde el fichero de configuraci�n de
>>>> kinectServer...
>>>>
>>>> 3.- Con vistas a poder utilizar m�s de un kinect en la m�quina conviene
>>>> en el fichero de configuraci�n de kinectserver poder decirle qu� fichero
>>>> usar como configuraci�n de OpenNI. Fran est� con ello.
>>>>
>>>> 4.- Fran va a meter tambi�n en el fichero de configuraci�n de
>>>> kinectserver la posibilidad de especificarle un cierto tama�o a la
>>>> imagen de profundidad. Hasta ahora capturaba en nativo siempre en el
>>>> mismo tama�o y con opencv redimensionabamos la imagen de profundidad a
>>>> posteriori. Al capturar directamente a baja resoluci�n igual hasta es
>>>> m�s ligero computacionalmente.
>>>>
>>>> 5.- Fran refactoriza kinectviewer para que aparezcan varias subventanas,
>>>> no como ahora que aparece la ventana opengl aunque no tengamos puntos.
>>>>
>>>> 6.- El driver actual no va todo lo r�pido que nos gustar�a o consume
>>>> "bastante" CPU (menos que el de libfreenect, en cualquier caso). Creo
>>>> que no merece la pena optimizarlo nosotros (de momento), sigamos
>>>> adelante e igual los chicos de OpenNI dan con alguna t�cnica para
>>>> acelerar el rendimiento. No creo que est�n usando DMA estos chismes...
>>>>
>>>> �Qu� os parece? Va a quedar chulisimo...
>>>>
>>>> Saludos,
>>>>
>>>> JoseMaria
>>>> On Mon, 2012-02-27 at 09:12 +0100, Alejandro Hern�ndez wrote:
>>>> > Hola a todos,
>>>> >
>>>> >
>>>> > ya que tenemos claro que lo mejor es unificarlo todo, he modificado
>>>> > KinectServer para que sirva las imagenes del Kinect seg�n las
>>>> > interfaces de c�maras que ya existen junto a la interfaz que me he
>>>> > creado para la nuve de puntos. Tambi�n he modificado el visor para que
>>>> > la visualizaci�n en 3D tire de la nube de puntos y no a partir de la
>>>> > imagen en profundidad.
>>>> >
>>>> >
>>>> > Un saludo.
>>>> >
>>>> >
>>>> > �lex.
>>>> >
>>>> > El 21 de febrero de 2012 18:34, Fran Rivas
>>>> > <franciscomiguel.rivas en urjc.es**> escribi�:
>>>> >         Totalmente de acuerdo con Jos� Mar�a... Si tenemos un
>>>> >         componente mejor ser� tener in driver integrando todo y que
>>>> >         este sirva todo lo que necesitemos... Siempre podemos activar
>>>> >         solo lo que queramos desde el fichero se configuraci�n...
>>>> >
>>>> >
>>>> >         Sobre la integraci�n de la nube de puntos... Yo subir� ma�ana
>>>> >         al repo oficial los dos componentes y si no es mucho l�o que
>>>> >         alex a�ada la parte de la nube de puntos...
>>>> >
>>>> >         Un saludo,
>>>> >         fran
>>>> >
>>>> >         Enviado desde mi iPhone
>>>> >
>>>> >         El 21/02/2012, a las 18:01, JoseMaria
>>>> >         <josemaria.plaza en gmail.com> escribi�:
>>>> >
>>>> >         > Por mi parte tambi�n unificar�a en un componente
>>>> >         kinectserver que pueda
>>>> >         > servir varios interfaces a la vez: imagenes color, imagenes
>>>> >         profundidad,
>>>> >         > nube de puntos. En una ejecuci�n concreta se le configura
>>>> >         para que sirva
>>>> >         > s�lo los que realmente se necesiten para esa aplicaci�n, y
>>>> >         si son todos,
>>>> >         > pues todos.
>>>> >         >
>>>> >         > Una ventaja de este dise�o es que si tenemos dos componentes
>>>> >         cliente
>>>> >         > simultaneamente, uno que necesite puntos y otro que necesite
>>>> >         imagen de
>>>> >         > profundidad, el servidor puede atenderlos a ambos sin
>>>> >         problema. Si
>>>> >         > hacemos dos servidores habr�a problemas porque s�lo uno de
>>>> >         ellos puede
>>>> >         > acceder al dispositivo en local, el segundo no tendr�a
>>>> >         permisos al estar
>>>> >         > ocupado el dispositivo.
>>>> >         >
>>>> >         > Otra ventaja es que tenemos centralizado en un �nico sitio
>>>> >         las
>>>> >         > peculiaridades del acceso en local a kinect, y no en dos,
>>>> >         que habr�a que
>>>> >         > actualizar ambos cada vez que saquen una nueva versi�n del
>>>> >         driver local,
>>>> >         > openNI, etc.
>>>> >         >
>>>> >         >>> �c�mo lo veis?
>>>> >         >>
>>>> >         >> �Existe alg�n dispositivo a parte del kinect del que
>>>> >         podamos extraer la
>>>> >         >> nube de puntos? Si la respuesta es SI, separar�a los
>>>> >         componentes ya que
>>>> >         >> la nube de puntos puede venir de otra fuente de datos.
>>>> >         >
>>>> >         >> Si NO har�a �nicamente 1. Si alg�n d�a salen m�s
>>>> >         dispositivos que
>>>> >         >> ofrezcan s�lo la nube de puntos, quiz�s tienen sentido
>>>> >         tener un �nico
>>>> >         >> driver para eso. Pero ahora mismo veo m�s eficiente y mejor
>>>> >         tener un
>>>> >         >> �nico driver.
>>>> >         >>
>>>> >         >> Reutilizar c�digo, interfaces y crear diferentes m�dulos es
>>>> >         muy bueno y
>>>> >         >> potente. Pero si siempre lo vamos a utilizar de la misma
>>>> >         manera, es
>>>> >         >> gastar tiempo y emplear recursos (literalmente). Cuando
>>>> >         lleguen nuevos
>>>> >         >> dispositivos que ofrezcan la nube de puntos creo que  ser�
>>>> >         el momento de
>>>> >         >> reorganizar c�digo y dividir los componentes.
>>>> >         >
>>>> >         > A d�a de hoy no. Y si lo hay en un futuro no hay problema en
>>>> >         que dos
>>>> >         > componentes diferentes ofrezcan el mismo interfaz. Por
>>>> >         ejemplo
>>>> >         > cameraserver y gazeboserver ofrecen el mismo interfaz de
>>>> >         c�mara.
>>>> >         >
>>>> >         > Alex, el driver que has hecho usa openNI?
>>>> >         >
>>>> >         > JoseMaria
>>>> >         > --
>>>> >         > http://gsyc.es/jmplaza
>>>> >         > Universidad Rey Juan Carlos
>>>> >         >
>>>> >         >
>>>> >         > ______________________________**_________________
>>>> >         > 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>
>>>> >         ______________________________**_________________
>>>> >         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>
>>>> >
>>>> >
>>>> >
>>>>
>>>> --
>>>> http://gsyc.es/jmplaza
>>>> Universidad Rey Juan Carlos
>>>>
>>>>
>>>>
>>>>
>>>
>>
>>
>> ------------------------------**------------------------------**------
>> 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