本文整理了Java中us.ihmc.mecano.multiBodySystem.interfaces.OneDoFJointBasics.getQd()
方法的一些代码示例,展示了OneDoFJointBasics.getQd()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。OneDoFJointBasics.getQd()
方法的具体详情如下:
包路径:us.ihmc.mecano.multiBodySystem.interfaces.OneDoFJointBasics
类名称:OneDoFJointBasics
方法名:getQd
暂无
代码示例来源:origin: us.ihmc/ihmc-robotics-toolkit
public double getValue()
{
return joint.getQd();
}
}
代码示例来源: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-simulation-toolkit
@Override
public double getJointVelocityProcessedOutput(OneDoFJointBasics oneDoFJoint)
{
return oneDoFJoint.getQd();
}
代码示例来源: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-simulation-toolkit
@Override
public double getJointVelocityRawOutput(OneDoFJointBasics oneDoFJoint)
{
return oneDoFJoint.getQd();
}
代码示例来源: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-robot-data-logger
public void get(double[] buffer, int offset)
{
buffer[offset + 0] = joint.getQ();
buffer[offset + 1] = joint.getQd();
}
代码示例来源: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/valkyrie
private void checkVelocity()
{
isVelocityLow.set(Math.abs(joint.getQd()) < jointVelocityMax.getDoubleValue());
}
}
代码示例来源:origin: us.ihmc/ihmc-robotics-toolkit
@Override
public void initialize()
{
initialize(joint.getQ(), joint.getQd());
}
代码示例来源:origin: us.ihmc/ihmc-robotics-toolkit
@Override
public void initialize()
{
initialize(joint.getQ(), joint.getQd());
}
代码示例来源: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-whole-body-controller
private void updatePDController(OneDoFJointBasics oneDoFJoint, double timeInCurrentState)
{
PDController pdController = pdControllers.get(oneDoFJoint);
double desiredPosition = desiredPositions.get(oneDoFJoint).getDoubleValue();
double desiredVelocity = 0.0;
double tau = pdController.compute(oneDoFJoint.getQ(), desiredPosition, oneDoFJoint.getQd(), desiredVelocity);
DiagnosticsWhenHangingHelper diagnosticsWhenHangingHelper = helpers.get(oneDoFJoint);
if (diagnosticsWhenHangingHelper != null)
{
tau = diagnosticsWhenHangingHelper.getTorqueToApply(tau, estimateTorqueOffset.getBooleanValue(), maximumTorqueOffset.getDoubleValue());
if (hasReachedMaximumTorqueOffset.getBooleanValue()
&& Math.abs(diagnosticsWhenHangingHelper.getTorqueOffset()) == maximumTorqueOffset.getDoubleValue())
{
PrintTools.warn(this, "Reached maximum torque for at least one joint.");
hasReachedMaximumTorqueOffset.set(true);
}
}
double ditherTorque = ditherAmplitude.getDoubleValue() * Math.sin(2.0 * Math.PI * ditherFrequency.getDoubleValue() * timeInCurrentState);
oneDoFJoint.setTau(tau + ditherTorque);
}
代码示例来源:origin: us.ihmc/ihmc-whole-body-controller
private void integrateAccelerationsToGetDesiredVelocities(OneDoFJointBasics jointState, JointDesiredOutputBasics lowLevelJointData, YoDouble qd_d_joint, YoDouble q_d_joint)
{
double currentPosition = jointState.getQ();
double currentVelocity = jointState.getQd();
if (lowLevelJointData.pollResetIntegratorsRequest())
{
// qd_d_joint.set(currentVelocity);
qd_d_joint.set(0.0);
q_d_joint.set(currentPosition);
return;
}
double previousDesiredVelocity = qd_d_joint.getDoubleValue();
double previousDesiredPosition = q_d_joint.getDoubleValue();
double desiredAcceleration = lowLevelJointData.getDesiredAcceleration();
double alphaVel = alphaDesiredVelocityMap.get(lowLevelJointData).getDoubleValue();
double alphaPos = alphaDesiredPositionMap.get(lowLevelJointData).getDoubleValue();
double desiredVelocity = doCleverIntegration(previousDesiredVelocity, desiredAcceleration, currentVelocity, alphaVel);
double desiredPosition = doCleverIntegration(previousDesiredPosition, desiredVelocity, currentPosition, alphaPos);
qd_d_joint.set(desiredVelocity);
q_d_joint.set(desiredPosition);
}
代码示例来源:origin: us.ihmc/ihmc-avatar-interfaces-test
public void setRobotStateToMatchFullRobotModel()
{
FloatingJointBasics sixDoFJoint = fullRobotModel.getRootJoint();
FloatingJoint floatingJoint = robot.getRootJoint();
fullRobotModel.updateFrames();
setRobotRootJointPositionAndOrientationToMatchFullRobotModel(sixDoFJoint, floatingJoint);
setRobotRootJointVelocityAndAngularVelocityToMatchFullRobotModel(sixDoFJoint, floatingJoint);
ArrayList<OneDegreeOfFreedomJoint> oneDegreeOfFreedomJoints = new ArrayList<OneDegreeOfFreedomJoint>();
robot.getAllOneDegreeOfFreedomJoints(oneDegreeOfFreedomJoints);
for (OneDegreeOfFreedomJoint oneDegreeOfFreedomJoint : oneDegreeOfFreedomJoints)
{
OneDoFJointBasics oneDoFJoint = fullRobotModel.getOneDoFJointByName(oneDegreeOfFreedomJoint.getName());
oneDegreeOfFreedomJoint.setQ(oneDoFJoint.getQ());
oneDegreeOfFreedomJoint.setQd(oneDoFJoint.getQd());
}
robot.update();
}
代码示例来源:origin: us.ihmc/simulation-construction-set-tools
public void updateJointVelocities_ID_to_SCS()
{
if (scsFloatingJoint != null)
{
ReferenceFrame rootBodyFrame = idFloatingJoint.getFrameAfterJoint();
rootJointTwist.setIncludingFrame(idFloatingJoint.getJointTwist());
linearVelocity.setIncludingFrame(rootJointTwist.getLinearPart());
angularVelocity.setIncludingFrame(rootJointTwist.getAngularPart());
linearVelocity.changeFrame(ReferenceFrame.getWorldFrame());
angularVelocity.changeFrame(rootBodyFrame);
scsFloatingJoint.setVelocity(linearVelocity);
scsFloatingJoint.setAngularVelocityInBody(angularVelocity);
}
for (OneDegreeOfFreedomJoint scsJoint : allSCSOneDoFJoints)
{
OneDoFJointBasics idJoint = scsToIDJointMap.get(scsJoint);
scsJoint.setQd(idJoint.getQd());
}
}
代码示例来源:origin: us.ihmc/valkyrie
@Override
public void update()
{
joint.setQ(handle.getPosition());
joint.setQd(handle.getVelocity());
bl_qd.update();
joint.setTau(handle.getEffort());
q.set(joint.getQ());
qd.set(joint.getQd());
tau.set(joint.getTau());
positionStepSizeLimiter.updateOutput(q.getDoubleValue(), q_d.getDoubleValue());
handle.setDesiredPosition(positionStepSizeLimiter.getDoubleValue());
}
}
代码示例来源:origin: us.ihmc/ihmc-simulation-toolkit
@Override
public void update(long timestamp)
{
fullRobot.updateFrames();
latestTimestamp = timestamp;
if(rootJoint != null)
{
robot.setOrientation(rootJoint.getJointPose().getOrientation());
robot.setPositionInWorld(rootJoint.getJointPose().getPosition());
}
for (ImmutablePair<OneDegreeOfFreedomJoint, OneDoFJointBasics> jointPair : revoluteJoints)
{
OneDegreeOfFreedomJoint pinJoint = jointPair.getLeft();
OneDoFJointBasics revoluteJoint = jointPair.getRight();
pinJoint.setQ(revoluteJoint.getQ());
pinJoint.setQd(revoluteJoint.getQd());
pinJoint.setTau(revoluteJoint.getTau());
}
robot.setTime(robot.getTime() + updateDT);
if (scs != null)
{
scs.tickAndUpdate();
}
}
代码示例来源:origin: us.ihmc/valkyrie
public void computeAndUpdateJointTorque()
{
JointDesiredOutputReadOnly desiredOutput = yoEffortJointHandleHolder.getDesiredJointData();
pidController.setProportionalGain(desiredOutput.hasStiffness() ? desiredOutput.getStiffness() : 0.0);
pidController.setDerivativeGain(desiredOutput.hasDamping() ? desiredOutput.getDamping() : 0.0);
OneDoFJointBasics oneDoFJoint = yoEffortJointHandleHolder.getOneDoFJoint();
double q, qd;
if (oneDoFJoint != null)
{
q = oneDoFJoint.getQ();
qd = oneDoFJoint.getQd();
}
else
{
q = yoEffortJointHandleHolder.getQ();
qd = yoEffortJointHandleHolder.getQd();
}
double qDesired = desiredOutput.hasDesiredPosition() ? desiredOutput.getDesiredPosition() : q;
double qdDesired = desiredOutput.hasDesiredVelocity() ? desiredOutput.getDesiredVelocity() : qd;
double fb_tau = pidController.compute(q, qDesired, qd, qdDesired, controlDT);
double ff_tau = desiredOutput.hasDesiredTorque() ? desiredOutput.getDesiredTorque() : 0.0;
double desiredEffort = fb_tau + ff_tau + tauOffset.getDoubleValue();
yoEffortJointHandleHolder.setDesiredEffort(desiredEffort);
}
代码示例来源:origin: us.ihmc/valkyrie
@Override
public void update()
{
joint.setQ(handle.getPosition());
joint.setQd(handle.getVelocity());
bl_qd.update();
joint.setTau(handle.getEffort());
q.set(joint.getQ());
qd.set(joint.getQd());
tau.set(joint.getTau());
double pdOutput = pdController.compute(q.getDoubleValue(), q_d.getDoubleValue(), qd.getDoubleValue(), qd_d.getDoubleValue());
jointCommand_pd.set(pdOutput);
tau_d.set(valkyrieRosControlSliderBoard.masterScaleFactor.getDoubleValue() * (jointCommand_pd.getDoubleValue() + jointCommand_function.getDoubleValue()) + tau_offset
.getDoubleValue());
handle.setDesiredEffort(tau_d.getDoubleValue());
}
}
内容来源于网络,如有侵权,请联系作者删除!