Aller au contenu


Charlo

Inscrit(e) (le) 29 oct. 2019
Déconnecté Dernière activité nov. 02 2019 09:10
-----

Messages que j'ai postés

Dans le sujet : LIDAR TFmini et IMU + déplacement

02 novembre 2019 - 09:12

D'accord, je vais tracer une carte avec des données simulé et puis ensuite je vais m'occuper du déplacement. Y'en a pas pour longtemps j'avais tout fait en sur arduino. Les scripts pour les capteurs sont tous effectif.
Il me reste plus que pour commander les moteurs. Je vous tiendrais au courant si j'y arrive.
Merci pour vos réponses

Dans le sujet : LIDAR TFmini et IMU + déplacement

31 octobre 2019 - 11:50

Merci pour ces cours je vais étudier ça correctement. L'odométrie est vraiment indispensable pour avoir une bonne précision ? J'ai récupéré les moteurs du robot qui sont en dc et il y avait bien une roue codeuse dessus mais pour essayer de comprendre le fonctionnement j'ai malheureusement abîmé l'un d'eux. Je vais voir pour le réparer... Mais sa me semble compromis.
Pour par exemple avoir une meilleure précision de mes déplacements, je peux éventuellement faire par exemple 10 mesures ( ou plus à chaques départs et fin de déplacements) télémètre+magnétomètre et faire une moyenne. ( le tfmini a une bonne précision.
Je pense faire l'algo moi même pour apprendre et rester en python. Je pense trouver mon bonheur dans les cours.
Merci encore. Je reviendrai vers vous pour avoir un peu d'aide si je galère trop pour créer un algorithmes fonctionnel.
En gros imaginons que le robot est au Milieu de la carte et il se déplace dans une direction et dès qu'il doit changer de direction je trace une ligne avec donnée de départ et d'arrivée ? Ou j'actualise au fur et à mesure de l'avancement ? Comme c'est un lidar fixe je pense faire : à chaque départ du robot faire une mesure de la distance devant le robot et placer un point. Car si je place un point à chaque mesure du lidar le nombre de données va être vite énorme. Et je pense que ça peut être pénalisant ?
Pour placer placer un point au départ de je peux faire
X = sinus ( angle ) x distance lidar
Y = cosinus ( angle ) x distance lidar
Et pour l'arrêt ( je compte arrêter le robot à 5cm d'ub obstacles grâce au hc-sr04) et faire une nouvelle mesure et nouveau point
X = sinus ( angle ) x ( anciene distance lidar - nouvelle distance)
Y = cosinus ( angle ) x (ancienne distance lidar- nouvelle distance)

Pour la théorie sa vous semble correct ?
J'essaie de réfléchir à ça je peux pas bricoler au robot pendant quelques jours ! :)
Merci encore bonne journée

Dans le sujet : LIDAR TFmini et IMU + déplacement

31 octobre 2019 - 08:33

Merci pour vos réponses.
La base roulante fonctionne pas encore. Je l'avais déjà préparé sur un arduino mega. Tout fonctionnait bien mais j'ai décidé de changer pour un raspberry pi zero.
je l'ai reçu hier alors je vais remonter tout ça. Et faire le script pour gérer les moteurs ( le tfmini fonctionne, les hc-sr04 aussi et le BNO055 aussi.)

Je pense changer de méthode.
Au départ je voulais faire une sorte de scan en faisant tourner le robot sur lui même pour connaître l'environnement.
Mais d'après mes recherches il faut un capteur type RPLidar. Et sur un raspberry ( encore plus un zero) la vitesse de traitement des infos est trop lente pour faire du slam.


Du coup le tfmino sort une trame = distance + force signal
Le BNO055 sort un angle absolu ( c'est un 9-dof, accéléromètre 3 axes, gyroscope et magnétomètre) il utilise toutes les infos pour faire une valeur absolu précise.

Donc au départ je me disais en utilisant l'angle + distance de l'obstacle je pourrais faire une cartographie des obstacles.

Alors que je vais plutôt calculer le déplacement du robot.
j'ai prévu de le faire avancer qu'en ligne droite. Pour tourner il s'arrête et rotate que sur lui même. Sa simplifiera les calculs de position

Mais d'après vous avec ces deux informations angle+distance je peux faire une trace sur une carte vierge par exemple.
où le point de départ serait le centre par exemple?

Quel librairie python je pourrais utiliser pour cartographier le déplacement ?
il existe pas mal de solutions. Dont matplotlib. Ou alors je pourrais éventuellement créer un jeu fictif sur Arcade.
Une fois que tout cela fonctionne mon but ultime (pardonnez ma prétention lol) c'est d'y intégré un IA TensorFlow.
J'ai suivi un cours pour la créer je pense y arriver.
Le plus dur pour moi aujourd'hui c'est de créer cette carte pour au final en gros tracer chaque endroit où le robot est passé. Pour par exemple dire à l'IA = passer sur un point existant = récompense négative
endroit non cartographié = très petite récompense positive.
et pour les obstacles, seulement arrêter le robot et le faire changer de direction, vraiment quand l'obstacle se présente devant lui à quelques centimètres.
La solution arcade serait peut être plus adaptée car je pourrais préparer tout l'environnement, dont les commandes et ensuite dire simplement à l'IA de prendre les décisions. Avance tourne etc..
Merci !

PS: si quelqu'un connaît GreezySLAM.
j'ai voulu adapter le script pour le RPlidar pour mes valeurs mais la carte reste vierge.
Si quelqu'un connaît bien cette lib je peu poster mon code voir si vous trouvez ce qui cloche (en dehors du fait que je pense qu'un pi zero est trop peu puissant pour avoir une application fluide)

D'ailleurs j'y pense, mon post ne devrait pas se trouver dans la section programmation finalement ?
car le reste du robot fonctionne.

Merci encore !