/// <summary>
        /// Paired
        /// </summary>
        /// <param name="mfname"></param>
        /// <returns></returns>
        protected List<PoseProfile> MoveLeg_BentKneeLeft(string mfname)
        {
            RLeg leg_r = new RLeg(
                false,
                 -9.8,
                  5.3,
                 -5.8,
                  2.1,
                  0.4,
                  6.3);
            LLeg leg_l = new LLeg(
                false,
                 -9.8,
                  7.5,
                  5.7,
                 -5.2,
                  5.1,
                 -7.4);
            PoseProfile pp_leg_r = new PoseProfile(mfname, leg_r);
            PoseProfile pp_leg_l = new PoseProfile(mfname, leg_l);
            List<PoseProfile> lpp = new List<PoseProfile>();
            lpp.Add(pp_leg_r);
            lpp.Add(pp_leg_l);

            return lpp;
        }
        /// <summary>
        /// Paired
        /// </summary>
        /// <param name="mfname"></param>
        /// <returns></returns>
        protected List<PoseProfile> MoveLeg3_2(string mfname)
        {
            RLeg leg_r = new RLeg(
                false,
                  0.4,
                  5.0,
                  0.1,
                 -5.3,
                  2.7,
                  1.6);
            LLeg leg_l = new LLeg(
                false,
                  0.4,
                  9.8,
                  7.1,
                 -5.3,
                 -2.1,
                 -7.5);
            PoseProfile pp_leg_r = new PoseProfile(mfname, leg_r);
            PoseProfile pp_leg_l = new PoseProfile(mfname, leg_l);
            List<PoseProfile> lpp = new List<PoseProfile>();
            lpp.Add(pp_leg_r);
            lpp.Add(pp_leg_l);

            return lpp;
        }
        /// <summary>
        /// Independent; combined with Stand()
        /// </summary>
        /// <param name="mfname"></param>
        /// <returns></returns>
        protected List<PoseProfile> MoveLeg_Back(string mfname)
        {
            RLeg leg_r = new RLeg(
                false,
                 -7.7,
                 -2.0,
                 -3.4,
                  0.9,
                  4.3,
                  3.7);
            LLeg leg_l = new LLeg(
                false,
                 -7.7,
                 -1.4,
                  3.4,
                  0.8,
                  3.8,
                 -5.2);
            PoseProfile pp_leg_r = new PoseProfile(mfname, leg_r);
            PoseProfile pp_leg_l = new PoseProfile(mfname, leg_l);
            List<PoseProfile> lpp = new List<PoseProfile>();
            lpp.Add(pp_leg_r);
            lpp.Add(pp_leg_l);

            return lpp;
        }
        /// <summary>
        /// Paired
        /// </summary>
        /// <param name="mfname"></param>
        /// <returns></returns>
        protected List<PoseProfile> MoveLeg2_2(string mfname)
        {
            RLeg leg_r = new RLeg(
                false,
                 -1.8,
                  7.2,
                 -3.9,
                 -5.2,
                  0.7,
                  4.7);
            LLeg leg_l = new LLeg(
                false,
                 -1.8,
                  7.6,
                  5.8,
                 -5.3,
                  0.4,
                 -6.3);
            PoseProfile pp_leg_r = new PoseProfile(mfname, leg_r);
            PoseProfile pp_leg_l = new PoseProfile(mfname, leg_l);
            List<PoseProfile> lpp = new List<PoseProfile>();
            lpp.Add(pp_leg_r);
            lpp.Add(pp_leg_l);

            return lpp;
        }
        /// <summary>
        /// Paired
        /// </summary>
        /// <param name="mfname"></param>
        /// <returns></returns>
        protected List<PoseProfile> MoveLeg3_1(string mfname)
        {
            RLeg leg_r = new RLeg(
                false,
                 -4.7,
                 13.2,
                -10.0,
                 -5.2,
                 -1.6,
                  8.7);
            LLeg leg_l = new LLeg(
                false,
                 -4.7,
                 11.7,
                 -2.0,
                 -5.3,
                  0.2,
                 -1.0);
            PoseProfile pp_leg_r = new PoseProfile(mfname, leg_r);
            PoseProfile pp_leg_l = new PoseProfile(mfname, leg_l);
            List<PoseProfile> lpp = new List<PoseProfile>();
            lpp.Add(pp_leg_r);
            lpp.Add(pp_leg_l);

            return lpp;
        }
        /// <summary>
        /// Standard Stand pose; knee closed
        /// </summary>
        /// <param name="mfname"></param>
        /// <returns></returns>
        protected List<PoseProfile> Stand(string mfname)
        {
            RLeg leg_r = new RLeg(
                false,
                -9.7,
                7.4,
                -5.7,
                -5.2,
                5.2,
                7.4);
            LLeg leg_l = new LLeg(
                false,
                -9.7,
                7.4,
                5.7,
                -5.2,
                5.2,
                -7.4);
            PoseProfile pp_leg_r = new PoseProfile(mfname, leg_r);
            PoseProfile pp_leg_l = new PoseProfile(mfname, leg_l);
            List<PoseProfile> lpp = new List<PoseProfile>();
            lpp.Add(pp_leg_r);
            lpp.Add(pp_leg_l);

            return lpp;
        }
        /// <summary>
        /// Paired
        /// </summary>
        /// <param name="mfname"></param>
        /// <returns></returns>
        protected List<PoseProfile> MoveLeg2_1(string mfname)
        {
            RLeg leg_r = new RLeg(
                false,
                 -1.0,
                  3.9,
                 -9.8,
                 -4.9,
                  3.0,
                  9.1);
            LLeg leg_l = new LLeg(
                false,
                 -1.0,
                  1.3,
                 -5.1,
                 -5.3,
                  5.7,
                  2.4);
            PoseProfile pp_leg_r = new PoseProfile(mfname, leg_r);
            PoseProfile pp_leg_l = new PoseProfile(mfname, leg_l);
            List<PoseProfile> lpp = new List<PoseProfile>();
            lpp.Add(pp_leg_r);
            lpp.Add(pp_leg_l);

            return lpp;
        }
        protected List<PoseProfile> LeanRightRecover(string mfname)
        {
            RLeg leg_r = new RLeg(
                false,
                   0,
                -18.6,
                -13.3,
                 32.0,
                -21.7,
                  8.1);
            LLeg leg_l = new LLeg(
                false,
                    0,
                -18.6,
                  2.8,
                 37.5,
                -20.5,
                 -3.4);
            PoseProfile pp_leg_r = new PoseProfile(mfname, leg_r);
            PoseProfile pp_leg_l = new PoseProfile(mfname, leg_l);
            List<PoseProfile> lpp = new List<PoseProfile>();
            lpp.Add(pp_leg_r);
            lpp.Add(pp_leg_l);

            return lpp;
        }
        /// <summary>
        /// Paired
        /// </summary>
        /// <param name="mfname"></param>
        /// <returns></returns>
        protected List<PoseProfile> MoveLeg1_1(string mfname)
        {
            RLeg leg_r = new RLeg(
                false,
                  1.0,
                  3.2,
                 -7.3,
                 -4.8,
                  2.6,
                  7.0);
            LLeg leg_l = new LLeg(
                false,
                  1.0,
                  0.4,
                  1.6,
                 -5.3,
                  5.7,
                 -3.5);
            PoseProfile pp_leg_r = new PoseProfile(mfname, leg_r);
            PoseProfile pp_leg_l = new PoseProfile(mfname, leg_l);
            List<PoseProfile> lpp = new List<PoseProfile>();
            lpp.Add(pp_leg_r);
            lpp.Add(pp_leg_l);

            return lpp;
        }
        protected List<PoseProfile> BendTorsoSmall(string mfname)
        {
            RLeg leg_r = new RLeg(
                false,
                -17.8,
                -0.6,
                -2.7,
                -5.3,
                5.5,
                4.6);
            LLeg leg_l = new LLeg(
                false,
                -17.8,
                -1.5,
                 3.1,
                -5.3,
                 5.2,
                -5.5); //
            PoseProfile pp_leg_r = new PoseProfile(mfname, leg_r);
            PoseProfile pp_leg_l = new PoseProfile(mfname, leg_l);
            List<PoseProfile> lpp = new List<PoseProfile>();
            lpp.Add(pp_leg_r);
            lpp.Add(pp_leg_l);

            return lpp;
        }
        protected List<PoseProfile> LeanRight(string mfname)
        {
            RLeg leg_r = new RLeg(
                false,
                -8.3,
                -2.8,
                -15.7,
                38.7,
                -28.5,
                7.4);
            LLeg leg_l = new LLeg(
                false,
                -8.3,
                 9.8,
                -0.6,
                 4.1,
                -5.7,
                -7.6);
            PoseProfile pp_leg_r = new PoseProfile(mfname, leg_r);
            PoseProfile pp_leg_l = new PoseProfile(mfname, leg_l);
            List<PoseProfile> lpp = new List<PoseProfile>();
            lpp.Add(pp_leg_r);
            lpp.Add(pp_leg_l);

            return lpp;
        }
        protected List<PoseProfile> BendTorso(string mfname)
        {
            RLeg leg_r = new RLeg(
                false,
                -0.8,
                -74.6,
                -6.8,
                38.6,
                -7.6,
                4.2);
            LLeg leg_l = new LLeg(
                false,
                -0.8,
                -74.6,
                6.8,
                38.6,
                -7.6,
                -6.7); // -4.2 symmetry
            PoseProfile pp_leg_r = new PoseProfile(mfname, leg_r);
            PoseProfile pp_leg_l = new PoseProfile(mfname, leg_l);
            List<PoseProfile> lpp = new List<PoseProfile>();
            lpp.Add(pp_leg_r);
            lpp.Add(pp_leg_l);

            return lpp;
        }
        protected List<PoseProfile> StandOnRight(string mfname)
        {
            RLeg leg_r = new RLeg(
                false,
                -10.3,
                1.6,
                -17.5,
                -4.1,
                8.9,
                12.9);
            LLeg leg_l = new LLeg(
                false,
                -10.3,
                11.2,
                -5.1,
                -5.0,
                0.7,
                0.5);
            PoseProfile pp_leg_r = new PoseProfile(mfname, leg_r);
            PoseProfile pp_leg_l = new PoseProfile(mfname, leg_l);
            List<PoseProfile> lpp = new List<PoseProfile>();
            lpp.Add(pp_leg_r);
            lpp.Add(pp_leg_l);

            return lpp;
        }
        protected List<PoseProfile> StandOnLeft(string mfname)
        {
            RLeg leg_r = new RLeg(
                false,
                -9.1,
                11.1,
                6.9,
                -5.3,
                -0.2,
                -2.4);
            LLeg leg_l = new LLeg(
                false,
                -9.1,
                2.3,
                19.3,
                0.6,
                1.5,
                -16.3);
            PoseProfile pp_leg_r = new PoseProfile(mfname, leg_r);
            PoseProfile pp_leg_l = new PoseProfile(mfname, leg_l);
            List<PoseProfile> lpp = new List<PoseProfile>();
            lpp.Add(pp_leg_r);
            lpp.Add(pp_leg_l);

            return lpp;
        }
        /// <summary>
        /// Paired
        /// </summary>
        /// <param name="mfname"></param>
        /// <returns></returns>
        protected List<PoseProfile> MoveLeg_BentKneeRight(string mfname)
        {
            RLeg leg_r = new RLeg(
                false,
                -10.2,
                  7.5,
                 -5.7,
                 -5.1,
                  5.2,
                  7.5);
            LLeg leg_l = new LLeg(
                false,
                -10.2,
                 -1.1,
                  5.9,
                  2.9,
                  4.7,
                 -7.2);
            PoseProfile pp_leg_r = new PoseProfile(mfname, leg_r);
            PoseProfile pp_leg_l = new PoseProfile(mfname, leg_l);
            List<PoseProfile> lpp = new List<PoseProfile>();
            lpp.Add(pp_leg_r);
            lpp.Add(pp_leg_l);

            return lpp;
        }
        /// <summary>
        /// Paired
        /// </summary>
        /// <param name="mfname"></param>
        /// <returns></returns>
        protected List<PoseProfile> MoveLeg1_2(string mfname)
        {
            RLeg leg_r = new RLeg(
                false,
                 -3.2,
                  2.7,
                 -6.9,
                 -3.8,
                  2.9,
                  7.0);
            LLeg leg_l = new LLeg(
                false,
                 -3.2,
                  0.9,
                 -1.2,
                 -5.3,
                  6.5,
                 -1.1);
            PoseProfile pp_leg_r = new PoseProfile(mfname, leg_r);
            PoseProfile pp_leg_l = new PoseProfile(mfname, leg_l);
            List<PoseProfile> lpp = new List<PoseProfile>();
            lpp.Add(pp_leg_r);
            lpp.Add(pp_leg_l);

            return lpp;
        }
示例#17
0
        /// <summary>
        /// 
        /// </summary>
        /// <returns></returns>
        public override JointChain MirrorLeftRight() 
        {
            Leg m_leg = null;           
            if (this.Name == "RLeg")
            {
                m_leg = new LLeg(
                    true,
                    this.HipYawPitch,
                    this.HipPitch,
                    -this.HipRoll,
                    this.KneePitch,
                    this.AnklePitch,
                    -this.AnkleRoll
                );

            }
            else if (this.Name == "LLeg")
            {
                m_leg = new RLeg(
                    true,
                    this.HipYawPitch,
                    this.HipPitch,
                    -this.HipRoll,
                    this.KneePitch,
                    this.AnklePitch,
                    -this.AnkleRoll
                );
            }
            else
            {
                Debug.WriteLine("JointChainMirror: wrong leg joint chain name");
            }

            return m_leg; 
        }
        /// <summary>
        /// Independent; combined with Stand()
        /// </summary>
        /// <param name="mfname"></param>
        /// <returns></returns>
        protected List<PoseProfile> MoveLeg_Front(string mfname)
        {
            RLeg leg_r = new RLeg(
                false,
                 -9.6,
                 12.7,
                 -6.1,
                 -5.2,
                  1.0,
                  6.4);
            LLeg leg_l = new LLeg(
                false,
                 -9.6,
                 12.0,
                  6.1,
                 -5.3,
                  1.6,
                 -7.6);
            PoseProfile pp_leg_r = new PoseProfile(mfname, leg_r);
            PoseProfile pp_leg_l = new PoseProfile(mfname, leg_l);
            List<PoseProfile> lpp = new List<PoseProfile>();
            lpp.Add(pp_leg_r);
            lpp.Add(pp_leg_l);

            return lpp;
        }