Integrated application resource: Kinematics ISO 10303-105:2019(E)
© ISO

Cover page
Table of contents
Copyright
Foreword
Introduction
1 Scope
2 Normative references
3 Terms, definitions and abbreviated terms
    3.1 Terms and definitions
    3.2 Abbreviated terms
4 Kinematic property
   4.1 General
   4.2 Fundamental concepts and assumptions
   4.3 Kinematic property entity definitions
   4.4 Kinematic property subtype constraint definition

5 Kinematic topology
   5.1 General
   5.2 Fundamental concepts and assumptions
   5.3 Kinematic topology type definition
   5.4 Kinematic topology entity definitions
   5.5 Kinematic topology subtype constraint definition
   5.6 Kinematic topology function definitions
6 Kinematic structure
   6.1 General
   6.2 Fundamental concepts and assumptions
   6.3 Kinematic structure type definitions
   6.4 Kinematic structure entity definitions
   6.5 Kinematic structure subtype constraint definition
   6.6 Kinematic structure function definitions

7 Kinematic state
   7.1 General
   7.2 Fundamental concepts and assumptions
   7.3 Kinematic state type definitions
   7.4 Kinematic state entity definitions
   7.5 Kinematic state subtype constraint definition
   7.6 Kinematic state function definitions
8 Kinematic motion representation
   8.1 General
   8.2 Fundamental concepts and assumptions
   8.3 Kinematic motion representation type definitions
   8.4 Kinematic motion representation entity definitions
   8.5 Kinematic motion representation subtype constraint definitions
9 Kinematic analysis control and result
   9.1 General
   9.2 Fundamental concepts and assumptions
   9.3 Kinematic analysis control and result type definitions
   9.4 Kinematic analysis control and result entity definitions
   9.5 Kinematic analysis control and result subtype constraint definition
A Short names of entities
B Information object registration
C Computer interpretable listings
D EXPRESS-G diagrams
E Technical discussion
F Change history
Bibliography
Index

5 Kinematic topology schema

5.1 General

The subject of the kinematic_topology_schema is the description of the topology of a kinematic structure consisting of kinematic joints and links, independent of particular pair types, ranges and geometry.

This clause defines the information requirements to which implementations shall conform using the EXPRESS language as defined in ISO 10303-11. The following EXPRESS declaration begins the kinematic_topology_schema and identifies the necessary external references.

Short names of entities defined in this schema are described in Annex A. Unambiguous identification of this schema is defined in Annex B.

EXPRESS specification:

*)
SCHEMA kinematic_topology_schema;

REFERENCE FROM representation_schema    --  ISO 10303-43
  (representation);

REFERENCE FROM topology_schema    --  ISO 10303-42
  (connected_edge_set,
   edge,
   edge_loop,
   oriented_edge,
   path,
   vertex);
(*

NOTE 1   The schemas referenced above are specified in the following parts:

representation_schema ISO 10303-43
topology_schema ISO 10303-42

NOTE 2   See Annex D for a graphical representation of this schema.

5.2 Fundamental concepts and assumptions

Kinematic topology is a specialization of general topological concepts defined in the topology_schema of ISO 10303-42.

The kinematic_topology_schema provides different kinds of representations for the purpose of representing kinematic topology:

A kinematic_topology_structure provides the basic grouping of connected kinematic topology elements, where the edges are given by kinematic_joints that references two kinematic_links as their vertices. All the other kinematic representations use a kinematic_topology_structure as their parent, of which a connected sub-set of the kinematic_joints is referenced and that are sharing the same representation_context.

A kinematic_topology_substructure is used to represent a sub-set of kinematic_joints of the parent kinematic_topology_structure or another kinematic_topology_substructure.

A kinematic_topology_directed_structure defines a directed graph within a kinematic_topology_structure by using oriented_joints. When using the subtype kinematic_topology_tree_structure the directed graph is required to be acyclic.

5.3 kinematic_topology_schema type definition

5.3.1 kinematic_topology_representation_select   EXPRESS-G

The kinematic_topology_representation_select type is a list of alternate data types. It provides a mechanism to refer to an instance of one of these data types.

EXPRESS specification:

*)
TYPE kinematic_topology_representation_select = SELECT
   (kinematic_topology_structure,
    kinematic_topology_directed_structure,
    kinematic_topology_network_structure);
END_TYPE;
(*

5.4 kinematic_topology_schema entity definitions

5.4.1 kinematic_joint   EXPRESS-G

A kinematic_joint is a type of edge that is a specification of the topological aspect of an ordered connection between two and only two links.

A topological orientation is always implicitly associated with a joint. This orientation is defined as being from the edge start to the edge end.

For a kinematic_pair referencing a kinematic_joint, the transform_item_1 shall be an item of the kinematic_link_representation of the edge_start of the kinematic_joint.

Similarly, the transform_item_2 shall be an item of the kinematic_link_representation of the edge_end of the kinematic_joint.

NOTE 1   The type of constraint on the relative motion is defined by the kinematic_pair that has the joint as its joint attribute. In a graph representation of the topology, the kinematic_joint represents an oriented edge connecting two vertices in the graph. The orientation of the kinematic_joint reflects an implicit orientation which is arbitrary, except for the rack-and-pinion pair, the point-on-surface pair, and the point-on-planar-curve pair.

NOTE 2   If the sequence of edge_start and edge_end is interchanged, both, pair values and pair range values, have to be used with the opposite signs additionally the attributes giving a lower limit are to be interchanged with those giving the corresponding upper limit.

EXPRESS specification:

*)
ENTITY kinematic_joint
  SUBTYPE OF (edge);
  SELF\edge.edge_start : kinematic_link;
  SELF\edge.edge_end : kinematic_link;
UNIQUE
  UR1: edge_start, edge_end;
WHERE
  WR1: edge_start :<>: edge_end;
END_ENTITY;
(*

Attribute definitions:

edge_start: the link through which the joint is entered.

edge_end: the link through which the joint is left.

Formal propositions:

UR1: The combination of edge_start and edge_end shall be unique within a population of kinematic_joint.

WR1: The edge_start and edge_end shall not be identical.

5.4.2 kinematic_link   EXPRESS-G

A kinematic_link is a type of vertex representation of the topological aspects associated with a rigid part of a mechanism.

EXPRESS specification:

*)
ENTITY kinematic_link
  SUBTYPE OF (vertex);
END_ENTITY;
(*

5.4.3 kinematic_loop   EXPRESS-G

A kinematic_loop is a type of edge_loop that is a cycle in the subgraph. It is the representation of a closed kinematic chain in a mechanism, where the last link in the chain is again connected to the first link by a joint. The kinematic_loop is analogous to the loop in the topology model, where the joints correspond to the edges and the links correspond to the vertices of the topology model. The loop shall be pointed to by at least one oriented_joint.

Every kinematic_joint shall be oriented such that the list of kinematic_joints have a common orientation within the loop.

NOTE    This entity is present in an instance of a kinematics model only if the kinematic structure takes the form of a directed graph.

EXPRESS specification:

*)
ENTITY kinematic_loop
  SUBTYPE OF (edge_loop);
  SELF\path.edge_list : LIST[1:?] OF UNIQUE oriented_joint;
END_ENTITY;
(*

Attribute definitions:

edge_list: an inherited attribute that shall be of type oriented_joint There shall exist at least one oriented_joint for the kinematic_loop.

5.4.4 kinematic_topology_directed_structure   EXPRESS-G

A kinematic_topology_directed_structure is a type of representation that identified a directed structure within a parent kinematic_topology_structure.

EXPRESS specification:

*)
ENTITY kinematic_topology_directed_structure
  SUBTYPE OF (representation);
  SELF\representation.items : SET[1:?] OF oriented_joint;
  parent : kinematic_topology_structure;
WHERE
  WR1: context_of_items :=: parent.context_of_items;
  WR2: get_kinematic_joints_from_oriented_joints(items) <= parent.items;
END_ENTITY;
(*

Attribute definitions:

items: an inherited attribute that shall be of type oriented_joint. There shall exist at least one oriented_joint for the kinematic_topology_directed_structure.

parent: the parent kinematic_topology_structure in which this kinematic_topology_directed_structure defines a direct subset.

Formal propositions:

WR1: A kinematic_topology_directed_structure shall have the same context as its parent.

WR2: The oriented_joints used by the items of a kinematic_topology_directed_structure shall also be items of its parent.

5.4.5 kinematic_topology_network_structure   EXPRESS-G

A kinematic_topology_network_structure is a type of representation. A kinematic_topology_network_structure represents a subgraph of network type; i.e., the mechanism is composed of closed kinematic chains.

NOTE 1   See Figure 2 for an illustration of a kinematic network structure.

NOTE 2   This entity is present in an instance of a kinematics model only if the kinematic structure takes the form of a directed graph.



Figure 2 —  Example of a kinematic network structure

Figure 2 —  Example of a kinematic network structure

EXPRESS specification:

*)
ENTITY kinematic_topology_network_structure
  SUBTYPE OF (representation);
  SELF\representation.items : SET[1:?] OF kinematic_loop;
  parent : kinematic_topology_structure;
WHERE
  WR1: context_of_items :=: parent.context_of_items;
  WR2: get_kinematic_joints_from_kinematic_loops(items) <= parent.items;
END_ENTITY;
(*

Attribute definitions:

items: an inherited attribute that shall be of type kinematic_loop. There shall exist at least one kinematic_loop for the kinematic_topology_network_structure.

parent: the parent kinematic_topology_structure in which this kinematic_topology_network_structure defines a subset with loops.

Formal propositions:

WR1: A kinematic_topology_network_structure shall have the same context as the parent.

WR2: The oriented_joints used by the items of a kinematic_topology_network_structure shall also be items of its parent.

5.4.6 kinematic_topology_structure   EXPRESS-G

A kinematic_topology_structure is a type of representation that specifies the topological aspects of a kinematic representation. The topology of the kinematic_topology_structure is represented by means of kinematic_joints which, in turn, establish a relationship between pairs of kinematic_links.

NOTE    Every kinematic structure can be described in terms of its joints and links. Joints constrain the motion between two rigid objects called links. Joints and links are sufficient to describe the topology of kinematic structures, but for computation it is meaningful to introduce additional levels of structure based on graph theory. Information related to the graph representation of a kinematic structure is given in kinematic_topology_substructure.

EXPRESS specification:

*)
ENTITY kinematic_topology_structure
  SUBTYPE OF (representation);
  SELF\representation.items : SET[1:?] OF kinematic_joint;
WHERE
  WR1: SIZEOF (QUERY (item <* items | 'TOPOLOGY_SCHEMA.ORIENTED_EDGE' in TYPEOF(item))) = 0;
END_ENTITY;
(*

Attribute definitions:

items: the set of kinematic_joints that compose the kinematic_topology_structure of a mechanism. There shall exist one or more kinematic_joints for the kinematic_topology_structure.

Formal propositions:

WR1: None of the items shall be an oriented_edge.

5.4.7 kinematic_topology_substructure   EXPRESS-G

A kinematic_topology_substructure is a type of kinematic_topology_structure that specifies the topological characteristics of a mechanism in terms of tree or network structures.

NOTE 1   Using graph theory, the topology of a mechanism is represented by a directed graph, where the links correspond to the nodes, and the joints correspond to the edges. This graph can be derived from the definition of the links and joints. If the topology of a mechanism is defined only by this minimal information, it is referred to as "lower level topology" within this part of ISO 10303.

Graph theory provides a means to capture connectivity information which may be applied to the describe the topological structure of mechanisms. The geometrical and mechanical properties are not conveyed. If the full topological information including connectivity information is provided explicitly, this is referred to as "higher level topology" within this part of ISO 10303.

A general graph may be composed of two basic types of subgraphs:

  1. Trees;
  2. Networks.

If, in addition to the lower level of topology, the higher level topology is provided in a kinematic model, this higher level of topology is represented by kinematic substructures. These kinematic substructures are:

NOTE 2   See [4] for methods that can be applied to analyze a kinematic topology substructure.

EXPRESS specification:

*)
ENTITY kinematic_topology_substructure
  SUBTYPE OF (kinematic_topology_structure);
  parent : kinematic_topology_structure;
WHERE
  WR1: context_of_items :=: parent.context_of_items;
  WR2: SELF\kinematic_topology_structure.items <= parent\kinematic_topology_structure.items;
END_ENTITY;
(*

Attribute definitions:

parent: the kinematic_topology_structure of which the kinematic_topology_substructure forms a component.

Formal propositions:

WR1: A kinematic_topology_substructure shall have the same context as the parent.

WR2: The items of a kinematic_topology_substructure shall also be items of the parent.

5.4.8 kinematic_topology_tree_structure   EXPRESS-G

A kinematic_topology_tree_structure is a type of kinematic_topology_directed_structure. A kinematic_topology_tree_structure represents a subgraph of tree type; i.e., the mechanism is composed of open kinematic chains.

NOTE 1   See Figure 3 for an illustration of a kinematic topology tree structure.

NOTE 2   This entity is present in an instance of a kinematics model only if the kinematic topology structure takes the form of a directed graph.



Figure 3 —  Example of a kinematic topology tree structure

Figure 3 —  Example of a kinematic topology tree structure

EXPRESS specification:

*)
ENTITY kinematic_topology_tree_structure
  SUBTYPE OF (kinematic_topology_directed_structure);
END_ENTITY;
(*

5.4.9 oriented_joint   EXPRESS-G

An oriented_joint is a type of oriented_edge that is a direction of traversal of a joint.

NOTE    This entity is present in an instance of a kinematics model only if the kinematic structure takes the form of a directed graph.

EXPRESS specification:

*)
ENTITY oriented_joint
  SUBTYPE OF (oriented_edge);
  SELF\oriented_edge.edge_element : kinematic_joint;
END_ENTITY;
(*

Attribute definitions:

edge_element: an inherited attribute that shall be of type kinematic_joint.

5.5 kinematic_topology_schema subtype constraint definition

5.5.1 kts_representation_subtypes   EXPRESS-G

The kts_representation_subtypes constraint specifies a constraint that applies to instances of subtypes of representation.

A kts_representation_subtypes is a constraint that specifies the subtypes kinematic_topology_structure, kinematic_topology_directed_structure and kinematic_topology_network_structure of representation are mutually exclusive.

EXPRESS specification:

*)
SUBTYPE_CONSTRAINT kts_representation_subtypes FOR representation;
  ONEOF (kinematic_topology_structure,
         kinematic_topology_directed_structure,
         kinematic_topology_network_structure);
END_SUBTYPE_CONSTRAINT;
(*

5.6 kinematic_topology_schema function definitions

5.6.1 get_kinematic_joints_from_kinematic_loops

The get_kinematic_joints_from_kinematic_loops function returns the set of kinematic_joints associated with the kinematic_loop as a kls.

EXPRESS specification:

*)
FUNCTION get_kinematic_joints_from_kinematic_loops (kls : SET[0:?] OF kinematic_loop) : SET[0:?] OF kinematic_joint;
LOCAL
    result : SET OF oriented_joint := [];
  END_LOCAL;
  IF SIZEOF(kls) > 0 THEN
    REPEAT i := 1 TO HIINDEX(kls);
      result := result + kls[i].edge_list;
    END_REPEAT;
  END_IF;
  RETURN (get_kinematic_joints_from_oriented_joints(result));
END_FUNCTION;
(*

Argument definitions:

kls: the specified set of kinematic_loops.

5.6.2 get_kinematic_joints_from_oriented_joints

The get_kinematic_joints_from_oriented_joints function returns the set of kinematic_joints associated with the oriented_joint as a ors.

EXPRESS specification:

*)
FUNCTION get_kinematic_joints_from_oriented_joints (ors : SET[0:?] OF oriented_joint) : SET[0:?] OF kinematic_joint;
LOCAL
    result : SET OF kinematic_joint := [];
  END_LOCAL;
  IF SIZEOF(ors) > 0 THEN
    REPEAT i := 1 TO HIINDEX(ors);
      result := result + ors[i].edge_element;
    END_REPEAT;
  END_IF;
  RETURN (result);
END_FUNCTION;
(*

Argument definitions:

ors: the specified set of oriented_joints.



*)
END_SCHEMA;  -- kinematic_topology_schema
(*


© ISO 2019 — All rights reserved