2015-10-17 4 views
0

Я знаю о линейном следящем, главным образом, о решающих роботы, которые я знаю на самом деле. На самом деле они должны проследить путь сетки на арене, а затем вернуться к исходной точке на самом коротком расстоянии. Здесь мое сомнение касается приверженца линии в этой ссылке, которую я приложил. Advanced line follower robot for grid solving and maze solvingAdvanced Line Follower Robot

Мое сомнение в том, что это за процедуры? Они сопоставили путь и использовали алгоритм Дийкстры для решения пути. Но как они передают код (т. Е.), Где он должен поворачивать направление, к которому он должен обратиться. как они генерируют, какую функцию следует передавать? Пожалуйста, объясните, что мне нужна только процедура. я собираюсь попробовать его с помощью python.

+0

Существует сайт Arduino.Stackexchange, там вы получите больше ответов. – heltonbiker

+0

Это не про ардуино. Дело не в том, что робот может быть спроектирован или разработан с помощью ардуино. Пожалуйста, не уменьшайте мою репутацию, если вы не знаете ответов. –

+0

Нижняя нить не была моей. В любом случае, я согласен, что ваш вопрос шире, чем объем Arduino. Честно говоря, я думаю, что это может быть опущено на самом деле, будучи слишком широким. Во втором абзаце, по-моему, не совсем понятно, о чем вы спрашиваете. – heltonbiker

ответ

0

Из комментариев, которые мы обменялись, я чувствую себя более уверенно предположить ваш фактический вопрос заключается в следующем:

Какая структура данных может быть использована для хранения структуры (геометрии, топологии) карты в память робота ?

Ну, должно быть много возможных способов сделать это. В принципе, это связанный граф, где узлы располагаются на прямоугольной сетке. Итак, для начала, можно было бы описать узлы в виде набора координатных пар:

// 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. 

Тогда вы могли бы описать края, как пар точек:

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

С этим, вы, конечно, могли бы вычислить хороший путь из списка точек, а также местоположение и направление каждого узла.

Я не уверен, если это наиболее эффективная структура данных, но это уже начало. Вам нужно знать местоположение каждого узла, а ребра определяются просто путем соединения двух узлов вместе.

+0

Вам может быть интересно посмотреть здесь: https://en.wikipedia.org/wiki/Graph_(abstract_data_type)#Representations – heltonbiker

+0

Большое вам спасибо sir –

+0

Рад знать, что это помогло! – heltonbiker