Tesi Robotica V+ Sim: Interprete Command Language e... | Page 101

giunti[5].Mesh = myModel.Meshes[7]; giunti[5].Giunto_Precedente = giunti[4]; giunti.Add(new Giunto(6, new Vector3(0, 695, 360), new Vector3(1, 0, 0), -90, 90, new Vector3(1, 0.5f, 1))); giunti[6].Mesh = myModel.Meshes[8]; giunti[6].Giunto_Precedente = giunti[5]; Come è possibile evincere dal codice scritto sopra, creiamo una lista di giunti che è di tipo Giunti per renderci più semplice la memorizzazione dei link. Ogni elemento della lista ha traccia della propria posizione attraverso le matrici di DH ed ha anche conoscenza del giunto precedente che è fondamentale per eventuali rotazioni (catena cinematica). Di seguito vedremo un frammento della classe Giunti.cs in particolare la parte riguardante la memorizzazione della matrice del mondo e vedremo come viene effettuata una rotazione di un giunto partendo dalla posizione attuale. /// ///get : ritorna la matrice globale relativa al giunto ///set: setta il valore che viene passato /// public Matrix Global { get { if (giunto_precedente != null) { traslazione_giunto=Matrix.CreateTranslation(posizione_giunto)*giu nto_precedente.Inv_Traslazione; 100