package org.myrobotlab.service; import org.junit.Test; import org.myrobotlab.kinematics.Point; // @Ignore public class InverseKinematics3DTest { @Test public void testForwardKinematics() { InverseKinematics3D ik3d = (InverseKinematics3D) Runtime.start("ik3d", "InverseKinematics3D"); // InMoovArm ia = new InMoovArm("i01"); ik3d.setCurrentArm(InMoovArm.getDHRobotArm()); ik3d.centerAllJoints(); System.out.println(ik3d.getCurrentArm().getPalmPosition()); } @Test public void testIK3D() throws Exception { InverseKinematics3D ik3d = (InverseKinematics3D) Runtime.start("ik3d", "InverseKinematics3D"); // InMoovArm ia = new InMoovArm("i01"); ik3d.setCurrentArm(InMoovArm.getDHRobotArm()); // start from a centered joint configuration so we can iterate without // loosing rank // in our jacobian! ik3d.centerAllJoints(); ik3d.moveTo(100.0, 0.0, 50.0); Point p = ik3d.currentPosition(); double[][] positions = ik3d.createJointPositionMap(); int x = positions[0].length; int y = positions.length; for (int j = 0; j < y; j++) { for (int i = 0; i < x; i++) { System.out.print(positions[j][i] + " "); } System.out.println(); } // Last point: System.out.println("Last Point: " + p.toString()); } }