Угол робота зависит от конкретного оборудования, такого как размер колес, размер датчика и ширина транспортного средства. Может быть, вам повезло с другой робот, что изменение диаметра колеса и колеса на колеса расстояние отмененного друг друга, так что уравнения были одинаковы, но, как правило, вы не будете так повезло
Предполагая, что вы имеют двухколесный робот, то же показание на двух разных установках может дать разные результаты. На моей простой иллюстрации у меня есть ось двухколесного робота, оба бота имеют одинаковые wheel_diameter
и используют одни и те же поворотные энкодеры. Один бот имеет расстояние R1
между колесами, расстояние между которыми колеблется R2
Предположим, что оба робота держат колесо неподвижным, а другое колесо движется на 5 кликов вперед по колесиковому кодеру (и оба бота используют один и тот же кодер и колесо такого же размера). Используя простое уравнение для окружности полукруга, мы можем найти расстояние, на котором двигались колеса.
dist_trav = (pi * wheel_diameter) * (#ticks/total ticks on encoder)
Конечно, так как одно колесо находится в неподвижном состоянии, бот фактически поворачиваясь на другой полукруг. Мы можем вычислить новый угол, используя
circumference = 2*pi*dist_between_wheels
dist_between_wheels радиус нашего круга
angle = % of circumference traveled * units = (dist_trav/circumference) * 360
мы используем 360, так что угол в градусах, но вы можете использовать радианы, при желании
вы увидите, что даже в этом примере, когда роботы идентичны, за исключением расстояния между колесами, такое же количество тиков будет означать очень разные углы. Если r2=2*r1
мы можем видеть, что dist_trav
одинакова для обоих ботов (так как колеса одинакового диаметра), но когда мы выясняем углы мы получаем
черный личинку
angle_black = (dist_traveled/2*pi*R1) * 360
красный бот
angle_black = (dist_traveled/2*pi*2*R1) * 360
= (dist_traveled/4*pi *R1) * 360
так для того же движения колес красный бот будет иметь только 1/2 изменение угла, как это делал черный бот. Это всего лишь игрушечный пример, но вы можете легко увидеть, как разные диаметры колес и расстояние между ними могут иметь огромное значение.
Я не говорю, что это оффтоп, но я думаю, вы можете найти лучший сайт StackExchange для этого вопроса. Например, [Robotics SE] (http://robotics.stackexchange.com/help/on-topic). – Petr