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

8 Kinematic motion representation schema

8.1 General

The subject of the kinematic_motion_representation_schema is the description of motion. It specifies different types of paths that comprise the motion for a kinematic model.

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_motion_representation_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_motion_representation_schema;

REFERENCE FROM geometry_schema    --  ISO 10303-42
  (axis2_placement,
   b_spline_curve,
   b_spline_surface,
   bounded_curve,
   cartesian_point,
   curve,
   geometric_representation_context,
   geometric_representation_item,
   placement,
   transition_code);

REFERENCE FROM kinematic_state_schema    --  ISO 10303-105
  (rotation_about_direction,
   spatial_rotation,
   ypr_rotation,
   mechanism_state_representation);

REFERENCE FROM kinematic_structure_schema    --  ISO 10303-105
  (kinematic_link_representation,
   mechanism_representation,
   rigid_placement);

REFERENCE FROM measure_schema    --  ISO 10303-41
  (length_measure,
   measure_with_unit,
   parameter_value,
   plane_angle_measure,
   unit);

REFERENCE FROM product_property_representation_schema    --  ISO 10303-41
  (shape_representation);

REFERENCE FROM representation_schema    --  ISO 10303-43
  (definitional_representation,
   founded_item,
   functionally_defined_transformation,
   item_defined_transformation,
   item_in_context,
   parametric_representation_context,
   representation,
   representation_item,
   representation_relationship,
   definitional_representation_relationship,
   representation_relationship_with_transformation,
   using_representations);
(*

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

geometry_schema ISO 10303-42
kinematic_state_schema ISO 10303-105
kinematic_structure_schema ISO 10303-105
measure_schema ISO 10303-41
product_property_representation_schema ISO 10303-41
representation_schema ISO 10303-43

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

8.2 Fundamental concepts and assumptions

Motion in this part of ISO 10303 is defined in terms of a parameter t. t is a non-decreasing parameter as motion progresses. Several motions may be synchronised by the requirement that the actual state of all motion in a kinematic model is controlled by a single parameter t which appears as an attribute in the kinematic_control and in the kinematic_result.

8.3 kinematic_motion_representation_schema type definitions

8.3.1 link_or_shape_representation   EXPRESS-G

The link_or_shape_representation 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 link_or_shape_representation = SELECT
   (kinematic_link_representation,
    shape_representation);
END_TYPE;
(*

8.3.2 interpolation_type   EXPRESS-G

The interpolation_type describes the method of interpolation between two configuration definitions of a kinematic structure.

EXPRESS specification:

*)
TYPE interpolation_type = ENUMERATION OF
   (undefined_interpolation_type,
    discontinuous_interpolation_type,
    synchronous_interpolation_type,
    linear_interpolation_type);
END_TYPE;
(*

Enumerated item definitions:

undefined_interpolation_type: an interpolation in which all pair parameters shall match the set of pair parameter values defined in the next configuration definition.

discontinuous_interpolation_type: the pair parameters are changing abruptly.

synchronous_interpolation_type: an interpolation in which all pair parameters are interpolated such that the pair parameters pass from one value to the next one at the same rate. The rate may vary proportionally among the pairs.

linear_interpolation_type: an interpolation in which all pair parameters are interpolated such that the pair parameters pass from one value to the next one at the same rate. The rate remains constant.

8.4 kinematic_motion_representation_schema entity definitions

8.4.1 interpolated_configuration_representation   EXPRESS-G

An interpolated_configuration_representation is a type of representation that specifies a motion (forward analysis) of a kinematic_topology_structure.

EXPRESS specification:

*)
ENTITY interpolated_configuration_representation
  SUBTYPE OF (representation);
  SELF\representation.context_of_items : geometric_representation_context_with_parameter;
  SELF\representation.items : SET[1:?] OF interpolated_configuration_sequence;
END_ENTITY;
(*

Attribute definitions:

context_of_items: an inherited attribute that shall be of type geometric_representation_context_with_parameter.

items: an inherited attribute whose members shall be of type interpolated_configuration_sequence.

8.4.2 interpolated_configuration_sequence   EXPRESS-G

An interpolated_configuration_sequence is a type of geometric_representation_item that represent a sequence of interpolated_configuration_segments, each consisting of a mechanism_state_representation at a particular parameter value and an interpolation type to the next or in the case of the last one to the first interpolated_configuration_segment.

EXPRESS specification:

*)
ENTITY interpolated_configuration_sequence
  SUBTYPE OF (geometric_representation_item);
  segments : LIST[2:?] OF interpolated_configuration_segment;
DERIVE
  n_segments : INTEGER := SIZEOF(segments);
  closed_interpolation : LOGICAL := segments[n_segments].interpolation <> discontinuous_interpolation_type;
  configured_mechanism : mechanism_representation := segments[1].state.represented_mechanism;
WHERE
  WR1: SIZEOF(QUERY(ics <* segments | ics.state.represented_mechanism :<>: configured_mechanism)) = 0;
END_ENTITY;
(*

Attribute definitions:

segments: the list of interpolated_configuration_segments for the interpolated_configuration_sequence. There shall exist at least one interpolated_configuration_segment for the interpolated_configuration_sequence.

n_segments: the number of segments.

closed_interpolation: indication of whether the interpolation shall continue with the first segment after the last one is reached, resulting in a cyclic movement.

configured_mechanism: the mechanism_representation that is interpolated by this interpolated_configuration_sequence.

Formal propositions:

WR1: All segments of an interpolated_configuration_sequence shall be based on the same mechanism_representation.

8.4.3 interpolated_configuration_segment   EXPRESS-G

An interpolated_configuration_segment is a type of founded_item that specifies a single segment of a interpolated_configuration_sequence. An interpolated_configuration_segment is defined by a mechanism_state_representation at a particular parameter value and the interpolation instruction to the next or first segment in the list.

EXPRESS specification:

*)
ENTITY interpolated_configuration_segment
  SUBTYPE OF (founded_item);
  state : mechanism_state_representation;
  t_parameter : parameter_value;
  interpolation : interpolation_type;
END_ENTITY;
(*

Attribute definitions:

state: the mechanism_state_representation the interpolated_configuration_segment refers to.

t_parameter: the parameter associated to the interpolated_configuration_segment.

interpolation: the interpolation_type for the interpolated_configuration_segment.

8.4.4 link_motion_relationship   EXPRESS-G

A link_motion_relationship is a type of definitional_representation_relationship and of representation_relationship_with_transformation. A link_motion_relationship describes the relation of a link_motion_representation_along_path with a frame on a link_or_shape_representation.

EXPRESS specification:

*)
ENTITY link_motion_relationship
  SUBTYPE OF (definitional_representation_relationship, representation_relationship_with_transformation);
  SELF\representation_relationship.rep_1 : link_or_shape_representation;
  SELF\representation_relationship.rep_2 : link_motion_representation_along_path;
  SELF\representation_relationship_with_transformation.transformation_operator : link_motion_transformation;
WHERE
  WR1: transformation_operator\item_defined_transformation.transform_item_1 IN rep_1.items;
  WR2: transformation_operator\item_defined_transformation.transform_item_2 IN rep_2.items;
END_ENTITY;
(*

Attribute definitions:

rep_1: the link_or_shape_representation that is in motion.

rep_2: the link_motion_representation_along_path that specifies the motion.

transformation_operator: the link_motion_transformation that relates the context_of_items of the related link_or_shape_representation and link_motion_representation_along_path.

Formal propositions:

WR1: The transform_item_1s of transformation_operator shall also be items of rep_1.

WR2: The transform_item_2s of transformation_operator shall also be items of rep_2.

8.4.5 item_link_motion_relationship   EXPRESS-G

An item_link_motion_relationship is a type of link_motion_relationship where a praticular representation_item within a shape_representation is selected.

EXPRESS specification:

*)
ENTITY item_link_motion_relationship
  SUBTYPE OF (link_motion_relationship);
  SELF\representation_relationship.rep_1 : shape_representation;
  item : geometric_representation_item;
END_ENTITY;
(*

Attribute definitions:

rep_1: the shape_representation that is in motion.

item: the anchor for the item_link_motion_relationship.

8.4.6 link_motion_transformation   EXPRESS-G

A link_motion_transformation is a type of item_defined_transformation that transforms a rigid_placement of a kinematic_link_representation along a kinematic_path.

EXPRESS specification:

*)
ENTITY link_motion_transformation
  SUBTYPE OF (item_defined_transformation);
  SELF\item_defined_transformation.transform_item_1 : rigid_placement;
  SELF\item_defined_transformation.transform_item_2 : kinematic_path;
END_ENTITY;
(*

Attribute definitions:

transform_item_1: an inherited attribute that shall be of type rigid_placement for the link_motion_transformation.

transform_item_2: an inherited attribute that shall be of type kinematic_path for the link_motion_transformation.

8.4.7 link_motion_representation_along_path   EXPRESS-G

A link_motion_representation_along_path is a type of representation.

EXPRESS specification:

*)
ENTITY link_motion_representation_along_path
  SUBTYPE OF (representation);
  SELF\representation.items : SET[1:?] OF kinematic_path;
  SELF\representation.context_of_items : geometric_representation_context_with_parameter;
END_ENTITY;
(*

Attribute definitions:

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

context_of_items: a geometric_representation_context_with_parameter in which the items are related to form a representation of some concept.

8.4.8 geometric_representation_context_with_parameter   EXPRESS-G

A geometric_representation_context_with_parameter is a type of geometric_representation_context with an additional parameter.

EXPRESS specification:

*)
ENTITY geometric_representation_context_with_parameter
  SUBTYPE OF (geometric_representation_context);
  parameter_unit : OPTIONAL unit;
END_ENTITY;
(*

Attribute definitions:

parameter_unit: specifies an additional parameter for the geometric_representation_context_with_parameter. The value of this attribute need not be specified.

8.4.9 kinematic_path   EXPRESS-G

A kinematic_path is a type of geometric_representation_item. A kinematic_path describes a path or a segment of a path along which motion is to take place.

EXPRESS specification:

*)
ENTITY kinematic_path ABSTRACT
  SUPERTYPE OF (ONEOF (kinematic_path_defined_by_nodes,
                       kinematic_path_defined_by_curves))
  SUBTYPE OF (geometric_representation_item);
  segments : LIST[1:?] OF kinematic_path_segment;
  t_start : parameter_value;
DERIVE
  n_segments : INTEGER := SIZEOF(segments);
  closed_path : LOGICAL := segments[n_segments].transition <> discontinuous;
WHERE
  WR1: SIZEOF(QUERY(using_rep <* using_representations(SELF) | NOT ('KINEMATIC_MOTION_REPRESENTATION_SCHEMA.GEOMETRIC_REPRESENTATION_CONTEXT_WITH_PARAMETER' IN TYPEOF(using_rep.context_of_items)))) = 0;
END_ENTITY;
(*

Attribute definitions:

segments: the list of kinematic_path_segments for the kinematic_path. There shall exist at least one kinematic_path_segment for the kinematic_path.

t_start: the parameter value at the start of the kinematic_path.

n_segments: a number of segments for the kinematic_path.

closed_path: if the transition_code of the last segment is not discontinuous, then this defines a cyclic movement.

Formal propositions:

WR1: A kinematic_path shall only be used in representations that have a context of type geometric_representation_context_with_parameter.

8.4.10 kinematic_path_defined_by_nodes   EXPRESS-G

A kinematic_path_defined_by_nodes is a type of kinematic_path whose segments are of type path_node.

EXPRESS specification:

*)
ENTITY kinematic_path_defined_by_nodes
  SUBTYPE OF (kinematic_path);
  SELF\kinematic_path.segments : LIST[1:?] OF path_node;
  placement_start : placement;
END_ENTITY;
(*

Attribute definitions:

segments: a list of one or more path_nodes.

placement_start: the initial placement before the first segment.

8.4.11 kinematic_path_defined_by_curves   EXPRESS-G

A kinematic_path_defined_by_curves is a type of kinematic_path whose segments are of type curve_based_path_with_orientation.

EXPRESS specification:

*)
ENTITY kinematic_path_defined_by_curves
  SUBTYPE OF (kinematic_path);
  SELF\kinematic_path.segments : LIST[1:?] OF curve_based_path_with_orientation;
END_ENTITY;
(*

Attribute definitions:

segments: a list of one or more curve_based_path_with_orientations.

8.4.12 kinematic_path_segment   EXPRESS-G

A kinematic_path_segment is a type of founded_item. Each kinematic_path_segment is either a path_node or a curve_based_path_with_orientation.

EXPRESS specification:

*)
ENTITY kinematic_path_segment ABSTRACT
  SUPERTYPE OF (ONEOF (path_node,
                       curve_based_path_with_orientation))
  SUBTYPE OF (founded_item);
  t_end : parameter_value;
  transition : transition_code;
END_ENTITY;
(*

Attribute definitions:

t_end: the parameter value at the end of the kinematic_path_segment.

transition: the transition_code that defines on how to continue with the next following segment (if any).

8.4.13 path_parameter_representation   EXPRESS-G

A path_parameter_representation is a type of definitional_representation that is a collector of parametric curves.

EXPRESS specification:

*)
ENTITY path_parameter_representation
  SUBTYPE OF (definitional_representation);
  SELF\representation.context_of_items : path_parameter_representation_context;
  SELF\representation.items : SET[1:?] OF bounded_curve;
WHERE
  WR1: SELF\representation.context_of_items\geometric_representation_context.coordinate_space_dimension = 2;
END_ENTITY;
(*

Attribute definitions:

context_of_items: the path_parameter_representation_context that is a context of the path_parameter_representation.

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

Formal propositions:

WR1: The attribute context_of_items shall also be of type geometric_representation_context and shall have a coordinate_space_dimension of 2.

8.4.14 path_parameter_representation_context   EXPRESS-G

A path_parameter_representation_context is a type of geometric_representation_context and of parametric_representation_context.

EXPRESS specification:

*)
ENTITY path_parameter_representation_context
  SUBTYPE OF (geometric_representation_context, parametric_representation_context);
END_ENTITY;
(*

8.4.15 path_node   EXPRESS-G

A path_node is a type of kinematic_path_segment that is a constituent of a path definition. It consists of a linear transformation and its associated motion parameter. Each path_node is either a point_to_point_path, a circular_path, a linear_path, or a curve_based_path.

EXPRESS specification:

*)
ENTITY path_node ABSTRACT
  SUPERTYPE OF (ONEOF (point_to_point_path,
                       circular_path,
                       linear_path,
                       curve_based_path))
  SUBTYPE OF (kinematic_path_segment);
  placement_end : placement;
END_ENTITY;
(*

Attribute definitions:

placement_end: a linear transformation that specifies a local frame on a path.

8.4.16 point_to_point_path   EXPRESS-G

A point_to_point_path is a type of path_node. A point_to_point_path defines the frames which are to be traversed. It does not have a prescribed interpolation.

NOTE    The interpolation is left to the software that uses the data.

EXPRESS specification:

*)
ENTITY point_to_point_path
  SUBTYPE OF (path_node);
DERIVE
  SELF\kinematic_path_segment.transition : transition_code := discontinuous;
END_ENTITY;
(*

Attribute definitions:

transition: an inherited attribute that shall be of type transition_code which value is discontinuous.

8.4.17 circular_path   EXPRESS-G

A circular_path is a type of path_node. A circular_path describes a portion of a complete kinematic_path such that the interpolation rule gives a circle for the translational part of the motion of the origin of the frame of the kinematic_link. The interpolation for the orientation is performed in synchronous fashion with the interpolation of translation.

EXPRESS specification:

*)
ENTITY circular_path
  SUBTYPE OF (path_node);
  via_point : cartesian_point;
END_ENTITY;
(*

Attribute definitions:

via_point: an intermediate point through which the circular_path passes.

8.4.18 linear_path   EXPRESS-G

A linear_path is a type of path_node. A linear_path is an arcwise connected bounded linear path element defined by the two placements of the path_nodes at the beginning and the end of the path element. The transformations between the values of the motion parameters given in these path_nodes are obtained by linear interpolation.

EXPRESS specification:

*)
ENTITY linear_path
  SUBTYPE OF (path_node);
DERIVE
  SELF\kinematic_path_segment.transition : transition_code := continuous;
END_ENTITY;
(*

Attribute definitions:

transition: an inherited attribute that shall be of type transition_code which value is continuous.

8.4.19 curve_based_path   EXPRESS-G

A curve_based_path is a type of path_node. A curve_based_path describes a portion of a complete kinematic_path such that the interpolation rule follows a curve for the translational part of the motion of the origin of the frame of the kinematic_link. The interpolation for the orientation is performed in synchronous fashion with the interpolation of translation.

EXPRESS specification:

*)
ENTITY curve_based_path
  SUBTYPE OF (path_node);
  path_curve : curve;
END_ENTITY;
(*

Attribute definitions:

path_curve: the curve which defines the translational interpolation between the path_nodes that are connected by the curve_based_path.

8.4.20 curve_based_path_with_orientation   EXPRESS-G

A curve_based_path_with_orientation is a type of kinematic_path_segment that controls both, the position and orientation of a link along curves. The origin of the link frame shall move along the position_curve. The orientation_curve in respect to the position_curve for the same parametrisation value specifies the z-direction of the link frame. The direction of the position_curve specifies the x-direction of the link frame. Both curves shall have the same parametrization and shall not touch or intersect each other.

EXPRESS specification:

*)
ENTITY curve_based_path_with_orientation
  SUBTYPE OF (kinematic_path_segment);
  position_curve : bounded_curve;
  orientation_curve : bounded_curve;
WHERE
  WR1: TYPEOF(position_curve) = TYPEOF(orientation_curve);
END_ENTITY;
(*

Attribute definitions:

position_curve: specifies the curve along which the origin of the link frame is moved.

orientation_curve: specifies the rotation of the link frame relative to the position_curve for the same parametrisation value.

Formal propositions:

WR1: The bounded_curve referenced by position_curve shall match the bounded_curve referenced by orientation_curve.

8.4.21 curve_based_path_with_orientation_and_parameters   EXPRESS-G

A curve_based_path_with_orientation_and_parameters is a type of curve_based_path_with_orientation that adds additional parameter curves in addition to the position and orientation curves that follow the same parametrisation. The meaning of the additional parameter curves is not defined in this part of ISO 10303.

EXPRESS specification:

*)
ENTITY curve_based_path_with_orientation_and_parameters
  SUBTYPE OF (curve_based_path_with_orientation);
  parameters : path_parameter_representation;
END_ENTITY;
(*

Attribute definitions:

parameters: specifies the path_parameter_representation that collects the additional parametric curves.

8.5 kinematic_motion_representation_schema subtype constraint definitions

8.5.1 kmr_representation_subtypes   EXPRESS-G

A kmr_representation_subtypes is a constraint that specifies the subtypes interpolated_configuration_representation and link_motion_representation_along_path of representation are mutually exclusive.

EXPRESS specification:

*)
SUBTYPE_CONSTRAINT kmr_representation_subtypes FOR representation;
  ONEOF (interpolated_configuration_representation,
         link_motion_representation_along_path);
END_SUBTYPE_CONSTRAINT;
(*

8.5.2 kmr_geometric_representation_item_subtypes   EXPRESS-G

A kmr_geometric_representation_item_subtypes is a constraint that specifies the subtypes kinematic_path and placement of geometric_representation_item are mutually exclusive.

EXPRESS specification:

*)
SUBTYPE_CONSTRAINT kmr_geometric_representation_item_subtypes FOR geometric_representation_item;
  ONEOF (kinematic_path,
         placement);
END_SUBTYPE_CONSTRAINT;
(*

8.5.3 kmr_geometric_representation_context_subtypes   EXPRESS-G

A kmr_geometric_representation_context_subtypes is a constraint that specifies the subtypes geometric_representation_context_with_parameter and path_parameter_representation_context of geometric_representation_context are mutually exclusive.

EXPRESS specification:

*)
SUBTYPE_CONSTRAINT kmr_geometric_representation_context_subtypes FOR geometric_representation_context;
  ONEOF (geometric_representation_context_with_parameter,
         path_parameter_representation_context);
END_SUBTYPE_CONSTRAINT;
(*



*)
END_SCHEMA;  -- kinematic_motion_representation_schema
(*


© ISO 2019 — All rights reserved