热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

us.ihmc.robotics.geometry.RigidBodyTransform.get()方法的使用及代码示例

本文整理了Java中us.ihmc.robotics.geometry.RigidBodyTransform.get方法的一些代码示例,展示了RigidBo

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

RigidBodyTransform.get介绍

[英]Pack rotation part into Matrix3d and translation part into Tuple3d
[中]将旋转部分打包到Matrix3d中,将平移部分打包到Tuple3d中

代码示例

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

private boolean isTransformationInPlane(RigidBodyTransform transform)
{
// arguably not a sufficient condition. Reference frames could just happen to be aligned (not likely though). ReferenceFrame2d needed!
double[] transformArray = new double[16];
transform.get(transformArray);
if (((transformArray[2] == 0.0) && (transformArray[6] == 0.0) && (transformArray[8] == 0.0) && (transformArray[9] == 0.0) && (transformArray[10] == 1.0)))
{
return true;
}
else
{
return false;
}
}

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

public static double getMaxLInfiniteDistance(RigidBodyTransform t1, RigidBodyTransform t2)
{
double[] t1Matrix = new double[16];
t1.get(t1Matrix);
double[] t2Matrix = new double[16];
t2.get(t2Matrix);
double maxDifference = 0.0;
for (int i = 0; i <16; i++)
{
double difference = t1Matrix[i] - t2Matrix[i];
if (Math.abs(difference) > maxDifference)
maxDifference = Math.abs(difference);
}
return maxDifference;
}

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

public void setAndUpdate(RigidBodyTransform transform)
{
transform.get(rotation, translation);
setAndUpdate(rotation, translation);
}

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

public void setLidarPose(RigidBodyTransform lidarTransformToWorld)
{
Point3d position = new Point3d();
Quat4d orientation = new Quat4d();
lidarTransformToWorld.get(orientation, position);
lidarPosePacketToSend.set(new LidarPosePacket(position, orientation));
}

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

public static void setGeoregressionTransformFromVecmath(RigidBodyTransform vecmathTransform, Se3_F64 georegressionTransform)
{
double[] m1 = new double[16];
vecmathTransform.get(m1);
double[][] rot = new double[][]
{
{m1[0], m1[1], m1[2]}, {m1[4], m1[5], m1[6]}, {m1[8], m1[9], m1[10]}
};
DenseMatrix64F denseMatrix64F = new DenseMatrix64F(rot);
georegressionTransform.setRotation(denseMatrix64F);
georegressionTransform.setTranslation(m1[3], m1[7], m1[11]);
}

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

/**
* Computes the interpolation between the two transforms using the alpha parameter to control the blend.
* Note that the transforms must have a proper rotation matrix, meaning it satisfies: R'R = I and det(R) = 1
* @param transform1
* @param transform2
* @param alpha Ranges from [0, 1], where return = (1- alpha) * tansform1 + (alpha) * transform2
* @return return = (1- alpha) * tansform1 + alpha * transform2
*/
public void computeInterpolation(RigidBodyTransform transform1, RigidBodyTransform transform2, RigidBodyTransform result, double alpha)
{
alpha = MathTools.clipToMinMax(alpha, 0.0, 1.0);

transform1.get(transform1Quaternion, transform1Translation);
transform2.get(transform2Quaternion, transform2Translation);

interpolatedTranslation.interpolate(transform1Translation, transform2Translation, alpha);
interpolatedQuaternion.interpolate(transform1Quaternion, transform2Quaternion, alpha);

result.setRotationAndZeroTranslation(interpolatedQuaternion);
result.setTranslation(interpolatedTranslation);
}

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

public void transform(RigidBodyTransform transform)
{
Matrix3d rotation = new Matrix3d();
Vector3d translation = new Vector3d();
transform.get(rotation, translation);
translate(translation);
rotate(rotation);
}

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

public void transform(RigidBodyTransform transform)
{
Matrix3d rotation = new Matrix3d();
Vector3d translation = new Vector3d();
transform.get(rotation, translation);
translate(translation);
rotate(rotation);
}

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

public void updateCamera()
{
if (cameraController != null)
{
cameraController.computeTransform(cameraTransform);
cameraTransform.get(cameraRotation, cameraPosition);
setLocationInZUpCoordinates(cameraPosition);
setRotationInZUpcoordinates(cameraRotation);
setHorizontalFoVInRadians((float) cameraController.getHorizontalFieldOfViewInRadians());
setClipDistanceNear((float) cameraController.getClipNear());
setClipDistanceFar((float) cameraController.getClipFar());
}
updateFrustrum();
}

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

@Override
public void adjustFootstepWithoutHeightmap(Footstep footstep, double height, Vector3d planeNormal)
{
Vector3d position = new Vector3d();
Quat4d orientation = new Quat4d();
RigidBodyTransform solePose = new RigidBodyTransform();
footstep.getSolePose(solePose);
solePose.get(orientation, position);
double yaw = RotationTools.computeYaw(orientation);
RotationTools.computeQuaternionFromYawAndZNormal(yaw, planeNormal, orientation);
position.setZ(height);
footstep.setSolePose(new FramePose(ReferenceFrame.getWorldFrame(), new Point3d(position), orientation));
}

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

@Override
public Footstep.FootstepType snapFootstep(Footstep footstep, HeightMapWithPoints heightMap){
FootstepDataMessage originalFootstep = new FootstepDataMessage(footstep);
//set to the sole pose
Vector3d position = new Vector3d();
Quat4d orientation = new Quat4d();
RigidBodyTransform solePose = new RigidBodyTransform();
footstep.getSolePose(solePose);
solePose.get(orientation, position);
originalFootstep.setLocation(new Point3d(position));
originalFootstep.setOrientation(orientation);
//get the footstep
Footstep.FootstepType type = snapFootstep(originalFootstep, heightMap);
if (type == Footstep.FootstepType.FULL_FOOTSTEP && originalFootstep.getPredictedContactPoints() != null){
throw new RuntimeException(this.getClass().getSimpleName() + "Full Footstep should have null contact points");
}
footstep.setPredictedContactPointsFromPoint2ds(originalFootstep.getPredictedContactPoints());
footstep.setFootstepType(type);
FramePose solePoseInWorld = new FramePose(ReferenceFrame.getWorldFrame(), originalFootstep.getLocation(), originalFootstep.getOrientation());
footstep.setSolePose(solePoseInWorld);
footstep.setSwingHeight(originalFootstep.getSwingHeight());
footstep.setTrajectoryType(originalFootstep.getTrajectoryType());
return type;
}

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

private static Transform j3dTransform3DToJMETransform(RigidBodyTransform transform3D)
{
javax.vecmath.Quat4f quat = new javax.vecmath.Quat4f();
javax.vecmath.Vector3f vector = new javax.vecmath.Vector3f();
transform3D.get(quat, vector);
Vector3f jmeVector = new Vector3f(vector.getX(), vector.getY(), vector.getZ());
Quaternion jmeQuat = new Quaternion(quat.getX(), quat.getY(), quat.getZ(), quat.getW());
Transform ret = new Transform(jmeVector, jmeQuat, new Vector3f(1.0f, 1.0f, 1.0f));
return ret;
}

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

@Override
public void update(float tpf)
{
synchronized (lidarTransform)
{
lidarTransform.get(j3dOrientation, j3dPosition);
lidarDistortionProcessor.setTransform(lidarTransform, time);
}
JMEDataTypeUtils.packVecMathTuple3dInJMEVector3f(j3dPosition, jmePosition);
JMEDataTypeUtils.packVectMathQuat4dInJMEQuaternion(j3dOrientation, jmeOrientation);
JMEGeometryUtils.transformFromZupToJMECoordinates(jmePosition);
jmeOrientation.multLocal(scsToJMECameraRotation);
JMEGeometryUtils.transformFromZupToJMECoordinates(jmeOrientation);
for (int i = 0; i {
lidarSceneViewPort[i].setLocation(jmePosition);
if (cameraRotations[i] == null)
{
lidarSceneViewPort[i].setRotation(jmeOrientation);
}
else
{
jmeOrientation.mult(cameraRotations[i], jmeCameraOrientation);
lidarSceneViewPort[i].setRotation(jmeCameraOrientation);
}
}
}

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

public static Transform j3dTransform3DToJMETransform(RigidBodyTransform transform3D)
{
Quat4f quat = new Quat4f();
javax.vecmath.Vector3f vector = new javax.vecmath.Vector3f();
transform3D.get(quat, vector);
Vector3f jmeVector = new Vector3f(vector.getX(), vector.getY(), vector.getZ());
Quaternion jmeQuat = new Quaternion(quat.getX(), quat.getY(), quat.getZ(), quat.getW());
Transform ret = new Transform(jmeVector, jmeQuat, new Vector3f(1.0f, 1.0f, 1.0f));
return ret;
}

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

/**
* Precomputes Ad^{T} * I since it is used twice in Adot*v and once in computing A.
*/
private void precomputeAdjointTimesInertia()
{
tempAdjoint.zero();
for(int i = 0; i {
rigidBodies[i].getInertia().getExpressedInFrame().getTransformToDesiredFrame(tempTransform, centerOfMassFrame);
tempTransform.get(tempMatrix3d,tempVector);
set3By3MatrixBlock(tempAdjoint, 0, 0, tempMatrix3d);
set3By3MatrixBlock(tempAdjoint, 3, 3, tempMatrix3d);
MatrixTools.toTildeForm(tempPTilde, tempVector);
tempPTilde.mul(tempMatrix3d);
set3By3MatrixBlock(tempAdjoint, 0, 3, tempPTilde);
rigidBodies[i].getInertia().getMatrix(tempInertiaMatrix);
CommonOps.mult(tempAdjoint, tempInertiaMatrix, denseAdjTimesI[i]);
}
}

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

public void update(long timestamp)
{
fullRobot.updateFrames();

if(rootJoint != null)
{
RigidBodyTransform rootTransform = rootJoint.getJointTransform3D();
rootTransform.get(tempOrientation, tempPosition);
robot.setOrientation(tempOrientation);
robot.setPositionInWorld(tempPosition);
}

for (ImmutablePair jointPair : revoluteJoints)
{
OneDegreeOfFreedomJoint pinJoint = jointPair.getLeft();
OneDoFJoint 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/IHMCHumanoidRobotics

@Override
public Footstep.FootstepType snapFootstep(Footstep footstep, HeightMapWithPoints heightMap){
FootstepDataMessage originalFootstep = new FootstepDataMessage(footstep);
//set to the sole pose
Vector3d position = new Vector3d();
Quat4d orientation = new Quat4d();
RigidBodyTransform solePose = new RigidBodyTransform();
footstep.getSolePose(solePose);
solePose.get(orientation, position);
originalFootstep.setLocation(new Point3d(position));
originalFootstep.setOrientation(orientation);
//get the footstep
Footstep.FootstepType type = snapFootstep(originalFootstep, heightMap);
footstep.setPredictedContactPointsFromPoint2ds(originalFootstep.getPredictedContactPoints());
footstep.setFootstepType(type);
FramePose solePoseInWorld = new FramePose(ReferenceFrame.getWorldFrame(), originalFootstep.getLocation(), originalFootstep.getOrientation());
footstep.setSolePose(solePoseInWorld);
footstep.setSwingHeight(originalFootstep.getSwingHeight());
footstep.setTrajectoryType(originalFootstep.getTrajectoryType());
return type;
}

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

private Transform getRosTransform(RigidBodyTransform transform3d)
{
Transform transform = topicMessageFactory.newFromType(Transform._TYPE);
Quaternion rot = topicMessageFactory.newFromType(Quaternion._TYPE);
Vector3 trans = topicMessageFactory.newFromType(Vector3._TYPE);

Quat4d quat4d = new Quat4d();
Vector3d vector3d = new Vector3d();
transform3d.get(quat4d, vector3d);

rot.setW(quat4d.getW());
rot.setX(quat4d.getX());
rot.setY(quat4d.getY());
rot.setZ(quat4d.getZ());

transform.setRotation(rot);

trans.setX(vector3d.getX());
trans.setY(vector3d.getY());
trans.setZ(vector3d.getZ());

transform.setTranslation(trans);

return transform;
}

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

private Transform getRosTransform(RigidBodyTransform transform3d)
{
Transform transform = topicMessageFactory.newFromType(Transform._TYPE);
Quaternion rot = topicMessageFactory.newFromType(Quaternion._TYPE);
Vector3 trans = topicMessageFactory.newFromType(Vector3._TYPE);

Quat4d quat4d = new Quat4d();
Vector3d vector3d = new Vector3d();
transform3d.get(quat4d, vector3d);

rot.setW(quat4d.getW());
rot.setX(quat4d.getX());
rot.setY(quat4d.getY());
rot.setZ(quat4d.getZ());

transform.setRotation(rot);

trans.setX(vector3d.getX());
trans.setY(vector3d.getY());
trans.setZ(vector3d.getZ());

transform.setTranslation(trans);

return transform;
}

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

public Footstep.FootstepType snapFootstep(Footstep footstep, List pointList, double defaultHeight)
{
FootstepDataMessage originalFootstep = new FootstepDataMessage(footstep);
//set to the sole pose
Vector3d position = new Vector3d();
Quat4d orientation = new Quat4d();
RigidBodyTransform solePose = new RigidBodyTransform();
footstep.getSolePose(solePose);
solePose.get(orientation, position);
originalFootstep.setLocation(new Point3d(position));
originalFootstep.setOrientation(orientation);
//get the footstep
Footstep.FootstepType type = snapFootstep(originalFootstep, pointList, defaultHeight);
footstep.setFootstepType(type);
footstep.setPredictedContactPointsFromPoint2ds(originalFootstep.getPredictedContactPoints());
FramePose solePoseInWorld = new FramePose(ReferenceFrame.getWorldFrame(), originalFootstep.getLocation(), originalFootstep.getOrientation());
footstep.setSolePose(solePoseInWorld);
footstep.setSwingHeight(originalFootstep.getSwingHeight());
footstep.setTrajectoryType(originalFootstep.getTrajectoryType());
return type;
}

推荐阅读
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 本文深入探讨了 Java 中的 Serializable 接口,解释了其实现机制、用途及注意事项,帮助开发者更好地理解和使用序列化功能。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • Android 渐变圆环加载控件实现
    本文介绍了如何在 Android 中创建一个自定义的渐变圆环加载控件,该控件已在多个知名应用中使用。我们将详细探讨其工作原理和实现方法。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • c# – UWP:BrightnessOverride StartOverride逻辑 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
author-avatar
倩倩
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有