Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hand Constrained Solver (useful for Hand UI) #4532

Conversation

Cameron-Micka
Copy link
Member

Overview

These changes introduce a new type of solver called "HandConstraint." The HandConstraint provides a solver that constrains the tracked object to a region safe for hand constrained content. (Such as hand UI/menus.) Safe regions are considered areas that don't intersect with the hand.

HandUIExample Scene:

handmenu

A derived class of HandConstraint called "HandConstraintPalmUp" is also included to demonstrate a common behavior of activating the solver tracked object when the palm is facing the user. For example use of this behavior please see the HandUIExample scene.

image

Finally, a new utility class called "HandBounds" has been added to help classes access the AABB bounds of the articulated hands.

Changes

Verification

Please check out the HandUIExample scene to verify example use of the solver.

wiwei and others added 21 commits May 15, 2019 16:53
I think that this step used to build nuget packages as well, until we did the later NuGet work (of packing it up at the end of CI). However, this text appears to have stuck around.

Note that the command it runs actually says "NoNuget"
@danielescudero
Copy link

@Cameron-Micka lets chat :)

@Cameron-Micka Cameron-Micka changed the title Mrtk development hand menu Hand Constrained Solver (useful for Hand UI) May 23, 2019
@Cameron-Micka
Copy link
Member Author

Cameron, there was a good suggestion to communicate somewhere in the inspector that this is an experimental feature. Something like "This is an experimental feature."
Then, a tooltip / detail view could read: "Some things the MRTK works on appear to have a lot of initial value even if we haven’t fully fleshed out the details. For these types of features, we want the community to get a chance to see them and get value out of them early. Because they are early in the cycle, we label them as experimental to indicate that they are still evolving, and subject to change over time."

Sounds good! I'll add an attribute and tag the class as experimental.

@wiwei
Copy link
Contributor

wiwei commented May 31, 2019

/azp run mrtk_pr

@azure-pipelines
Copy link

Azure Pipelines failed to run 1 pipeline(s).

@Cameron-Micka
Copy link
Member Author

@julenka I added an [Experimental] tag decorator drawer so that developers in the futre can easily tag implmentation as experimental without writing custom inspectors. You can see how it looks below:

image

@Cameron-Micka
Copy link
Member Author

We would love to get this in for RC2, so please let me know if anything else should be addressed.

@Cameron-Micka
Copy link
Member Author

/azp run mrtk_pr

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@julenka julenka changed the base branch from mrtk_development to prerelease/2.0.0.rc2_stabilization June 1, 2019 05:17
@julenka julenka merged commit 3f46739 into microsoft:prerelease/2.0.0.rc2_stabilization Jun 1, 2019
@julenka
Copy link
Contributor

julenka commented Jun 1, 2019

Thanks Cameron! I've completed this into the rc2 stabilization branch based on your request that you wanted to get this into stabilization. We have mostly been trying to only take in critical fixes to allow us time to stabilize. However you made this PR quite early in the week and I think the impact on the rest of MRTK is minimal, so it should be fine.

@Cameron-Micka
Copy link
Member Author

Thank you Julia!

@julenka julenka mentioned this pull request Jun 27, 2019
julenka pushed a commit that referenced this pull request Aug 9, 2019
## Overview
This pull request moves the HandConstraint  (and HandConstraintPalmUp) solver from Experimental to Release by adding tests, documentation, and a handful of bug fixes and improvements. Functionality remains pretty much the same from the previous pull request (#4532) and utilizes solver fixes from @Troy-Ferrell's (#5416)

The solver has also be genericized to work with motion controllers.

Thank you @julenka for guidance on how to write unit tests that utilize hands!

## Changes
- Fixes: #5312, #5304, #5257, #5413


## Commits
* Removing global input handler warning.

* Wip check-in, new rotation behavior.

* Disable hand tracking on hands which are currently focus locked.

* Adding additional hand menu features and documentation improvements.

* Hand constraint example improvements.

* Hacks to get solver to not throw null pointers when instantiated. Should be reverted

* Skeleton test for ensuring hand menu follows hand

* Comment and example improvements.

* autoTransitionBetweenHands is now set via the tracked handness of the solver handler

* Adding support for motion controllers.

* Updating example to support new solver changes.

* Moving hand based menus out of the experimental namespace.

* Adding hand constraint documentation.

* Addressing pr feedback.

* Updating example scene to use "new" toggle buttons.

* Improving documentation, especially around IMixedRealityControllers usage.

* Fixing broken documentation.

* Update Documentation/README_Solver.md
MenelvagorMilsom added a commit that referenced this pull request Aug 9, 2019
…Constraint (and HandConstraintPalmUp) solver from Experimental to Release by adding tests, documentation, and a handful of bug fixes and improvements. Functionality remains pretty much the same from the previous pull request (#4532) and utilizes solver fixes from @Troy-Ferrell's (#5416)  The solver has also be genericized to work with motion controllers.  Thank you @julenka for guidance on how to write unit tests that utilize hands!  ## Changes - Fixes: #5312, #5304, #5257, #5413   ## Commits * Removing global input handler warning.  * Wip check-in, new rotation behavior.  * Disable hand tracking on hands which are currently focus locked.  * Adding additional hand menu features and documentation improvements.  * Hand constraint example improvements.  * Hacks to get solver to not throw null pointers when instantiated. Should be reverted  * Skeleton test for ensuring hand menu follows hand  * Comment and example improvements.  * autoTransitionBetweenHands is now set via the tracked handness of the solver handler  * Adding support for motion controllers.  * Updating example to support new solver changes.  * Moving hand based menus out of the experimental namespace.  * Adding hand constraint documentation.  * Addressing pr feedback.  * Updating example scene to use new toggle buttons.  * Improving documentation, especially around IMixedRealityControllers usage.  * Fixing broken documentation.  * Update Documentation/README_Solver.md )
julenka pushed a commit to julenka/MixedRealityToolkit-Unity that referenced this pull request Aug 9, 2019
…oft#5500)

## Overview
This pull request moves the HandConstraint  (and HandConstraintPalmUp) solver from Experimental to Release by adding tests, documentation, and a handful of bug fixes and improvements. Functionality remains pretty much the same from the previous pull request (microsoft#4532) and utilizes solver fixes from @Troy-Ferrell's (microsoft#5416)

The solver has also be genericized to work with motion controllers.

Thank you @julenka for guidance on how to write unit tests that utilize hands!

## Changes
- Fixes: microsoft#5312, microsoft#5304, microsoft#5257, microsoft#5413


## Commits
* Removing global input handler warning.

* Wip check-in, new rotation behavior.

* Disable hand tracking on hands which are currently focus locked.

* Adding additional hand menu features and documentation improvements.

* Hand constraint example improvements.

* Hacks to get solver to not throw null pointers when instantiated. Should be reverted

* Skeleton test for ensuring hand menu follows hand

* Comment and example improvements.

* autoTransitionBetweenHands is now set via the tracked handness of the solver handler

* Adding support for motion controllers.

* Updating example to support new solver changes.

* Moving hand based menus out of the experimental namespace.

* Adding hand constraint documentation.

* Addressing pr feedback.

* Updating example scene to use "new" toggle buttons.

* Improving documentation, especially around IMixedRealityControllers usage.

* Fixing broken documentation.

* Update Documentation/README_Solver.md
julenka pushed a commit that referenced this pull request Aug 9, 2019
…#5560)

* Moving the HandConstraint Solver from Experimental to Release (#5500)

## Overview
This pull request moves the HandConstraint  (and HandConstraintPalmUp) solver from Experimental to Release by adding tests, documentation, and a handful of bug fixes and improvements. Functionality remains pretty much the same from the previous pull request (#4532) and utilizes solver fixes from @Troy-Ferrell's (#5416)

The solver has also be genericized to work with motion controllers.

Thank you @julenka for guidance on how to write unit tests that utilize hands!

## Changes
- Fixes: #5312, #5304, #5257, #5413


## Commits
* Removing global input handler warning.

* Wip check-in, new rotation behavior.

* Disable hand tracking on hands which are currently focus locked.

* Adding additional hand menu features and documentation improvements.

* Hand constraint example improvements.

* Hacks to get solver to not throw null pointers when instantiated. Should be reverted

* Skeleton test for ensuring hand menu follows hand

* Comment and example improvements.

* autoTransitionBetweenHands is now set via the tracked handness of the solver handler

* Adding support for motion controllers.

* Updating example to support new solver changes.

* Moving hand based menus out of the experimental namespace.

* Adding hand constraint documentation.

* Addressing pr feedback.

* Updating example scene to use "new" toggle buttons.

* Improving documentation, especially around IMixedRealityControllers usage.

* Fixing broken documentation.

* Update Documentation/README_Solver.md

* Update Documentation/README_Solver.md

Co-Authored-By: David Kline <davidkl@microsoft.com>
MenelvagorMilsom added a commit that referenced this pull request Aug 9, 2019
…rimental to Release (#5500)  ## Overview This pull request moves the HandConstraint  (and HandConstraintPalmUp) solver from Experimental to Release by adding tests, documentation, and a handful of bug fixes and improvements. Functionality remains pretty much the same from the previous pull request (#4532) and utilizes solver fixes from @Troy-Ferrell's (#5416)  The solver has also be genericized to work with motion controllers.  Thank you @julenka for guidance on how to write unit tests that utilize hands!  ## Changes - Fixes: #5312, #5304, #5257, #5413   ## Commits * Removing global input handler warning.  * Wip check-in, new rotation behavior.  * Disable hand tracking on hands which are currently focus locked.  * Adding additional hand menu features and documentation improvements.  * Hand constraint example improvements.  * Hacks to get solver to not throw null pointers when instantiated. Should be reverted  * Skeleton test for ensuring hand menu follows hand  * Comment and example improvements.  * autoTransitionBetweenHands is now set via the tracked handness of the solver handler  * Adding support for motion controllers.  * Updating example to support new solver changes.  * Moving hand based menus out of the experimental namespace.  * Adding hand constraint documentation.  * Addressing pr feedback.  * Updating example scene to use new toggle buttons.  * Improving documentation, especially around IMixedRealityControllers usage.  * Fixing broken documentation.  * Update Documentation/README_Solver.md  * Update Documentation/README_Solver.md  Co-Authored-By: David Kline <davidkl@microsoft.com> )
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.