/// <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> /// 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> /// 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; }
/// <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> /// 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> 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; }
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; }
/// <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; }
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; }
/// <summary> /// /// </summary> /// <param name="mfname"></param> /// <param name="leanforward">0~1.0</param> /// <returns></returns> protected List<PoseProfile> BodyLeanForward(string mfname, double leanforward = 0) { // body-hip angle matters // body-hip angle = HipPitch + 180 // body lean angle: How to calculate? // upright ~ lean forward 7.4 ~ -3.0 // 7.4 ~ -20.0 double hippitch = -27.4 * leanforward + 7.4; // -5.2 ~ 15.0 double kneepitch = 20.2 * leanforward - 5.2; // 5.2 ~ 2.0 double anklepitch = -3.2 * leanforward + 5.2; RLeg leg_r = new RLeg( false, -9.7, hippitch, -5.7, kneepitch, anklepitch, 7.4); LLeg leg_l = (LLeg)leg_r.MirrorLeftRight(); 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> /// 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; }
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> 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> 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; }
/// <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; }