Giter VIP home page Giter VIP logo

justtelemetry's Introduction

JustTelemetry

http://justtelemetry.ddns.net/

Descripción

En el marco de una colaboración con la escudería de Formula Student de la Universidad de Vigo (UVigo Motorsport) ofrecemos un sistema de telemetría para su vehículo. Concretamente, hemos desarrollado un sistema de posicionamiento mediante GPS + Unidad de medición inercial y una interfaz web para la visualización de los datos recogidos por los sensores.

Partes del proyecto

Nuestro sistema de posicionamiento se basa en la fusión de los datos de un módulo GPS y las lecturas de un acelerómetro para obtener el recorrido del vehiculo a lo largo de la trazada. Esa fusión se realiza mediante la implementación de un filtro de Kalman, y actualmente hemos conseguido disminuir el error de la posición (que en el caso de usar sólo el GPS podría llegar a los diez metros) a menos de 3m.

La información obtenida se envía mediante el puerto serie a una Raspberry Pi situada en el coche, que se encarga de almacenarla en una base de datos junto con las lecturas obtenidas por los sensores del vehiculo.

Comunicación

Una vez el vehículo ha terminado la sesión de prácticas el usuario que quiera acceder a la información se conectará a la red WiFi creada por la Raspberry y accederá al servidor web que hay en la misma.

La interfaz web consta de varias partes:

Página inicial

En la página principal se muestra un breve resumen de la información de las sesiones, la distribución de las mismas a lo largo del tiempo y un panel de notificaciones.

Gráficas

Las gráficas de nuestra interfaz muestran las lecturas de los sensores, y se pueden ver respecto al tiempo, a la distancia recorrida o a otros sensores. Además también se puede ver el recorrido del coche y ver los datos en un punto concreto de la trazada, así como seleccionar sólo un sector concreto de la pista.

Tablas

Aquí se muestran los datos en bruto de los sensores, para una consulta más rápida.

Sesiones

En esta parte se muestra un listado de las sesiones de pruebas realizadas, así como la posibilidad de importar, editary borrar sesiones. Ademas se ofrece la posibilidad de indicar el punto de inicio del circuito para así separar el recorrido en vueltas.

justtelemetry's People

Contributors

dpeite avatar manulg avatar

Stargazers

 avatar

Watchers

 avatar

justtelemetry's Issues

Reutilizar código html en la template

Ya que el codigo está duplicado en cada fichero html, lo mejor es sacarlo y ponerlo en un fichero a parte. De esta forma solo será necesario modificar un fichero cuando queramos cambiar algo en la barra lateral por ejemplo

Segunda sesión de pruebas del sistema de posicionamiento

Las pruebas a realizar son:

  • Dejar funcionando el GPS y la IMU durante 5-10 minutos para que se estabilicen las medidas.
  • Comparar Kalman y Raw GPS para ver hasta qué punto mejora nuestro sistema las mediciones.
  • Probar la orientación obtenida con gyro+GPS
  • Obtener la matriz P tras una ejecución e inicializarla la próxima vez con ese valor.
  • Probar valores extremos en las matrices para comprobar los efectos en la trazada.

Diferenciar comienzo de una nueva vuelta

Es necesario diferenciar por vueltas en la gráfica de la trazada. Para ello hay que encontrar un método que nos permita discernir cuando empieza una nueva vuelta.

Primera sesión de pruebas del sistema de posicionamiento

Vamos a realizar las siguientes pruebas:

  • Realizar 3 vueltas seguidas a un "circuito".
  • Realizar una vuelta en la que pongamos a 0 la velocidad y aceleración en el momento en el que no detectemos movimiento.
  • Probar diferentes configuraciones para el smartdelay().
  • Probar a invertir el eje Y para solucionar el problema de imagen.
  • Comprobar los valores de inicialización para el giroscopio.
    En función del resultado anterior, probaremos a tomar las medidas de orientación con el giroscopio.

Diseñar el circuito

Es necesario hacer la lista de componentes, dibujar las conexiones entre ellos y diseñar el PCB para imprimirlo en el laboratorio de la escuela.

Además estaría bien hacer una lista de especificaciones del PCB (intensidad que consume en total, voltaje de cada elemento, etc).

Crear código para comparar el rendimiento de Kalman vs raw coordinates

La prueba del sistema una vez finalizado será conectar dos Arduinos al módulo GPS, uno con nuestra implementación de Kalman y otro que solamente lea las coordenadas que vengan del GPS. Esto nos permitirá comprobar cómo de bien corrige la posición nuestro sistema comparándolo con la medida original del GPS.

Crear un Kalman tridimensional para el acelerómetro

La idea de continuar profundizando en el algoritmo de Kalman, en esta ocasión vamos a implementar el algoritmo en tres dimensiones. Esto nos servirá para tener un esqueleto para la implementación final, ya que solamente habría que modificar la dimensión de las matrices y la matriz F.

Posibilidad de importar y exportar los datos

Como mejora podríamos hacer que sea posible la importación y exportación de los datos. Ademas, podríamos añadir campos extras con informacion como:

  • Nombre
  • Hora
  • Km recorridos
  • Notas

Modificar la tasa de actualización del módulo GPS

En estos momentos la tasa de actualización es de 1Hz, mientras que en las especificaciones se indica que necesitamos 10Hz.

Para modificar la tasa de actualización usaremos el programa GNSS Viewwer, ya que nos da la posibilidad.

Implementación del circuito de pruebas

Foto del prototipo finalizado

mk1

Incluye las siguientes características:

  • El GPS y el acelerómetro se alimentan con el convertidor UART de color verde que se ven, que da 3.3V.
  • Se pueden leer los datos del GPS desde el propio Arduino Mega, desde un segundo Arduino y desde el UART USB.

Se ha comprobado que el Arduino Mega lee correctamente las coordenadas, se puede acceder a las medidas del acelerómetro sin problema y hasta donde hemos comprobado no hay cortocircuitos.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.