当前位置: 首页>>代码示例>>C++>>正文


C++ b3Vector3::serializeDouble方法代码示例

本文整理汇总了C++中b3Vector3::serializeDouble方法的典型用法代码示例。如果您正苦于以下问题:C++ b3Vector3::serializeDouble方法的具体用法?C++ b3Vector3::serializeDouble怎么用?C++ b3Vector3::serializeDouble使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在b3Vector3的用法示例。


在下文中一共展示了b3Vector3::serializeDouble方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: t

    virtual void	stepSimulation(float deltaTime)
	{
		float dt = deltaTime;
		btClamp(dt,0.0001f,0.01f);

        m_time+=dt;
        m_targetPos.setValue(0.4-0.4*b3Cos( m_time), 0, 0.8+0.4*b3Cos( m_time));
        m_targetOri.setValue(0, 1.0, 0, 0);
        m_targetPos.setValue(0.2*b3Cos( m_time), 0.2*b3Sin( m_time), 1.1);
        
        
        int numJoints = m_robotSim.getNumJoints(m_kukaIndex);
        
        if (numJoints==7)
        {
            double q_current[7]={0,0,0,0,0,0,0};

            b3JointStates2 jointStates;
            
            if (m_robotSim.getJointStates(m_kukaIndex,jointStates))
            {
                //skip the base positions (7 values)
                b3Assert(7+numJoints == jointStates.m_numDegreeOfFreedomQ);
                for (int i=0;i<numJoints;i++)
                {
                    q_current[i] = jointStates.m_actualStateQ[i+7];
                }
            }
            // compute body position and orientation
			b3LinkState linkState;
            m_robotSim.getLinkState(0, 6, &linkState);
			
			m_worldPos.setValue(linkState.m_worldLinkFramePosition[0], linkState.m_worldLinkFramePosition[1], linkState.m_worldLinkFramePosition[2]);
            m_worldOri.setValue(linkState.m_worldLinkFrameOrientation[0], linkState.m_worldLinkFrameOrientation[1], linkState.m_worldLinkFrameOrientation[2], linkState.m_worldLinkFrameOrientation[3]);


            b3Vector3DoubleData targetPosDataOut;
            m_targetPos.serializeDouble(targetPosDataOut);
            b3Vector3DoubleData worldPosDataOut;
            m_worldPos.serializeDouble(worldPosDataOut);
            b3Vector3DoubleData targetOriDataOut;
            m_targetOri.serializeDouble(targetOriDataOut);
            b3Vector3DoubleData worldOriDataOut;
            m_worldOri.serializeDouble(worldOriDataOut);

            
			b3RobotSimulatorInverseKinematicArgs ikargs;
			b3RobotSimulatorInverseKinematicsResults ikresults;
			
         
			ikargs.m_bodyUniqueId = m_kukaIndex;
//			ikargs.m_currentJointPositions = q_current;
//			ikargs.m_numPositions = 7;
            ikargs.m_endEffectorTargetPosition[0] = targetPosDataOut.m_floats[0];
            ikargs.m_endEffectorTargetPosition[1] = targetPosDataOut.m_floats[1];
            ikargs.m_endEffectorTargetPosition[2] = targetPosDataOut.m_floats[2];
			
			//ikargs.m_flags |= B3_HAS_IK_TARGET_ORIENTATION;
            ikargs.m_flags |= B3_HAS_JOINT_DAMPING;

			ikargs.m_endEffectorTargetOrientation[0] = targetOriDataOut.m_floats[0];
			ikargs.m_endEffectorTargetOrientation[1] = targetOriDataOut.m_floats[1];
			ikargs.m_endEffectorTargetOrientation[2] = targetOriDataOut.m_floats[2];
			ikargs.m_endEffectorTargetOrientation[3] = targetOriDataOut.m_floats[3];
            ikargs.m_endEffectorLinkIndex = 6;
            
            // Settings based on default KUKA arm setting
            ikargs.m_lowerLimits.resize(numJoints);
            ikargs.m_upperLimits.resize(numJoints);
            ikargs.m_jointRanges.resize(numJoints);
            ikargs.m_restPoses.resize(numJoints);
            ikargs.m_jointDamping.resize(numJoints,0.5);
            ikargs.m_lowerLimits[0] = -2.32;
            ikargs.m_lowerLimits[1] = -1.6;
            ikargs.m_lowerLimits[2] = -2.32;
            ikargs.m_lowerLimits[3] = -1.6;
            ikargs.m_lowerLimits[4] = -2.32;
            ikargs.m_lowerLimits[5] = -1.6;
            ikargs.m_lowerLimits[6] = -2.4;
            ikargs.m_upperLimits[0] = 2.32;
            ikargs.m_upperLimits[1] = 1.6;
            ikargs.m_upperLimits[2] = 2.32;
            ikargs.m_upperLimits[3] = 1.6;
            ikargs.m_upperLimits[4] = 2.32;
            ikargs.m_upperLimits[5] = 1.6;
            ikargs.m_upperLimits[6] = 2.4;
            ikargs.m_jointRanges[0] = 5.8;
            ikargs.m_jointRanges[1] = 4;
            ikargs.m_jointRanges[2] = 5.8;
            ikargs.m_jointRanges[3] = 4;
            ikargs.m_jointRanges[4] = 5.8;
            ikargs.m_jointRanges[5] = 4;
            ikargs.m_jointRanges[6] = 6;
            ikargs.m_restPoses[0] = 0;
            ikargs.m_restPoses[1] = 0;
            ikargs.m_restPoses[2] = 0;
            ikargs.m_restPoses[3] = SIMD_HALF_PI;
            ikargs.m_restPoses[4] = 0;
            ikargs.m_restPoses[5] = -SIMD_HALF_PI*0.66;
            ikargs.m_restPoses[6] = 0;
//.........这里部分代码省略.........
开发者ID:AndrewMeadows,项目名称:bullet3,代码行数:101,代码来源:KukaGraspExample.cpp


注:本文中的b3Vector3::serializeDouble方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。