[Jde-dev] Probando la interfaz JointsArray

Juan Gonzalez juan en iearobotics.com
Vie Mar 19 11:56:10 CET 2010


Hola,

El jue, 18-03-2010 a las 13:31 +0100, JoseMaria escribió:
> Aqui van mis dos centavos,
> 
> Con get/set pos tenemos ya un interfaz completo para el control en
> posición. Los valores de los límites (get y set nuevamente) también me
> parecen útiles, los incluiría.

Oído cocina. En cuanto acabe la primera versión de JointsArray, empiezo
a añadirlos.

> 
> Debajo de ese API en posición suele haber un controlador que lo
> materializa dando las órdenes físicas (a frecuencia de KHz) al motor de
> la articulación. A veces este controlador es modulable, por ejempo
> "velocidad" con la que se quiere conseguir esa posición, y ese parámetro
> se podría incorporar al API de la articulación. 

Sí. Me parece bien. También lo añado.

> 
> Aunque de momento no esté soportado, lo incluiría en el API y empezaría
> por usar a mansalva este api básico con los ápodos, brazos mecánicos y
> humanoides que tenemos ahora entre manos. Aplicándolo a esos ejemplos ya
> valoramos si merece la pena incluir más cosas o no.

OK. La interfaz la quiero probar a saco con los servos virtuales
aislados, los ápodos virtuales y con los servos reales.

> OJO que este interfaz sólo permite control en posición, no control en
> velocidad, que a veces es interesante. Por ejemplo el cuello mecánico de
> los robots te ofrece otro API en velocidad para controlarlo, gobernando
> la velocidad a la que gira (aunque el recorrido sea limitado). Esto
> también lo dejaría fuera de momento, si acaso vemos que es útil podemos
> dar de alta otro interfaz diferente para el mismo dispositivo.

Sí. De momento es mejor pulir el control por posición (que incluye la
velocidad para alcanzar esa posición) y luego lo vamos ampliando.

Saludos, Juan


> 
> JoseMaria
> On Wed, 2010-03-17 at 10:17 -0400, David Lobato wrote:
> > Genial la demo!
> > 
> > 
> > Yo empezaría por definir la interfaz de un servo y luego pasaría al
> > array.
> > Pondría los siguientes métodos (los nombres son tentativos):
> > 
> > 
> > interface Joint{
> >    void setPos(short pos);
> >    short getPos();
> > }
> > 
> > 
> > sequence<Joint*> JointSeq;
> > dictionary<short,short> JointPosMap;
> > 
> > 
> > interface JointArray{
> >    JointSeq getJoints();
> >    Joint* getJoint(short id);
> > 
> > 
> >    void setJointsPos(JointPosMap values);
> >    JointPosMap getJointsPos();
> > 
> > 
> >    void setJointPos(short id, short pos);
> >    short getJointPos(short id);
> > }
> > 
> > 
> > No estoy seguro de si merece la pena las operaciones
> > setJointPos/getJointPos en el interfaz JointArray, ya que podemos
> > operar directamente sobre el Joint devuelto con getJoint().
> > 
> > 
> > También puede ser interesante añadir una operación en Joint para
> > obtener el rango de movimiento y otra para fijar límites.
> >  
> > 
> > 
> > Otras ideas??
> > 
> > 
> > Un saludete,
> > David.
> > 
> > 
> > 
> > 2010/3/17 Juan Gonzalez <juan en iearobotics.com>
> >         Hola,
> >         
> >          Tengo una primera versión de la interfaz JointsArray para
> >         posicionar
> >         un array de articulaciones.
> >         
> >          He hecho un ejemplo con 4 servos. Aquí podéis ver el vídeo:
> >         
> >         http://www.youtube.com/watch?v=6T3V69dWtP0
> >         
> >         El código está disponible en aquí[1]. El cliente posiciona los
> >         servos
> >         usando el método SetPos():
> >         
> >         JointsArray.SetPos(joint, angle)
> >         
> >         donde joint es el número de la articulación y angle el ángulo
> >         a donde
> >         llevarla (en los servos que uso el rango es -90,90)
> >         
> >         El fichero con la interfaz en ICE está aquí[2]
> >         
> >         Y aquí comienza el debate hacia la maduración de la interfaz.
> >         ¿Qué
> >         nombre le ponemos? ¿Qué más métodos añadimos en la interfaz?
> >         ¿Cómo lo
> >         generalizamos?
> >         
> >         
> >         Saludos, Juan
> >         
> >         PD.- Todos los videos que saco, además de subirlos a youtube,
> >         los estoy
> >         subiendo al servidor:
> >         
> >         http://jderobot.org/users/obijuan/videos/
> >         
> >         
> >         
> >         [1]https://svn.jderobot.org/users/obijuan/postdoc/trunk/jderobot5-components/Joints/
> >         [2]https://svn.jderobot.org/users/obijuan/postdoc/trunk/jderobot5-components/Joints/Joints.ice
> >         
> >         
> >         
> >         
> >         --
> >         Blog: www.iearobotics.com/blog
> >         Web: www.iearobotics.com/juan
> >         
> >         _______________________________________________
> >         Jde-developers mailing list
> >         Jde-developers en gsyc.es
> >         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
> 
> 
-- 
Blog: www.iearobotics.com/blog
Web: www.iearobotics.com/juan



More information about the Jde-developers mailing list