Describe algorithm in whitepaper
This commit is contained in:
1 parent
9080963600
commit
454b947bd9
7 files changed
+82
-2
No files matched your search
@@ -0,0 +1,37 @@
|
||||
# How the inverse kinematics is calculated
|
||||
|
||||
|
||||
|
||||
The concept uses the following assumptions:
|
||||
* The degrees-of-freedom are limited to
|
||||
* Shoulder joint with 3dof and restrictive joint limits
|
||||
* The elbow with only 1dof
|
||||
* The wrist with 3dof and restrictive joint limits
|
||||
* for humans, within the reachable elbow positions, some areas are more likely to be used due to less muscle strain
|
||||
|
||||
## Proposal 1 for am pose estimate
|
||||
|
||||
Input:
|
||||
* controller position
|
||||
* shoulder position estimate
|
||||
|
||||
Output:
|
||||
* Elbow position
|
||||
* Shoulder backslash (required to improve shoulder position estimate)
|
||||
|
||||
### Step 1: Initial elbow position estimate
|
||||
|
||||
We try to get a first good estimate using a very simple method: given
|
||||
* a vector *SpineShoulder*, going from the spine at approx. breast-hight to the shoulder position, and
|
||||
* a vector *ShoulderWrist*, going from the shoulder to the wrist position, which can be easily inferred from the controller position,
|
||||
* calculate the cross-product like this for the **right shoulder**:
|
||||
```var elbow_dir = SpineShoulder.cross(ShoulderWrist)```.
|
||||
|
||||
### Step 2: Consider controller orientation
|
||||
|
||||
|
||||
### Step 3: Consider shoulder orientation
|
||||
|
||||
|
||||
### Step 4: Determine shoulder backslash for shoulder position estimation
|
||||
|
||||
Reference in new issue
Block a user