/** ID Robot --> SCS Robot Copy the torques from the IDRobot to the SCSRobot. */ public void updateTorquesSCSrobot() // Remember! the body joint is NOT actuated { for (OneDoFJoint idJoint : idToSCSLegJointMap.keySet()) { OneDegreeOfFreedomJoint scsJoint = idToSCSLegJointMap.get(idJoint); scsJoint.setTau(idJoint.getTau()); } }
/** SCS Robot --> ID Robot Send positions and velocities. */ public void updatePositionsIDrobot() { // Body info bodyJointID.setPosition( bodyJointSCS.getQ_t1().getDoubleValue(), 0.0, bodyJointSCS.getQ_t2().getDoubleValue()); bodyJointID.setRotation(0.0, bodyJointSCS.getQ_rot().getDoubleValue(), 0.0); double[] velocityArray = new double[6]; velocityArray[0] = 0.0; // yaw velocityArray[1] = bodyJointSCS.getQd_rot().getDoubleValue(); // pitch velocityArray[2] = 0.0; // roll velocityArray[3] = bodyJointSCS.getQd_t1().getDoubleValue(); // x velocityArray[4] = 0.0; // y velocityArray[5] = bodyJointSCS.getQd_t2().getDoubleValue(); // z DenseMatrix64F velocities = new DenseMatrix64F(6, 1, true, velocityArray); bodyJointID.setVelocity(velocities, 0); // Leg and foot info (hip, knee and ankle) for (OneDoFJoint idJoint : idToSCSLegJointMap.keySet()) { OneDegreeOfFreedomJoint scsJoint = idToSCSLegJointMap.get(idJoint); idJoint.setQ(scsJoint.getQYoVariable().getDoubleValue()); idJoint.setQd(scsJoint.getQDYoVariable().getDoubleValue()); } elevator.updateFramesRecursively(); // Get the body coordinates bodyPosition = new FramePoint(); bodyPosition.setToZero(bodyJointID.getFrameAfterJoint()); bodyPosition.changeFrame(worldFrame); }
public void setFingerJointsProvider( SideDependentList<List<OneDegreeOfFreedomJoint>> allFingerJoints) { fingerJointMap = new HashMap<String, OneDegreeOfFreedomJoint>(); for (RobotSide robotSide : RobotSide.values) { for (OneDegreeOfFreedomJoint joint : allFingerJoints.get(robotSide)) { fingerJointMap.put(joint.getName(), joint); } } }
@Override public void write() { for (int i = 0; i < revoluteJoints.size(); i++) { ImmutablePair<OneDegreeOfFreedomJoint, OneDoFJoint> jointPair = revoluteJoints.get(i); OneDegreeOfFreedomJoint pinJoint = jointPair.getLeft(); OneDoFJoint revoluteJoint = jointPair.getRight(); pinJoint.setTau(revoluteJoint.getTau()); } }
public void updateRobotConfigurationBasedOnFullRobotModel() { for (int i = 0; i < revoluteJoints.size(); i++) { ImmutablePair<OneDegreeOfFreedomJoint, OneDoFJoint> jointPair = revoluteJoints.get(i); OneDegreeOfFreedomJoint pinJoint = jointPair.getLeft(); OneDoFJoint revoluteJoint = jointPair.getRight(); pinJoint.setQ(revoluteJoint.getQ()); } FloatingJoint floatingJoint = rootJointPair.getLeft(); FloatingInverseDynamicsJoint sixDoFJoint = rootJointPair.getRight(); RigidBodyTransform transform = sixDoFJoint.getJointTransform3D(); floatingJoint.setRotationAndTranslation(transform); }