Как объединить два разных типа данных для получения окончательного результата?
Я строю робота (2 приводных колеса и один шариковый подшипник). Проблема в том, что я не могу заставить его двигаться прямо. Я буквально считаю это невозможным, я пытался в течение нескольких недель.
В настоящее время я могу положиться на вращение (обоих двигателей) или показания гироскопа (у меня также есть два гироскопа, каждый около двух шин)
Есть ли способ, которым я могу соединить их вместе, давая мне более точный способ определить, какой двигатель мне нужно ускорить?
Мои моторы принимают значение от 0 до 900 (хотя скорость должна определяться мной, а не фиксированной). Также, если алгоритм существует, я хотел бы получить некоторые указания о том, что мне нужно поменять местами, если я заставлю двигатели двигаться назад.
1 ответ
Проблема в том, что робот не едет прямо, потому что скорости вращения двух двигателей могут быть разными. Например, один может совершать 30 оборотов в секунду, а другой 31. Тривиально это решается с помощью колесного энкодера. Используя это, вы получаете разницу вращения двух колес, а затем соответственно меняете скорость двигателя. Гироскоп может дать вам угловую ошибку за единицу времени, например, если робот движется на 5 градусов влево через 2 секунды, то скорость правого двигателя должна быть уменьшена. Но насколько это нужно уменьшить, это не тривиальная проблема, потому что в конечном итоге это происходит из-за аппаратной ошибки. Итак, вы можете собрать некоторые данные об углах гироскопа, может быть, 10 показаний в секунду и проанализировать данные, чтобы определить, насколько вам нужно уменьшить скорость одного двигателя.