Преобразование двойных входов джойстика в вектор (поворотное сообщение ROS) - PullRequest
0 голосов
/ 20 марта 2020

Я работаю над системой драйверов для робота и намереваюсь использовать систему двойного джойстика «танк-драйв». Каждый джойстик управляет одной половиной системы привода - левый джойстик управляет левыми колесами, правый джойстик управляет правыми колесами. В этой системе у меня есть два джойстика, которые опубликуют sh две переменные в диапазоне [-1, 1], представляющие величину оси Y каждого стержня (мы можем игнорировать оси X здесь). Проблема в том, что мне нужно преобразовать это значение и направление в соответствии с поворотным сообщением ROS - для моих целей мне нужен только линейный x-компонент и angular z-компонент. По сути, это стандартный 2D вектор.

По сути, моя задача - преобразовать две декартовы координаты в один вектор, представляющий величину и направление. Я немного растерялся, как это сделать - для одного джойстика это просто. Я видел много обратного преобразования, но никогда так не было. Я подумал о следующем: нанесите правый джойстик снизу-справа на верхний левый, а левый джойстик на верхний правый на нижний левый. См. Это грубое изображение MS Paint . Тогда это простая тригонометрия, чтобы получить вектор от построения линии между двумя точками. Но это не учитывает ситуацию, когда один двигатель равен нулю, не так ли? Скажем, график даст угол 45 градусов. Я не уверен, что это правильно. В любом случае, есть ли лучший способ, чем я думаю?

Большое спасибо за вашу помощь!

...