[Cursodrones] No se actualiza posición del Dron

Alberto Martin almartinflorido en gmail.com
Mie Mar 4 16:40:41 CET 2015


Buenas chicos,

por partes:

Tener en cuenta que estáis ejecutando vuestro código desde un thread
(introrob_py tiene dos), el thread que ejecuta vuestro código previamente
hace un update de los datos sensoriales (cámara, pose, ...). No teneis que
hacer un bucle (while, for,...) dentro del método execute que realice
operaciones con los datos sensoriales del drone, ya que dentro de una misma
iteración siempre tendréis los mismos datos.

Con lo que dice Óscar se soluciona el problema, pero no es el modo correcto
de hacerlo. Teneis que hacer operaciones en cada iteración porque en una
misma iteración los datos sensoriales no van a cambiar, de ahí que siempre
obtengais la misma pose aunque el drone se haya movido.

Las operaciones dentro del método execute podrían ser las siguientes:
1. Calcular el error de la baliza actual con la pose del drone para esa
iteración.
2. Actualizar los controladores PID con los nuevos errores.
3. Comandar la orden al drone.
4. Comprobar si ya habeis alcanzado el error mínimo.
4.1 Si es así, marcais la baliza como alcanzada y no activa. Buscais la
siguiente baliza y la marcais como activa.


Si lo hacéis así no deberíais tener problemas ya que en cada iteración
comandaremos una orden al drone y el thread que ejecuta vuestro código
habrá actualizado los datos sensoriales antes de ejecutar de nuevo vuestro
código. Repito, si haceis un bucle que intente alcanzar todas las balizas
de una vez, siempre tendreis los mismo datos sensoriales ya que no estais
permitiendo que el thread actualice los datos sensoriales.

Un saludo


2015-03-04 15:13 GMT+01:00 Carlos P. Sáez <cpsaez en gmail.com>:

> Solo indicar que yo no he tenido ese problema. Es más, depurando y
> moviendo el drone manualmente con los controles de la ventana, si meto un
> print de x,y del drone en el execute, imprime bien la posición.
>
> Carlos.
>
> 2015-03-04 10:45 GMT+01:00 Oscar Higuera <oscar.higuera en gmail.com>:
>
>> Pero llamas al metodo update de la clase sensor? Si no se llama la
>> variable interna no se actualiza y por mucho que llames a obtener la
>> pose te dara siempre la misma.
>>
>> Sent from my iPhone
>>
>> > On 4 Mar 2015, at 10:44, Juanjo Montijano <juanjo en montijano.net> wrote:
>> >
>> > A  mi  no me actualizan las posiciones del dron. He probado a a cerrar
>> > gazebo y el terminal desde lo lancé varias veces sin resultado.
>> >
>> >
>> > Saludos
>> >
>> >
>> > Juanjo
>> >
>> > El día 26 de febrero de 2015, 14:58, Alberto Martin
>> > <almartinflorido en gmail.com> escribió:
>> >> Buenas Alberto,
>> >>
>> >> si tienes razón, cuando reseteas las poses en gazebo o reinicias el
>> mundo,
>> >> el plugin de AR.Drone reenvía las últimas coordenadas y no actualiza la
>> >> última pose. Prueba a cerrar gazebo (incluso la terminal desde donde lo
>> >> hayas ejecutado) y vuelve a lanzar gazebo, en principio con eso debería
>> >> funcionar.
>> >>
>> >> Pruébalo y nos cuentas si te sigue pasando.
>> >>
>> >> Un saludo
>> >>
>> >> 2015-02-26 11:15 GMT+01:00 Alberto Zapatero <
>> alberto.zapatero en gmail.com>:
>> >>>
>> >>> Buenos días,
>> >>> Creo tener implementado un rudimentario lazo PID (al menos
>> teóricamente),
>> >>> pero me falla.
>> >>> He estado haciendo algo de debugging y me he encontrado una cosa que
>> me
>> >>> despista:
>> >>> en el método MyAlgorithm.execute() lanzo una única instrucción que me
>> >>> printa por pantalla la posición del dron
>> >>>
>> >>> print 'posicion del
>> >>> dron:',self.sensor.getPose3D().x,self.sensor.getPose3D().y
>> >>>
>> >>> Pues bien, aunque mueva manualmente el dron con los controles de
>> >>> introrob_py (y vea como en gazebo se mueve), el resultado de ese
>> comando
>> >>> permanece inmutable en el tiempo; es decir: hace totalmente
>> inservible el
>> >>> lazo PID al no obtener valores reales.
>> >>> ¿Dónde está el error?¿No debería actualizarse el valor con cada pase
>> de
>> >>> ejecución del método execute()?
>> >>>
>> >>> Gracias,
>> >>> Un saludo.
>> >>>
>> >>>
>> >>>
>> >>> _______________________________________________
>> >>> Cursodrones mailing list
>> >>> Cursodrones en gsyc.es
>> >>> http://gsyc.es/cgi-bin/mailman/listinfo/cursodrones
>> >>
>> >>
>> >> _______________________________________________
>> >> Cursodrones mailing list
>> >> Cursodrones en gsyc.es
>> >> http://gsyc.es/cgi-bin/mailman/listinfo/cursodrones
>> > _______________________________________________
>> > Cursodrones mailing list
>> > Cursodrones en gsyc.es
>> > http://gsyc.es/cgi-bin/mailman/listinfo/cursodrones
>> _______________________________________________
>> Cursodrones mailing list
>> Cursodrones en gsyc.es
>> http://gsyc.es/cgi-bin/mailman/listinfo/cursodrones
>>
>
>
> _______________________________________________
> Cursodrones mailing list
> Cursodrones en gsyc.es
> http://gsyc.es/cgi-bin/mailman/listinfo/cursodrones
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://gsyc.es/pipermail/cursodrones/attachments/20150304/138f730e/attachment-0001.htm 


More information about the Cursodrones mailing list