本文整理了Java中us.ihmc.simulationconstructionset.Robot.getRootJoints
方法的一些代码示例,展示了Robot.getRootJoints
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Robot.getRootJoints
方法的具体详情如下:
包路径:us.ihmc.simulationconstructionset.Robot
类名称:Robot
方法名:getRootJoints
暂无
代码示例来源:origin: us.ihmc/IHMCSimulationToolkit
private FloatingInverseDynamicsJoint getRootSixDoFJoint()
{
ArrayList<Joint> rootJoints = robot.getRootJoints();
if (rootJoints.size() > 1) throw new RuntimeException("Only works with one root joint");
FloatingJoint rootJoint = (FloatingJoint) rootJoints.get(0);
return scsToInverseDynamicsJointMap.getInverseDynamicsSixDoFJoint(rootJoint);
}
代码示例来源:origin: us.ihmc/simulation-construction-set-tools-test
private FloatingJoint getRootJoint(SimulationConstructionSet scs0)
{
Joint firstRootJoint = scs0.getRobots()[0].getRootJoints().get(0);
if (firstRootJoint instanceof FloatingJoint)
return (FloatingJoint) firstRootJoint;
throw new RuntimeException("first root joint is not a floating joint: " + firstRootJoint);
}
代码示例来源:origin: us.ihmc/simulation-construction-set-tools
private void PackSensorDataFromRobot()
{
for (Joint rootJoint : terminator.getRootJoints())
{
recurseThrough(rootJoint);
}
}
代码示例来源:origin: us.ihmc/simulation-construction-set-tools-test
public void getRobotInformationAsStringBuffer(StringBuffer buffer)
{
ArrayList<Joint> rootJoints = robot.getRootJoints();
for (Joint rootJoint : rootJoints)
{
buffer.append("Found Root Joint.\n");
printJointInformation(rootJoint, buffer);
}
}
代码示例来源:origin: us.ihmc/IHMCSimulationToolkit
private RigidBody getRootBody()
{
ArrayList<Joint> rootJoints = robot.getRootJoints();
if (rootJoints.size() > 1) throw new RuntimeException("Only works with one root joint");
Joint rootJoint = rootJoints.get(0);
return scsToInverseDynamicsJointMap.getRigidBody(rootJoint);
}
代码示例来源:origin: us.ihmc/simulation-construction-set-tools-test
ConservedQuantitiesChecker(Robot robot)
{
this.robot = robot;
this.rootJoint = (FloatingJoint) robot.getRootJoints().get(0);
this.registry = new YoVariableRegistry(robot.getName() + getClass().getSimpleName());
}
代码示例来源:origin: us.ihmc/simulation-construction-set-tools
public TorqueSpeedDataExporterGraphCreator(Robot robot, DataBuffer dataBuffer)
{
super(robot.getYoTime(), dataBuffer);
for (Joint rootJoint : robot.getRootJoints())
{
recursivelyAddPinJoints(rootJoint, pinJoints);
}
}
代码示例来源:origin: us.ihmc/simulation-construction-set-tools-test
SinusoidalTorqueController(Robot robot)
{
this.t = robot.getYoTime();
this.registry = new YoVariableRegistry(robot.getName() + getClass().getSimpleName());
Joint rootJoint = robot.getRootJoints().get(0);
for(Joint childJoint : rootJoint.getChildrenJoints())
{
recursivelyAddJointTorqueProfile(childJoint);
}
}
代码示例来源:origin: us.ihmc/ihmc-simulation-toolkit
private SDFModel createSDFModel()
{
SDFModel model = new SDFModel();
List<SDFJoint> sdfJoints = new ArrayList<>();
List<SDFLink> sdfLink = new ArrayList<>();
ArrayList<OneDegreeOfFreedomJoint> scsJoints = new ArrayList<>();
scsRobot.getAllOneDegreeOfFreedomJoints(scsJoints);
if (scsRobot.getRootJoints().size() > 1)
throw new RuntimeException("Cannot handle multiple root joints for now.");
sdfLink.add(createSDFLink(scsRobot.getRootJoints().get(0).getLink(), true));
for (OneDegreeOfFreedomJoint scsJoint : scsJoints)
{
sdfJoints.add(createSDFJoint(scsJoint));
sdfLink.add(createSDFLink(scsJoint.getLink(), false));
}
model.setName(sdfModelName);
model.setJoints(sdfJoints);
model.setLinks(sdfLink);
return model;
}
代码示例来源:origin: us.ihmc/ihmc-avatar-interfaces-test
private double findAccelerationGreatestMagnitude()
{
FloatingJoint scsFloatingJoint = (FloatingJoint) robot.getRootJoints().get(0);
double mag = scsFloatingJoint.getAngularAccelerationInBody().length();
Vector3D linearAcceleration = new Vector3D();
scsFloatingJoint.getLinearAccelerationInWorld(linearAcceleration);
mag = Math.max(linearAcceleration.length(), mag);
ArrayList<OneDegreeOfFreedomJoint> joints = new ArrayList<>();
robot.getAllOneDegreeOfFreedomJoints(joints);
for (OneDegreeOfFreedomJoint joint : joints)
mag = Math.max(mag, Math.abs(joint.getQDD()));
return mag;
}
}
代码示例来源:origin: us.ihmc/IHMCSimulationToolkit
private SDFModel createSDFModel()
{
SDFModel model = new SDFModel();
List<SDFJoint> sdfJoints = new ArrayList<>();
List<SDFLink> sdfLink = new ArrayList<>();
ArrayList<OneDegreeOfFreedomJoint> scsJoints = new ArrayList<>();
scsRobot.getAllOneDegreeOfFreedomJoints(scsJoints);
if (scsRobot.getRootJoints().size() > 1)
throw new RuntimeException("Cannot handle multiple root joints for now.");
sdfLink.add(createSDFLink(scsRobot.getRootJoints().get(0).getLink(), true));
for (OneDegreeOfFreedomJoint scsJoint : scsJoints)
{
sdfJoints.add(createSDFJoint(scsJoint));
sdfLink.add(createSDFLink(scsJoint.getLink(), false));
}
model.setName(sdfModelName);
model.setJoints(sdfJoints);
model.setLinks(sdfLink);
return model;
}
代码示例来源:origin: us.ihmc/IHMCSimulationToolkit
private List<SDFVisual> createSDFVisual(Link scsLink)
{
if (scsLink.getName().contains("body"))
System.out.println();
List<SDFVisual> sdfVisuals = new ArrayList<>();
ArrayList<Graphics3DPrimitiveInstruction> graphics3dInstructions = scsLink.getLinkGraphics().getGraphics3DInstructions();
RigidBodyTransform parentJointTransformToWorld = new RigidBodyTransform();
Joint parentJoint = scsLink.getParentJoint();
if (scsRobot.getRootJoints().contains(parentJoint))
parentJoint.getTransformToWorld(parentJointTransformToWorld);
SDFVisual sdfVisual = createSDFVisual(parentJointTransformToWorld, graphics3dInstructions);
if (sdfVisual != null)
sdfVisuals.add(sdfVisual);
return sdfVisuals;
}
代码示例来源:origin: us.ihmc/ihmc-simulation-toolkit
private List<SDFVisual> createSDFVisual(Link scsLink)
{
if (scsLink.getName().contains("body"))
System.out.println();
List<SDFVisual> sdfVisuals = new ArrayList<>();
ArrayList<Graphics3DPrimitiveInstruction> graphics3dInstructions = scsLink.getLinkGraphics().getGraphics3DInstructions();
RigidBodyTransform parentJointTransformToWorld = new RigidBodyTransform();
Joint parentJoint = scsLink.getParentJoint();
if (scsRobot.getRootJoints().contains(parentJoint))
parentJoint.getTransformToWorld(parentJointTransformToWorld);
SDFVisual sdfVisual = createSDFVisual(parentJointTransformToWorld, graphics3dInstructions);
if (sdfVisual != null)
sdfVisuals.add(sdfVisual);
return sdfVisuals;
}
代码示例来源:origin: us.ihmc/ihmc-avatar-interfaces-test
public static void setRandomConfiguration(Random random, Robot robot)
{
FloatingJoint rootJoint = (FloatingJoint) robot.getRootJoints().get(0);
rootJoint.setRotationAndTranslation(EuclidCoreRandomTools.nextRigidBodyTransform(random));
ArrayList<OneDegreeOfFreedomJoint> joints = new ArrayList<>();
robot.getAllOneDegreeOfFreedomJoints(joints);
for (OneDegreeOfFreedomJoint joint : joints)
{
double jointLowerLimit = Math.max(joint.getJointLowerLimit(), -2.0 * Math.PI);
double jointUpperLimit = Math.min(joint.getJointUpperLimit(), 2.0 * Math.PI);
double q = EuclidCoreRandomTools.nextDouble(random, jointLowerLimit, jointUpperLimit);
joint.setQ(q);
}
}
代码示例来源:origin: us.ihmc/ihmc-avatar-interfaces-test
public static void setRandomVelocity(Random random, Robot robot)
{
FloatingJoint rootJoint = (FloatingJoint) robot.getRootJoints().get(0);
rootJoint.setVelocity(EuclidCoreRandomTools.nextVector3D(random));
rootJoint.setAngularVelocityInBody(EuclidCoreRandomTools.nextVector3D(random));
ArrayList<OneDegreeOfFreedomJoint> joints = new ArrayList<>();
robot.getAllOneDegreeOfFreedomJoints(joints);
for (OneDegreeOfFreedomJoint joint : joints)
joint.setQd(EuclidCoreRandomTools.nextDouble(random));
}
代码示例来源:origin: us.ihmc/simulation-construction-set-tools
@Override
public void waitAndWriteData(long tick)
{
if (tick % ticksPerSimulationTick == 0 && !(tick == 0 && skipFirstControlCycle))
{
robotControlElement.write(System.nanoTime());
if (simulatedRobot != null)
{
RigidBodyTransform transformToWorld = new RigidBodyTransform();
simulatedRobot.getRootJoints().get(0).getTransformToWorld(transformToWorld);
if (robotControlElement.getYoGraphicsListRegistry() != null)
{
robotControlElement.getYoGraphicsListRegistry().setSimulationTransformToWorld(transformToWorld);
}
}
}
}
代码示例来源:origin: us.ihmc/simulation-construction-set-tools
@Override
public void updateYoGraphicsListRegistry()
{
if(robotControlElement.getYoGraphicsListRegistry() != null)
{
if(registry!=null)
registry.updateChangedValues();
if (simulatedRobot != null)
{
simulatedRobot.getRootJoints().get(0).getTransformToWorld(transformToWorld);
robotControlElement.getYoGraphicsListRegistry().setSimulationTransformToWorld(transformToWorld);
}
robotControlElement.getYoGraphicsListRegistry().update();
}
}
代码示例来源:origin: us.ihmc/simulation-construction-set-tools
public DataExporterExcelWorkbookCreator(Robot robot, DataBuffer dataBuffer)
{
this.robot = robot;
for (Joint rootJoint : robot.getRootJoints())
{
recursivelyAddPinJoints(rootJoint, pinJoints);
recursivelyAddJoints(rootJoint, allJoints);
}
this.dataBuffer = dataBuffer;
defaultFormat = new WritableCellFormat();
WritableFont headerFont = new WritableFont(WritableFont.ARIAL, 10, WritableFont.BOLD);
headerCellFormat = new WritableCellFormat(headerFont);
defaultNumberFormat = new WritableCellFormat(NumberFormats.FLOAT);
smallNumberFormat = new WritableCellFormat(NumberFormats.EXPONENTIAL);
}
代码示例来源:origin: us.ihmc/ihmc-avatar-interfaces-test
private void getFloatingJointStateFromSCS()
{
FloatingJoint scsJoint = (FloatingJoint) robot.getRootJoints().get(0);
RigidBodyTransform jointTransform3D = scsJoint.getJointTransform3D();
floatingJoint.getJointPose().set(jointTransform3D);
floatingJoint.getFrameAfterJoint().update();
FrameVector3D linearVelocity = new FrameVector3D();
scsJoint.getVelocity(linearVelocity);
linearVelocity.changeFrame(floatingJoint.getFrameAfterJoint());
floatingJoint.getJointTwist().set(scsJoint.getAngularVelocityInBody(), linearVelocity);
}
代码示例来源:origin: us.ihmc/simulation-construction-set-test
private void checkRobotsHaveSameState(Robot robotA, Robot robotB)
{
Point3D centerOfMassA = new Point3D();
Point3D centerOfMassB = new Point3D();
double totalMassA = robotA.computeCenterOfMass(centerOfMassA);
double totalMassB = robotB.computeCenterOfMass(centerOfMassB);
Vector3D angularMomentumA = new Vector3D();
Vector3D angularMomentumB = new Vector3D();
robotA.computeAngularMomentum(angularMomentumA);
robotB.computeAngularMomentum(angularMomentumB);
Vector3D linearMomentumA = new Vector3D();
Vector3D linearMomentumB = new Vector3D();
robotA.computeLinearMomentum(linearMomentumA);
robotB.computeLinearMomentum(linearMomentumB);
assertEquals(totalMassA, totalMassB, 1e-7);
EuclidCoreTestTools.assertTuple3DEquals(centerOfMassA, centerOfMassB, 1e-10);
EuclidCoreTestTools.assertTuple3DEquals(linearMomentumA, linearMomentumB, 1e-10);
EuclidCoreTestTools.assertTuple3DEquals(angularMomentumA, angularMomentumB, 1e-9);
ArrayList<Joint> jointsA = robotA.getRootJoints();
ArrayList<Joint> jointsB = robotB.getRootJoints();
recursivelyTestJointStateIsTheSame(jointsA, jointsB);
}
内容来源于网络,如有侵权,请联系作者删除!