我目前正在尝试使用方程的"rigid_body_tree.cc“文件计算库卡手臂的雅可比矩阵: Tau = J^T*F,其中Tau是库卡手臂的7个关节力矩,F是笛卡尔作用力和末端执行器处的扭矩,J^T是换位的雅可比矩阵。
drake中有一个名为transformPointsJacobian的函数,它接受缓存、点、from_body_or_frame_ind、to_body_or_frame_ind和in_terms_of_qdot。
该函数首先计算几何雅可比矩阵,输出6x7矩阵(kuka有7个关节)
然后,它采用该矩阵并使用它来确定3x7雅可比矩阵,计算如下:
J.template block<kSpaceDimension, 1>(row_start, *it) = Jv.col(col);
J.template block<kSpaceDimension, 1>(row_start, *it).noalias() += Jomega.col(col).cross(points_base.col(i));
这将6x7几何雅可比缩小为3x7雅可比,其中前3行是通过Jv +Jw*转换计算的。
这段代码确实可以工作,但我似乎不明白为什么这一步可以工作。此外,由于我将需要在笛卡尔末端执行器空间中的扭矩,我将需要完整的6x7雅可比矩阵。
为了得到雅可比矩阵的最后3行,我如何使用几何雅可比矩阵的输出,使其在方程Tau = J^T*F中有效?
谢谢!
https://stackoverflow.com/questions/58943474
复制相似问题