/// <summary> /// Get the joints list of Cylindical Robot /// </summary> /// <param name="l1">z offset</param> /// <param name="l2">z offset</param> /// <param name="l3">radius offset</param> /// <returns></returns> public static List <IJoint> GetCylindical(double l1, double l2, double l3) { RotationJoint phi = new RotationJoint { Length = l1, TransformAxis = TransformType.RotateZ }; TranslationJoint h = new TranslationJoint { Length = l2, TransformAxis = TransformType.AxisZ }; // Just assume the initial state of this joint is pointing to Y axis TranslationJoint r = new TranslationJoint { Length = l3, TransformAxis = TransformType.AxisY }; List <IJoint> joints = new List <IJoint> { phi, h, r }; return(joints); }
/// <summary> /// Get a configuration of Spherical robot /// </summary> /// <param name="l1"></param> /// <param name="l2"></param> /// <param name="l3"></param> /// <returns></returns> public static List <IJoint> GetSpherical(double l1, double l2, double l3) { RotationJoint phi = new RotationJoint { Length = l1, TransformAxis = TransformType.RotateZ }; RotationJoint theta = new RotationJoint { Length = l2, TransformAxis = TransformType.RotateX }; TranslationJoint r = new TranslationJoint { Length = l3, TransformAxis = TransformType.AxisZ }; return(new List <IJoint> { phi, theta, r }); }
/// <summary> /// Get the joints of the cartesian /// </summary> /// <param name="lx">basic length of x axis offset</param> /// <param name="ly">basic length of y axis offset</param> /// <param name="lz">basic length of z axis offset</param> /// <returns>joints list</returns> public static List <IJoint> GetCartesian(double lx, double ly, double lz) { TranslationJoint sx = new TranslationJoint { Length = lx, TransformAxis = TransformType.AxisX }; TranslationJoint sy = new TranslationJoint { Length = ly, TransformAxis = TransformType.AxisY }; TranslationJoint sz = new TranslationJoint { Length = lz, TransformAxis = TransformType.AxisZ }; List <IJoint> joints = new List <IJoint> { sx, sy, sz }; return(joints); }