且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

工作CCD算法反向运动学

更新时间:2023-01-26 12:07:56

这是很难直接$ C C此$,但你可能会解决这个问题的最优化的视图(和国家的最先进的许多方法可以暗示解决这个问题,其可以在因特网上容易地找到)。令x'和y'是固定最顶层甲,且x'和y''是目标。那么这个问题可以形式化为如下,

It's hard to directly code this, but you may solve this problem in a view of optimization (and many state-of-art method can be implied to solve this, which can be easily found on the Internet). Let x' and y' be the fixed topmost A, and x'' and y'' be the target. Then this problem can be formalized as the follows,

工作CCD算法反向运动学

其中gamma_i是各关节的转动的重量(你可以简单地让gamma_i = 1),并且alpha_i是旋转值。你的优化目标是让父母的最小回转,受到一些限制。 X',Y',X',Y''是常数,其他是变量。其他不等式可以加入,以限制旋转角度

where gamma_i is the weight of rotation of each joint (you may simply let gamma_i=1), and alpha_i is the rotation value. Your optimization goal is to get the minimum rotation of the parents, subject to some constraints. x', y', x'', y'' are constants, the other are variables. Other inequality can be added to limit the angle of rotation.

方程f(X',Y',X_1,Y_1,alpha_1)= 0表示,与A的alpha_1旋转,B点可迁往X_1,Y_1。如果可以指定旋转细节(例如为f是线性的,则单纯形法,可以实现的,但似乎f是二次)。

Equation f(x',y',x_1,y_1,alpha_1)=0 means, with the rotation of A by alpha_1, point B can be relocated to x_1, y_1. If you can specify the detail of rotation (for example is f is linear, then simplex method can be implemented, but it seems that f is quadratic).

对不起,我的英文不好,并希望这可以帮助:P

Sorry for my poor English, and wish this can help :p