# # GRAS Puma Robot GGF (GRAS Geometry File) # object "Puma 560 Robot" { // This field tells which class to use to do the inverse solution... inversesolver = "PumaInverseKinematicSolver"; // Theta, Alpha, A, D, Joint Min, Joint Max node () { // Node attributes for the first node are not used! Color = (0, 0, 1.0); // The RGB Color of the node. Vertices = ((-100,-100, 580), ( 100,-100, 580), (-100, 100, 580), ( 100, 100, 580), (-100,-100, 20), ( 100,-100, 20), (-100, 100, 20), ( 100, 100, 20), (-200,-200, 20), ( 200,-200, 20), (-200, 200, 20), ( 200, 200, 20), (-200,-200, 0), ( 200,-200, 0), (-200, 200, 0), ( 200, 200, 0)); Cylinder = (8, 9,10,11,12,13,14,15); Cylinder = (0, 1, 2, 3, 4, 5, 6, 7); //Plane = (2 -670, 255,0,0); } // Theta, Alpha, A, D, Joint Min, Joint Max node (90, -90, 0, 670, -160, 160) { Color = (0, 1.0, 0); // The RGB Color of the node. Vertices = ((-75,-75, 190), (75,-75, 190), (-75, 75, 190), (75, 75, 190), (-75,-75,-160), (75,-75,-160), (-75, 75,-160), (75, 75,-160)); Cylinder = (0, 1, 2, 3, 4, 5, 6, 7); } // Theta, Alpha, A, D, Joint Min, Joint Max node (45, 0, 431.8, 149.09, -225, 45) { Color = (1.0, 0, 0); // The RGB Color of the node. // Points for section A... Vertices = ((-582,-150, 140), (-282,-150, 140), (-582, 150, 140), (-282, 150, 140), (-582,-150, 40), (-282,-150, 40), (-582, 150, 40), (-282, 150, 40), // Points for section B... (-432,-150, 140), (-332,-150, 140), (-432, 150, 140), (-332, 150, 140), (-432,-150, 40), (-332,-150, 40), (-432, 150, 40), (-332, 150, 40), // Points for section C... (-332,-150, 140), ( 0,-100, 140), (-332, 150, 140), ( 0, 100, 140), (-332,-150, 40), ( 0,-100, 40), (-332, 150, 40), ( 0, 100, 40), // Points for section D... (-100,-100, 140), ( 100,-100, 140), (-100, 100, 140), ( 100, 100, 140), (-100,-100, 40), ( 100,-100, 40), (-100, 100, 40), ( 100, 100, 40)); // Surface for Section A - An Arcazoid. Arcazoid = (0, 1, 2, 3, 4, 5, 6, 7, 90,270); // Box for Section B... Box = (8, 9, 10, 11, 12, 13, 14, 15); // Box for section C... Box = (16, 17, 18, 19, 20, 21, 22, 23); // Arcazoid for section D... Arcazoid = (24, 25, 26, 27, 28, 29, 30, 31, 270,450); } // Theta, Alpha, A, D, Joint Min, Joint Max node (45, 90, -20.32, 0, -45, 225) { Color = (1.0, 1.0, 0); // The RGB Color of the node. // Vertices for Section A Vertices = ((-60, 40,-80), (-60, 40, 80), (100, 40, -80), (100, 40, 80), (-60,-40,-80), (-60,-40, 80), (100,-40, -80), (100,-40, 80), // Vertices for Section B (-60, 40, 0), (-40, 40,380), (100, 40, 0), ( 40, 40,380), (-60,-40, 0), (-40,-40,380), (100,-40, 0), ( 40,-40,380)); // Section A Arcazoid = (0, 1, 2, 3, 4, 5, 6, 7, 90,270); // Section B Box = (8, 9, 10, 11, 12, 13, 14, 15); } // Start of the 5th node... Node parameters... // Theta, Alpha, A, D, Joint Min, Joint Max node (0, -90, 0, 433.07, -110, 170) { Color = (0, 1.0, 1.0); // Node Color Vertices = ((-20, 0, 20), (-20, 0, -20), (20, 0, 20), (20, 0, -20), (-20, 53, 20), (-20,53, -20), (20, 53, 20), (20, 53, -20), // Vertices for section B (-22, 22, 30), (-22,-22, 30), (22, 22, 30), (22, -22, 30), (-22, 22, -30), (-22,-22,-30), (22, 22,-30), (22, -22, -30)); Cylinder = (0, 1, 2, 3, 4, 5, 6, 7); // Section A Cylinder = (8, 9, 10, 11, 12, 13, 14, 15); // Section B } // Start of the 6th node... Node parameters... // Theta, Alpha, A, D, Joint Min, Joint Max node ( 0, 90, 0, 0, -100, 100) { Color = (1.0, 0, 1.0); Vertices = ((-15,-15, 0), (-15, 15, 0), (15,-15, 0), (-15,-15, 0), (-15,-15,30), (-15, 15, 30), (15,-15, 30), (-15,-15, 30)); //////Cylinder = (0, 1, 2, 3, 4, 5, 6, 7); // Section A } // Start of the 7th node... Node parameters... node ( 0, 0, 0, 56.25, -266, 266) { Color = (1.0, 1.0, 1.0); // Color of the gripper // Vertices for the gripper itself Vertices = ((-16,-20,-18), (-16, -20, 25), (16,-20,-18), (16, -20, 25), (-16, 20,-18), (-16, 20, 25), (16, 20,-18), (16, 20, 25), // Vertices for the gripper shaft... (-10, 10,-18), (-10, -10,-18), (10, 10,-18), (10,-10,-18), (-10, 10,-33), (-10, -10,-33), (10, 10,-33), (10,-10,-33)); // The gripper shaft. Cylinder = (8, 9, 10, 11, 12, 13, 14, 15); Polygon = (0, 1, 3, 2); Polygon = (4, 0, 2, 6); Polygon = (5, 4, 6, 7); // Need to be double sided... Polygon = (2, 3, 1, 0); Polygon = (6, 2, 0, 4); Polygon = (7, 6, 4, 5); // Need to be double sided... } }