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 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<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); }
addRandomRigidBody("bodyID" + i, random, currentJoint);
public RandomFloatingChain(Random random, Vector3d[] jointAxes) { ReferenceFrame elevatorFrame = ReferenceFrame.constructFrameWithUnchangingTransformToParent("elevator", ReferenceFrame.getWorldFrame(), new RigidBodyTransform()); elevator = new RigidBody("elevator", elevatorFrame); rootJoint = new SixDoFJoint("rootJoint", elevator, elevatorFrame); RigidBody rootBody = ScrewTestTools.addRandomRigidBody("rootBody", random, rootJoint); revoluteJoints = new ArrayList<RevoluteJoint>(); ScrewTestTools.createRandomChainRobot("test", revoluteJoints, rootBody, jointAxes, random); inverseDynamicsJoints.add(rootJoint); inverseDynamicsJoints.addAll(revoluteJoints); }
sixDoFJoints.set(robotSide, sixDoFJoint); RigidBody rigidBody = ScrewTestTools.addRandomRigidBody(robotSide.getCamelCaseNameForStartOfExpression() + "Foot", random, sixDoFJoint); feet.put(robotSide, rigidBody); double forward = 0.12;