private Link massiveLink() { Link ret = new Link("massiveLink"); ret.setMass(1e12); ret.setMomentOfInertia(1e8, 1e8, 1e8); return ret; }
private static Link nextLink(long seed) { Random random = new Random(seed); Link link = new Link("randomLink" + random.nextInt()); link.setMass(random.nextDouble()); link.setComOffset(RandomNumbers.nextDouble(random, 1.0), RandomNumbers.nextDouble(random, 1.0), RandomNumbers.nextDouble(random, 1.0)); link.setMomentOfInertia(RobotTest.getRotationalInertiaMatrixOfSolidEllipsoid(link.getMass(), random.nextDouble(), random.nextDouble(), random.nextDouble())); return link; }
private static Link randomBody(Random random) { Link ret = new Link("floatingBody"); ret.setMass(random.nextDouble()); ret.setComOffset(random.nextDouble(), random.nextDouble(), random.nextDouble()); ret.setMomentOfInertia(getRotationalInertiaMatrixOfSolidEllipsoid(ret.getMass(), random.nextDouble(), random.nextDouble(), random.nextDouble())); Graphics3DObject linkGraphics = new Graphics3DObject(); linkGraphics.addCoordinateSystem(COORDINATE_SYSTEM_LENGTH); createInertiaEllipsoid(ret, linkGraphics, YoAppearance.Orange()); ret.setLinkGraphics(linkGraphics); return ret; }
private Link link1() { Link ret = new Link("link1"); ret.setMass(1.0); ret.setComOffset(2.0, 0.0, 0.0); ret.setMomentOfInertia(0.0, 3.0, 0.0); return ret; }
private Link base(String name) { Link ret = new Link(name); ret.setMass(0.1); Graphics3DObject linkGraphics = new Graphics3DObject(); linkGraphics.addCoordinateSystem(0.5); ret.setLinkGraphics(linkGraphics); return ret; }
private Link boxLink(Graphics3DObject linkGraphics, double length, double width, double height, double mass) { Link ret = new Link("box"); ret.setMass(mass); ret.setMomentOfInertia(RotationalInertiaCalculator.getRotationalInertiaMatrixOfSolidBox(length, width, height, mass)); ret.setComOffset(0.0, 0.0, 0.0); // linkGraphics.translate(0.0, 0.0, -height / 2.0); // linkGraphics.addCube(length, width, height, YoAppearance.EarthTexture(null)); ret.setLinkGraphics(linkGraphics); return ret; }
private Link exampleArcTorusShape() { Link ret = new Link("exampleArcTorusShape"); Graphics3DObject linkGraphics = new Graphics3DObject(); // ArcTorus linkGraphics.translate(OFFSET, 0.0, 0.0); linkGraphics.addCoordinateSystem(COORD_LENGTH); linkGraphics.addArcTorus(ARC_TORUS_START_ANG, ARC_TORUS_END_ANG, ARC_TORUS_MAJ_RAD, ARC_TORUS_MIN_RAD, YoAppearance.DarkRed()); ret.setLinkGraphics(linkGraphics); return ret; }
private static Link hip_differential() { Link ret = new Link("hip_differential"); ret.setMass(0.1); ret.setMomentOfInertia(0.005, 0.005, 0.005); ret.setComOffset(0.0, 0.0, 0.0); Graphics3DObject linkGraphics = new Graphics3DObject(); linkGraphics.addCube(HIP_DIFFERENTIAL_WIDTH, HIP_DIFFERENTIAL_WIDTH, HIP_DIFFERENTIAL_HEIGHT); ret.setLinkGraphics(linkGraphics); return ret; }
private static Link ankle_differential() { Link ret = new Link("ankle_differential"); ret.setMass(0.1); ret.setMomentOfInertia(0.005, 0.005, 0.005); ret.setComOffset(0.0, 0.0, 0.0); Graphics3DObject linkGraphics = new Graphics3DObject(); linkGraphics.addCube(ANKLE_DIFFERENTIAL_WIDTH, ANKLE_DIFFERENTIAL_WIDTH, ANKLE_DIFFERENTIAL_HEIGHT); ret.setLinkGraphics(linkGraphics); return ret; }
private Link exampleConeShape() { Link ret = new Link("exampleArcTorusShape"); Graphics3DObject linkGraphics = new Graphics3DObject(); // Cone linkGraphics.translate(OFFSET, 0.0, 0.0); linkGraphics.addCoordinateSystem(COORD_LENGTH); linkGraphics.addCone(CONE_H, CONE_R, YoAppearance.DarkGreen()); ret.setLinkGraphics(linkGraphics); return ret; }
private Link ball(double radius, double mass, AppearanceDefinition color) { Link ret = new Link("ball"); ret.setMass(mass); ret.setMomentOfInertia(RotationalInertiaCalculator.getRotationalInertiaMatrixOfSolidEllipsoid(mass, radius, radius, radius)); ret.setComOffset(0.0, 0.0, 0.0); Graphics3DObject linkGraphics = new Graphics3DObject(); linkGraphics.addSphere(radius, color); ret.setLinkGraphics(linkGraphics); return ret; }
private static Link link11(Random random, double l1, double r1) { Link ret = new Link("link11"); ret.setMass(random.nextDouble()); ret.setComOffset(0.0, 0.0, -l1 / 2.0); ret.setMomentOfInertia(getRotationalInertiaMatrixOfSolidEllipsoid(ret.getMass(), r1, r1, l1 / 2.0)); Graphics3DObject linkGraphics = new Graphics3DObject(); linkGraphics.addCoordinateSystem(COORDINATE_SYSTEM_LENGTH); createInertiaEllipsoid(ret, linkGraphics, YoAppearance.Red()); ret.setLinkGraphics(linkGraphics); return ret; }
private static Link thigh() { AppearanceDefinition thighApp = YoAppearance.Green(); Link ret = new Link("thigh"); ret.setMass(THIGH_MASS); // 2.35); ret.setMomentOfInertia(0.0437, 0.0437, 0.0054); ret.setComOffset(0.0, 0.0, -THIGH_LENGTH / 2.0); Graphics3DObject linkGraphics = new Graphics3DObject(); linkGraphics.addCylinder(THIGH_LENGTH, THIGH_RAD, thighApp); ret.setLinkGraphics(linkGraphics); return ret; }
private PinJoint createPinJointWithHangingMass(String name, double mass, Axis axis, Robot robot) { PinJoint pinJoint = new PinJoint(name, new Vector3D(), robot, axis); Vector3D comOffset = new Vector3D(0.0, 0.0, -1.0); Link linkOne = new Link("link"); linkOne.setMass(mass); linkOne.setComOffset(comOffset); linkOne.setMassAndRadiiOfGyration(mass, 0.1, 0.1, 0.1); pinJoint.setLink(linkOne); return pinJoint; }
private Link upperArm() { Link link = new Link("upperArm"); Graphics3DObject linkGraphics = new Graphics3DObject(); link.setLinkGraphics(linkGraphics); link.setMass(upperArmMass); link.setComOffset(0.0, 0.0, -0.5*linkLength); link.setMomentOfInertia(upperArmMass * hopperBodyRadius * hopperBodyRadius, upperArmMass * hopperBodyRadius * hopperBodyRadius, upperArmMass * hopperBodyRadius * hopperBodyRadius); if (SHOW_COORDINATE_SYSTEM) linkGraphics.addCoordinateSystem(linkLength * 0.3); linkGraphics.addCube(0.1*linkLength, 0.1*linkLength, -linkLength, YoAppearance.Red()); return link; }
private static Link pelvis() { AppearanceDefinition pelvisAppearance = YoAppearance.Blue(); Link ret = new Link("pelvis"); ret.setMass(100.0); ret.setMomentOfInertia(1.0, 1.0, 1.0); ret.setComOffset(0.0, 0.0, 0.0); Graphics3DObject linkGraphics = new Graphics3DObject(); linkGraphics.addCoordinateSystem(1.0); linkGraphics.addCylinder(PELVIS_HEIGHT, PELVIS_RAD, pelvisAppearance); ret.setLinkGraphics(linkGraphics); return ret; }
private Link MS3DMLink() { Link p = new Link("ms3DMLink"); p.setMass(MS3DM_MASS); p.setComOffset(0.0, 0.0, 0.0); p.setMomentOfInertia(0.1, 0.1, 0.1); Graphics3DObject linkGraphics = new Graphics3DObject(); linkGraphics.addCoordinateSystem(0.1); linkGraphics.addCube(MS3DM_LENGTH, MS3DM_WIDTH, MS3DM_HEIGHT, YoAppearance.Purple()); p.setLinkGraphics(linkGraphics); return p; }
private Link lowerArm() { Link link = new Link("upperArm"); Graphics3DObject linkGraphics = new Graphics3DObject(); link.setLinkGraphics(linkGraphics); link.setMass(lowerArmMass); link.setComOffset(0.0, 0.0, -0.5*linkLength); link.setMomentOfInertia(lowerArmMass * hopperBodyRadius * hopperBodyRadius, lowerArmMass * hopperBodyRadius * hopperBodyRadius, lowerArmMass * hopperBodyRadius * hopperBodyRadius); if (SHOW_COORDINATE_SYSTEM) linkGraphics.addCoordinateSystem(linkLength * 0.3); linkGraphics.addCube(0.1*linkLength, 0.1*linkLength, -linkLength, YoAppearance.White()); return link; }
public UniversalJointRobot(String name, double initialQFirstJoint, double initialQdFirstJoint, double initialQSecondJoint, double initialQdSecondJoint) { super(name); universalJoint = new UniversalJoint(name + "Joint1", name + "Joint2", new Vector3D(), this, Axis.X, Axis.Y); Link link = new Link(name + "Link"); link.setMass(mass); link.setComOffset(0.0, 0.0, -length); universalJoint.setLink(link); universalJoint.getFirstJoint().setInitialState(initialQFirstJoint, initialQdFirstJoint); universalJoint.getSecondJoint().setInitialState(initialQSecondJoint, initialQdSecondJoint); addRootJoint(universalJoint); }
public void attachFaceCube() { Link faceLink = new Link("FaceLink"); Graphics3DObject faceGraphics = new Graphics3DObject(); faceGraphics.scale(new Vector3D(3.0, 3.0, 0.1)); faceGraphics.addModelFile("models/GFE/ihmc/face_cube.dae"); faceLink.setLinkGraphics(faceGraphics); FloatingJoint faceJoint = new FloatingJoint("FaceJoint", "faceJoint" , new Vector3D(), this); faceJoint.setRotationAndTranslation(new RigidBodyTransform(new AxisAngle(new Vector3D(0.0, 1.0, 0.0), - Math.PI / 2.0), new Vector3D(1.1, 0.0, 1.3))); faceJoint.setLink(faceLink); faceJoint.setDynamic(false); floatingJoint.addJoint(faceJoint); }