Differential Inverse Kinematics Integrator适配浮动机械臂失败求助
Drake版本:Dockerhub最新版(1.14.0)Python 3.8,操作系统:Ubuntu 20.04
Differential逆运动学积分器LeafSystem要求位置数与速度数相等,且二者均需与机械臂模型(plant)的位置数和速度数一致(对应代码行:123、124、128)。当使用浮动机械臂模型时,会引入浮动四元数关节表示浮动部件。但浮动四元数关节的位置用XYZ坐标加四元数表示(共7个状态),速度用XYZ坐标加RPY角表示(共6个状态),这会导致向量维度不匹配错误,具体报错如下:
Traceback (most recent call last): File "./scripts/diki_floating_isolated.py", line 352, in <module> main() File "./scripts/diki_floating_isolated.py", line 298, in main diki = DIKI(plant, model, euler_integr_time_step, tip_frame) File "./scripts/diki_floating_isolated.py", line 139, in __init__ self.builder.Connect(self.diki_derivative.get_output_port(), self.desired_system_state.get_input_port(1)) RuntimeError: DiagramBuilder::Connect: Mismatched vector sizes while connecting output port dudt of System discrete_derivative (size 14) to input port u1 of System multiplexer (size 13)
若手动调整信号维度以匹配,会触发如下错误:
Failure at multibody/inverse_kinematics/differential_inverse_kinematics.cc:128 in DoDifferentialInverseKinematics(): condition 'num_positions == num_velocities' failed.
我们尝试在流程中拦截机械臂状态,进行四元数与RPY角的相互转换,但任何状态修改都会违反积分器对位置和速度数量的要求。
请问是否有我们遗漏的推荐解决方案?我们的目标是在浮动iiwa机械臂上使用Differential Inverse Kinematics Integrator。
内容的提问来源于stack exchange,提问作者Ahmed Fayed
相关产品推荐
相关产品推荐

