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

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

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

OneDoFJointBasics.setQ介绍

[英]Sets the current position/angle for this joint.
[中]设置此关节的当前位置/角度。

代码示例

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

/** {@inheritDoc} */
@Override
default void setJointConfigurationToZero()
{
 setQ(0.0);
}

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

@Before
public void setUp()
{
 joint.setQ(0.0);
 joint.setQd(0.0);
 joint.setQdd(0.0);
 trajectoryTimeProvider = new ConstantDoubleProvider(timeRequired);
}

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

private void setBestJointAngles()
{
 for (int i = 0; i < oneDoFJoints.length; i++)
 {
   oneDoFJoints[i].setQ(bestJointAngles[i]);
 }
}

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

private void readAndUpdateOneDoFJointPositionsVelocitiesAndAccelerations()
{
 for (int i = 0; i < revoluteJoints.size(); i++)
 {
   ImmutablePair<OneDegreeOfFreedomJoint, OneDoFJointBasics> jointPair = revoluteJoints.get(i);
   OneDegreeOfFreedomJoint pinJoint = jointPair.getLeft();
   OneDoFJointBasics revoluteJoint = jointPair.getRight();
   if (pinJoint == null) continue;
   revoluteJoint.setQ(pinJoint.getQYoVariable().getDoubleValue());
   revoluteJoint.setQd(pinJoint.getQDYoVariable().getDoubleValue());
   revoluteJoint.setQdd(pinJoint.getQDDYoVariable().getDoubleValue());
   revoluteJoint.setTau(pinJoint.getTau());
 }
}

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

public void introduceRandomArmePose(RigidBodyTransform desiredTransform)
{
 for (int i = 0; i < oneDoFJoints.length; i++)
 {
   oneDoFJoints[i].setQ(random.nextDouble());
 }
 solve(desiredTransform);
}

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

private void generateArmPoseAtMidRangeWithForwardKinematics()
{
 for (JointNames name : JointNames.values())
 {
   double bufferAwayFromJointLimits = 0.2;    // 0.0;
   double minRange = jointLimits.get(name).get(0) - bufferAwayFromJointLimits;
   double maxRange = jointLimits.get(name).get(1) + bufferAwayFromJointLimits;
   double middleRangeJointAngle = (minRange + maxRange) / 2.0;
   jointAngles.put(name, middleRangeJointAngle);
   oneDoFJoints.get(name).setQ(jointAngles.get(name));
 }
}

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

/**
* Sets this joint configuration from the other joint.
* 
* @param other the other to get the configuration from. Not modified.
*/
default void setJointConfiguration(OneDoFJointReadOnly other)
{
 setQ(other.getQ());
}

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

private void generateRandomArmPoseWithForwardKinematics(Random random)
{
 for (JointNames name : JointNames.values())
 {
   double bufferAwayFromJointLimits = 0.05;    // 0.2; //0.0;
   double minRange = jointLimits.get(name).get(0) - bufferAwayFromJointLimits;
   double maxRange = jointLimits.get(name).get(1) + bufferAwayFromJointLimits;
   double randomJointAngle = RandomNumbers.nextDouble(random, minRange, maxRange);
   jointAngles.put(name, randomJointAngle);
   oneDoFJoints.get(name).setQ(jointAngles.get(name));
 }
}

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

private void generateArmPoseSlightlyOffOfMidRangeWithForwardKinematics(Random random, double maxAngleDeviationFromMidRange)
{
 for (JointNames name : JointNames.values())
 {
   double bufferAwayFromJointLimits = 0.2;    // 0.0;
   double minRange = jointLimits.get(name).get(0) - bufferAwayFromJointLimits;
   double maxRange = jointLimits.get(name).get(1) + bufferAwayFromJointLimits;
   double middleRangeJointAngle = (minRange + maxRange) / 2.0;
   double deviation = RandomNumbers.nextDouble(random, maxAngleDeviationFromMidRange);
   jointAngles.put(name, middleRangeJointAngle + deviation);
   oneDoFJoints.get(name).setQ(jointAngles.get(name));
 }
}

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

public void setJointAngles(DenseMatrix64F angles)
{
 for (int i = 0; i < angles.getNumRows(); i++)
 {
   oneDoFJoints[i].setQ(angles.get(i, 0));
 }
}

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

private void setJointAngles(DenseMatrix64F angles)
{
 for (int i = 0; i < angles.getNumRows(); i++)
 {
   oneDoFJoints[i].setQ(angles.get(i, 0));
 }
}

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

/** {@inheritDoc} */
@Override
default int setJointConfiguration(int rowStart, DenseMatrix64F matrix)
{
 setQ(matrix.get(rowStart, 0));
 return rowStart + getConfigurationMatrixSize();
}

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

private static void setJointPositionToMidRange(OneDoFJointBasics joint)
{
 double jointLimitUpper = joint.getJointLimitUpper();
 double jointLimitLower = joint.getJointLimitLower();
 joint.setQ(0.5 * (jointLimitUpper + jointLimitLower));
}

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

private void introduceRandomPose()
{
 for (int i = 0; i < oneDoFJoints.length; i++)
 {
   double newQ = generateRandomDoubleInRange(oneDoFJoints[i].getJointLimitUpper(), oneDoFJoints[i].getJointLimitLower());
   oneDoFJoints[i].setQ(newQ);
 }
}

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

/**
* Integrates the given {@code joint}'s velocity to update its configuration.
* 
* @param joint the joint to integrate the state of. The joint configuration is modified.
*/
public void integrateFromVelocity(OneDoFJointBasics joint)
{
 double initialQ = joint.getQ();
 double qd = joint.getQd();
 joint.setQ(integratePosition(qd, initialQ));
}

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

private void randomizeJointPositions(Random random, OneDoFJointBasics[] joints, double percentOfMotionRangeAllowed)
{
 for (OneDoFJointBasics joint : joints)
 {
   double jointLimitLower = joint.getJointLimitLower();
   double jointLimitUpper = joint.getJointLimitUpper();
   double rangeReduction = (1.0 - percentOfMotionRangeAllowed) * (jointLimitUpper - jointLimitLower);
   jointLimitLower += 0.5 * rangeReduction;
   jointLimitUpper -= 0.5 * rangeReduction;
   joint.setQ(RandomNumbers.nextDouble(random, jointLimitLower, jointLimitUpper));
 }
}

代码示例来源:origin: us.ihmc/simulation-construction-set-tools

public void updateJointPositions_SCS_to_ID()
{
  if (scsFloatingJoint != null)
  {
   scsFloatingJoint.getTransformToWorld(transformToWorld);
   transformToWorld.normalizeRotationPart();
   idFloatingJoint.setJointConfiguration(transformToWorld);
  }
  for (OneDegreeOfFreedomJoint scsJoint : allSCSOneDoFJoints)
  {
   OneDoFJointBasics idJoint = scsToIDJointMap.get(scsJoint);
   idJoint.setQ(scsJoint.getQYoVariable().getDoubleValue());
  }
}

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

private void updateState(double[] parameters)
{
 for (int i = 0; i < parameters.length; i++)
 {
   OneDoFJointBasics oneDoFJoint = oneDoFJoints[i];
   // apply constraints to the input parameters
   double newQ = UtilAngle.bound(parameters[i]);
   if (Double.isNaN(newQ))
    continue;
   newQ = parameters[i] = MathTools.clamp(newQ, oneDoFJoint.getJointLimitLower(), oneDoFJoint.getJointLimitUpper());
   oneDoFJoint.setQ(newQ);
   oneDoFJoint.getFrameAfterJoint().update();
 }
}

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

private Pair<FloatingJointBasics, OneDoFJointBasics[]> createFullRobotModelAtInitialConfiguration()
{
 RobotDescription robotDescription = new KinematicsToolboxControllerTestRobots.SevenDoFArm();
 Pair<FloatingJointBasics, OneDoFJointBasics[]> fullRobotModel = KinematicsToolboxControllerTestRobots.createInverseDynamicsRobot(robotDescription);
 for (OneDoFJointBasics joint : fullRobotModel.getRight())
 {
   if (Double.isFinite(joint.getJointLimitLower()) && Double.isFinite(joint.getJointLimitUpper()))
    joint.setQ(0.5 * (joint.getJointLimitLower() + joint.getJointLimitUpper()));
 }
 MultiBodySystemTools.getRootBody(fullRobotModel.getRight()[0].getPredecessor()).updateFramesRecursively();
 return fullRobotModel;
}

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

private void updateJointAngles()
{
 for (int i = 0; i < oneDoFJoints.length; i++)
 {
   double newQ = oneDoFJoints[i].getQ() + correction.get(i, 0);
   newQ = MathTools.clamp(newQ, oneDoFJoints[i].getJointLimitLower(), oneDoFJoints[i].getJointLimitUpper());
   oneDoFJoints[i].setQ(newQ);
   oneDoFJoints[i].getFrameAfterJoint().update();
 }
}

相关文章