zoukankan      html  css  js  c++  java
  • 机器人雅克比矩阵计算

      雅克比矩阵将机器人关节空间的速度映射到笛卡尔空间的末端速度。

      从上图可以看出,只考虑关节y的旋转(假定其它关节固定不动,在某一时刻关节y变化一个微小的角度ϕ--注意联系偏微分的定义),则末端将绕着y以||sx− sy||为半径旋转,末端速度为:ϕwy × (sx− sy),则可以推出雅克比矩阵J中关于关节y的那一列为:∂sx /∂θy=wy × (sx− sy)

      We want to find a way to change the joint angles so as to move the links’ positions closer to the desired positions. This process can be iterated in such a way that each iteration moves the links’ positions closer to their target positions until eventually new joint positions are reached that place the links close enough to their desired positions. The reason for using an iterative procedure is that it is usually too complicated to actually solve for joint angles,θ , in terms of the desired link positions. The iterative procedure will be easier to implement and, if it converges sufficiently well, can provide values for the joint angles that put the links arbitrarily close to their desired positions. For a single step of the iterative procedure, we consider the function telling us how links’ positions depend on joint angles. We then evaluate the partial derivatives of this function to find a linear approximation to the function. That is, we compute the rates of changes in links’ positions with respect to the rates of changes in joint angles. These give a Jacobian matrix of partial derivatives. With some assumptions about the nonsingularity of the Jacobian matrix, we can then find a way to change the joints’ angles so as to move the links’ positions closer to the desired positions. Since the Jacobian gives only a linear approximation to the function, we have to iterate the process until it converges to a good solution.

      The first step in setting up the inverse kinematics problem is to define the Jacobian matrix, which will tell us how the position of x changes with respect to small changes in the angles θ; in other words, the matrix will contain the partial derivatives of sx withrespect to the variables θ .

      If the joint y is translational, the entry in the Jacobian matrix is even easier to compute. Suppose the joint performs translation the direction of the unit vector wy , so that the the joint “angle” measures distance moved in the direction wy. Then if the end effector is affected by the joint, we have sx /∂θy=wy 。即如果该关节为移动关节,则雅克比矩阵中这一列为移动副的方向向量wy

      To see that this correctly defines the partial derivative, note the following: (a) If x is not a proper descendant of y, then the rotation of y’s joint does not affect the position of x,and so ∂sx /∂θy = 0. (b) Otherwise, the vector from point y to point x is equal to sxsy,and the rotation axis for angle θy is the axis wy. An infinitesimal rotation ϕ radians around the axis wy centered at sy will move the point x an infinitesimal distance given by the vector ϕwy × (sx− sy). From this observation, the second part of the definition of ∂sx /∂θy is obtained immediately. Figure XII.7 shows how to visualize the derivation of the formula for the partial derivative.

      即如果末端x不受关节y的影响,如情形(a) ;或者关节y正位于机器人末端,则∂sx /∂θy = 0。 sy为关节y的位置向量,wy为单位向量,其指向沿着关节的轴线方向,in this case, if angles are measured in radians with the direction of rotation given by the right rule and if the end effector is affected by the joint, then the corresponding entry in the Jacobian is wy × (sx− sy)

     

     

    参考:

    1. 3-D Computer Graphics: A Mathematical Introduction with OpenGL, Cambridge University Press, 2003    Ch. 12

    2. John J.Craig.  Introduction to Robotics Mechanics and Control

  • 相关阅读:
    寒假短期学习计划
    PAT 1001 A+B 解题报告
    JavaScript 原型链、继承
    JavaScript 数据扁平化处理
    每周一篇React: 高阶 hoc_component 使用
    每天一道算法题: day1 翻转图像
    项目中下载加权,你是怎么做的,欢迎评论。
    前端封装验证码方法,封装验证码类
    文件下载之后默认不打开实现方式
    文件下载之后默认不打开实现方式
  • 原文地址:https://www.cnblogs.com/21207-iHome/p/5948659.html
Copyright © 2011-2022 走看看