Я борюсь с этой проблемой в течение нескольких дней. Я действительно надеюсь, что кто-то может дать мне подсказку, в чем проблема.
Робот состоит из 5 осей. Первая ось вращается вокруг оси z, а остальные 4 оси вращаются вокруг оси y. И решатель в основном работает.
Вот что я сделал до сих пор:
Я вычисляю коэффициент управляемости с помощью своей матрицы Якоби (только трансляционная часть, поскольку здесь отслеживается только позиция. На самом деле, я также пытался с комбинированной матрицей Якоби, так что не только трансляционная часть, но и вращательная часть. Но резкое движение было там тем не мение):
Тогда коэффициент демпфирования составляет:
Коэффициент демпфирования затем интегрируется в псевдообратный расчет:
Как видите, это просто классический псевдообращенный кинематический решатель с методом демпфирования наименьших квадратов. Коэффициент управляемости в соответствии со вторым (проблемным) движением: Управляемость падает в начале видео. Но почему? Насколько я знаю, этот фактор управляемости указывает на линейную зависимость осей. Мне кажется, что оси не являются линейно зависимыми в начальной части.
Это резкое движение сводит меня с ума. Как видно из первой анимации, решатель, кажется, работает правильно. Что мне здесь не хватает?
atan
вместоatan2
и т. Д. Не могли бы вы отредактировать свой вопрос, чтобы опубликовать код, который вы используете?