Skip to content
This repository has been archived by the owner on Dec 1, 2021. It is now read-only.

Constraints

Janis Sprenger edited this page Feb 18, 2021 · 1 revision

Example for different reaching positions

In the following examples, the x-axis is colored in red and points in the direction of the surface normal. The y-axis is colored in green and points in the direction of the hand. The z-axis is colored in blue.

The following is a proposal on how reach positions can be described with the MGeometry Constraint. This is also a proposal for a project wide standard for describing the coordinate systems of an object for interaction points.

As a standard procedure it is proposed to define the x-axis to point outwards the surface, and the z-axis downwards. Exeption to this is the chair, as mentioned below.

Reach point on a flat surface

As depicted in the image, this demonstrates the placement of an MGeometryConstraint on a flat surface (e.g. side of a box).

  • The ParentToConstraint has the box transform as its parent id and provides a local transformation within the coordinate system of the box to place the constraint on the center of the boxes side surface with the x-axis pointing to the surface normal as depicted in the image.
  • The translation constraint has boundaries (x,y,z) of [0,0], [-side_y/2, +side_y/2], [-side_z/2, + side_z/2]
  • The rotation constraint has boundaries (x,y,z) of [-inf, +inf], [0, 0], [0, 0].

This means, that any part of the surface can be reached from any direction.

Reach point on a cylindrical surface

As depicted in the image, this demonstrates the placement of an MGeometryConstraint on a cylindrical surface (e.g. metal bar). * The ParentToConstraint places the constraint at the end of the handle with the z axis pointing along the axis of the cylinder as depicted in the image.

  • The translation constraint has boundaries (x,y,z) of [+radius_x, + radius_x], [+radius_y, +radius_y], [0, lenght]
  • The rotation constraint has boundaries (x,y,z) of [0, 0], [0, 0], [-inf, +inf]

Thus, the cylinder can be reached on any point on the surface at any rotation around the axis of the cylinder.

Reach a specific point on a tool

As depicted in the image, this demonstrates the specific placement of an MGeometryConstraint on a tool, which requires a very strict orientation of the hand.

  • The ParentToConstraint places the constraint at the right point on the tool handle with the x axis pointing to the normal of the surface and the y axis pointing to the front of the tool.
  • The translation constraint has boundaries [0,0], [0,0], [0,0]
  • The rotation constraint has boundaries [0,0], [0,0], [0,0]

Thus, the constraint has to be matched exactly.

Seating point and dorsum point on a chair

  • The ParentToConstraint places the constraint at the seating point of the chair with the x axis pointing upwards of the surface and the y axis pointing to the front of the chair. This is the also the direction of the thights while sitting.
  • The translation constraint has boundaries [0,0], [-side_y/2, +side_y/2], [-side_z/2, + side_z/2]
  • The rotation constraint has boundaries [-90,90], [0,0], [0,0]

All Images have been generated with the following blender file (blender 2.83): axis_definitions.blend

MOSIM Documentation

Introduction

Documentation

Known Issues

Clone this wiki locally