public static RevoluteJoint addRandomRevoluteJoint(String name, Random random, RigidBody predecessor) { Vector3d jointAxis = new Vector3d(random.nextDouble(), random.nextDouble(), random.nextDouble()); return addRandomRevoluteJoint(name, jointAxis, random, predecessor); }
public static void createRandomChainRobot(String prefix, List<RevoluteJoint> revoluteJointsToPack, RigidBody rootBody, Vector3d[] jointAxes, Random random) { RigidBody currentIDBody = rootBody; for (int i = 0; i < jointAxes.length; i++) { RevoluteJoint currentIDJoint = addRandomRevoluteJoint(prefix + "joint" + i, jointAxes[i], random, currentIDBody); currentIDBody = addRandomRigidBody(prefix + "body" + i, random, currentIDJoint); revoluteJointsToPack.add(currentIDJoint); } rootBody.updateFramesRecursively(); }
public static void createRandomChainRobotWithOneDoFJoints(String prefix, List<OneDoFJoint> oneDoFJointsToPack, RigidBody rootBody, Vector3d[] jointAxes, Random random) { RigidBody predecessor = rootBody; for (int i = 0; i < jointAxes.length; i++) { OneDoFJoint joint; if (random.nextBoolean()) joint = addRandomPrismaticJoint(prefix + "Joint" + i, jointAxes[i], random, predecessor); else joint = addRandomRevoluteJoint(prefix + "Joint" + i, jointAxes[i], random, predecessor); oneDoFJointsToPack.add(joint); predecessor = ScrewTestTools.addRandomRigidBody(prefix + "Body" + i, random, joint); } }
public static List<OneDoFJoint> createRandomTreeRobotWithOneDoFJoints(String prefix, RigidBody rootBody, int numberOfJoints, Random random) { List<OneDoFJoint> tempJoints = new ArrayList<>(); RigidBody predecessor = rootBody; for (int i = 0; i < numberOfJoints; i++) { OneDoFJoint joint; if (random.nextBoolean()) joint = addRandomPrismaticJoint(prefix + "Joint" + i, random, predecessor); else joint = addRandomRevoluteJoint(prefix + "Joint" + i, random, predecessor); ScrewTestTools.addRandomRigidBody(prefix + "Body" + i, random, joint); tempJoints.add(joint); predecessor = tempJoints.get(random.nextInt(tempJoints.size())).getSuccessor(); } OneDoFJoint[] jointArray = ScrewTools.filterJoints(ScrewTools.computeSubtreeJoints(rootBody), OneDoFJoint.class); return Arrays.asList(jointArray); }
RevoluteJoint currentJoint = addRandomRevoluteJoint("jointID" + i, random, inverseDynamicsParentBody); addRandomRigidBody("bodyID" + i, random, currentJoint);