simInt simCreateIkGroup(simInt options,
const simInt* intParams,
const simFloat* floatParams,
const simVoid* reserved)
options:位编码选项:
bit 0 set(1):该组处于非活动状态。
bit 1 set(2):在计算过程中考虑关节限制(即仅用于冗余运动学)。
bit 2 set(4):如果未达到位置,则恢复。
bit 3 set(8):如果未达到方向,则恢复。
bit 4 set(16):不要忽略关节的最大值。 步长。
bit 5 set(32):明确处理该组。
intParams:一个包含2个整数参数的可选数组(即数组可以为NULL):
intParams [0]:IK计算方法。
intParams [1]:最大迭代次数。
floatParams:一个包含4个float参数的可选数组(即数组可以为NULL):
floatParams [0]:DLS因子。
floatParams [1]:关节限制重量。
floatParams [2]:棱柱关节限制阈值。
floatParams [3]:转动关节限制阈值。
.eg :
const int BIT0_GROUP_IS_ACTIVE = 0;
const int BIT1_TAKE_JOINT_LIMIT_ACOUNT = 2;
const int BIT2_RESTORE_IF_POS_UNREACH = 4;
const int BIT3_RESTORE_IF_ORIENT_UNREACH = 8;
//const int BIT4_NOT_IGNORE_STEP_SIZE = 16;
const int BIT5_IKGROUP_IS_EXPLICIT_HANDLE = 32;
int options = BIT0_GROUP_IS_ACTIVE +
BIT1_TAKE_JOINT_LIMIT_ACOUNT +
BIT2_RESTORE_IF_POS_UNREACH +
BIT3_RESTORE_IF_ORIENT_UNREACH +
//BIT4_NOT_IGNORE_STEP_SIZE +
BIT5_IKGROUP_IS_EXPLICIT_HANDLE;
int intParam[2] = {sim_ik_jacobian_transpose_method,10};
//sim_ik_pseudo_inverse_method 伪逆方法
//sim_ik_damped_least_squares_method 阻尼最小二乘法
//sim_ik_jacobian_transpose_method 雅可比转置法
simCreateIkGroup(options,&intParam[0],NULL,NULL);