localisation_audio/daily_work.md

82 lines
5.2 KiB
Markdown
Raw Normal View History

2020-05-21 15:10:26 +02:00
**Ajout du 20 Mai:**
2020-05-20 18:10:38 +02:00
Les premières recherches utiles sur le sujet:
https://tel.archives-ouvertes.fr/tel-00148058/document
http://www.isir.upmc.fr/UserFiles/File/argentieri/NSR33/Cours-court.pdf
Ci-dessous, les travaux d'un homme sur la localisation sonore utilisant une Raspberry et deux microphones. L'orientation d'une "plaque" en fonction de l'origine du son se fait par un moteur.
https://microcontroleurs.blogspot.com/2012/08/localisation-dune-source-sonore-avec-un.html
https://microcontroleurs.blogspot.com/2012/08/localisation-optique-et-sonore.html?q=Localisation+d%27une+source+sonore+avec+un+ATmega328
Ici, un forum sur lequel une personne a essayé de mettre en application la solution précédente.
https://forum.arduino.cc/index.php?topic=386996.0
N.B.: Utilisation de rosserial_arduino: permet d'utiliser ROS directement avec l'IDE Arduino
Une nouvelle solution proposée sur PotBot:
https://pobot.org/La-localisation-des-sources-de-son.html?decoupe_recherche=MICRO&artpage=0-0#outil_sommaire_0 (Commentaire du 12/09/10 paraît pertinent)
Test simulé sur pc, programme écrit en java (et un peu lourd) mais adaptable en c/c++ (permet de porter le module sur Raspberry Pi). Cela a été fait ici, notamment avec l'utilisation d'ALSA :
https://pobot.org/La-localisation-des-sources-de-son,1099.html
2020-05-21 18:25:33 +02:00
Cette solution nécessite deux microphones. Peut-être en essayer plus (4 par exemple) ?
2020-05-28 12:24:06 +02:00
2020-05-21 18:25:33 +02:00
**Ajout du 21 Mai**
2020-05-21 18:26:37 +02:00
Une première version de l'état de l'art concernant le sujet a été rédigé. https://gitcdr.univ-ubs.fr/ericsenn/localisation_audio/src/branch/master/Etat_Art_v1.pdf
2020-05-21 18:25:33 +02:00
2020-05-22 18:09:22 +02:00
De plus, la solution envisagée commence à se préciser: Adapté la solution présentée sur PotBot (https://pobot.org/La-localisation-des-sources-de-son.html?decoupe_recherche=MICRO&artpage=0-0#outil_sommaire_0) afin de l'utiliser en c++ sur un Raspberry Pi. Cela avec l'IDE Arduino (http://wiki.ros.org/rosserial_arduino/Tutorials/Arduino%20IDE%20Setup) permettant de communiqué avec ROS. Dans un premier temps essayer avec deux microphones, puis étudier l'impact sur la précision du système lorsque l'on rajoute des microphones.
2020-05-28 12:24:06 +02:00
2020-05-22 18:09:22 +02:00
**Ajout du 22 Mai**
Une première version des programmes permettant de communiquer avec la carte son, l'échantillonnage et la localisation ont été écrits. Ils sont disponibles respectivement aux adresses:
* https://gitcdr.univ-ubs.fr/ericsenn/localisation_audio/src/branch/master/carte_son_v1.cpp
* https://gitcdr.univ-ubs.fr/ericsenn/localisation_audio/src/branch/master/echantillonnage_v1.cpp
* https://gitcdr.univ-ubs.fr/ericsenn/localisation_audio/src/branch/master/localisation_v1.cpp
Si les deux premiers semblent fonctionner, le dernier n'est pas encore fonctionnel.
2020-05-25 21:43:09 +02:00
N.B: il est nécessaire d'utiliser ALSA via le header "asoundlib.h" pour le bon foctionnement des programmes.
2020-05-28 12:24:06 +02:00
2020-05-27 17:10:44 +02:00
**Ajout du 25 Mai**
2020-05-25 21:43:09 +02:00
L'objectif du jour était de faire fonctionner les programmes.
Pour traiter les sons qui arrivent à la carte son, il existe deux possibilités:
* hw:x;y
* plughw:x;y
L'utilisation de plughw:x;y (ou hw:x;y) sur mon pc doit se faire avec les paramètres suivants :
x=1 (carte 1),
y=0 (périphérique 0).
Afin de connaitre ces paramètres, il est possible d'utiliser la commande "aplay -l" dans le terminal.
Si hw:x;y est plus léger et permet d'accéder directement au hardware, plughw:x;y qui est plus "gourmand" semble pouvoir fonctionner sans problème sur une Raspberry Pi.
Une fois que les programmes ont bien fonctionnés, je les ai utilisés sur un autre pc (également sous linux) qui comportait un microphone interne stéréo (2 micros distants d'environ 5 cm). La détection fonctionne un peu mais il est cependant nécessaire de l'améliorer.
2020-05-25 21:51:56 +02:00
Programme en C++ permettant la localisation :https://gitcdr.univ-ubs.fr/ericsenn/localisation_audio/src/branch/master/sound-source-loc_v.1.0.3.cpp
2020-05-25 21:50:48 +02:00
2020-05-25 21:51:56 +02:00
Programme en Java permettant d'afficher la détection : https://gitcdr.univ-ubs.fr/ericsenn/localisation_audio/src/branch/master/SoundSourceDraw.java
2020-05-25 21:50:48 +02:00
2020-05-25 21:43:09 +02:00
Ubuntu Xenial et Raspbian (linux pour les raspberry pi) sont tous les deux basés sur la distribution Debian. ROS Kinetic pourra donc être aisément porter d'Ubuntu vers Raspbian.
2020-05-27 17:10:44 +02:00
Lien vers des explications afin d'utiliser des microphones sur une carte rasperry pi: https://www.pofilo.fr/post/20181216-mic-raspberry-pi/
2020-05-28 12:24:06 +02:00
**26 Mai**
En première partie de journée j'ai commencé mes recherches sur la façon d'utiliser cmake et j'ai réalisé des premières tentatives.
Dans l'après-midi l'alimentation de l'odinateur a coupé, j'ai donc essayé de trouver une solution pour la réparer/changer.
2020-05-27 17:10:44 +02:00
**Ajout du 27 Mai**
J'apprends a utiliser cmake.
http://rachid.koucha.free.fr/tech_corner/cmake_manual_fr.html
http://sirien.metz.supelec.fr/depot/SIR/TutorielCMake/index.html#principe
https://alexandre-laurent.developpez.com/tutoriels/cmake/
Il y a un problème de "référence indéfinie" lors de la compilation avec cmake car le header "asoundlib.h" n'est pas trouvé.
Afin d'améliorer la précision du programme existant, j'essaie de trouver d'autres façons d'obtenir la direction notamment via l'intercorrélation:
https://hal.archives-ouvertes.fr/hal-01146396/document
https://hal.univ-lorraine.fr/tel-01749833/document
N.B: Des problèmes avec l'alimentation de mon pc m'ont ralentis.