Application module: Kinematic state | ISO/TS 10303-1798:2018-11(E) © ISO |
This clause specifies the information requirements for the Kinematic state application module. The information requirements are specified as the Application Reference Model (ARM) of this application module.
NOTE 1 A graphical representation of the information requirements is given in Annex C.
NOTE 2 The mapping specification is specified in 5.1. It shows how the information requirements are met by using common resources and constructs defined or imported in the MIM schema of this application module.
This clause defines the information requirements to which implementations shall conform using the EXPRESS language as defined in ISO 10303-11. The following begins the Kinematic_state_arm schema and identifies the necessary external references.
EXPRESS specification:
*)
SCHEMA Kinematic_state_arm;
(*
The following EXPRESS interface statement specifies the elements imported from the ARM of another application module.
EXPRESS specification:
*)
USE FROM
Kinematic_structure_arm;
--
ISO/TS 10303-1797
(*
NOTE 1 The schemas referenced above are specified in the following part of ISO 10303:
Kinematic_structure_arm ISO/TS 10303-1797
NOTE 2 See Annex C, Figures C.1, C.2, C.3and C.4 for a graphical representation of this schema.
This subclause specifies the ARM types for this application module. The ARM types and definitions are specified below.
EXPRESS specification:
*)
TYPE
ksa_initial_application_domain_enumeration =
ENUMERATION
BASED_ON
initial_application_domain_enumeration
WITH
(kinematic_state);
END_TYPE;
(*
Enumerated item definitions:
kinematic_state: the application domain is kinematic state.
The spatial_rotation type allows for the designation of the data types ypr_rotation, and Rotation_about_direction.
The spatial_rotation type enables an arbitrary rotation in 3D space (R3) to be specified either as a ypr_rotation or as a Rotation_about_direction.EXPRESS specification:
*)
TYPE
spatial_rotation =
SELECT
(ypr_rotation,
Rotation_about_direction);
END_TYPE;
(*
NOTE For more detailed information on yaw, pitch, and roll convention see ISO 8855:1991
EXPRESS specification:
*)
TYPE
ypr_enumeration =
ENUMERATION
OF
(yaw,
pitch,
roll);
END_TYPE;
(*
Enumerated item definitions:
yaw: the angle of rotation about the z-axis;
pitch: the angle of rotation about the y′-axis;
roll: the angle of rotation about the x′-axis.
NOTE An EXPRESS function which returns the rotation matrix corresponding to an input ypr_rotation is given in annex E. This function has been provided for applications that use this part of ISO 10303, but need the rotational transformation to be expressed in terms of a rotation matrix rather than in terms of a sequence of rotation angles.
EXPRESS specification:
*)
TYPE
ypr_rotation =
ARRAY[ypr_index(yaw):ypr_index(roll)] OF plane_angle_measure;
END_TYPE;
(*
This subclause specifies the ARM entities for this module. Each ARM application entity is an atomic element that embodies a unique application concept and contains attributes specifying the data elements of the entity. The ARM entities and definitions are specified below.
EXPRESS specification:
*)
ENTITY Cylindrical_pair_value
SUBTYPE OF (Pair_value);
SELF\Pair_value.applies_to_pair : Cylindrical_pair;
actual_translation : length_measure;
actual_rotation : plane_angle_measure;
END_ENTITY;
(*
Attribute definitions:
applies_to_pair: the Cylindrical_pair to which the Cylindrical_pair_value applies.
actual_translation: the translation value.
actual_rotation: the angle of rotation.
NOTE If the gear pair is part of a more complex gear mechanism, the gear pair values as defined here may not be the primary design targets. In the case of a planetary gear mechanism, for example, it is more important to know the rotation angles of the planetary gears with respect to an inertial coordinate system than the rotation angles between the planetary gears and the frames which support them. See [3] for a detailed description of this specific example.
For a given configuration of pairs within a mechanism, the more global motion parameters can be derived, in general, from the individual pair parameters and vice versa. This is not possible, however, generically without knowledge of the configuration. Therefore, the specification of functions which provide such derivations is left to an application protocol for which these derivations are required.
EXPRESS specification:
*)
ENTITY Gear_pair_value
SUBTYPE OF (Pair_value);
SELF\Pair_value.applies_to_pair : Gear_pair;
actual_rotation_1 : plane_angle_measure;
DERIVE
actual_rotation_2 : plane_angle_measure := - actual_rotation_1 *
SELF\pair_value.applies_to_pair\
gear_pair.gear_ratio;
END_ENTITY;
(*
Attribute definitions:
applies_to_pair: the Gear_pair to which the Gear_pair_value applies.
actual_rotation_1: the value of the pair parameter of the first link.
actual_rotation_2: the value of the pair parameter of the second link.
EXPRESS specification:
*)
ENTITY Mechanism_state_representation
SUBTYPE OF (Representation);
SELF\Representation.items : SET[1:?] OF Pair_value;
represented_mechanism : Mechanism_representation;
DERIVE
SELF\Representation.context_of_items : Geometric_coordinate_space := represented_mechanism.context_of_items;
END_ENTITY;
(*
Attribute definitions:
items: an inherited attribute that shall be of type Pair_value. There shall exist at least one Pair_value for the Mechanism_state_representation.
represented_mechanism: specifies the Mechanism_representation for which a particular state is represented.
context_of_items: an inherited attribute that shall be of type Geometric_coordinate_space.
EXPRESS specification:
*)
ENTITY Pair_value
ABSTRACT SUPERTYPE
OF (ONEOF (Sliding_surface_pair_value,
Rolling_surface_pair_value,
Revolute_pair_value,
Prismatic_pair_value,
Screw_pair_value,
Cylindrical_pair_value,
Spherical_pair_value,
Sliding_curve_pair_value,
Rolling_curve_pair_value,
Gear_pair_value,
Rack_and_pinion_pair_value,
Universal_pair_value,
Planar_pair_value,
Unconstrained_pair_value,
Point_on_surface_pair_value,
Point_on_planar_curve_pair_value))
SUBTYPE OF (Detailed_geometric_model_element);
applies_to_pair : Kinematic_pair;
END_ENTITY;
(*
Attribute definitions:
applies_to_pair: the Kinematic_pair to which the Pair_value applies.
EXPRESS specification:
*)
ENTITY Planar_pair_value
SUBTYPE OF (Pair_value);
SELF\Pair_value.applies_to_pair : Planar_pair;
actual_rotation : plane_angle_measure;
actual_translation_x : length_measure;
actual_translation_y : length_measure;
END_ENTITY;
(*
Attribute definitions:
applies_to_pair: the Planar_pair to which the Planar_pair_value applies.
actual_rotation: the value of the angle of rotation for a Planar_pair.
actual_translation_x: the value of translation in x-direction for a Planar_pair.
actual_translation_y: the value of translation in y-direction for a Planar_pair.
EXPRESS specification:
*)
ENTITY Point_on_planar_curve_pair_value
SUBTYPE OF (Pair_value);
SELF\Pair_value.applies_to_pair : Point_on_planar_curve_pair;
actual_point_on_curve : Point_on_curve;
input_orientation : spatial_rotation;
WHERE
WR1: SELF\pair_value.applies_to_pair\point_on_planar_curve_pair.pair_curve
:=: actual_point_on_curve.supporting_curve;
END_ENTITY;
(*
Attribute definitions:
applies_to_pair: the Point_on_planar_curve_pair to which the Point_on_planar_curve_pair_value applies.
actual_point_on_curve: the positional value for the point on the curve.
input_orientation: the input specification of the rotational pair parameter values from which the actual orientation is derived. An input_orientation is either a ypr_rotation or a Rotation_about_direction.
Formal propositions:
WR1: The actual_point_on_curve shall be defined as a point on the pair_curve of the Point_on_planar_curve_pair referenced by applies_to_pair.
EXPRESS specification:
*)
ENTITY Point_on_surface_pair_value
SUBTYPE OF (Pair_value);
SELF\Pair_value.applies_to_pair : Point_on_surface_pair;
actual_point_on_surface : Point_on_surface;
input_orientation : spatial_rotation;
WHERE
WR1: SELF\pair_value.applies_to_pair\Point_on_surface_pair.pair_surface :=:
actual_point_on_surface.supporting_surface;
END_ENTITY;
(*
Attribute definitions:
applies_to_pair: the Point_on_surface_pair to which the Point_on_surface_pair_value applies.
actual_point_on_surface: the positional value for the point on the surface.
input_orientation: the input specification of the rotational pair parameter values from which the actual orientation is derived. An input_orientation is either an ypr_rotation or a Rotation_about_direction.
Formal propositions:
WR1: The actual_point_on_surface shall be defined as a point on the pair_surface of the Point_on_surface_pair referenced by applies_to_pair.
EXPRESS specification:
*)
ENTITY Prismatic_pair_value
SUBTYPE OF (Pair_value);
SELF\Pair_value.applies_to_pair : Prismatic_pair;
actual_translation : length_measure;
END_ENTITY;
(*
Attribute definitions:
applies_to_pair: the Prismatic_pair to which the Prismatic_pair_value applies.
actual_translation: the value of the pair parameter.
EXPRESS specification:
*)
ENTITY Rack_and_pinion_pair_value
SUBTYPE OF (Pair_value);
SELF\Pair_value.applies_to_pair : Rack_and_pinion_pair;
actual_displacement : length_measure;
DERIVE
actual_rotation : plane_angle_measure := 0.0;
END_ENTITY;
(*
Attribute definitions:
applies_to_pair: the Rack_and_pinion_pair to which the Rack_and_pinion_pair_value applies.
actual_displacement: the value of the pair parameter for the rack.
actual_rotation: the resulting rotation of the pinion.
EXPRESS specification:
*)
ENTITY Revolute_pair_value
SUBTYPE OF (Pair_value);
SELF\Pair_value.applies_to_pair : Revolute_pair;
actual_rotation : plane_angle_measure;
END_ENTITY;
(*
Attribute definitions:
applies_to_pair: the Revolute_pair to which the Revolute_pair_value applies.
actual_rotation: the value of the pair parameter.
EXPRESS specification:
*)
ENTITY Rolling_curve_pair_value
SUBTYPE OF (Pair_value);
SELF\Pair_value.applies_to_pair : Rolling_curve_pair;
actual_point_on_curve_1 : Point_on_curve;
WHERE
WR1: SELF\pair_value.applies_to_pair\planar_curve_pair.curve_1 :=:
actual_point_on_curve_1.supporting_curve;
END_ENTITY;
(*
Attribute definitions:
applies_to_pair: the Rolling_curve_pair to which the Rolling_curve_pair_value applies.
actual_point_on_curve_1: the contact point, defined in the parameter space of the curve on the first link.
Formal propositions:
WR1: The actual_point_on_curve_1 shall be defined as a point on curve_1 of the Planar_curve_pair referenced by applies_to_pair.
EXPRESS specification:
*)
ENTITY Rolling_surface_pair_value
SUBTYPE OF (Pair_value);
SELF\Pair_value.applies_to_pair : Rolling_surface_pair;
actual_point_on_surface : Point_on_surface;
actual_rotation : plane_angle_measure;
WHERE
WR1: SELF\pair_value.applies_to_pair\surface_pair.surface_1 :=:
actual_point_on_surface.supporting_surface;
END_ENTITY;
(*
Attribute definitions:
applies_to_pair: the Rolling_surface_pair to which the Rolling_surface_pair_value applies.
actual_point_on_surface: the contact point of the contact surface (surface_1) of the first link.
actual_rotation: the angle required to rotate the xcp-direction of the first link surface around the zc-direction of that surface until it coincides with the xc-direction of the second link surface.
Formal propositions:
WR1: The actual_point_on_surface shall be defined as a point on surface_1 of the Surface_pair referenced by applies_to_pair.
EXPRESS specification:
*)
ENTITY Rotation_about_direction
SUBTYPE OF (Detailed_geometric_model_element);
direction_of_axis : Direction;
rotation_angle : plane_angle_measure;
WHERE
WR1: SIZEOF (direction_of_axis.direction_ratios) = 3;
END_ENTITY;
(*
Attribute definitions:
direction_of_axis: the three-dimensional direction of the axis of rotation.
rotation_angle: the angle of rotation about the axis of rotation.
Formal propositions:
WR1: The direction_of_axis shall be a three-dimensional direction.
EXPRESS specification:
*)
ENTITY Screw_pair_value
SUBTYPE OF (Pair_value);
SELF\Pair_value.applies_to_pair : Screw_pair;
actual_rotation : plane_angle_measure;
END_ENTITY;
(*
Attribute definitions:
applies_to_pair: the Screw_pair to which the Screw_pair_value applies.
actual_rotation: the rotation angle of the Screw_pair.
EXPRESS specification:
*)
ENTITY Sliding_curve_pair_value
SUBTYPE OF (Pair_value);
SELF\Pair_value.applies_to_pair : Sliding_curve_pair;
actual_point_on_curve_1 : Point_on_curve;
actual_point_on_curve_2 : Point_on_curve;
WHERE
WR1: SELF\pair_value.applies_to_pair\planar_curve_pair.curve_1 :=:
actual_point_on_curve_1.supporting_curve;
WR2: SELF\pair_value.applies_to_pair\planar_curve_pair.curve_2 :=:
actual_point_on_curve_2.supporting_curve;
END_ENTITY;
(*
Attribute definitions:
applies_to_pair: the Sliding_curve_pair to which the Sliding_curve_pair_value applies.
actual_point_on_curve_1: the contact point, defined in the parameter space of the curve on the first link.
actual_point_on_curve_2: the contact point, defined in the parameter space of the curve on the second link.
Formal propositions:
WR1: The actual_point_on_curve_1 shall be defined as a point on curve_1 of the Planar_curve_pair referenced by applies_to_pair.
WR2: The actual_point_on_curve_2 shall be defined as a point on curve_2 of the Planar_curve_pair referenced by applies_to_pair.
EXPRESS specification:
*)
ENTITY Sliding_surface_pair_value
SUBTYPE OF (Pair_value);
SELF\Pair_value.applies_to_pair : Sliding_surface_pair;
actual_point_on_surface_1 : Point_on_surface;
actual_point_on_surface_2 : Point_on_surface;
actual_rotation : plane_angle_measure;
WHERE
WR1: SELF\pair_value.applies_to_pair\surface_pair.surface_1 :=:
actual_point_on_surface_1.supporting_surface;
WR2: SELF\pair_value.applies_to_pair\surface_pair.surface_2 :=:
actual_point_on_surface_2.supporting_surface;
END_ENTITY;
(*
Attribute definitions:
applies_to_pair: the Sliding_surface_pair to which the Sliding_surface_pair_value applies.
actual_point_on_surface_1: the contact point of the contact surface (surface_1) of the first link.
actual_point_on_surface_2: the contact point of the contact surface (surface_2) of the second link.
actual_rotation: the angle required to rotate the xcp-direction of the first link surface around the zc-direction of that surface until it coincides with the xc-direction of the second link surface.
Formal propositions:
WR1: The actual_point_on_surface_1 shall be defined as a point on surface_1 of the Surface_pair referenced by applies_to_pair.
WR2: The actual_point_on_surface_2 shall be defined as a point on surface_2 of the Surface_pair referenced by applies_to_pair.
EXPRESS specification:
*)
ENTITY Spherical_pair_value
SUBTYPE OF (Pair_value);
SELF\Pair_value.applies_to_pair : Spherical_pair;
input_orientation : spatial_rotation;
END_ENTITY;
(*
Attribute definitions:
applies_to_pair: the Spherical_pair to which the Spherical_pair_value applies.
input_orientation: the input specification of the pair parameter values from which the actual orientation is derived. An input_orientation is either an ypr_rotation or a Rotation_about_direction.
EXPRESS specification:
*)
ENTITY Unconstrained_pair_value
SUBTYPE OF (Pair_value);
SELF\Pair_value.applies_to_pair : Unconstrained_pair;
actual_placement : Axis_placement_3d;
END_ENTITY;
(*
Attribute definitions:
applies_to_pair: the Unconstrained_pair to which the Unconstrained_pair_value applies.
actual_placement: the placement of the second pair frame with respect to the first pair frame for the Unconstrained_pair.
EXPRESS specification:
*)
ENTITY Universal_pair_value
SUBTYPE OF (Pair_value);
SELF\Pair_value.applies_to_pair : Universal_pair;
first_rotation_angle : plane_angle_measure;
second_rotation_angle : plane_angle_measure;
END_ENTITY;
(*
Attribute definitions:
applies_to_pair: the Universal_pair to which the Universal_pair_value applies.
first_rotation_angle: the angle of rotation around the first axis.
second_rotation_angle: the angle of rotation around the second axis.
This subclause specifies the ARM subtype constraint for this module. The subtype constraint places a constraint on the possible super-type / subtype instantiations. The ARM subtype constraint and definition is specified below.
The kss_geometric_representation_item_subtypes constraint specifies a constraint that applies to instances of Detailed_geometric_model_element and enforces the rule that its subtypes Rotation_about_direction and Su_parameters are exclusive.
EXPRESS specification:
*)
SUBTYPE_CONSTRAINT kss_geometric_representation_item_subtypes FOR Detailed_geometric_model_element;
ONEOF (Rotation_about_direction,
Su_parameters);
END_SUBTYPE_CONSTRAINT;
(*
This subclause specifies the ARM function for this module. The ARM function and definition is specified below.
EXPRESS specification:
*)
FUNCTION ypr_index (ypr : ypr_enumeration) : INTEGER;
CASE ypr OF yaw : RETURN (1); pitch : RETURN (2); roll : RETURN (3); END_CASE; RETURN (?);
END_FUNCTION;
(*
Argument definitions:
ypr: one axis of rotation as specified by the ypr_enumeration.
*)
END_SCHEMA; -- Kinematic_state_arm
(*
© ISO 2018 — All rights reserved