Как вы уже поняли, первой частью этого будет поиск подходящего уравнения для представления результирующего движения для любых настроек двигателя. В зависимости от уровня контроля и обратной связи по скорости вашего двигателя, я бы предложил, чтобы процесс, который вы проходите, должен начаться с написания векторного уравнения: (определите положительный X как прямой)
-M1Cos (30) + M2Cos (30) = X (отрицательный результат - 1 и 2 должны питаться одинаковой величины, но противоположных полярностей для движения вперед)
M1Sin (30) + M2Sin (30) -M3 = Y (поскольку движение против часовой стрелки на 1 и 2 приведет к движению робота влево по оси Y, а движение против часовой стрелки на 3 приведет к движению робота вправо)
Другим входом, который вам нужно добавить в это, является желаемое вращение робота, к счастью, M1 + M2 + M3 = W (Скорость вращения)
Ваш ввод с джойстика даст вам X, Y и W, поэтому у вас есть 3 уравнения с 3 неизвестными.
Отсюда это одновременные уравнения, так что вы можете получить несколько решений, но обычно они могут быть ограничены в зависимости от возможных скоростей двигателя и т. П.
Примером этого является rec :: robotino :: com :: OmniDrive Class - также доступен исходный код для этого метода ...