public static void createRandomChainRobotWithPrismaticJoints(String prefix, List<PrismaticJoint> prismaticJointsToPack, RigidBody rootBody, Vector3d[] jointAxes, Random random) { RigidBody predecessor = rootBody; for (int i = 0; i < jointAxes.length; i++) { PrismaticJoint joint = addRandomPrismaticJoint(prefix + "Joint" + i, jointAxes[i], random, predecessor); prismaticJointsToPack.add(joint); predecessor = ScrewTestTools.addRandomRigidBody(prefix + "Body" + i, random, joint); } }
public static PrismaticJoint addRandomPrismaticJoint(String name, Random random, RigidBody predecessor) { Vector3d jointAxis = new Vector3d(random.nextDouble(), random.nextDouble(), random.nextDouble()); return addRandomPrismaticJoint(name, jointAxis, random, predecessor); }
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<PrismaticJoint> createRandomTreeRobotWithPrismaticJoints(String prefix, RigidBody rootBody, int numberOfJoints, Random random) { List<PrismaticJoint> tempJoints = new ArrayList<>(); RigidBody predecessor = rootBody; for (int i = 0; i < numberOfJoints; i++) { PrismaticJoint joint = addRandomPrismaticJoint(prefix + "Joint" + i, random, predecessor); ScrewTestTools.addRandomRigidBody(prefix + "Body" + i, random, joint); tempJoints.add(joint); predecessor = tempJoints.get(random.nextInt(tempJoints.size())).getSuccessor(); } PrismaticJoint[] jointArray = ScrewTools.filterJoints(ScrewTools.computeSubtreeJoints(rootBody), PrismaticJoint.class); return Arrays.asList(jointArray); }
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); }