本文整理了Java中us.ihmc.euclid.referenceFrame.ReferenceFrame.getTransformToRoot
方法的一些代码示例,展示了ReferenceFrame.getTransformToRoot
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ReferenceFrame.getTransformToRoot
方法的具体详情如下:
包路径:us.ihmc.euclid.referenceFrame.ReferenceFrame
类名称:ReferenceFrame
方法名:getTransformToRoot
[英]Returns the internal reference to this frame's transform to the root frame.
The transform can be used to transform a geometry object defined in this frame to obtain its equivalent expressed in the root frame.
[中]将此帧的变换的内部引用返回到根帧。
该变换可用于变换在此帧中定义的几何体对象,以获得其在根帧中表示的等效对象。
代码示例来源:origin: us.ihmc/ihmc-robotics-toolkit
@Override
protected void updateTransformToParent(RigidBodyTransform transformToParent)
{
transformToParent.set(originalFrame.getTransformToRoot());
}
代码示例来源:origin: us.ihmc/ihmc-robotics-toolkit
public boolean intersects(Point3D start, Point3D end)
{
Point3D inFrameStart = new Point3D(start);
frame.getTransformToRoot().inverseTransform(inFrameStart);
Point3D inFrameEnd = new Point3D(end);
frame.getTransformToRoot().inverseTransform(inFrameEnd);
return box.doesIntersectWithLineSegment3D(start, end);
}
}
代码示例来源:origin: us.ihmc/ihmc-robotics-toolkit
public boolean contains(Point3D p)
{
Point3D local = new Point3D(p);
frame.getTransformToRoot().inverseTransform(local);
return box.isInsideInclusive(local);
}
代码示例来源:origin: us.ihmc/euclid-test
if (frame.getTransformToRoot() != null)
if (!frameInTree.getTransformToRoot().epsilonEquals(computedTransformToRoot, 1e-5))
System.err.println("frame.transformToRoot = " + frameInTree.getTransformToRoot() + ", computedTransformToRoot = " + computedTransformToRoot);
System.err.println("this = " + this + " frame = " + frameInTree);
代码示例来源:origin: us.ihmc/mecano
/**
* Second pass that can be done iteratively and each iteration is independent.
* <p>
* This pass is only needed when the {@code jacobianFrame} is at the center of mass and that this
* calculator has to update. It recomputes the intermediate variable {@link #centerOfMassTimesMass}
* at the center of mass frame so it can be used in the next and last pass.
* </p>
*/
public void passTwo()
{
centerOfMassTimesMass.setIncludingFrame(centerOfMass);
centerOfMassTimesMass.sub(jacobianFrame.getTransformToRoot().getTranslationVector());
centerOfMassTimesMass.setReferenceFrame(jacobianFrame);
centerOfMassTimesMass.scale(subTreeMass);
}
代码示例来源:origin: us.ihmc/ihmc-robotics-toolkit
@Override
public final void changeFrame(ReferenceFrame referenceFrame)
{
putYoValuesIntoFrameWaypoint();
// this is in the correct frame already
if (referenceFrame == getReferenceFrame())
{
return;
}
getReferenceFrame().verifySameRoots(referenceFrame);
RigidBodyTransform referenceTf, desiredTf;
if ((referenceTf = getReferenceFrame().getTransformToRoot()) != null)
{
frameWaypoint.applyTransform(referenceTf);
}
if ((desiredTf = referenceFrame.getTransformToRoot()) != null)
{
frameWaypoint.applyInverseTransform(desiredTf);
}
getYoValuesFromFrameWaypoint();
multipleFramesHelper.switchCurrentReferenceFrame(referenceFrame);
}
代码示例来源:origin: us.ihmc/ihmc-robotics-toolkit-test
@ContinuousIntegrationTest(estimatedDuration = 0.3)
@Test(timeout = 30000)
public void testConstructFrameFromPointAndAxis()
{
Random random = new Random(1776L);
ReferenceFrame worldFrame = ReferenceFrame.getWorldFrame();
FramePoint3D randomPoint = new FramePoint3D(worldFrame);
FrameVector3D randomVector = new FrameVector3D(worldFrame);
int numberOfTests = 100000;
for (int i = 0; i < numberOfTests; i++)
{
randomPoint.setIncludingFrame(EuclidFrameRandomTools.nextFramePoint3D(random, worldFrame, 10.0, 10.0, 10.0));
randomVector.setIncludingFrame(EuclidFrameRandomTools.nextFrameVector3D(random, worldFrame, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0));
ReferenceFrame frameA = GeometryTools.constructReferenceFrameFromPointAndZAxis("frameA", randomPoint, randomVector);
ReferenceFrame frameB = GeometryTools.constructReferenceFrameFromPointAndAxis("frameB", randomPoint, Axis.Z, randomVector);
EuclidCoreTestTools.assertRigidBodyTransformEquals(frameA.getTransformToRoot(), frameB.getTransformToRoot(), 1.0e-2);
}
}
代码示例来源:origin: us.ihmc/euclid-test
@Test
public void testGetTransformBetweenFrames()
{
Random random = new Random(1776L);
for (int i = 0; i < ITERATIONS; i++)
{
ReferenceFrame[] treeFrame = EuclidFrameRandomTools.nextReferenceFrameTree(random);
ReferenceFrame frame1 = treeFrame[random.nextInt(treeFrame.length)];
ReferenceFrame frame2 = treeFrame[random.nextInt(treeFrame.length)];
RigidBodyTransform transformOne = frame1.getTransformToDesiredFrame(frame2);
RigidBodyTransform transformTwo = frame2.getTransformToDesiredFrame(frame1);
transformTwo.invert();
EuclidCoreTestTools.assertRigidBodyTransformEquals(transformOne, transformTwo, EPSILON);
RigidBodyTransform transformThree = new RigidBodyTransform();
if (frame2.getTransformToRoot() != null)
transformThree.setAndInvert(frame2.getTransformToRoot());
if (frame1.getTransformToRoot() != null)
transformThree.multiply(frame1.getTransformToRoot());
EuclidCoreTestTools.assertRigidBodyTransformEquals(transformOne, transformThree, EPSILON);
RigidBodyTransform transformFour = new RigidBodyTransform();
transformFour.set(worldFrame.getTransformToDesiredFrame(frame2));
transformFour.multiply(frame1.getTransformToDesiredFrame(worldFrame));
EuclidCoreTestTools.assertRigidBodyTransformEquals(transformOne, transformFour, EPSILON);
ReferenceFrame frame3 = treeFrame[random.nextInt(treeFrame.length)];
RigidBodyTransform transformFive = new RigidBodyTransform();
transformFive.set(frame3.getTransformToDesiredFrame(frame2));
transformFive.multiply(frame1.getTransformToDesiredFrame(frame3));
EuclidCoreTestTools.assertRigidBodyTransformEquals(transformOne, transformFive, EPSILON);
}
}
代码示例来源:origin: us.ihmc/euclid-frame
objectToTransform.applyInverseTransform(desiredFrame.getTransformToRoot());
objectToTransform.applyTransform(getTransformToRoot());
objectToTransform.applyTransform(getTransformToRoot());
objectToTransform.applyInverseTransform(desiredFrame.getTransformToRoot());
代码示例来源:origin: us.ihmc/euclid-frame
transformToPack.setAndInvert(desiredFrame.getTransformToRoot());
transformToPack.set(getTransformToRoot());
transformToPack.setAndInvert(desiredFrame.getTransformToRoot());
transformToPack.multiply(getTransformToRoot());
代码示例来源:origin: us.ihmc/ihmc-avatar-interfaces
lidarSensorFrame.getTransformToRoot().getTranslation(lidarPosition);
代码示例来源:origin: us.ihmc/ihmc-robotics-toolkit
@Override
protected void updateTwistRelativeToParent(Twist twistRelativeToParentToPack)
{
RigidBodyTransform transformToRoot = originalFrame.getTransformToRoot();
if (previousRotation.containsNaN() || previousTranslation.containsNaN())
{
transformToRoot.get(previousRotation, previousTranslation);
angularVelocity.setToZero();
linearVelocity.setToZero();
}
else
{
transformToRoot.get(rotation, translation);
rotation.multiplyConjugateOther(previousRotation);
rotation.getRotationVector(angularVelocity);
angularVelocity.scale(1.0 / updateDT);
linearVelocity.sub(translation, previousTranslation);
linearVelocity.scale(1.0 / updateDT);
transformToRoot.get(previousRotation, previousTranslation);
transformToRoot.inverseTransform(angularVelocity);
transformToRoot.inverseTransform(linearVelocity);
}
twistRelativeToParentToPack.setIncludingFrame(this, getParent(), this, angularVelocity, linearVelocity);
}
}
内容来源于网络,如有侵权,请联系作者删除!