Coder Social home page Coder Social logo

mecyc / tfg_radar_60ghz Goto Github PK

View Code? Open in Web Editor NEW
7.0 3.0 3.0 433.84 MB

TFG realizado en la Universidad de Burgos del desarrollo de una aplicación para el uso de un Radar de 60 GHz de la marca Acconeer.

License: GNU General Public License v3.0

TeX 3.04% Jupyter Notebook 79.28% Dockerfile 0.01% Makefile 0.01% Python 15.52% PureBasic 0.32% Batchfile 0.01% CSS 0.03% HTML 0.87% JavaScript 0.89% MATLAB 0.02%
radar acconeer sensor aprendizaje-automatico auto-sklearn clasificador k-nearest-neighbours k-nn machine-learning python

tfg_radar_60ghz's Introduction

Creación de demos técnica y documentación asociada, para la detección/clasificación de materiales, utilizando un sensor radar a 60GHz

Codacy Badge

TFG realizado en la Universidad de Burgos del desarrollo de una aplicación para el uso de un Radar de 60 GHz de la marca Acconeer.

RadarWave - Herramienta para el uso del radar Acconeer de 60GHz

Descripción

En el presente proyecto se ha documentado, implementado y demostrado el uso de un radar de 60 GHz fabricado por Acconeer, para el reconocimiento de diferentes materiales u objetos. Mediante el uso de métodos de aprendizaje, se obtendrán diferentes características de tres tipos de materiales, que permitirán clasificarlos de forma automática.

Este proyecto se centra en el desarrollo de una aplicación de escritorio para el uso de un radar capaz de comparar tres tipos de materiales (cartón, cristal y plástico). Para ello, se han comparado varios modelos clasificadores entrenados a partir de una serie de lecturas, obtenidas de un total de 30 objetos mediante un radar de 60 GHz.

Aplicación RadarWave

La aplicación generada para el proyecto ha sido llamada RadarWave, debe su nombre a las ondas generadas por los radares. Mediante esta aplicación podemos realizar distintas lecturas de objetos para identificar el material que los componen. Se puede realizar nuevas lecturas desde el radar, guardar las lecturas y clasificar lecturas guardadas anteriormente en nuestro equipo.

RadarWave

Cubículo de lectura

Espacio o cubículo empleado para la lectura de objetos. Las dimensiones del cubículo son de 30 x 22 x 25 cm (ancho, largo y alto), con un orificio en la parte superior, en el medio, del tamaño del sensor. El sensor fue colocado en la posición del orificio y sujetado con cinta adhesiva. Esta caja de madera se utiliza poniendo la abertura en la parte lateral, mirando al operario que hace uso del radar.

Prototipo empleado para realizar las lecturas de los distinto materiales

Componentes del radar

Los creadores de Acconner han elaborado un vídeo (EVK 2) con las instrucciones del montaje del sensor. En él se detallan los diferentes componentes y el montaje de hardware a la Raspberry Pi 4.

Hardware

  1. Radar A111 de Acconeer
  2. Raspberry Pi 4
  3. Placa XR112
  4. Cable flexible para XR112

Componentes en conexión

Modelos clasificadores comparados

Modelo Tasa de acierto (%)
Random Forest 86.33
k-NN 87.67
SVM 84.67
auto-sklearn 88
TabPFN 90

Clasificador k-NN

Se ha decidido optar por k-NN para generar el modelo que utilizará la interfaz desarrollada. Esta decisión se debe a la falta de compatibilidad de auto-sklearn y TabPFN (basado en auto-sklearn) con el sistema operativo Windows. El desarrollo creado se utilizar tanto en Windows como en Linux.

Matriz de confusión obtenida con el clasificador k-NN para 1 vecino:

Matriz de confusión

Evolución del clasificador en el rango de 1 a 26 vecinos:

Matriz de confusión

Instalación

Windows

Para la instalación en Windows consultar el documento de anexos, apartado E - Documentación de instalación.

Ubuntu (Linux)

El sistema operativo que utilizamos es Ubuntu, una distribución Linux, por lo que Python está integrado por defecto y no hace falta su instalación. Se recomienda tener actualizado Python a la última versión.

Antes de instalar las librerías necesarias instalamos pip, es un sistema de gestión de paquetes que nos ayuda a instalar las librerías, y setuptools, facilita el empaquetado de proyectos de Python.

$ sudo apt install python3-pip $ pip3 install setuptools-rust

Una vez terminada la instalación procedemos a descargar y descomprimir el fichero RadarWave_v1.0.zip.

A continuación se debe instalar las librerías que usa la interfaz desarrollada. Indicar que para ejecutar el siguiente comando nos debemos situar en la dirección o PATH donde se encuentra el archivo requirements.txt, lo encontramos dentro del fichero que acabamos de descomprimir.

El comando sería el siguiente:

$ pip3 install -r requirements.txt

Si existiera algún problema al instalar la librería de Tkinter (tk) se deben lanzar los siguientes comandos:

$ sudo apt-get install python3-tk $ sudo apt-get install python3-pil python3-pil.imagetk

Finalmente se debe instalar la librería de Acconeer, para ello descargamos del repositorio la carpeta acconer-python-exploration. Una vez descargada abrimos el terminal dentro de la carpeta y ejecutamos la siguiente orden.

$ python3 setup.py install

Si queremos ejecutar RadarWave en Ubuntu deber ser lanzando el siguiente comando en la misma ruta del archivo RadarWave.py.

$ python3 RadarWave.py

Manual de uso

El uso de la aplicación es muy sencillo, tenemos cuatro botones en la parte superior, de izquierda a derecha son:

  1. Abrir archivo de lectura
  2. Iniciar lectura por radar
  3. Clasificar la lectura
  4. Guardar datos de lectura.

Interfaz

Si pulsamos en el botón 1 se abre el explorador de archivos para seleccionar una lectura a clasificar.

Abrimos el fichero y ya tenemos los datos dentro de la aplicación, para clasificarlos pulsamos en el botón 3. Si lo que queremos el guardarlos pulsamos en el botón 4.

Para realizar una lectura por radar necesitamos iniciar la Raspberry junto con el radar 20 segundos antes de lanzar la lectura, una vez realizada la lectura pulsamos en el botón 2. Tras esto se iluminan los botones 3 y 4. Para clasificar el material leído pulsamos en el botón 3. Si lo que queremos es guardar la lectura pulsamos en el botón 4.

Autor

  • Martín Encabo Contreras

Tutores

  • José Francisco Díez Pastor
  • Pedro Latorre Carmona

Primera versión: Enero 2023 (v1.0)

tfg_radar_60ghz's People

Contributors

mecyc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

tfg_radar_60ghz's Issues

Puerta en funcionamiento del radar A111

Volviendo a la guía de Acconeer instalaremos WinSCP y PuTTY para acceder al radar desde el equipo de desarrollo.

Desde PuTTY iniciaremos el streaming de datos del sensor se necesita ir a la carpeta de Downloads donde esta el kit de desarrollo e introducir el siguiente comando:

$ ./utils/acc_streaming_server_rpi_xc112_r2b_xr112_r2b_a111_r2c

Familiarización con GitHub

Familiarización con el entorno GitHub para el desarrollo del TFG de la Universidad de Burgos.
Se aprende como crear milestones y commits.

Elección de materiales

Se identificaran 30 materiales con un código propio:
- 10 de cartón
- 10 de plástico
- 10 de cristal

"Acerca de" en interfaz

Se añade una ventana que contiene la información de la aplicación (Ej: versión, fecha desarrollo, otros datos de informativos...)

Clasificador TabPFN

El clasificador TabPFN tan solo lleva unos meses en funcionamiento y se ha decidido probar en el presente proyecto debido a las recomendaciones de sus desarrolladores que indican y demuestran resultados muy superiores a clasificadores más convencionales.

AJUSTAR PARAMETROS RADAR

Se ha decido estudiar de nuevo la documentación de Aconneer para encontrar el mejor ajuste posible en las lecturas.

Recopilar datos de los materiales escogidos

De cada material se realizaran 10 registros de diferentes vistas de 10 segundos.

Un porcentaje de estos datos conformaran la red de entrenamiento y otro porcentaje servirán para testear la red.

Configuracion de Raspberry Pi y equipo de desarrollo

Configuracion de raspberry pi y equipo de desarrollo
Username: pi
Password: raspberry
IP: 192.168.0.20

Acconner ofrece un video (EVK 2) con las instrucciones del montaje del sensor. En el se explica el montaje de los diferentes componentes a la Raspberry Pi 4.

Se compone de cuatro piezas: la Raspberry Pi 4, el radar A111 sobre la placa XR112, la placa multisensor XC112 y un cable plano para conectar el sensor a la placa.

Para realizar la instalación del software necesario se han seguido la guia de Acconeer:
https://developer.acconeer.com/download/evk-getting-started-guide-pdf/

Para configurar el equipo de desarrollo se ha utilizado el siguiente repositorio de GitHub de Acconeer:
https://github.com/acconeer/acconeer-python-exploration

Desarrollo de interfaz

Se intenta mejorar visualmente la interfaz actualmente desarrollada.
Además se mejoran las funcionalidades actuales.

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.