Special Topics in Computer Science Computational Modeling for Snake-Based Robots Introduction to Assembly Modeling Week 2, Lecture 1 William Regli Geometric and Intelligent Computing Laboratory Department of Computer Science Drexel University http://gicl.cs.drexel.edu 1 Building Multidisciplinary Model • Class Goal: create multidisciplinary engineering models • Challenge: Learn enough about each discipline to create integrated models! • Last week: modeling parts • Today: putting parts together! – i.e. creating assemblies 2 Where we stand • You have a physical design you prototyped with Legos • You have your individual 3D models for the elements of the design • How to put them together? 3 Transformations to Change Coordinate Systems • Issue: the world has many different relative frames of reference • How do we transform among them? • Example: CAD Assemblies & Animation Models 4 5 Example: A Scanner Head Assembly 6 7 8 9 Goal of Assembly Modeling • Products are rarely individual parts • Typically, products are designed top down as assembly models • For this class, we are interested in the data structures for assemblies 10 Assembly Modeling • • • • Parts can be defined with mating features on them. Features can be mated directly. An assembly database builds up automatically. Assembly knowledge can be accessed. • Information in assembly models – What parts mate to what parts – What features define the mates and where they are on the parts – What interfaces must be controlled, plus a formal way of describing them – Constraints and rule-checking • about assembly in the small • about assembly intent in terms of features • about assembly in the large, including alternate parts • • It is a completely abstract and general model based on connectivity Geometry is an attribute of the parts 11 Degrees of Freedom • An object’s location in space is completely specified when three translations (X, Y, Z) and three rotations ( ) are specified • How many DOFs are constrained? – cube on table (x-y plane) – cube at floor-wall interface – cube at floor-two walls interface – ball on table – ball at floor-wall interface – round peg in blind round hole 12 Constraints • Proper constraints provide a single value for each of a body’s 6 degrees of freedom – This is done by establishing surface contacts with surfaces on another part or parts • If less than 6 dof have definite values, the body is under-constrained • If an attempt is made to provide 2 or more values for a dof, then the body is overconstrained because rigid bodies have only 6 dof 13 Constraints (examples) 14 Constraints (examples) 15 Creating an Assembly • Parts join at places called assembly features • Different features constrain different numbers and kinds of degrees of freedom of the respective parts (symmetrically) • Parts may join by – one pair of features – multiple features – several parts working together, each with its own features • When parts mate to fixtures, dofs are constrained 16 Assembly Features • Examples – – – – – – Fixed Revolute Planar Screw Spherical Prismatic 17 Example: Phillips “screw” 18 Example Feature 19 Relating Features to Assembly Models Does not depend on parts Depends on parts 20 Data Structures for Assemblies • Typically an attributed graph or tree – Vertices == parts – Edges == • Part-to-part contacts – Usually represented as joints – Attributes == • Kinematic specifications and constraints on the joints 21 Contact Graph 22 Data Structures for Assemblies: Example { Part { Name motor } { URL motor.sat } { Transform Identity }} { Part { Name scanner } { URL scanner.sat } { Transform Identity }} # List of joints between parts { Joint Fixed { Name potentiometer_sleeve_screw_potentiometer_to_frame} { BasePart potentiometer_sleeve } { AttachedPart screw_potentiometer_to_frame } { JointFeatures { Point potentiometer_sleeve 0 0 0 } { Point screw_potentiometer_to_frame 0 0 0 }}} { Joint Revolute { Name motor_scanner} { BasePart motor } { AttachedPart scanner } { JointFeatures { Axis motor 150 60 85 0 0 1 1 0 0 } { Axis scanner 150 60 85 0 0 1 1 0 0 } }{ Articulations { Theta 0 -75 75 }}} 23 Assignment! • Oct 6 – Mock up v1 of your Lego design – Photos on Wiki • Oct 10 – 3D model(s) for your Lego design • Oct 13 – An “assembly” of your Lego design 24 Introduction to Kinematics • Kinematics: study of motion independent of underlying forces • Degrees of freedom (DoF): the number of independent position variables needed to specify motions • State Vector: vector space of all possible configurations of an articulated figure. In general, the dimensions of state vector is equal to the DoF of the articulated figure. 25 Manipulator Joint Types 1 DOF Joint types • Revolute • Prismatic 26 More Joint Types • Many higher order joint types can be represented by combining 1-DOF joints by making axes intersect 27 Forward vs. Inverse Kinematics • Forward kinematics: motion of all joints is explicitly specified • Inverse kinematics: given the position of the end effector, find the position and orientation of all joints in a hierarchy of linkages; also called “goal-directed motion”. 28 END 29 What CAD Systems do • CAD systems analyze “constraints” – But CAD systems, developers, and researchers do not mean mechanical constraint, they mean geometric location consistency • Many designs called properly constrained by CAD systems are actually over-constrained • Different CAD systems do this analysis different ways and can disagree about the same assembly 30 What CAD Systems do • How CAD Systems Test Constraints – – – – A closed chain of frames is set up A numerical test is done to see if the chain closes If, so, the assembly is called “fully constrained” Detailed tests for constraint/consistency problems are done by making small shifts and testing for interference – Tolerance studies are done the same way – Analysis requires detailed geometry • Results depend on how the model was built 31 32 Mathematical Model • Basic Math – Uses 4x4 matrices to relate adjacent frames – Permits chaining together of parts • same math is used to describe robots – The matrix contains a rotational part and a translational part – The matrix is designed to translate first and then rotate so that rotation does not change position of new frame – This matrix is a subset of a more general projection matrix that includes perspective • History – Basic to Kinematics (Denavit & Hartenberg) – Used to model assemblies in 1970s: – S N Simunovic Master’s Thesis, MIT, 1972 – Edinburgh University AI Lab robot assembly 1976 • Used by CAD researchers – Steve Coons, 1960’s – Gossard and others, 1980s • Used by CAD systems to locate surfaces wrt each other 33