us.ihmc.mecano.multiBodySystem.interfaces.OneDoFJointBasics.getQdd()方法的使用及代码示例

x33g5p2x  于2022-01-26 转载在 其他  
字(6.7k)|赞(0)|评价(0)|浏览(69)

本文整理了Java中us.ihmc.mecano.multiBodySystem.interfaces.OneDoFJointBasics.getQdd()方法的一些代码示例,展示了OneDoFJointBasics.getQdd()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。OneDoFJointBasics.getQdd()方法的具体详情如下:
包路径:us.ihmc.mecano.multiBodySystem.interfaces.OneDoFJointBasics
类名称:OneDoFJointBasics
方法名:getQdd

OneDoFJointBasics.getQdd介绍

暂无

代码示例

代码示例来源:origin: us.ihmc/ihmc-simulation-toolkit

@Override
public double getJointAccelerationProcessedOutput(OneDoFJointBasics oneDoFJoint)
{
 return oneDoFJoint.getQdd();
}

代码示例来源:origin: us.ihmc/ihmc-simulation-toolkit

@Override
public double getJointAccelerationRawOutput(OneDoFJointBasics oneDoFJoint)
{
 return oneDoFJoint.getQdd();
}

代码示例来源:origin: us.ihmc/ihmc-simulation-toolkit

@Override
public void write()
{
 for (int i = 0; i < revoluteJoints.size(); i++)
 {
   ImmutablePair<OneDegreeOfFreedomJoint, OneDoFJointBasics> jointPair = revoluteJoints.get(i);
   OneDegreeOfFreedomJoint pinJoint = jointPair.getLeft();
   OneDoFJointBasics revoluteJoint = jointPair.getRight();
   pinJoint.setQ(revoluteJoint.getQ());
   pinJoint.setQd(revoluteJoint.getQd());
   pinJoint.setQdd(revoluteJoint.getQdd());
 }
}

代码示例来源:origin: us.ihmc/ihmc-avatar-interfaces-test

private void compareJointAccelerations(double epsilon)
{
  boolean areEqual = true;
  String errorMessage = "Joint accelerations are not equal\n";
  String jointTriggerErrorMessage = "";
  FloatingJoint scsFloatingJoint = (FloatingJoint) robot.getRootJoints().get(0);
  SpatialAcceleration expected = extractFromFloatingJoint(scsFloatingJoint, floatingJoint.getFrameBeforeJoint(), floatingJoint.getFrameAfterJoint());
  if (!floatingJoint.getJointAcceleration().epsilonEquals(expected, epsilon))
  {
   areEqual = false;
   jointTriggerErrorMessage = " floating-joint";
  }
  errorMessage += "Floating joint:\nExpected: " + expected + "\nActual  : " + floatingJoint.getJointAcceleration();
  for (OneDoFJointBasics joint : allOneDoFJoints)
  {
   String jointName = joint.getName();
   OneDegreeOfFreedomJoint scsJoint = (OneDegreeOfFreedomJoint) robot.getJoint(jointName);
   if (!EuclidCoreTools.epsilonEquals(scsJoint.getQDD(), joint.getQdd(), epsilon))
   {
     areEqual = false;
     jointTriggerErrorMessage += " " + jointName;
   }
   errorMessage += "\n" + jointName + ",\texpected: " + String.format(FORMAT, scsJoint.getQDD()) + ",\tactual: "
      + String.format(FORMAT, joint.getQdd()) + ", difference: " + String.format(FORMAT, Math.abs(scsJoint.getQDD() - joint.getQdd()));
  }
  if (!areEqual)
  {
   throw new RuntimeException(errorMessage + "\nJoint(s) triggering error:" + jointTriggerErrorMessage);
  }
}

代码示例来源:origin: us.ihmc/ihmc-robotics-toolkit

public static ChecksumUpdater newJointChecksumUpdater(GenericCRC32 checksum, OneDoFJointBasics joint)
{
 return () -> {
   checksum.update(joint.getQ());
   checksum.update(joint.getQd());
   checksum.update(joint.getQdd());
 };
}

代码示例来源:origin: us.ihmc/ihmc-avatar-interfaces-test

public boolean checkAccelerationsMatchBetweenFullRobotModelAndSimulatedRobot(double epsilon)
{
 FloatingJointBasics sixDoFJoint = fullRobotModel.getRootJoint();
 FloatingJoint floatingJoint = robot.getRootJoint();
 boolean allAccelerationsMatch = checkFullRobotModelRootJointAccelerationmatchesRobot(floatingJoint, sixDoFJoint, epsilon);
 ArrayList<OneDegreeOfFreedomJoint> oneDegreeOfFreedomJoints = new ArrayList<OneDegreeOfFreedomJoint>();
 robot.getAllOneDegreeOfFreedomJoints(oneDegreeOfFreedomJoints);
 for (OneDegreeOfFreedomJoint oneDegreeOfFreedomJoint : oneDegreeOfFreedomJoints)
 {
   OneDoFJointBasics oneDoFJoint = fullRobotModel.getOneDoFJointByName(oneDegreeOfFreedomJoint.getName());
   double inverseDynamicsAcceleration = oneDoFJoint.getQdd();
   double simulatedRobotAcceleration = oneDegreeOfFreedomJoint.getQDDYoVariable().getDoubleValue();
   YoDouble computedJointAcceleration = computedJointAccelerations.get(oneDoFJoint);
   computedJointAcceleration.set(inverseDynamicsAcceleration);
   boolean accelerationsMatch = Math.abs(inverseDynamicsAcceleration - simulatedRobotAcceleration) < epsilon;
   if (!accelerationsMatch)
   {
    System.err.println("Accelerations don't match. oneDegreeOfFreedomJoint = " + oneDegreeOfFreedomJoint.getName() + " inverseDynamicsAcceleration = "
       + inverseDynamicsAcceleration + ", simulatedRobotAcceleration = " + simulatedRobotAcceleration);
    allAccelerationsMatch = false;
   }
 }
 return allAccelerationsMatch;
}

代码示例来源:origin: us.ihmc/mecano

/**
* Integrates the given {@code joint}'s acceleration and velocity to update its velocity and
* configuration.
* 
* @param joint the joint to integrate the state of. The joint configuration is modified.
*/
public void doubleIntegrateFromAcceleration(OneDoFJointBasics joint)
{
 double initialQ = joint.getQ();
 double initialQd = joint.getQd();
 double qdd = joint.getQdd();
 joint.setQ(doubleIntegratePosition(qdd, initialQd, initialQ));
 joint.setQd(integrateVelocity(qdd, initialQd));
}

代码示例来源:origin: us.ihmc/ihmc-avatar-interfaces

public void updateRobotConfigurationBasedOnFullRobotModel()
  {
   for (ImmutablePair<OneDegreeOfFreedomJoint, OneDoFJointBasics> jointPair : oneDoFJointPairList)
   {
     OneDegreeOfFreedomJoint pinJoint = jointPair.getLeft();
     OneDoFJointBasics revoluteJoint = jointPair.getRight();

     pinJoint.setQ(revoluteJoint.getQ());
     pinJoint.setQd(revoluteJoint.getQd());
     pinJoint.setQdd(revoluteJoint.getQdd());
   }

   if (rootJointPair != null)
   {
     FloatingJoint floatingJoint = rootJointPair.getLeft();
     FloatingJointBasics sixDoFJoint = rootJointPair.getRight();

     RigidBodyTransform transform = new RigidBodyTransform();
     sixDoFJoint.getJointConfiguration(transform);
     floatingJoint.setRotationAndTranslation(transform);
   }
  }
}

代码示例来源:origin: us.ihmc/ihmc-robotics-toolkit-test

@ContinuousIntegrationTest(estimatedDuration = 0.0)
@Test(timeout = 30000)
public void testSetDesiredAccelerations()
{
 Vector3D[] jointAxes = {X, Y, Z, Y, X};
 RandomFloatingRevoluteJointChain chain = new RandomFloatingRevoluteJointChain(random, jointAxes);
 JointBasics[] jointsArray = MultiBodySystemTools.collectSubtreeJoints(chain.getElevator());
 DenseMatrix64F jointAccelerations = new DenseMatrix64F(MultiBodySystemTools.computeDegreesOfFreedom(jointsArray), 1);
 for(int i = 0; i < jointAccelerations.getNumRows() * jointAccelerations.getNumCols(); i++)
 {
   jointAccelerations.set(i, random.nextDouble());
 }
 MultiBodySystemTools.insertJointsState(jointsArray, JointStateType.ACCELERATION, jointAccelerations);
 DenseMatrix64F sixDoFAccel = new DenseMatrix64F(6, 1);
 jointsArray[0].getJointAcceleration(0, sixDoFAccel);
 for(int i = 0; i < 6; i++)
 {
   assertEquals("Should be equal accelerations", jointAccelerations.get(i), sixDoFAccel.get(i), epsilon);
 }
 OneDoFJointBasics joint;
 for(int i = 6; i < jointAccelerations.getNumRows() * jointAccelerations.getNumCols(); i++)
 {
   joint = (OneDoFJointBasics)jointsArray[i - 5]; //1 - 6
   assertEquals("Should be equal accelerations", jointAccelerations.get(i), joint.getQdd(), epsilon);
 }
}

代码示例来源:origin: us.ihmc/ihmc-simulation-toolkit

jointAcceleration = revoluteJoint.getQdd();
pinJoint.setQdd(jointAcceleration);

相关文章