SysML-v2-Pilot-Implementation icon indicating copy to clipboard operation
SysML-v2-Pilot-Implementation copied to clipboard

ST6RI-523 Extended coordinate transformation

Open hpdekoning opened this issue 3 years ago • 0 comments

Finally a long overdue draft pull request, aligned with the latest state of branch master ...

The following has been implemented:

  • Created initial definitions for curved spatial coordinate frames (3D spherical, cylindrical and planetary) and associated vector quantities in addition to existing Cartesian frames and vectors. Where possible proper reference to ISO 80000 is made.

  • In library packages Quantities.sysml, MeasurementReferences.sysml and ISQSpaceTime.sysml a consistent naming convention for specialization of vector and coordinate frame types and features has been implemented - here shown by example for successive levels of specialization:

    • VectorQuantityValue, ThreeVectorValue
      • '3dVectorQuantityValue'
        • Position3dVector
          • CartesianPosition3dVector
          • CylindricalPosition3dVector
          • SphericalPosition3dVector
          • PlanetaryPosition3dVector

    A similar style has been implemented for coordinate frames, as well as related attributes. The convention is to keep qualifying specializations by prefixing more narrow adjectives to the names of the attribute defs and attributes. It is a little verbose but very regular and self-documenting natural reading. A disadvantage is that normal alphabetical sorting of names does not keep vector / coordinate frame concepts for one kind of quantity together. However this could be achieved through reverse name sorting, or an alternative postfix convention. I am in favor of prefix qualification as this aligns with natural language and the rest of the KerML and SysML libraries.

  • The quantities and measurement references generator has not yet been fully updated to automatically generate all variations of curved coordinate frames and vectors. So the current PR consists of a combination of generated and manually updated ISQ* packages. Currently only position, displacement, Cartesian velocity and Cartesian acceleration are implemented. JIRA issue https://openmbee.atlassian.net/browse/ST6RI-606 to move the ISQ/SI/USCU generator tooling to a Systems Modeling git repo has been added to the backlog.

  • A universalCartesianSpatial3dCoordinateFrame singleton was added (in ISQSpaceTime and in SpatialItems) to be used as a default coordinate frame, similar to the universalClock singleton.

  • The basic geometry example SimpleQuadcopter.sysml (presented in OMG Orlando) was added to Geometry Examples.

Still missing:

  • Transformation functions to convert between different kinds of coordinate frames. Depends also on quantity arithmetic, for scalar components.
  • Complete generator tool update to cover all ISQ vector quantities, and determine for which ones curved coordinate frames make sense.
  • Develop examples and validation cases.

hpdekoning avatar Oct 04 '22 16:10 hpdekoning