Pero la experiencia me ha enseñado que para desarrollar un robot autónomo es necesario que sea accesible desde fuera para poder monitorizar los datos y , en general, supervisar al robot -no sea que le de por conquistar el mundo y empiece por mi casa-.
Como está dando buenos resultados sigo con python.
La mejor forma de supervisar un robot es que él te mande los datos a ti (y no al revés) y como con la RPi tengo wifi normal, mandaré los datos por red local.
Primera decisión ¿ TCP o UDP ?. TCP está bien cuando el cliente pide datos y el servidor se los sirve, en este caso quiero que el robot mande datos a mansalva para la supervisión, por tanto lo que quiero son datos más recientes.
La decisión es UDP, porque no necesito que haya un cliente, no tengo que pedir nada y los paquetes que me interesan son los recientes no los viejos, además, se consigue mejor ancho de banda al precio de que algún paquete se pierda -aunque siendo red local no creo que haya mucho problema con la perdida de paquetes-
De nuevo python me ha sorprendido gratamente, abrir un socket udp y ponerse a mandar datos es, de nuevo, sumamente sencillo como se puede ver en la página de la documentación.
y en el otro extremo de la linea..
Bueno, si se quieren mandar datos a mansalva hay que poner los envíos y las recepciones en un bucle, pero eso ya son detalles, al igual que si se abre otro puerto como cliente en la RPi y como servidor en el portátil se puede controlar el robot desde el portátil
Aquí he de añadir que para recibir los datos en el portail, y para mantener homogeneidad he instalado python en windows, lo que no ha supuesto ninguna dificultad. Es más, buscando el paquete de opencv para python en windows he podido comprobar que tb funciona -el usb aún no lo he probado-
No hay comentarios:
Publicar un comentario