matlab
电脑
加载预定义的KUKA LBR机器人模型,指定为RigidBodyTree对象。命令行键入:load exampleRobots.mat lbr
创建求解广义逆运动学的系统对象。命令行键入:gik = robotics.GeneralizedInverseKinematics;
将系统对象配置为使用KUKA LBR机器人。命令行键入:gik.RigidBodyTree = lbr;
告诉求解器期望一个PositionTarget对象和一个AimingConstraint对象作为约束输入。命令行键入:gik.ConstraintInputs = {'position','aiming'};
创建两个约束对象。1、被命名为tool0的身体的起源相对于机器人的基础框架位于[0.0 0.5 0.5]。2、名为tool0的身体的z轴指向机器人基架的原点。posTgt = robotics.PositionTarget('tool0');posTgt.TargetPosition = [0.0 0.5 0.5];aimCon = robotics.AimingConstraint('tool0');aimCon.TargetPoint = [0.0 0.0 0.0];
找到一个满足约束条件的配置。您必须按照约束对象在theConstraintInputs属性中指定的顺序将约束对象传递到系统对象。指定对机器人配置的初始猜测。命令行键入:q0 = homeConfiguration(lbr); % Initial guess for solver[q,solutionInfo] = gik(q0,posTgt,aimCon);
可视化求解器返回的配置。命令行键入:show(lbr,q);title(['Solver status: ' solutionInfo.Status])axis([-0.75 0.75 -0.75 0.75 -0.5 1])
绘制一条从目标位置到基地原点的线段。tool0帧的原点与线段的一端重合,其z轴与线段对齐。命令行键入:hold onplot3([0.0 0.0],[0.5 0.0],[0.5 0.0],'--o')hold off