Пример #1
0
    public void ConsumeParams(List <float> p_params)
    {
        for (int i = 0; i < m_legFrames.Length; i++)
        {
            m_legFrames[i].ConsumeParams(p_params); // consume
        }
        m_player.ConsumeParams(p_params);

        if (m_optimizePDs)
        {
            for (int i = 1; i < (m_desiredJointTorquesPD.Length + 1) / 2; i++)
            {
                OptimizableHelper.ConsumeParamsTo(p_params, ref m_desiredJointTorquesPD[i].m_Kp);
                m_desiredJointTorquesPD[i + 2].m_Kp = m_desiredJointTorquesPD[i].m_Kp;
                OptimizableHelper.ConsumeParamsTo(p_params, ref m_desiredJointTorquesPD[i].m_Kd);
                m_desiredJointTorquesPD[i + 2].m_Kd = m_desiredJointTorquesPD[i].m_Kd;
            }
        }
    }
Пример #2
0
 public void ConsumeParams(List <float> p_params)
 {
     OptimizableHelper.ConsumeParamsTo(p_params, ref m_tuneGaitPeriod);
 }
Пример #3
0
    public void ConsumeParams(List <float> p_params)
    {
        for (int i = 0; i < m_tuneStepCycles.Length; i++)
        {
            m_tuneStepCycles[i].ConsumeParams(p_params);
        }

        OptimizableHelper.ConsumeParamsTo(p_params, ref m_tuneStepLength);

        for (int i = 0; i < m_tuneOrientationLFTraj.Length; i++)
        {
            m_tuneOrientationLFTraj[i].ConsumeParams(p_params);
        }

        OptimizableHelper.ConsumeParamsTo(p_params, ref m_tuneFootPlacementVelocityScale);
        m_tuneStepHeightTraj.ConsumeParams(p_params);
        m_tuneFootTransitionEase.ConsumeParams(p_params);
        m_tuneLFHeightTraj.ConsumeParams(p_params);
        m_tunePropGainFootTrackingKft.ConsumeParams(p_params);
        OptimizableHelper.ConsumeParamsTo(p_params, ref m_tuneHeightForcePIDKp);
        OptimizableHelper.ConsumeParamsTo(p_params, ref m_tuneHeightForcePIDKd);
        OptimizableHelper.ConsumeParamsTo(p_params, ref m_tuneVelocityRegulatorKv);

        for (int i = 0; i < c_legCount; i++)
        {
            OptimizableHelper.ConsumeParamsTo(p_params, ref m_tuneToeOffTime[i]);
        }

        for (int i = 0; i < c_legCount; i++)
        {
            OptimizableHelper.ConsumeParamsTo(p_params, ref m_tuneFootStrikeTime[i]);
        }

        OptimizableHelper.ConsumeParamsTo(p_params, ref m_tuneToeOffAngle);
        OptimizableHelper.ConsumeParamsTo(p_params, ref m_tuneFootStrikeAngle);

        for (int i = 0; i < c_legCount; i++)
        {
            for (int p = 0; p < 2; p++)
            {
                OptimizableHelper.ConsumeParamsTo(p_params, ref m_tuneFD[i, p]);
                //Debug.Log("FD(" + i + "," + p + ")" + m_tuneFD[i, p]);
            }
        }

        //for (int i = 0; i < m_legFgravityComp.Length; i++)
        //    OptimizableHelper.ConsumeParamsTo(p_params, ref m_legFgravityComp[i]);


        if (m_optimizePDs)
        {
            OptimizableHelper.ConsumeParamsTo(p_params, ref m_desiredLFTorquePD.m_Kp);
            OptimizableHelper.ConsumeParamsTo(p_params, ref m_desiredLFTorquePD.m_Kd);

            OptimizableHelper.ConsumeParamsTo(p_params, ref m_heightForceCalc.m_Kp);
            OptimizableHelper.ConsumeParamsTo(p_params, ref m_heightForceCalc.m_Kd);

            OptimizableHelper.ConsumeParamsTo(p_params, ref m_FootTrackingSpringDamper.m_Kp);
            OptimizableHelper.ConsumeParamsTo(p_params, ref m_FootTrackingSpringDamper.m_Kd);
        }
    }
Пример #4
0
    // IOptimizable
    public List <float> GetParams()
    {
        List <float> vals = new List <float>();

        for (int i = 0; i < m_tuneStepCycles.Length; i++)
        {
            vals.AddRange(m_tuneStepCycles[i].GetParams());
        }

        vals.AddRange(OptimizableHelper.ExtractParamsListFrom(m_tuneStepLength));

        for (int i = 0; i < m_tuneOrientationLFTraj.Length; i++)
        {
            vals.AddRange(m_tuneOrientationLFTraj[i].GetParams());
        }

        vals.Add(m_tuneFootPlacementVelocityScale);
        vals.AddRange(m_tuneStepHeightTraj.GetParams());
        vals.AddRange(m_tuneFootTransitionEase.GetParams());
        vals.AddRange(m_tuneLFHeightTraj.GetParams());
        vals.AddRange(m_tunePropGainFootTrackingKft.GetParams());
        vals.Add(m_tuneHeightForcePIDKp);
        vals.Add(m_tuneHeightForcePIDKd);
        vals.Add(m_tuneVelocityRegulatorKv);

        for (int i = 0; i < c_legCount; i++)
        {
            vals.Add(m_tuneToeOffTime[i]);
        }

        for (int i = 0; i < c_legCount; i++)
        {
            vals.Add(m_tuneFootStrikeTime[i]);
        }

        vals.Add(m_tuneToeOffAngle);
        vals.Add(m_tuneFootStrikeAngle);

        for (int i = 0; i < c_legCount; i++)
        {
            for (int p = 0; p < 2; p++)
            {
                vals.AddRange(OptimizableHelper.ExtractParamsListFrom(m_tuneFD[i, p]));
            }
        }

        //for (int i = 0; i < m_legFgravityComp.Length; i++)
        //    vals.AddRange(OptimizableHelper.ExtractParamsListFrom(m_legFgravityComp[i]));

        if (m_optimizePDs)
        {
            vals.Add(m_desiredLFTorquePD.m_Kp);
            vals.Add(m_desiredLFTorquePD.m_Kd);

            vals.Add(m_heightForceCalc.m_Kp);
            vals.Add(m_heightForceCalc.m_Kd);

            vals.Add(m_FootTrackingSpringDamper.m_Kp);
            vals.Add(m_FootTrackingSpringDamper.m_Kd);
        }

        return(vals);
    }