Actuellement, udacity propose un cours en ligne gratuit de programmation d'une voiture robotique qui vous apprend comment Google le fait pour ses voitures autonomes. Fondamentalement, ils utilisent le GPS pour un positionnement brut avec des cartes stockées et une détection de vision pour la localisation avec un haut degré de précision. Le logiciel utilise des filtres à particules.
Vous pourriez le faire avec le GPS seul si vous utilisiez l'équipement GPS différentiel très coûteux utilisé par les géomètres, mais ce ne serait guère rentable. Comme vous le suggérez, si vous utilisez quelques émetteurs-récepteurs à faible coût (Xbee peut-être?), Vous pouvez facilement mesurer la distance avec un degré de précision extrêmement élevé en transmettant une impulsion et en mesurant le temps nécessaire pour se rendre de l'émetteur du robot au répéteur et dos à distance. C'est comme RADAR, sauf qu'au lieu de faire rebondir le signal sur une surface passive, il est renvoyé par vos transpondeurs stationnaires.
EDIT: Depuis que j'ai été appelé par Kevin sur celui-ci, je ferais peut-être mieux d'expliquer ;-) (Tout en s'amusant, j'ai le plus grand respect pour Kevin et il est tout à fait correct que je n'ai pas fourni suffisamment de détails pour montrer comment mettre en œuvre).
Pour mesurer avec précision le retard de propagation entre deux points, il faut principalement deux choses: 1) Un chemin de signal en ligne droite car les réflexions créeront des distorsions. 2) Certains composants électroniques aux deux extrémités utilisant des horloges synchronisées et la capacité de mesurer les intervalles de temps avec la précision requise.
Les horloges synchronisées sont relativement faciles car la station réceptrice peut dériver son horloge du signal transmis par l'autre station. Il s'agit d'une transmission de données synchrone standard avec récupération d'horloge.
Voici un document intitulé Mesurer le retard de propagation sur une liaison de données bidirectionnelle à 1,25 Gbit / s, où ils obtiennent facilement ce type de précision sur un morceau de fibre optique de 10 km de long. Ils déclarent: "Il devrait être capable de synchroniser ~ 1000 nœuds avec une précision sous-nanoseconde sur des longueurs allant jusqu'à 10 km."
Dans cette note, une méthode est décrite pour déterminer le décalage temporel entre deux nœuds. Ces nœuds sont connectés via un canal de communication point à point série bidirectionnel codé 8B / 10B à 1,25 Gbit / s, comme par exemple utilisé par 1000BASE-X (Gigabit Ethernet). Le décalage temporel est déterminé en mesurant le retard de propagation à l'aide d'un signal marqueur. Le signal est envoyé d'un maître à un nœud esclave et inversé à l'aide de la fonctionnalité sérialiseur / désérialiseur (SerDes) dans les FPGA (Virtex-5). L'horloge récupérée au nœud esclave est utilisée comme horloge de transmission de l'esclave, de sorte que le système complet est synchrone. Pour un canal de communication série à 1,25 Gbit / s, le retard est connu avec une résolution d'un seul intervalle d'unité (c'est-à-dire 800 ps). Cette résolution peut être encore améliorée en mesurant la relation de phase entre l'horloge d'émission et de réception du nœud maître. Il a été démontré que la technique fonctionne sur une seule fibre de 10 km qui est utilisée à deux longueurs d'onde, pour faciliter une connexion bidirectionnelle point à point entre le nœud maître et esclave.
aussi
Une première configuration de test a été construite pour vérifier le principe de mesure du retard de propagation entre un émetteur et un récepteur en utilisant un canal de communication série codé fonctionnant à 3,125 Gbps. L'émetteur et le récepteur résident dans des FPGA sur deux cartes de développement distinctes. Cette première configuration de test a montré qu'il est possible de mesurer le retard de propagation sur une fibre de 100 km avec une résolution d'un intervalle unitaire (soit 320 ps à 3,125 Gbps).
ÉQUIPEMENT UTILISÉ:
La configuration de test se compose de deux cartes de développement ML507 Xilinx [7]. Un FPGA Virtex-5 est monté sur chaque carte. Une carte de développement ML507 est désignée comme nœud maître, l'autre comme nœud esclave. Le maître et l'esclave sont connectés via des émetteurs-récepteurs enfichables à petit facteur de forme (SFP) et 10 km de fibre, créant une liaison bidirectionnelle. Une seule fibre est utilisée qui fonctionne à double longueur d'onde.
Maintenant, clairement, cette configuration particulière est exagérée pour la plupart des projets de robotique de loisir, mais elle pourrait facilement être reproduite à la maison car elle utilise des cartes de développement standard et ne nécessite aucun talent spécial pour fonctionner. Dans le cas du robot, la liaison serait la radio plutôt qu'un câble à fibre optique. Peut-être qu'il pourrait même s'agir d'une liaison infrarouge comme une télécommande de télévision, même si je soupçonne que l'extérieur en plein soleil pourrait être problématique. La nuit, cela pourrait très bien fonctionner!