本文整理了Java中us.ihmc.mecano.multiBodySystem.interfaces.OneDoFJointBasics.setQ()
方法的一些代码示例,展示了OneDoFJointBasics.setQ()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。OneDoFJointBasics.setQ()
方法的具体详情如下:
包路径:us.ihmc.mecano.multiBodySystem.interfaces.OneDoFJointBasics
类名称: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();
}
}
内容来源于网络,如有侵权,请联系作者删除!