正向运动学和反向运动学

正向运动学和反向运动学

 

         上次制作的骨骼动画例子程序并不完美,我在程序里面也说了,因为没有牵涉到反向运动学的知识,所以人物运动起来感觉脚无法收缩、头发无法飘逸的感觉。其实在现实中这样的情况是要避免的,但是由于在动画设计的时候要指定每一个关节,显得非常费事。所以引入了反向运动学这个概念。在介绍反向运动学之前,首先让我们看一下正向运动学。

原创文章,反对未声明的引用。原博客地址:http://blog.csdn.net/gamesdev/article/details/13991063

         正向运动学,通俗来说是给定父骨骼位置以及它的变换来得出子骨骼的位置以及变换,打一个比方,就像运动手臂,可以带动手肘,进而带动手掌运动。正向运动学的概念是非常容易理解的,实现起来也比较方便,即在场景中先绘制父骨骼,应用父骨骼的变换,然后根据这个变换绘制子骨骼,以此类推。我们可以用下面伪代码来表示:

PushMatrix( );
         RenderParentB
  • 9
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
正向运动学是机器人控制中的一个重要概念,其描述的是从机器人末端执行器的位置、姿态,反向推导出机器人每个关节的角度值。Lynxmotion机械臂是一款六自由度机械臂,其正向运动学可以通过DH(Denavit-Hartenberg)表示法进行描述。DH表示法是机器人建模中常见的一种方法,其本质是通过描述连接相邻两个关节的转动关系,建立起整个机械臂的数学模型。 Lynxmotion机械臂的DH参数如下: a1 = 0;d1 = 3.04;alpha1 = -pi/2;theta1 = q1 a2 = 14.73;d2 = 0;alpha2 = 0;theta2 = q2-pi/2 a3 = 13.5;d3 = 0;alpha3 = 0;theta3 = q3 a4 = 0;d4 = 14.7;alpha4 = -pi/2;theta4 = q4 a5 = 0;d5 = 0;alpha5 = pi/2;theta5 = q5 a6 = 0;d6 = 3.96;alpha6 = 0;theta6 = q6 其中,a表示相邻两个关节之间的长度,d表示相邻两个关节的偏移量,alpha表示前一个关节绕z轴转动后,绕新的x轴转动的角度,theta表示后一个关节绕z轴转动的角度。 根据DH模型,可以列出每个关节的变换矩阵,从而得到整个机械臂的正向运动学模型。将每个关节的变换矩阵累积起来,即可得到机械臂从起始位置到末端执行器的变换矩阵。 Lynxmotion机械臂的正向运动学模型如下: T06 = T01*T12*T23*T34*T45*T56 其中,Tij是表示从第i个关节到第j个关节的变换矩阵。编程实现时,可以使用旋转矩阵和平移矩阵对DH参数进行计算,得到关节和末端执行器的位置和姿态信息。因此,可以通过上面的DH参数和公式,推导出Lynxmotion机械臂的正向运动学模型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值