Aller au contenu


Photo
- - - - -

Projet de robot topographique

localisation Mapping Cartographie Topographie

80 réponses à ce sujet

#41 machina78

machina78

    Membre

  • Membres
  • 38 messages

Posté 28 janvier 2013 - 09:50

J'ai eu un peu de difficulté a mettre le wifi en place.
Déja j'ai mis de coté l'apprentissage de Qt pour revenir a PHP/MySQL/javascript que je connais mieux.

Je voulais utiliser les sockets mais dans le sens Arduino vers PHP ca me plante l'arduino systématiquement...
et je n'ai pas trouvé de réponse sur le web, mis à part que d'autre personnes semblaient dans le même cas.

Afin de récupérer l'inclinaison j'ai donc créé un serveur web.
L'arduino envoi des requêtes Get au serveur ("GET /writepentelocalserv.php?inclinaison=34.38 HTTP/1.0"). les données passe par un script qui envoie les valeurs de l'accéléromètre en Base de Données.

Ensuite J'ai crée une page web avec Ajax (Jquery) qui récupère les infos souhaitées de la BD toutes les 2sec (partie de droite).
et je peux envoyer des consignes de vitesse et de direction grace aux slider (partie gauche)
Ca donne quelque chose de sympa quand même. Et surtout c'est relativement rapide. Je n'ai pas mesuré le temps mais il y a a peine une seconde entre le relachement du slider et la lecture de la consigne sur la console de l'arduino.

Image IPB


Pour la partie commande je passe par les sockets (toujours en Php). Via la page html je lance un script qui envoie une commande a l'arduino cette fois-ci via les sockets.

<?php
error_reporting(E_ALL);

echo "<h2>Connexion TCP/IP</h2>\n";

/* Lit le port du service WWW. */
$service_port = getservbyname('www', 'tcp');

/* Lit l'adresse IP du serveur de destination */
$address = gethostbyname('192.168.0.16');

/* Crée un socket TCP/IP. */
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    echo "socket_create() a échoué : raison :  " . socket_strerror(socket_last_error()) . "\n";
} else {
    echo "OK.\n";
}

echo "Essai de connexion à '$address' sur le port '$service_port'...";
$result = socket_connect($socket, $address, "10000");

if ($socket === false) {
    echo "socket_connect() a échoué : raison : ($result) " . socket_strerror(socket_last_error($socket)) . "\n";
} else {
    echo "OK.\n";
}

  $in = "?".$_GET['cmd']."\r\n"; //'cmd' doit être passé en paramètre 
  $out = '';

  echo "Envoi de la requête HTTP HEAD...";
  socket_write($socket, $in, strlen($in));
  echo "OK.\n";
  
echo "Fermeture du socket...";
socket_close($socket);

?>

Je vais passer a l'asservissement des moteurs, partie que je vais découvrir, mais je pense que pour ce point il y a pas mal de ressources.
++

#42 machina78

machina78

    Membre

  • Membres
  • 38 messages

Posté 29 janvier 2013 - 11:55

Avant de passer à l'achat du moteur + carte de contôle (je pensais a une devantech MD25 (controler via I2C) + Moteurs EMG30).

Je cherche donc des ressources concernant le pilotage moteur en I2C et les interruptions.
Car d'après ce que j'ai pu lire, il faut utiliser les interruptions pour obtenir les infos des encodeurs sans bloquer tout le programme.

Les interruptions étant sur les broches bien définies (arduino Mega) je ne sais pas ce qu'il en ai lorsque le passe par le protocole I2C...


A priori la carte MD25 gère les encodeurs toute seul, il suffit de passer les consignes....Donc globalement pour le pilotage (type radiocommande) i suffit de surveiller les consignes arrivant via la carte Wifi et les transmettre à la carte MD25.

Je vais essayer de préparer un code adequat et préparer la partie Mécanique.
En parallele je vais me (re)pencher sur la partie GPS (peut être pas différentielle d'ailleurs)

#43 hmnrobots

hmnrobots

    Membre passionné

  • Membres
  • PipPipPip
  • 316 messages
  • Gender:Male
  • Location:Périphérie Nantes

Posté 29 janvier 2013 - 11:55

En parallele je vais me (re)pencher sur la partie GPS (peut être pas différentielle d'ailleurs)

t'as choisi quel solution finalement ? quel GPS ?
Faire simple, c'est déjà bien assez compliqué!
http://hmnrobots.blogspot.fr/

#44 machina78

machina78

    Membre

  • Membres
  • 38 messages

Posté 30 janvier 2013 - 12:49

J'ai pas encore choisi mais ceux sont tes posts :thank_you: et la mise en oeuvre RTK qui m'oriente vers une solution a un seul GPS. Il faut cependent que la précision soit suffisante (une vingtaine de centimètre serait pas mal). Je n'ai pas encore regarder si les GPS PPP sont compatible RTK au cas où, car apparement on peut utiliser la bibliothèque RTKLIB avec un seul GPS...).
[comme je découvre tout cet univers de la robotique ca me prend un certain temps...mais c'est passionnant]
++

Edit :
je vais partir sur le NEO-6P, je verrais bien si j'arrive a en tirer quelque chose
ce qui m'inquiete un peu c'est le manque de doc sur le produit en lui même (par contre chez le fabricant UBLOX NEO-6P, la il y a de quoi lire)

Sinon j'ai trouver un LEA-4T, je ne sais pas ce que ca vaut mais c'est pas tres cher et ca fournit Raw et Timing (pour du RTK low cost ca doit etre pas mal...)

#45 hmnrobots

hmnrobots

    Membre passionné

  • Membres
  • PipPipPip
  • 316 messages
  • Gender:Male
  • Location:Périphérie Nantes

Posté 30 janvier 2013 - 07:06

J'ai pas encore choisi mais ceux sont tes posts :thank_you:/>/> et la mise en oeuvre RTK qui m'oriente vers une solution a un seul GPS. Il faut cependent que la précision soit suffisante (une vingtaine de centimètre serait pas mal). Je n'ai pas encore regarder si les GPS PPP sont compatible RTK au cas où, car apparement on peut utiliser la bibliothèque RTKLIB avec un seul GPS...).
[comme je découvre tout cet univers de la robotique ca me prend un certain temps...mais c'est passionnant]
++

passionnant et chronophage, je me limite pour l'instant à te suivre mais je ne désespère pas d'aller plus loin
Faire simple, c'est déjà bien assez compliqué!
http://hmnrobots.blogspot.fr/

#46 machina78

machina78

    Membre

  • Membres
  • 38 messages

Posté 14 février 2013 - 10:45

Quelques news
J'ai recu mon module GPS NEO-6P + antenne (livraison super rapide shop indiqué plus haut)
Je l'ai testé sur l'ordi avec l'application Ublox center
Pour l'utiliser avec l'arduino en I2C ou TX/RX il me faut souder un connecteur (ou barette) ayant un pas de 1,27mm (commandé)
A suivre

#47 hmnrobots

hmnrobots

    Membre passionné

  • Membres
  • PipPipPip
  • 316 messages
  • Gender:Male
  • Location:Périphérie Nantes

Posté 14 février 2013 - 11:46

Quelques news
J'ai recu mon module GPS NEO-6P + antenne (livraison super rapide shop indiqué plus haut)
Je l'ai testé sur l'ordi avec l'application Ublox center
Pour l'utiliser avec l'arduino en I2C ou TX/RX il me faut souder un connecteur (ou barette) ayant un pas de 1,27mm (commandé)
A suivre

Super
j'ai relu la datasheet, j'ai compris que le 6P ne propose pas par défaut (seulement sur demande spéciale) les raw data nécessaire à RTK LIB par contre il doit bien être en mesure de fournir une précision meilleure que le mètre.
tu confirmes ?
Faire simple, c'est déjà bien assez compliqué!
http://hmnrobots.blogspot.fr/

#48 machina78

machina78

    Membre

  • Membres
  • 38 messages

Posté 14 février 2013 - 03:00

Je l'ai juste essayer rapidement et je n'ai surtout pas (chez moi) la possibilité de l'essyayer avec suffisament de dégagement pour obtenir la précision espérée...
Je vais le tester en exterieur dès que j'aurais un moment et qu'il fera (a peu près) beau.
++

#49 machina78

machina78

    Membre

  • Membres
  • 38 messages

Posté 15 février 2013 - 05:40

Petit test en extérieur j'ai laissé le NEO-6P 30 mini au meme endroit
Le ciel était vraiment couvert par moment (je crois que ca influe sur les perf)

Le test montre une déviation de 3m quand même...on voit distinctement 2 périodes ou le GPS s'est décalé...

L'acquisition a été faite avec le Ublox center

Image IPB

#50 hmnrobots

hmnrobots

    Membre passionné

  • Membres
  • PipPipPip
  • 316 messages
  • Gender:Male
  • Location:Périphérie Nantes

Posté 15 février 2013 - 10:06

si 1 point représente une mesure ça fait quand même une majorité dans moins de 1m voire de 50cm. La difficulté sera d'éliminer ces valeurs erronées.
Faire simple, c'est déjà bien assez compliqué!
http://hmnrobots.blogspot.fr/

#51 machina78

machina78

    Membre

  • Membres
  • 38 messages

Posté 16 février 2013 - 09:20

Tout à fait, mais comment savoir si une valeur es erroné. Pour l'instant j'y connais rien...
Ce que je crois avoir compris c'est qu'en restant en statique pas mal de temps on fini par avoir une position fiable...ce que je ne sais pas c'est si ensuite les valeurs obtenu en mouvemlent (relativement lent) seront égelement tres fiables...

#52 hmnrobots

hmnrobots

    Membre passionné

  • Membres
  • PipPipPip
  • 316 messages
  • Gender:Male
  • Location:Périphérie Nantes

Posté 16 février 2013 - 10:45

Tout à fait, mais comment savoir si une valeur es erroné. Pour l'instant j'y connais rien...
Ce que je crois avoir compris c'est qu'en restant en statique pas mal de temps on fini par avoir une position fiable...ce que je ne sais pas c'est si ensuite les valeurs obtenu en mouvemlent (relativement lent) seront égelement tres fiables...

j'ai vu récemment un article où des ingés (espagnol je crois) ont associé un capteur GPS avec d'autres capteurs IMU, odo , cap... et mélangé,filtré le tout avec Kalman (ou équivalent ce qui me passe bien au dessus malgré les explications de BT) et extrait une position beaucoup plus précise.
Dans un premier temps simpliste, les capteurs des roues /cap pourraient déjà éliminer des positions vraiment trop éloignées.
Peux tu dire si ta version de NEO 6p dispose des raw data ?
Faire simple, c'est déjà bien assez compliqué!
http://hmnrobots.blogspot.fr/

#53 machina78

machina78

    Membre

  • Membres
  • 38 messages

Posté 16 février 2013 - 11:01

Tout à fait en couplant avec l'odométrie on doit pouvoir déjà en tiré quelque chose de pas mal.

Oui le NEO-6P dispose des raw data (fiche produit) par contre il ne dispose pas pas du "Timing" qui il me semble est nécessaire pour du RTK.

#54 hmnrobots

hmnrobots

    Membre passionné

  • Membres
  • PipPipPip
  • 316 messages
  • Gender:Male
  • Location:Périphérie Nantes

Posté 16 février 2013 - 11:06

Tout à fait en couplant avec l'odométrie on doit pouvoir déjà en tiré quelque chose de pas mal.

Oui le NEO-6P dispose des raw data (fiche produit) par contre il ne dispose pas pas du "Timing" qui il me semble est nécessaire pour du RTK.

tu as pris le chip seulement comme indiqué sur la fiche produit ou le module pré-équipé ?
Faire simple, c'est déjà bien assez compliqué!
http://hmnrobots.blogspot.fr/

#55 machina78

machina78

    Membre

  • Membres
  • 38 messages

Posté 16 février 2013 - 12:04

J'ai pris celui-ci

#56 hmnrobots

hmnrobots

    Membre passionné

  • Membres
  • PipPipPip
  • 316 messages
  • Gender:Male
  • Location:Périphérie Nantes

Posté 16 février 2013 - 12:43

J'ai pris celui-ci

ok, maintenant que la réflexion avance doucement, une carte intégrant tous les capteurs comme celle ci sera peut être une évolution intéressante. Dommage qu'elle ne soit pas équipée du 6ppp
Faire simple, c'est déjà bien assez compliqué!
http://hmnrobots.blogspot.fr/

#57 machina78

machina78

    Membre

  • Membres
  • 38 messages

Posté 22 février 2013 - 08:24

Je continue doucement
Je parviens a récupérer les infos du GPS sur l'Arduino en utilisant la libriairie TinyGPS. :dance2: lol

Je vais commander le kit devantech RD02 pour la motorisation.

Question alimentation le kit devantech RD02 est un ensemble carte alim + moteur 12 V...quelle est la tolérance si on alimente avec une tension légerement supérieur. Etant donné que je vais l'alimenter vaec des batterie 12V (10x1.2V) je vais me retrouvé avec une tension de 13 à 14 V lorsque la batterie sera bien chargée non ?? cela pose t-il un pb ?

Pour ce kit il est conseillé une batterie pouvant délivrer 6 ampère en pique (ou en pointe je ne sais pas comme on le dit)
Quelle ampérage maxi peux délivrer une batterie nimh (par exemple une 3600mAh, pour les lipo je sais mais pour les nimh ...?)


Je pense ajouter un capteur ultrason afin d'éviter tout choc du robot contre un eventuel obstacle...y a t il des modules de référence pour arduino ??

++

#58 hmnrobots

hmnrobots

    Membre passionné

  • Membres
  • PipPipPip
  • 316 messages
  • Gender:Male
  • Location:Périphérie Nantes

Posté 22 février 2013 - 10:14

Question alimentation le kit devantech RD02 est un ensemble carte alim + moteur 12 V...quelle est la tolérance si on alimente avec une tension légerement supérieur. Etant donné que je vais l'alimenter vaec des batterie 12V (10x1.2V) je vais me retrouvé avec une tension de 13 à 14 V lorsque la batterie sera bien chargée non ?? cela pose t-il un pb ?

Pour ce kit il est conseillé une batterie pouvant délivrer 6 ampère en pique (ou en pointe je ne sais pas comme on le dit)
Quelle ampérage maxi peux délivrer une batterie nimh (par exemple une 3600mAh, pour les lipo je sais mais pour les nimh ...?)

il s'agit de moteurs continu donc pas de pb je pense, le variateur fera le travail.
Par contre, pour l'extérieur, je me demande si les roues seront assez grande (garde au sol < 35mm) En même temps augmenter le rayon forcera à augmenter le couple nécessaire; j'avais été surpris par le couple nécessaire pour rouler dans l'herbe.
tu les prends où tes NiMH ?
pour les capteurs US SFR04 ou SFR05, les SFR05 nécessitent une seule E/S du micro
Faire simple, c'est déjà bien assez compliqué!
http://hmnrobots.blogspot.fr/

#59 machina78

machina78

    Membre

  • Membres
  • 38 messages

Posté 23 février 2013 - 09:17

Concernant la garde au sol elle sera suffisante. Néanmoins puisque je souhaite utiliser les trois roues du robots comme points d'appui pour les mesures d'inclinaison du terrain, plus les roues seront grande et moins le prise de mesure de seront perturber par les défaut du terrain... (le sol est de l'herbe tondu tres tres ras).

je changerais les roues ultérieurement si tout fonctionne


Les nimh je pensait les prendre chez conrad...

Merci pour les capteurs je vais regarder ceux la

(Et merci de suivre mon sujet ! ;-) bon week )

#60 machina78

machina78

    Membre

  • Membres
  • 38 messages

Posté 02 avril 2013 - 02:39

Je suis en train de réaliser le premier proto avec 2 planches (un peu fine) de contreplaqué...
c'est un peu léger mais je vais passer a de l'alu ensuite.

1er etage : moteurs,carte MD25, alim moteur
2eme etage : Arduino+Wifi, module GPS+ antenne GPS (5m de cable.....)+capteur d'inclinaison (accélérometre).

Pour l'alimentation 12V, j'ai pris un boitier 10 piles ca me fera du 13.5V en 2200mAh (pile rechargeable).

Pour les premiers tests se sera suffisant

J'ai eu un peu de temps pendant les vacances d'hiver malheureusement j'ai galéré avec l'arduino que le PC ne reconnaissait plus (changement de PC)...la ca semble de fonctionner a nouveau. (j'ai pas vraiment compris le pb).

J'ai réussi a scanné le périmètre d'une surface en utilisant le 2eme étage uniquement.(envoi des coordonées du périmètre au serveur via le wifi
en ce moment je programme la partie logiciel que va me donné le chemin que devra suivre le robot pour aller effectué les mesures d'inclinaison sur un maillage pré défini (tout les 1mètre).

Ensuite une fois le chemin défini, je vais devoir m'attaqué au pilotage du robot (odométrie + GPS).

++
Image IPB



Répondre à ce sujet



  



0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users