@Override public void setMass(double mass) { link.setMass(mass); }
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; }
@Override public void setMass(double mass) { sphereLink.setMass(mass); }
@Override public void setMass(double mass) { boxLink.setMass(mass); }
@Override public void setMass(double mass) { wheelLink.setMass(mass); }
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 Link link2() { Link ret = new Link("link2"); ret.setMass(2.0); ret.setComOffset(2.0, 0.0, 0.0); ret.setMomentOfInertia(0.0, 5.0, 0.0); 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 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 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 shin() { AppearanceDefinition shinApp = YoAppearance.Red(); Link ret = new Link("shin"); ret.setMass(SHIN_MASS); // 0.864); ret.setMomentOfInertia(0.00429, 0.00429, 0.00106); ret.setComOffset(0.0, 0.0, -SHIN_LENGTH / 2.0); Graphics3DObject linkGraphics = new Graphics3DObject(); linkGraphics.addCylinder(SHIN_LENGTH, SHIN_RAD, shinApp); 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 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 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; }
private Robot createSimpleRobot() { Robot robot0 = new Robot("robot"); FloatingJoint floatingJoint0 = new FloatingJoint("floatingJoint", new Vector3D(), robot0); Link link0 = new Link("body"); link0.setMass(1.0); link0.setMomentOfInertia(0.1, 0.1, 0.1); floatingJoint0.setLink(link0); robot0.addRootJoint(floatingJoint0); return robot0; }
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); }