dpm76 / eaglebone Goto Github PK
View Code? Open in Web Editor NEW[Still unstable] Open-source modular flight controller for quadcopters based on BeagleBone
License: ISC License
[Still unstable] Open-source modular flight controller for quadcopters based on BeagleBone
License: ISC License
Cuando se quita el check "on" del control remoto, y se vuelve a poner el check no se inicia de nuevo el dron, sino que da un error debido a que no se pueden recomenzar los threads una vez finalizados.
Actualmente se está guardando la configuración en un fichero JSON. Debido a que no admite comentarios, sería mejor realizar la configuración en Python.
La aplicación debe utilizar valores por defecto, en el caso de que no se haya declarado un valor.
Hacer un commit de todo el código en SVN y utilizar sólo el repositorio de Github en el código de trabajo.
Si el PID es lígeramente inferior a 50Hz la actualización de los motores sería de 25Hz puntualmente, debido al diseño de la señal PWM.
Ver qué cambios habría que hacer y si las librerías utilizadas actualmente tienen soporte para Python 3.x.
Incluir la aplicación "drone/remote_control/start.py" en el arranque del sistema operativo.
Cuando el resultado del ciclo PID hace que algún motor se salga del rango de potencia (de 0 a 100), se desestabiliza. Si se da esta situación, el resultado del PID se debe ignorar y aplicar el máximo valor posible sin que los motores se salgan del rango.
Indicar el propósito del proyecto, descripción básica de componentes e instrucciones para puesta en marcha.
Detallar los componentes que están actualmente implementados y describir la API.
Indicar los pasos para poner en marcha el sistema, además de requisitos previos. Tanto para ejecutarlo en la BeagleBone, como con el emulador.
Indicar cómo expandir con nuevos sensores y controladores de vuelo.
Cuando inicia el vuelo, el dron realiza un ligero giro. Con la velocidad angular, aunque el giro se detiene, no se retorna el dron a la orientación de inicio. Esto hace que sea complicado el manejo del dron en los primeros instantes del vuelo.
Con un sistema de 6 ejes tendrá desplazamiento (drifting) a lo largo del tiempo. Con 9 ejes se corregiría el problema.
Crear proyecto para ejecutar pruebas unitarias.
Elegir librerías: ¿unittest2?, ¿mock?
Añadir un panel con las coordenadas, ángulos, velocidad y aceleración.
Integrar el magnetómetro (HMC5883L) con el giroscopio/acelerómetro (IMU6050) para conseguir un vuelo estable de 9 ejes.
Cuando se recibe el comando para apagar el sistema: { "key": "close", "data": null} se cierra la conexión actual, pero el servidor permanece activo. El servidor debería cerrarse para permitir que la aplicación finalice.
(probando los "issues" de Github)
Facilitaría la integración con otros controles remotos (por ejemplo, si implementamos un control remoto en Android).
@hisie ¿Tienes experiencia con alguna librería de json-rpc? He estado mirando jsonrpc, pero igual conoces alguna mejor para este caso.
Habría que refactorizar el fichero "eaglebone/drone/remote_control/dispatching.py", en la parte del dron, y "eaglebone/desktopRemoteControl/cockpit.py" y "eaglebone/desktopRemoteControl/communications/inet.py" en la parte del control remoto.
Cuando el control remoto mande el comando para terminar, cerrar el servidor, y al salir de la aplicación lanzar un "shutdown".
Incluir un flag en la llamada a la aplicación para poder controlarlo. Por ejemplo:
python drone/remote_control/start.py --shutdown
Así, si no se incluye el flag no se apagaría la máquina. Esto sería útil para el emulador, por ejemplo.
El sensor utilizado será el BMP180
https://www.vssec.vic.edu.au/media/41229/BMP180-datasheet.pdf
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.