/** * Use * {@link ReferenceFrameTools#constructFrameWithUnchangingTransformToParent(String, ReferenceFrame, RigidBodyTransform)} * instead. */ @Deprecated public static ReferenceFrame constructFrameWithUnchangingTransformToParent(String frameName, ReferenceFrame parentFrame, RigidBodyTransform transformToParent) { return ReferenceFrameTools.constructFrameWithUnchangingTransformToParent(frameName, parentFrame, transformToParent); } }
/** * Creates a reference frame with an immutable transform from its parent. * <p> * The {@code transformFromParent} should describe the pose of the parent frame expressed in this * new frame. * </p> * * @param frameName the name of the new frame. * @param parentFrame the parent frame of the new reference frame. * @param transformFromParent the transform that can be used to transform a geometry object from the * parent frame to this frame. Not modified. * @return the new reference frame. */ public static ReferenceFrame constructFrameWithUnchangingTransformFromParent(String frameName, ReferenceFrame parentFrame, RigidBodyTransform transformFromParent) { RigidBodyTransform transformToParent = new RigidBodyTransform(transformFromParent); transformToParent.invert(); return constructFrameWithUnchangingTransformToParent(frameName, parentFrame, transformToParent); }
/** * Creates a reference frame with an immutable translation offset from its parent. * <p> * The new reference frame has the same orientation as its parent frame. * </p> * * @param frameName the name of the new frame. * @param parentFrame the parent frame of the new reference frame. * @param translationOffsetFromParent describes the position of the new reference frame's origin * expressed in the parent frame. Not modified. * @return the new reference frame. */ public static ReferenceFrame constructFrameWithUnchangingTranslationFromParent(String frameName, ReferenceFrame parentFrame, Tuple3DReadOnly translationOffsetFromParent) { RigidBodyTransform transformToParent = new RigidBodyTransform(); transformToParent.setTranslation(translationOffsetFromParent); return constructFrameWithUnchangingTransformToParent(frameName, parentFrame, transformToParent); }
intermediateFrames[dofIndex] = ReferenceFrameTools.constructFrameWithUnchangingTransformToParent(frameName, parentFrame, identity);
intermediateFrames[dofIndex] = ReferenceFrameTools.constructFrameWithUnchangingTransformToParent(frameName, parentFrame, identity);
intermediateFrames[dofIndex] = ReferenceFrameTools.constructFrameWithUnchangingTransformToParent(frameName, parentFrame, identity);
@Ignore @Test public void testUniqueNaming() { Random random = new Random(13L); ReferenceFrame someFrame = EuclidFrameRandomTools.nextReferenceFrame(random); String frameName = someFrame.getName(); ReferenceFrame parent = someFrame.getParent(); try { ReferenceFrameTools.constructFrameWithUnchangingTransformToParent(frameName, parent, new RigidBodyTransform()); fail("Should have thrown a RuntimeException"); } catch (RuntimeException e) { // good } ReferenceFrameTools.removeFrame(someFrame); someFrame = ReferenceFrameTools.constructFrameWithUnchangingTransformToParent(frameName, parent, new RigidBodyTransform()); someFrame.remove(); someFrame = ReferenceFrameTools.constructFrameWithUnchangingTransformToParent(frameName, parent, new RigidBodyTransform()); ReferenceFrameTools.clearFrameTree(someFrame); someFrame = ReferenceFrameTools.constructFrameWithUnchangingTransformToParent(frameName, parent, new RigidBodyTransform()); ReferenceFrameTools.clearWorldFrameTree(); ReferenceFrameTools.constructFrameWithUnchangingTransformToParent(frameName, parent, new RigidBodyTransform()); }
referenceFrames.add(ReferenceFrameTools.constructFrameWithUnchangingTransformToParent("blop1Bis", ReferenceFrame.getWorldFrame(), randomTransform)); referenceFrames.add(ReferenceFrame.getWorldFrame()); referenceFrames.add(ReferenceFrameTools.constructFrameWithUnchangingTransformToParent("blop1", ReferenceFrame.getWorldFrame(), randomTransform)); referenceFrames.add(EuclidFrameRandomTools.nextReferenceFrame("blop2", random, ReferenceFrame.getWorldFrame()));
FrameQuaternion c1_orientation = EuclidFrameRandomTools.nextFrameQuaternion(random, bodyFrame); RigidBodyTransform c1ToBody = new RigidBodyTransform(c1_orientation, c1_origin); ReferenceFrame c1 = ReferenceFrameTools.constructFrameWithUnchangingTransformToParent("c1", bodyFrame, c1ToBody); FramePoint3D c2_origin = EuclidFrameRandomTools.nextFramePoint3D(random, bodyFrame); FrameQuaternion c2_orientation = EuclidFrameRandomTools.nextFrameQuaternion(random, bodyFrame); RigidBodyTransform c2ToBody = new RigidBodyTransform(c2_orientation, c2_origin); ReferenceFrame c2 = ReferenceFrameTools.constructFrameWithUnchangingTransformToParent("c2", bodyFrame, c2ToBody); ReferenceFrame c2_d = ReferenceFrameTools.constructFrameWithUnchangingTransformToParent("c2_d", c1_d, c2c1);
ReferenceFrame constantFrame = ReferenceFrameTools.constructFrameWithUnchangingTransformToParent("constant" + i, world, expected);