所以我想在模拟中为类人机器人脚做逆运动学,以便它可以以很小的误差(可能是0到3毫米)步进并且也可以在程序中快速运行。还有一个问题,当我们想要将脚踩在例如地板上时,我们需要至少3个在脚上坐标y为0的点
我尝试使用正向运动学进行蛮力测试,尝试将每个伺服器的角度增加10度的角度组合在一起,以便机器人可以踩踏,但是程序要花很多时间才能做到,而且误差很大如果我希望程序快。这是代码:
def IK_napak():
global napak
alpha=0
beta=-70
gamma=-90
angle_increase=10
tolerance=20
while(napak==False and alpha<=90):
beta=-70
while(napak==False and beta<=30):
gamma=-90
while(napak==False and gamma<=90):
servo_rotation[20]=alpha
servo_rotation[22]=beta
servo_rotation[24]=gamma
update_sudut_servo()
f.transformasi(c.part)
print(alpha, beta, gamma)
if(c.part[0][28].transformed_coordinate[1][0]>=-tolerance and c.part[0][28].transformed_coordinate.elemen[1][0]<=tolerance and c.part[0][29].transformed_coordinate.elemen[1][0]>=-tolerance and c.part[0][29].transformed_coordinate.elemen[1][0]<=tolerance and c.part[0][30].transformed_coordinate.elemen[1][0]>=-tolerance and c.part[0][30].transformed_coordinate.elemen[1][0]<=tolerance):
step=True
gamma=gamma+angle_increase
beta=beta+angle_increase
alpha=alpha+angle_increase
我还尝试学习FABRIK方法以达到逆运动学,但我想它只能在脚上得到1分
我是否还需要使用其他方法来获得3点逆运动学并且还需要快速运行程序?