2015-10-17 4 views
0

Je connais le suiveur de ligne principalement les robots de résolution de grille que je connais les bases en fait. En fait, ils doivent tracer le chemin de la grille dans une arène, puis revenir au point de départ dans une distance la plus courte. Ici, mon doute concerne le suiveur de ligne dans ce lien que j'ai joint. Advanced line follower robot for grid solving and maze solvingRobot suiveur de ligne avancé

Mon doute est quelles sont les procédures pour le faire? Ils ont cartographié le chemin et ont utilisé l'algorithme de Dijkstra pour résoudre le chemin. Mais comment transfèrent-ils le code (c'est-à-dire) où il doit tourner dans quelle direction il doit tourner. comment génèrent-ils la fonction what should be passed? S'il vous plaît expliquer que j'ai besoin de la procédure seule. Je vais essayer avec Python.

+0

Il existe un site Arduino.Stackexchange, vous obtiendrez plus de réponses là-bas. – heltonbiker

+0

Il ne s'agit pas d'arduino. Ce n'est pas qu'un robot peut être conçu ou développé avec l'aide d'Arduino. S'il vous plaît ne pas réduire ma réputation si vous ne connaissez pas les réponses. –

+0

Le downvote n'était pas le mien. Quoi qu'il en soit, je suis d'accord que votre question est plus large que la portée d'Arduino. Honnêtement, je pense que c'est peut-être en baisse en étant trop large. Dans votre deuxième paragraphe, on ne comprend pas très bien ce que vous demandez, à mon avis. – heltonbiker

Répondre

0

D'après les commentaires que nous échangions, je me sens plus confiant d'assumer votre question réelle est la suivante:

Quelle est la structure des données pourraient être utilisées pour stocker la structure (géométrie, topologie) de la carte dans la mémoire du robot ?

Eh bien, il devrait y avoir plusieurs façons possibles de le faire. Fondamentalement, il s'agit d'un graphe connexe où les nœuds reposent sur une grille rectangulaire. Alors, pour commencer, on pourrait décrire les noeuds comme un ensemble de paires de coordonnées:

// just an example, this is not the actual map 
// it doesn't need to be variables, could be array of arrays, or dictionary 
var A = (0,0); 
var B = (1,0); 
var C = (2,1); 
var D = (4,2); 
// etc. 

Ensuite, vous pouvez décrire les bords sous forme de paires de points:

var edges = [(A,B), (A,D), (B,C), ...]; 

Avec ceux-ci, vous pourriez sûrement calculer un bon chemin à partir d'une liste de points, ainsi que l'emplacement et la direction de chaque nœud.

Je ne sais pas du tout si c'est la structure de données la plus efficace, mais c'est déjà un début. Vous avez seulement besoin de connaître l'emplacement de chaque nœud, et les bords sont définis simplement en reliant deux nœuds ensemble.

+0

Vous pourriez être intéressé à jeter un oeil ici: https://en.wikipedia.org/wiki/Graph_(abstract_data_type)#Representations – heltonbiker

+0

Merci beaucoup monsieur –

+0

Content de savoir que cela a aidé! – heltonbiker