机器人逆向运动学(IK):问题分析

在游戏开发和机器人开发中进场需要用到的一个场景是,给机器人或者游戏角色末位置的位置和姿态,求解可到达给定位置和姿态的各关节的角度值,这里就需要逆向运动学去求解这个问题,在场景中有着很多的应用,比如说六轴机械臂的位姿求解,游戏角色踩楼梯的真实感觉: 

常用的六轴机械臂结构:

机器人逆向运动学(IK):问题分析_第1张图片

UE5在Control Rig也中新加入的功能Full Body IK的Control Rig: 

机器人逆向运动学(IK):问题分析_第2张图片

问题分析:

给定一个带一个关节的机械臂,其中有一个轴是可以自由转动的,如下

机器人逆向运动学(IK):问题分析_第3张图片

转动后:

机器人逆向运动学(IK):问题分析_第4张图片

 那么把末端可以到达的轨迹显示出来:

机器人逆向运动学(IK):问题分析_第5张图片

这就是所有的有解区域,且解都是唯一解

接下来再给这个问题加码,将关节节点添加到两个:

机器人逆向运动学(IK):问题分析_第6张图片

这时候可达的区域将大大增加,如下图,绿色区域为可达区域,红色区域为不可达区域:

机器人逆向运动学(IK):问题分析_第7张图片

 其中中间的红色区域就算d3折下来和d2重叠,但是由于长度不够也无法到达红色区域,红色区域的半径为d3为d2

绿色的区域代表可达区域,也代表这个问题有解,其中两个关节的角度代表求出的解

随着关节的增多,解会越来越多,并且不只有一个唯一解,根据以上我们得到两个IK运动学的关键部分:

①在求解前需要判断最后位置是否可达,如果可达才可以开始求解过程

②在问题有多解情况下,为了减少计算量,可以在求解出一个位置后就停止求解

你可能感兴趣的:(机器人,ue5,游戏程序,游戏引擎)