Graph Theory for Articulated Bodies Alba Perez-Gracia Department of Mechanical Engineering, Idaho State University
Articulated Bodies A set of rigid bodies (links) joined by joints that allow relative motion between consecutive links. Standard joints are defined as a pair of surfaces rubbing against each other (Releaux s pairs) Higher pairs have a surface of contact, lower pairs contact at a line or a point. Other contacts, such as a finger contact, can be modeled as joints.
Kinematic Chains Serial chain or open-loop chain: only one path from one link to another link of the chain. Parallel or closed-loop chain: every link is connected to every other link by at least two paths. Hybrid chain: contains parallel and serial subchains. Tree chain: several end links.
Graph Theory Graph G(v,e): a set of v vertices (points) and a set of e edges (lines) such that the vertices are connected by the edges. Note: all graph figures from Tsai, Enumera7on of Kinema7c Structures According to Func7on Edge connecting i and j is called e ij. Edge e 23 incident on vertices 2 and 3. Vertices 2 and 3 are adjacent (they are connected through and edge) Edges e 23, e 34 adjacent (incident on vertex 3) Degree of a vertex: number of edges incident on that vertex. Degree 2: vertices 1, 3, 4 Degree 3: vertices 2, 5.
Graph Theory Walk: a sequence of vertices and edges, beginning and ending on a vertex. Path: a sequence of alternating vertices and edges in which each vertex appears only once. Trail: a walk with distinct edges but vertices may be repeated. Circuit or loop: a path for which the beginning vertex = end vertex (a closed path). Walk Path (and walk) Circuit
Graph Theory Two vertices are connected if there is a path from one to the other. A graph is connected if every vertex is connected to every other vertex by at least one path. Subgraph: a subset of a graph that is a graph itself. Component: each connected subgraph of a graph. Directed graph: a graph in which a direction is assigned to every edge. Rooted graph: a graph with a distinguished vertex, called the root. Complete graph: When every pair of vertices is connected by one edge. It has n(n-1)/2 edges for n vertices.
Graph Theory Tree graph: a connected graph that contains no circuits. Planar graph: a graph that can be embedded in a plane. Graph isomorphism: Two graphs G 1, G 2 are isomorphic if there is a one-to-one correspondence between their vertices and edges that preserves the incidence.
Graph Theory Spanning tree: One of the possible trees containing all the vertices of a connected graph. Given a spanning tree, we can create two subsets of the set of edges E: Edges that form the spanning tree: arcs. Rest of edges, not used in the spanning tree: chords. Adding a chord to a spanning tree generates a circuit. A collection of all the circuits wrt a spanning tree forms a set of independent loops or fundamental circuits. Any circuit of the graph is a l.c. of fundamental circuits.
Graph Theory Example: a graph, its spanning tree and fundamental circuits. The number of fundamental circuits is independent of the spanning tree used.
Use of Graphs Graphs are widely used in any application in which we there is a relationship among discrete objects. Bond graphs in system dynamics, communications and data organization, biology, linguistics, chemistry, artificial intelligence, We use graphs in order to represent the connection between rigid bodies in an articulated system.
Graph Representation of an Articulated System An articulated system is represented using a rooted graph, where: Vertices = links Edges = joints Edges are labeled according to the type of joint.
Graph Representation of Articulated Systems
Graph Representation of Articulated Systems
Matrices Associated to a Graph Used for systematic identification and enumeration of graphs. Adjacency matrix [A]: Defined as a ij = 1 if vertex i is adjacent to vertex j 0 otherwise, including i=j [A] is a vxv symmetric matrix with zeros at the diagonal. The sum of each row gives the degree of that vertex. [A] identifies a graph up to isomorphism.
Matrices Associated to a Graph Incidence matrix [B]: for a graph with vertices from 1 to v and edges from 1 to e, Defined as b ij = 1 if vertex i is an end vertex of edge j 0 otherwise [B] is a vxe matrix with rows corresponding to vertices and columns to edges. The sum of each column is always equal to 2. [B] determines a graph up to isomorphism.
Matrices Associated to a Graph Circuit matrix [C]: for a graph with edges from 1 to e, label the circuits from 1 to l, Defined as c ij = 1 if circuit i contains edge j 0 otherwise [C] is an lxe matrix with rows corresponding to circuits and columns to edges. [C] does not determine a graph up to isomorphism.
Matrices Associated to a Graph Path matrix [T]: stores the information of all paths starting at the root and terminating at the other vertices of a rooted tree. Defined as t ij = 1 if edge i lies on the path star7ng at 1 and ending at j+1 0 otherwise [T] is an (v-1)xe matrix (root vertex not included). [T] does not determine a graph up to isomorphism.
Contracted Graphs Binary string of length k within a graph: a string of vertices of degree 2 connected in series by k+1 edges. First and last edges incident on non-binary vertices. Contraction: replace every binary string with a single edge. It yields a contracted graph with no binary vertices. Contracted graph of a graph is unique. Total number of loops of the graph does not change.
Conclusions Articulated systems can be represented using rooted graphs. Associated matrices contain information about degree of links and joints and loops in the system. Graph representation allows to focus on the topology without considering the particular geometry. Especially useful for enumeration and database search. Very active area of research, especially for parallel robots. We use them in our synthesis algorithms.
Tree Graphs for Hand Topologies Hand topology: a set of common joints connected to a set of branches, which end in end-effector links. Compacted tree: all serial chains replaced, no binary vertices. Reduced tree: all loops replaced, no two edges have same incident vertices (for synthesis purposes). Ini$al tree Compacted For compacted, reduced trees: v = e + 1 Root and end-effector vertices have degree 1. Reduced
Tree Graphs for Hand Topologies Consider a Hand = wrist+hand. Denote a branching with a hyphen and the branches as a list in parentheses, 1- (1,1,1,1) 3R- (2R,R- (R,R,R)) 2R- (2R,R,R)
Parent-pointer Representation For a set of indices {i} e for edges and {j} v for vertices, the array p e = {p(i)} e is the parent-pointer representation, where p(i) indicates the edge previous to edge i. The edge previous to the root vertex is denoted as 0. 1- (1,1,1,1) 3R- (2R,R- (R,R,R)) p e = {0,1,1,1,1} p e = {0,1,1,3,3,3}
Parent-pointer Representation The parent-pointer representation captures: Number of edges and vertices Connectivity Branches or end effectors. In order to define the number and type of joints for each edge, a second array needs to be defined, t e. 3R- (2R,R- (R,R,R)) p e = {0,1,1,3,3,3} t e = {3R,2R,R,R,R,R}
Parent-pointer Representation Extracting information from the parent-pointer representation: Number of edges: e = Length(p e ) Number of vertices: v = e+1 Terminal edges (incident to end-effector vertices): edges not appearing in p e : b e = Complement({0,1,2,,e},p e ) Number of branches: b = Length(b e ) p e = {0,1,1,3,3,3} e = Length({0,1,1,3,3,3}) = 6 v = e+1 = 7 b e = Comp({0,1,2,3,4,5,6},{0,1,1,3,3,3}) = {2,4,5,6} b = Length({2,4,5,6}) = 4
Matrices Associated to the Parent-pointer Representation Two matrices useful for design: Adjacency matrix [B] = matrix (v, e) initialized to 0 for (i = 1, i <= e, i++) { B(p e (i) + 1, i) = 1; B(i + 1, i) = 1; } End-effector path matrix [P ee ]= matrix(e, b) initialized to 0 for (i = 1, i <= length(b e ), i++) { k = b e (i); while (k > 0) { P ee (k, i) = 1; k = p e (k); } } p e = {0,1,1,3,3,3} e = 6 v = 7 b e = {2,4,5,6} b = 4