Browse Source

[release] major version update for g1 : code refactoring and optimization, etc

main
silencht 1 year ago
parent
commit
f05bf475bd
  1. 1
      LICENSE
  2. 191
      README.md
  3. 21
      act/LICENSE
  4. 8
      act/README.md
  5. 23
      act/conda_env.yaml
  6. 201
      act/detr/LICENSE
  7. 9
      act/detr/README.md
  8. 128
      act/detr/main.py
  9. 9
      act/detr/models/__init__.py
  10. 144
      act/detr/models/backbone.py
  11. 302
      act/detr/models/detr_vae.py
  12. 93
      act/detr/models/position_encoding.py
  13. 314
      act/detr/models/transformer.py
  14. 10
      act/detr/setup.py
  15. 1
      act/detr/util/__init__.py
  16. 88
      act/detr/util/box_ops.py
  17. 468
      act/detr/util/misc.py
  18. 107
      act/detr/util/plot_utils.py
  19. 367
      act/imitate_episodes.py
  20. 115
      act/policy.py
  21. 286
      act/utils.py
  22. 0
      assets/inspire_hand/inspire_hand.yml
  23. 819
      assets/inspire_hand/inspire_hand_left.urdf
  24. 830
      assets/inspire_hand/inspire_hand_right.urdf
  25. BIN
      assets/inspire_hand/meshes/L_hand_base_link.STL
  26. 1474
      assets/inspire_hand/meshes/L_hand_base_link.STL.convex.stl
  27. BIN
      assets/inspire_hand/meshes/Link11_L.STL
  28. 354
      assets/inspire_hand/meshes/Link11_L.STL.convex.stl
  29. BIN
      assets/inspire_hand/meshes/Link11_R.STL
  30. 306
      assets/inspire_hand/meshes/Link11_R.STL.convex.stl
  31. BIN
      assets/inspire_hand/meshes/Link12_L.STL
  32. 802
      assets/inspire_hand/meshes/Link12_L.STL.convex.stl
  33. BIN
      assets/inspire_hand/meshes/Link12_R.STL
  34. 754
      assets/inspire_hand/meshes/Link12_R.STL.convex.stl
  35. BIN
      assets/inspire_hand/meshes/Link13_L.STL
  36. 514
      assets/inspire_hand/meshes/Link13_L.STL.convex.stl
  37. BIN
      assets/inspire_hand/meshes/Link13_R.STL
  38. 498
      assets/inspire_hand/meshes/Link13_R.STL.convex.stl
  39. BIN
      assets/inspire_hand/meshes/Link14_L.STL
  40. 578
      assets/inspire_hand/meshes/Link14_L.STL.convex.stl
  41. BIN
      assets/inspire_hand/meshes/Link14_R.STL
  42. 578
      assets/inspire_hand/meshes/Link14_R.STL.convex.stl
  43. BIN
      assets/inspire_hand/meshes/Link15_L.STL
  44. 578
      assets/inspire_hand/meshes/Link15_L.STL.convex.stl
  45. BIN
      assets/inspire_hand/meshes/Link15_R.STL
  46. 546
      assets/inspire_hand/meshes/Link15_R.STL.convex.stl
  47. BIN
      assets/inspire_hand/meshes/Link16_L.STL
  48. 578
      assets/inspire_hand/meshes/Link16_L.STL.convex.stl
  49. BIN
      assets/inspire_hand/meshes/Link16_R.STL
  50. 578
      assets/inspire_hand/meshes/Link16_R.STL.convex.stl
  51. BIN
      assets/inspire_hand/meshes/Link17_L.STL
  52. 578
      assets/inspire_hand/meshes/Link17_L.STL.convex.stl
  53. BIN
      assets/inspire_hand/meshes/Link17_R.STL
  54. 546
      assets/inspire_hand/meshes/Link17_R.STL.convex.stl
  55. BIN
      assets/inspire_hand/meshes/Link18_L.STL
  56. 562
      assets/inspire_hand/meshes/Link18_L.STL.convex.stl
  57. BIN
      assets/inspire_hand/meshes/Link18_R.STL
  58. 562
      assets/inspire_hand/meshes/Link18_R.STL.convex.stl
  59. BIN
      assets/inspire_hand/meshes/Link19_L.STL
  60. 578
      assets/inspire_hand/meshes/Link19_L.STL.convex.stl
  61. BIN
      assets/inspire_hand/meshes/Link19_R.STL
  62. 546
      assets/inspire_hand/meshes/Link19_R.STL.convex.stl
  63. BIN
      assets/inspire_hand/meshes/Link20_L.STL
  64. 578
      assets/inspire_hand/meshes/Link20_L.STL.convex.stl
  65. BIN
      assets/inspire_hand/meshes/Link20_R.STL
  66. 578
      assets/inspire_hand/meshes/Link20_R.STL.convex.stl
  67. BIN
      assets/inspire_hand/meshes/Link21_L.STL
  68. 578
      assets/inspire_hand/meshes/Link21_L.STL.convex.stl
  69. BIN
      assets/inspire_hand/meshes/Link21_R.STL
  70. 546
      assets/inspire_hand/meshes/Link21_R.STL.convex.stl
  71. BIN
      assets/inspire_hand/meshes/Link22_L.STL
  72. 626
      assets/inspire_hand/meshes/Link22_L.STL.convex.stl
  73. BIN
      assets/inspire_hand/meshes/Link22_R.STL
  74. 626
      assets/inspire_hand/meshes/Link22_R.STL.convex.stl
  75. BIN
      assets/inspire_hand/meshes/R_hand_base_link.STL
  76. 1554
      assets/inspire_hand/meshes/R_hand_base_link.STL.convex.stl
  77. BIN
      assets/inspire_hand/meshes/left_ankle_pitch_link.STL
  78. BIN
      assets/inspire_hand/meshes/left_ankle_roll_link.STL
  79. BIN
      assets/inspire_hand/meshes/left_elbow_pitch_link.STL
  80. BIN
      assets/inspire_hand/meshes/left_elbow_roll_link.STL
  81. BIN
      assets/inspire_hand/meshes/left_hand_link.STL
  82. BIN
      assets/inspire_hand/meshes/left_hip_pitch_link.STL
  83. BIN
      assets/inspire_hand/meshes/left_hip_roll_link.STL
  84. BIN
      assets/inspire_hand/meshes/left_hip_yaw_link.STL
  85. BIN
      assets/inspire_hand/meshes/left_knee_link.STL
  86. BIN
      assets/inspire_hand/meshes/left_shoulder_pitch_link.STL
  87. BIN
      assets/inspire_hand/meshes/left_shoulder_roll_link.STL
  88. BIN
      assets/inspire_hand/meshes/left_shoulder_yaw_link.STL
  89. BIN
      assets/inspire_hand/meshes/left_wrist_pitch_link.STL
  90. BIN
      assets/inspire_hand/meshes/logo_link.STL
  91. BIN
      assets/inspire_hand/meshes/pelvis.STL
  92. BIN
      assets/inspire_hand/meshes/right_ankle_pitch_link.STL
  93. BIN
      assets/inspire_hand/meshes/right_ankle_roll_link.STL
  94. BIN
      assets/inspire_hand/meshes/right_elbow_pitch_link.STL
  95. BIN
      assets/inspire_hand/meshes/right_elbow_roll_link.STL
  96. BIN
      assets/inspire_hand/meshes/right_hand_link.STL
  97. BIN
      assets/inspire_hand/meshes/right_hip_pitch_link.STL
  98. BIN
      assets/inspire_hand/meshes/right_hip_roll_link.STL
  99. BIN
      assets/inspire_hand/meshes/right_hip_yaw_link.STL
  100. BIN
      assets/inspire_hand/meshes/right_knee_link.STL

1
LICENSE

@ -26,5 +26,6 @@ This code builds upon following open-source code-bases. Please visit the URLs to
8) https://github.com/unitreerobotics/unitree_dds_wrapper
9) https://github.com/tonyzhaozh/act
10) https://github.com/facebookresearch/detr
11) https://github.com/Dingry/BunnyVisionPro
------------------

191
README.md

@ -1,13 +1,38 @@
# Video Demo
# 📺 Video Demo
<img src="./img/1.webp" autoplay loop="loop" style="width: 49%" controls></img><img src="./img/2.webp" autoplay loop="loop" style="width: 49%" controls></img>
# Introduction
This repository implements teleoperation of the humanoid robot Unitree H1_2 using Apple Vision Pro.
# Prerequisites
# 0. 📖 Introduction
This repository implements teleoperation of the **Unitree humanoid robot** using **Apple Vision Pro**.
Here are the robots that will be supported,
<table>
<tr>
<th style="text-align: center;"> &#129302; Robot </th>
<th style="text-align: center;"> &#9898; Status </th>
</tr>
<tr>
<td style="text-align: center;"> G1(29DoF) + Dex3-1 </td>
<td style="text-align: center;"> &#9989; Completed </td>
</tr>
<tr>
<td style="text-align: center;"> G1(23DoF) </td>
<td style="text-align: center;"> &#9201; In Progress </td>
</tr>
<tr>
<td style="text-align: center;"> H1(Arm 4DoF) </td>
<td style="text-align: center;"> &#9201; In Progress </td>
</tr>
<tr>
<td style="text-align: center;"> H1_2(Arm 7DoF) + Inspire </td>
<td style="text-align: center;"> &#9201; In Progress </td>
</tr>
</table>
# 1. 📦 Prerequisites
We tested our code on Ubuntu 20.04 and Ubuntu 22.04, other operating systems may be configured differently.
@ -15,7 +40,7 @@ For more information, you can refer to [Official Documentation ](https://support
## inverse kinematics
## 1.1 🦾 inverse kinematics
```bash
conda create -n tv python=3.8
@ -26,7 +51,7 @@ pip install meshcat
pip install casadi
```
## unitree_dds_wrapper
## 1.2 🕹️ unitree_dds_wrapper
```bash
# Install the Python version of the unitree_dds_wrapper.
@ -35,11 +60,13 @@ cd unitree_dds_wrapper/python
pip install -e .
```
> p.s. This is a temporary version, and it will be replaced with [unitree_sdk2_python](https://github.com/unitreerobotics/unitree_sdk2_python) in the future.
## TeleVision and Apple Vision Pro configuration
### basic
# 2. 🛠️ TeleVision and Apple Vision Pro configuration
## 2.1 📥 basic
```bash
cd ~
@ -49,13 +76,7 @@ pip install -r requirements.txt
cd act/detr && pip install -e .
```
### Isaac Gym
If you want to try teleoperation example in a simulated environment (`teleop_hand.py`):
1. Download Isaac Gym: https://developer.nvidia.com/isaac-gym/download
2. Extracting to the current directory, go to the `IsaacGym_Preview_4_Package/isaacgym/python` directory and execute the command: `pip install -e .`
### Local streaming
## 2.2 🔌 Local streaming
**Apple** does not allow WebXR on non-https connections. To test the application locally, we need to create a self-signed certificate and install it on the client. You need a ubuntu machine and a router. Connect the VisionPro and the ubuntu machine to the same router.
@ -66,7 +87,9 @@ If you want to try teleoperation example in a simulated environment (`teleop_han
ifconfig | grep inet
```
Suppose the local ip address of the ubuntu machine is `192.168.123.2`
Suppose the local ip address of the **Host machine** is `192.168.123.2`
> p.s. you can use `ifconfig` command to check your **Host machine** ip address.
3. create certificate:
@ -96,44 +119,70 @@ Copy the `rootCA.pem` via AirDrop to VisionPro and install it.
Settings > General > About > Certificate Trust Settings. Under "Enable full trust for root certificates", turn on trust for the certificate.
settings > Apps > Safari > Advanced > Feature Flags > Enable WebXR Related Features
Settings > Apps > Safari > Advanced > Feature Flags > Enable WebXR Related Features.
## 2.3 🔎 Test environment
This step is to verify that the environment is installed correctly.
1. Download Isaac Gym: https://developer.nvidia.com/isaac-gym/download
6. open the browser on Safari on VisionPro and go to https://192.168.123.2:8012?ws=wss://192.168.123.2:8012
Extracting to the current directory, go to the `IsaacGym_Preview_4_Package/isaacgym/python` directory and execute the command:
7. Click `Enter VR` and `Allow` to start the VR session.
```bash
pip install -e .
```
### Simulation Teleoperation Example
1. After setup up streaming with either local or network streaming following the above instructions, you can try teleoperating two robot hands in Issac Gym:
2. After setup up streaming with local following the above instructions, you can try teleoperating two robot hands in Issac Gym:
```bash
cd teleop && python teleop_hand.py
cd teleop
python teleop_test_gym.py
```
2. Go to your vuer site on VisionPro, click `Enter VR` and `Allow` to enter immersive environment.
3. Wear your Apple Vision Pro device.
4. Open Safari on Apple Vision Pro and visit: https://192.168.123.2:8012?ws=wss://192.168.123.2:8012
> p.s. This IP address should match the IP address of your **Host machine**.
5. Click `Enter VR` and `Allow` to start the VR session.
3. See your hands in 3D!
6. See your hands in 3D!
<div style="center">
<img src="https://oss-global-cdn.unitree.com/static/d079e884c3074e8495f81e78c9586f7f_2556x1179.jpg" width="50%">
</div>
# 3. 🚀 Usage
Please read the [Official Documentation ](https://support.unitree.com/home/zh/Teleoperation) at least once before starting this program.
<!-- <p style="text-align: center;">
<img src="https://doc-cdn.unitree.com/static/2024/7/25/4b1b2327d4774abfbe8ef1c084d81cd7_2686x1627.png" style="display: block; margin: auto; width: 30%;">
</p> -->
## 3.1 🖼️ Image Server
Copy `image_server.py` in the `avp_teleoperate/teleop/image_server` directory to the **PC2** of Unitree Robot (G1/H1/H1_2/etc.), and execute the following command **in the PC2**:
```bash
# Now located in Unitree Robot PC2
python image_server.py
# You can see the terminal output as follows:
# Image server has started, waiting for client connections...
# Image Resolution: width is x, height is x
```
# Usage
After image service is started, you can use `image_client.py` **in the Host** terminal to test whether the communication is successful:
Please read the [Official Documentation ](https://support.unitree.com/home/zh/Teleoperation) at least once before starting this program.
```bash
python image_client.py
```
## 3.2 ✋ Inspire hands Server (optional)
## Dexterous hands service
You can refer to [Dexterous Hand Development](https://support.unitree.com/home/zh/H1_developer/Dexterous_hand) to configure related environments and compile control programs. First, use [this URL](https://oss-global-cdn.unitree.com/static/0a8335f7498548d28412c31ea047d4be.zip) to download the dexterous hand control interface program. Copy it to PC of Unitree H1_2.
You can refer to [Dexterous Hand Development](https://support.unitree.com/home/zh/H1_developer/Dexterous_hand) to configure related environments and compile control programs. First, use [this URL](https://oss-global-cdn.unitree.com/static/0a8335f7498548d28412c31ea047d4be.zip) to download the dexterous hand control interface program and copy it to PC of Unitree H1_2. On Unitree H1_2's PC, execute command:
On Unitree H1_2's PC, execute command:
```bash
sudo apt install libboost-all-dev libspdlog-dev
@ -149,59 +198,82 @@ sudo ./inspire_hand -s /dev/ttyUSB0
If two hands open and close continuously, it indicates success. Once successful, close the `./h1_hand_example` program in Terminal 2.
## 3.3 🚀 Start
## Image Server
> ![Warning](https://img.shields.io/badge/Warning-Important-red)
>
> 1. Everyone must keep a safe distance from the robot to prevent any potential danger!
>
> 2. Please make sure to read the [Official Documentation](https://support.unitree.com/home/zh/Teleoperation) at least once before running this program.
Copy `image_server.py` in the `avp_teleoperate/teleop/image_server` directory to the PC of Unitree H1_2, and execute the following command **in the PC**:
It's best to have two operators to run this program, referred to as **Operator A** and **Operator B**.
Now, **Operator B** execute the following command on **Host machine** :
```bash
sudo python image_server.py
python teleop_hand_and_arm.py
```
After image service is started, you can use `image_client.py` **in the Host** terminal to test whether the communication is successful:
And then, **Operator A**
```bash
python image_client.py
```
1. Wear your Apple Vision Pro device.
## Start
2. Open Safari on Apple Vision Pro and visit : https://192.168.123.2:8012?ws=wss://192.168.123.2:8012
> Warning : All persons must maintain an adequate safety distance from the robot to avoid danger!
> p.s. This IP address should match the IP address of your **Host machine**.
```bash
python teleop_hand_and_arm.py
```
3. Click `Enter VR` and `Allow` to start the VR session.
When host terminal outputs "Please enter the start signal (enter 'r' to start the subsequent program):", **Operator B** can start teleoperation program by pressing the **r** key in the terminal.
At this time, **Operator A** can remotely control the robot's arms and dexterous hands.
# Codebase Tutorial
Next, **Operator B** can press **s** key to begin recording data in the 'record image' window that opens, and press **s** again to stop. This can be repeated as necessary.
The overall structure of the code remains the same as TeleVision, and we only focus on the modified file directories related to Unitree Robot.
## 3.4 🔚 Exit
To exit the program, **Operator B** can press the **q** key in the 'record image' window.
> ![Warning](https://img.shields.io/badge/Warning-Important-red)
>
> To avoid damaging the robot, **Operator A** need to make sure the robot's arms are in a natural down position before exiting.
# 4. 🗺️ Codebase Tutorial
```
avp_teleoperate/
├── act [Documents Related to ACT Policy for Imitation Learning]
├── assets [Storage of robot URDF-related files]
├── scripts
├── teleop
│ ├── image_server/ [Image Transfer Server and Client Code]
│ │ ├── image_client.py [Client (only used to test whether the image stream service is OK, not used for teleoperation)]
│ │ ├── image_server.py [Capture images from binocular cameras and send via network (performed on Unitree H1_2)]
│ ├── image_server
│ │ ├── image_client.py [Used to receive image data from the robot image server]
│ │ ├── image_server.py [Capture images from cameras and send via network (Running on robot's on-board computer)]
│ │
│ ├── open_television
│ │ ├── television.py [Using Vuer to capture wrist and hand data from apple vision pro]
│ │ ├── tv_wrapper.py [Post-processing of captured data]
│ │
│ ├── robot_control/ [Storage of IK solver, arm and hand control related documents]
│ ├── robot_control
│ │ ├── robot_arm_ik.py [Inverse kinematics of the arm]
│ │ ├── robot_arm.py [Control dual arm joints and lock the others]
│ │ ├── robot_hand.py [Control hand joints]
│ │ ├── robot_hand_inspire.py [Control inspire hand joints]
│ │ ├── robot_hand_unitree.py [Control unitree hand joints]
│ │
│ ├── utils
│ │ ├── episode_writer.py [Used to record data for imitation learning]
│ │ ├── mat_tool.py [Some small math tools]
│ │ ├── weighted_moving_filter.py [For filtering joint data]
│ │
│ │──teleop_hand_and_arm.py [Startup execution code for teleoperation]
| |——teleop_hand.py [Can be used for testing the environment configuration]
| |——teleop_test_gym.py [Can be used to verify that the environment is installed correctly]
```
# Acknowledgement
# 5. 🙏 Acknowledgement
This code builds upon following open-source code-bases. Please visit the URLs to see the respective LICENSES:
@ -215,3 +287,4 @@ This code builds upon following open-source code-bases. Please visit the URLs to
8) https://github.com/unitreerobotics/unitree_dds_wrapper
9) https://github.com/tonyzhaozh/act
10) https://github.com/facebookresearch/detr
11) https://github.com/Dingry/BunnyVisionPro

21
act/LICENSE

@ -1,21 +0,0 @@
MIT License
Copyright (c) 2023 Tony Z. Zhao
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

8
act/README.md

@ -1,8 +0,0 @@
This part of the codebase is modified from ACT https://github.com/tonyzhaozh/act under MIT License.
@article{zhao2023learning,
title={Learning fine-grained bimanual manipulation with low-cost hardware},
author={Zhao, Tony Z and Kumar, Vikash and Levine, Sergey and Finn, Chelsea},
journal={arXiv preprint arXiv:2304.13705},
year={2023}
}

23
act/conda_env.yaml

@ -1,23 +0,0 @@
name: aloha
channels:
- pytorch
- nvidia
- conda-forge
dependencies:
- python=3.9
- pip=23.0.1
- pytorch=2.0.0
- torchvision=0.15.0
- pytorch-cuda=11.8
- pyquaternion=0.9.9
- pyyaml=6.0
- rospkg=1.5.0
- pexpect=4.8.0
- mujoco=2.3.3
- dm_control=1.0.9
- py-opencv=4.7.0
- matplotlib=3.7.1
- einops=0.6.0
- packaging=23.0
- h5py=3.8.0
- ipython=8.12.0

201
act/detr/LICENSE

@ -1,201 +0,0 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright 2020 - present, Facebook, Inc
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

9
act/detr/README.md

@ -1,9 +0,0 @@
This part of the codebase is modified from DETR https://github.com/facebookresearch/detr under APACHE 2.0.
@article{Carion2020EndtoEndOD,
title={End-to-End Object Detection with Transformers},
author={Nicolas Carion and Francisco Massa and Gabriel Synnaeve and Nicolas Usunier and Alexander Kirillov and Sergey Zagoruyko},
journal={ArXiv},
year={2020},
volume={abs/2005.12872}
}

128
act/detr/main.py

@ -1,128 +0,0 @@
# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
import argparse
from pathlib import Path
import numpy as np
import torch
from .models import build_ACT_model, build_CNNMLP_model
import IPython
e = IPython.embed
def get_args_parser():
parser = argparse.ArgumentParser('Set transformer detector', add_help=False)
parser.add_argument('--lr', default=1e-4, type=float) # will be overridden
parser.add_argument('--lr_backbone', default=1e-5, type=float) # will be overridden
parser.add_argument('--batch_size', default=2, type=int) # not used
parser.add_argument('--weight_decay', default=1e-4, type=float)
parser.add_argument('--epochs', default=300, type=int) # not used
parser.add_argument('--lr_drop', default=200, type=int) # not used
parser.add_argument('--clip_max_norm', default=0.1, type=float, # not used
help='gradient clipping max norm')
parser.add_argument('--qpos_noise_std', action='store', default=0, type=float, help='lr', required=False)
# Model parameters
# * Backbone
parser.add_argument('--backbone', default='resnet18', type=str, # will be overridden
help="Name of the convolutional backbone to use")
parser.add_argument('--dilation', action='store_true',
help="If true, we replace stride with dilation in the last convolutional block (DC5)")
parser.add_argument('--position_embedding', default='sine', type=str, choices=('sine', 'learned'),
help="Type of positional embedding to use on top of the image features")
parser.add_argument('--camera_names', default=[], type=list, # will be overridden
help="A list of camera names")
# * Transformer
parser.add_argument('--enc_layers', default=4, type=int, # will be overridden
help="Number of encoding layers in the transformer")
parser.add_argument('--dec_layers', default=6, type=int, # will be overridden
help="Number of decoding layers in the transformer")
parser.add_argument('--dim_feedforward', default=2048, type=int, # will be overridden
help="Intermediate size of the feedforward layers in the transformer blocks")
parser.add_argument('--hidden_dim', default=256, type=int, # will be overridden
help="Size of the embeddings (dimension of the transformer)")
parser.add_argument('--dropout', default=0.1, type=float,
help="Dropout applied in the transformer")
parser.add_argument('--nheads', default=8, type=int, # will be overridden
help="Number of attention heads inside the transformer's attentions")
parser.add_argument('--num_queries', default=400, type=int, # will be overridden
help="Number of query slots")
parser.add_argument('--pre_norm', action='store_true')
# * Segmentation
parser.add_argument('--masks', action='store_true',
help="Train segmentation head if the flag is provided")
# repeat args in imitate_episodes just to avoid error. Will not be used
parser.add_argument('--eval', action='store_true')
parser.add_argument('--onscreen_render', action='store_true')
# parser.add_argument('--ckpt_dir', action='store', type=str, help='ckpt_dir', required=True)
parser.add_argument('--policy_class', action='store', type=str, help='policy_class, capitalize', required=True)
# parser.add_argument('--task_name', action='store', type=str, help='task_name', required=True)
parser.add_argument('--seed', action='store', type=int, help='seed', required=True)
parser.add_argument('--num_epochs', action='store', type=int, help='num_epochs', required=True)
parser.add_argument('--kl_weight', action='store', type=int, help='KL Weight', required=False)
parser.add_argument('--chunk_size', action='store', type=int, help='chunk_size', required=False)
parser.add_argument('--temporal_agg', action='store_true')
parser.add_argument('--save_jit', action='store_true')
parser.add_argument('--ckpt_dir', default='/home/cxx/h1_hardware/data/logs', type=str, # will be overridden
help='ckpt_dir')
parser.add_argument('--no_wandb', action='store_true')
parser.add_argument('--resumeid', action='store', type=str, help='resume id', required=False)
parser.add_argument('--resume_ckpt', action='store', type=str, help='resume ckpt', required=False)
parser.add_argument('--taskid', action='store', type=str, help='task id', required=True)
parser.add_argument('--exptid', action='store', type=str, help='experiment id', required=True)
parser.add_argument('--source', choices=['self', 'ssd'], default='self')
return parser
def build_ACT_model_and_optimizer(args_override):
parser = argparse.ArgumentParser('DETR training and evaluation script', parents=[get_args_parser()])
args = parser.parse_args()
for k, v in args_override.items():
setattr(args, k, v)
model = build_ACT_model(args)
model.cuda()
param_dicts = [
{"params": [p for n, p in model.named_parameters() if "backbone" not in n and p.requires_grad]},
{
"params": [p for n, p in model.named_parameters() if "backbone" in n and p.requires_grad],
"lr": args.lr_backbone,
},
]
optimizer = torch.optim.AdamW(param_dicts, lr=args.lr,
weight_decay=args.weight_decay)
return model, optimizer
def build_CNNMLP_model_and_optimizer(args_override):
parser = argparse.ArgumentParser('DETR training and evaluation script', parents=[get_args_parser()])
args = parser.parse_args()
for k, v in args_override.items():
setattr(args, k, v)
model = build_CNNMLP_model(args)
model.cuda()
param_dicts = [
{"params": [p for n, p in model.named_parameters() if "backbone" not in n and p.requires_grad]},
{
"params": [p for n, p in model.named_parameters() if "backbone" in n and p.requires_grad],
"lr": args.lr_backbone,
},
]
optimizer = torch.optim.AdamW(param_dicts, lr=args.lr,
weight_decay=args.weight_decay)
return model, optimizer

9
act/detr/models/__init__.py

@ -1,9 +0,0 @@
# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
from .detr_vae import build as build_vae
from .detr_vae import build_cnnmlp as build_cnnmlp
def build_ACT_model(args):
return build_vae(args)
def build_CNNMLP_model(args):
return build_cnnmlp(args)

144
act/detr/models/backbone.py

@ -1,144 +0,0 @@
# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
"""
Backbone modules.
"""
from collections import OrderedDict
import torch
import torch.nn.functional as F
import torchvision
from torch import nn
from torchvision.models._utils import IntermediateLayerGetter
from typing import Dict, List
from util.misc import NestedTensor, is_main_process
from .position_encoding import build_position_encoding
import IPython
e = IPython.embed
class FrozenBatchNorm2d(torch.nn.Module):
"""
BatchNorm2d where the batch statistics and the affine parameters are fixed.
Copy-paste from torchvision.misc.ops with added eps before rqsrt,
without which any other policy_models than torchvision.policy_models.resnet[18,34,50,101]
produce nans.
"""
def __init__(self, n):
super(FrozenBatchNorm2d, self).__init__()
self.register_buffer("weight", torch.ones(n))
self.register_buffer("bias", torch.zeros(n))
self.register_buffer("running_mean", torch.zeros(n))
self.register_buffer("running_var", torch.ones(n))
def _load_from_state_dict(self, state_dict, prefix, local_metadata, strict,
missing_keys, unexpected_keys, error_msgs):
num_batches_tracked_key = prefix + 'num_batches_tracked'
if num_batches_tracked_key in state_dict:
del state_dict[num_batches_tracked_key]
super(FrozenBatchNorm2d, self)._load_from_state_dict(
state_dict, prefix, local_metadata, strict,
missing_keys, unexpected_keys, error_msgs)
def forward(self, x):
# move reshapes to the beginning
# to make it fuser-friendly
w = self.weight.reshape(1, -1, 1, 1)
b = self.bias.reshape(1, -1, 1, 1)
rv = self.running_var.reshape(1, -1, 1, 1)
rm = self.running_mean.reshape(1, -1, 1, 1)
eps = 1e-5
scale = w * (rv + eps).rsqrt()
bias = b - rm * scale
return x * scale + bias
class BackboneBase(nn.Module):
def __init__(self, backbone: nn.Module, train_backbone: bool, num_channels: int, return_interm_layers: bool):
super().__init__()
# for name, parameter in backbone.named_parameters(): # only train later layers # TODO do we want this?
# if not train_backbone or 'layer2' not in name and 'layer3' not in name and 'layer4' not in name:
# parameter.requires_grad_(False)
if return_interm_layers:
return_layers = {"layer1": "0", "layer2": "1", "layer3": "2", "layer4": "3"}
else:
return_layers = {'layer4': "0"}
self.body = IntermediateLayerGetter(backbone, return_layers=return_layers)
self.num_channels = num_channels
def forward(self, tensor):
xs = self.body(tensor)
return xs
# out: Dict[str, NestedTensor] = {}
# for name, x in xs.items():
# m = tensor_list.mask
# assert m is not None
# mask = F.interpolate(m[None].float(), size=x.shape[-2:]).to(torch.bool)[0]
# out[name] = NestedTensor(x, mask)
# return out
class Backbone(BackboneBase):
"""ResNet backbone with frozen BatchNorm."""
def __init__(self, name: str,
train_backbone: bool,
return_interm_layers: bool,
dilation: bool):
backbone = getattr(torchvision.models, name)(
replace_stride_with_dilation=[False, False, dilation],
pretrained=is_main_process(), norm_layer=FrozenBatchNorm2d) # pretrained # TODO do we want frozen batch_norm??
num_channels = 512 if name in ('resnet18', 'resnet34') else 2048
super().__init__(backbone, train_backbone, num_channels, return_interm_layers)
class DINOv2BackBone(nn.Module):
def __init__(self) -> None:
super().__init__()
self.body = torch.hub.load('facebookresearch/dinov2', 'dinov2_vits14')
self.body.eval()
self.num_channels = 384
@torch.no_grad()
def forward(self, tensor):
xs = self.body.forward_features(tensor)["x_norm_patchtokens"]
od = OrderedDict()
od["0"] = xs.reshape(xs.shape[0], 22, 16, 384).permute(0, 3, 2, 1)
return od
class Joiner(nn.Sequential):
def __init__(self, backbone, position_embedding):
super().__init__(backbone, position_embedding)
# def forward (self, tensor):
# xs = self[0](tensor)
# pos = self[1](xs)
# return xs, pos
def forward(self, tensor_list: NestedTensor):
xs = self[0](tensor_list)
out: List[NestedTensor] = []
pos = []
for name, x in xs.items():
out.append(x)
# position encoding
pos.append(self[1](x).to(x.dtype))
return out, pos
def build_backbone(args):
position_embedding = build_position_encoding(args)
train_backbone = args.lr_backbone > 0
return_interm_layers = args.masks
if args.backbone == 'dino_v2':
backbone = DINOv2BackBone()
else:
assert args.backbone in ['resnet18', 'resnet34']
backbone = Backbone(args.backbone, train_backbone, return_interm_layers, args.dilation)
model = Joiner(backbone, position_embedding)
model.num_channels = backbone.num_channels
return model

302
act/detr/models/detr_vae.py

@ -1,302 +0,0 @@
# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
"""
DETR model and criterion classes.
"""
import torch
from torch import nn
from torch.autograd import Variable
from .backbone import build_backbone
from .transformer import build_transformer, TransformerEncoder, TransformerEncoderLayer
import numpy as np
import time
import IPython
e = IPython.embed
def reparametrize(mu, logvar):
std = logvar.div(2).exp()
eps = Variable(std.data.new(std.size()).normal_())
return mu + std * eps
def get_sinusoid_encoding_table(n_position, d_hid):
def get_position_angle_vec(position):
return [position / np.power(10000, 2 * (hid_j // 2) / d_hid) for hid_j in range(d_hid)]
sinusoid_table = np.array([get_position_angle_vec(pos_i) for pos_i in range(n_position)])
sinusoid_table[:, 0::2] = np.sin(sinusoid_table[:, 0::2]) # dim 2i
sinusoid_table[:, 1::2] = np.cos(sinusoid_table[:, 1::2]) # dim 2i+1
return torch.FloatTensor(sinusoid_table).unsqueeze(0)
class DETRVAE(nn.Module):
""" This is the DETR module that performs object detection """
def __init__(self, backbones, transformer, encoder, state_dim, action_dim, num_queries, camera_names):
""" Initializes the model.
Parameters:
backbones: torch module of the backbone to be used. See backbone.py
transformer: torch module of the transformer architecture. See transformer.py
state_dim: robot state dimension of the environment
num_queries: number of object queries, ie detection slot. This is the maximal number of objects
DETR can detect in a single image. For COCO, we recommend 100 queries.
aux_loss: True if auxiliary decoding losses (loss at each decoder layer) are to be used.
"""
super().__init__()
self.num_queries = num_queries
self.camera_names = camera_names
self.transformer = transformer
self.encoder = encoder
hidden_dim = transformer.d_model
self.action_head = nn.Linear(hidden_dim, action_dim)
self.is_pad_head = nn.Linear(hidden_dim, 1)
self.query_embed = nn.Embedding(num_queries, hidden_dim)
if backbones is not None:
self.input_proj = nn.Conv2d(backbones[0].num_channels, hidden_dim, kernel_size=1)
self.backbones = nn.ModuleList(backbones)
self.input_proj_robot_state = nn.Linear(state_dim, hidden_dim)
else:
raise NotImplementedError
# input_dim = 14 + 7 # robot_state + env_state
self.input_proj_robot_state = nn.Linear(state_dim, hidden_dim)
self.input_proj_env_state = nn.Linear(7, hidden_dim)
self.pos = torch.nn.Embedding(2, hidden_dim)
self.backbones = None
# encoder extra parameters
self.latent_dim = 32 # final size of latent z # TODO tune
self.cls_embed = nn.Embedding(1, hidden_dim) # extra cls token embedding
self.encoder_action_proj = nn.Linear(action_dim, hidden_dim) # project action to embedding
self.encoder_joint_proj = nn.Linear(state_dim, hidden_dim) # project qpos to embedding
self.latent_proj = nn.Linear(hidden_dim, self.latent_dim*2) # project hidden state to latent std, var
self.register_buffer('pos_table', get_sinusoid_encoding_table(1+1+num_queries, hidden_dim)) # [CLS], qpos, a_seq
# decoder extra parameters
self.latent_out_proj = nn.Linear(self.latent_dim, hidden_dim) # project latent sample to embedding
self.additional_pos_embed = nn.Embedding(2, hidden_dim) # learned position embedding for proprio and latent
def forward(self, qpos, image, env_state, actions=None, is_pad=None):
"""
qpos: batch, qpos_dim
image: batch, num_cam, channel, height, width
env_state: None
actions: batch, seq, action_dim
"""
is_training = actions is not None # train or val
bs, _ = qpos.shape
### Obtain latent z from action sequence
if is_training:
# project action sequence to embedding dim, and concat with a CLS token
action_embed = self.encoder_action_proj(actions) # (bs, seq, hidden_dim)
qpos_embed = self.encoder_joint_proj(qpos) # (bs, hidden_dim)
qpos_embed = torch.unsqueeze(qpos_embed, axis=1) # (bs, 1, hidden_dim)
cls_embed = self.cls_embed.weight # (1, hidden_dim)
cls_embed = torch.unsqueeze(cls_embed, axis=0).repeat(bs, 1, 1) # (bs, 1, hidden_dim)
encoder_input = torch.cat([cls_embed, qpos_embed, action_embed], axis=1) # (bs, seq+1, hidden_dim)
encoder_input = encoder_input.permute(1, 0, 2) # (seq+1, bs, hidden_dim)
# do not mask cls token
cls_joint_is_pad = torch.full((bs, 2), False).to(qpos.device) # False: not a padding
is_pad = torch.cat([cls_joint_is_pad, is_pad], axis=1) # (bs, seq+1)
# obtain position embedding
pos_embed = self.pos_table.clone().detach()
pos_embed = pos_embed.permute(1, 0, 2) # (seq+1, 1, hidden_dim)
# query model
encoder_output = self.encoder(encoder_input, pos=pos_embed, src_key_padding_mask=is_pad)
encoder_output = encoder_output[0] # take cls output only
latent_info = self.latent_proj(encoder_output)
mu = latent_info[:, :self.latent_dim]
logvar = latent_info[:, self.latent_dim:]
latent_sample = reparametrize(mu, logvar)
latent_input = self.latent_out_proj(latent_sample)
else:
mu = logvar = None
latent_sample = torch.zeros([bs, self.latent_dim], dtype=torch.float32).to(qpos.device)
latent_input = self.latent_out_proj(latent_sample)
if self.backbones is not None:
# Image observation features and position embeddings
all_cam_features = []
all_cam_pos = []
featuress, poss = self.backbones[0](image.flatten(0, 1)) # HARDCODED
featuress = featuress[0].view(image.shape[0], 2, 384, 16, 22) # take the last layer feature
pos = poss[0]
for cam_id, cam_name in enumerate(self.camera_names):
# start = time.time()
# import ipdb; ipdb.set_trace()
features = featuress[:, cam_id] # HARDCODED
# features, pos = self.backbones[cam_id](image[:, cam_id]) # HARDCODED
# print("Time for 1 backbone: ", time.time() - start, image.shape)
# features = features[0] # take the last layer feature
# pos = pos[0]
all_cam_features.append(self.input_proj(features))
all_cam_pos.append(pos/2+ cam_id - 0.5)
# break
# for cam_id, cam_name in enumerate(self.camera_names):
# features, pos = self.backbones[0](image[:, cam_id]) # HARDCODED
# features = features[0] # take the last layer feature
# pos = pos[0]
# all_cam_features.append(self.input_proj(features))
# all_cam_pos.append(pos)
# proprioception features
proprio_input = self.input_proj_robot_state(qpos)
# fold camera dimension into width dimension
src = torch.cat(all_cam_features, axis=3)
pos = torch.cat(all_cam_pos, axis=3)
hs = self.transformer(src, None, self.query_embed.weight, pos, latent_input, proprio_input, self.additional_pos_embed.weight)[0]
else:
raise NotImplementedError
qpos = self.input_proj_robot_state(qpos)
env_state = self.input_proj_env_state(env_state)
transformer_input = torch.cat([qpos, env_state], axis=1) # seq length = 2
hs = self.transformer(transformer_input, None, self.query_embed.weight, self.pos.weight)[0]
a_hat = self.action_head(hs)
is_pad_hat = self.is_pad_head(hs)
return a_hat, is_pad_hat, [mu, logvar]
class CNNMLP(nn.Module):
def __init__(self, backbones, state_dim, camera_names):
""" Initializes the model.
Parameters:
backbones: torch module of the backbone to be used. See backbone.py
transformer: torch module of the transformer architecture. See transformer.py
state_dim: robot state dimension of the environment
num_queries: number of object queries, ie detection slot. This is the maximal number of objects
DETR can detect in a single image. For COCO, we recommend 100 queries.
aux_loss: True if auxiliary decoding losses (loss at each decoder layer) are to be used.
"""
super().__init__()
self.camera_names = camera_names
self.action_head = nn.Linear(1000, state_dim) # TODO add more
if backbones is not None:
self.backbones = nn.ModuleList(backbones)
backbone_down_projs = []
for backbone in backbones:
down_proj = nn.Sequential(
nn.Conv2d(backbone.num_channels, 128, kernel_size=5),
nn.Conv2d(128, 64, kernel_size=5),
nn.Conv2d(64, 32, kernel_size=5)
)
backbone_down_projs.append(down_proj)
self.backbone_down_projs = nn.ModuleList(backbone_down_projs)
mlp_in_dim = 768 * len(backbones) + 14
self.mlp = mlp(input_dim=mlp_in_dim, hidden_dim=1024, output_dim=14, hidden_depth=2)
else:
raise NotImplementedError
def forward(self, qpos, image, env_state, actions=None):
"""
qpos: batch, qpos_dim
image: batch, num_cam, channel, height, width
env_state: None
actions: batch, seq, action_dim
"""
is_training = actions is not None # train or val
bs, _ = qpos.shape
# Image observation features and position embeddings
all_cam_features = []
for cam_id, cam_name in enumerate(self.camera_names):
features, pos = self.backbones[cam_id](image[:, cam_id])
features = features[0] # take the last layer feature
pos = pos[0] # not used
all_cam_features.append(self.backbone_down_projs[cam_id](features))
# flatten everything
flattened_features = []
for cam_feature in all_cam_features:
flattened_features.append(cam_feature.reshape([bs, -1]))
flattened_features = torch.cat(flattened_features, axis=1) # 768 each
features = torch.cat([flattened_features, qpos], axis=1) # qpos: 14
a_hat = self.mlp(features)
return a_hat
def mlp(input_dim, hidden_dim, output_dim, hidden_depth):
if hidden_depth == 0:
mods = [nn.Linear(input_dim, output_dim)]
else:
mods = [nn.Linear(input_dim, hidden_dim), nn.ReLU(inplace=True)]
for i in range(hidden_depth - 1):
mods += [nn.Linear(hidden_dim, hidden_dim), nn.ReLU(inplace=True)]
mods.append(nn.Linear(hidden_dim, output_dim))
trunk = nn.Sequential(*mods)
return trunk
def build_encoder(args):
d_model = args.hidden_dim # 256
dropout = args.dropout # 0.1
nhead = args.nheads # 8
dim_feedforward = args.dim_feedforward # 2048
num_encoder_layers = args.enc_layers # 4 # TODO shared with VAE decoder
normalize_before = args.pre_norm # False
activation = "relu"
encoder_layer = TransformerEncoderLayer(d_model, nhead, dim_feedforward,
dropout, activation, normalize_before)
encoder_norm = nn.LayerNorm(d_model) if normalize_before else None
encoder = TransformerEncoder(encoder_layer, num_encoder_layers, encoder_norm)
return encoder
def build(args):
state_dim = args.state_dim
action_dim = args.action_dim
# From state
# backbone = None # from state for now, no need for conv nets
# From image
backbones = []
# backbone = build_backbone(args)
# backbones.append(backbone)
# for _ in args.camera_names:
backbone = build_backbone(args)
backbones.append(backbone)
transformer = build_transformer(args)
encoder = build_encoder(args)
model = DETRVAE(
backbones,
transformer,
encoder,
state_dim=state_dim,
action_dim=action_dim,
num_queries=args.num_queries,
camera_names=args.camera_names,
)
n_parameters = sum(p.numel() for p in model.parameters() if p.requires_grad)
print("number of parameters: %.2fM" % (n_parameters/1e6,))
return model
def build_cnnmlp(args):
state_dim = 14 # TODO hardcode
# From state
# backbone = None # from state for now, no need for conv nets
# From image
backbones = []
for _ in args.camera_names:
backbone = build_backbone(args)
backbones.append(backbone)
model = CNNMLP(
backbones,
state_dim=state_dim,
camera_names=args.camera_names,
)
n_parameters = sum(p.numel() for p in model.parameters() if p.requires_grad)
print("number of parameters: %.2fM" % (n_parameters/1e6,))
return model

93
act/detr/models/position_encoding.py

@ -1,93 +0,0 @@
# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
"""
Various positional encodings for the transformer.
"""
import math
import torch
from torch import nn
from util.misc import NestedTensor
import IPython
e = IPython.embed
class PositionEmbeddingSine(nn.Module):
"""
This is a more standard version of the position embedding, very similar to the one
used by the Attention is all you need paper, generalized to work on images.
"""
def __init__(self, num_pos_feats=64, temperature=10000, normalize=False, scale=None):
super().__init__()
self.num_pos_feats = num_pos_feats
self.temperature = temperature
self.normalize = normalize
if scale is not None and normalize is False:
raise ValueError("normalize should be True if scale is passed")
if scale is None:
scale = 2 * math.pi
self.scale = scale
def forward(self, tensor):
x = tensor
# mask = tensor_list.mask
# assert mask is not None
# not_mask = ~mask
not_mask = torch.ones_like(x[0, [0]])
y_embed = not_mask.cumsum(1, dtype=torch.float32)
x_embed = not_mask.cumsum(2, dtype=torch.float32)
if self.normalize:
eps = 1e-6
y_embed = y_embed / (y_embed[:, -1:, :] + eps) * self.scale
x_embed = x_embed / (x_embed[:, :, -1:] + eps) * self.scale
dim_t = torch.arange(self.num_pos_feats, dtype=torch.float32, device=x.device)
dim_t = self.temperature ** (2 * (dim_t // 2) / self.num_pos_feats)
pos_x = x_embed[:, :, :, None] / dim_t
pos_y = y_embed[:, :, :, None] / dim_t
pos_x = torch.stack((pos_x[:, :, :, 0::2].sin(), pos_x[:, :, :, 1::2].cos()), dim=4).flatten(3)
pos_y = torch.stack((pos_y[:, :, :, 0::2].sin(), pos_y[:, :, :, 1::2].cos()), dim=4).flatten(3)
pos = torch.cat((pos_y, pos_x), dim=3).permute(0, 3, 1, 2)
return pos
class PositionEmbeddingLearned(nn.Module):
"""
Absolute pos embedding, learned.
"""
def __init__(self, num_pos_feats=256):
super().__init__()
self.row_embed = nn.Embedding(50, num_pos_feats)
self.col_embed = nn.Embedding(50, num_pos_feats)
self.reset_parameters()
def reset_parameters(self):
nn.init.uniform_(self.row_embed.weight)
nn.init.uniform_(self.col_embed.weight)
def forward(self, tensor_list: NestedTensor):
x = tensor_list.tensors
h, w = x.shape[-2:]
i = torch.arange(w, device=x.device)
j = torch.arange(h, device=x.device)
x_emb = self.col_embed(i)
y_emb = self.row_embed(j)
pos = torch.cat([
x_emb.unsqueeze(0).repeat(h, 1, 1),
y_emb.unsqueeze(1).repeat(1, w, 1),
], dim=-1).permute(2, 0, 1).unsqueeze(0).repeat(x.shape[0], 1, 1, 1)
return pos
def build_position_encoding(args):
N_steps = args.hidden_dim // 2
if args.position_embedding in ('v2', 'sine'):
# TODO find a better way of exposing other arguments
position_embedding = PositionEmbeddingSine(N_steps, normalize=True)
elif args.position_embedding in ('v3', 'learned'):
position_embedding = PositionEmbeddingLearned(N_steps)
else:
raise ValueError(f"not supported {args.position_embedding}")
return position_embedding

314
act/detr/models/transformer.py

@ -1,314 +0,0 @@
# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
"""
DETR Transformer class.
Copy-paste from torch.nn.Transformer with modifications:
* positional encodings are passed in MHattention
* extra LN at the end of encoder is removed
* decoder returns a stack of activations from all decoding layers
"""
import copy
from typing import Optional, List
import torch
import torch.nn.functional as F
from torch import nn, Tensor
import IPython
e = IPython.embed
class Transformer(nn.Module):
def __init__(self, d_model=512, nhead=8, num_encoder_layers=6,
num_decoder_layers=6, dim_feedforward=2048, dropout=0.1,
activation="relu", normalize_before=False,
return_intermediate_dec=False):
super().__init__()
encoder_layer = TransformerEncoderLayer(d_model, nhead, dim_feedforward,
dropout, activation, normalize_before)
encoder_norm = nn.LayerNorm(d_model) if normalize_before else None
self.encoder = TransformerEncoder(encoder_layer, num_encoder_layers, encoder_norm)
decoder_layer = TransformerDecoderLayer(d_model, nhead, dim_feedforward,
dropout, activation, normalize_before)
decoder_norm = nn.LayerNorm(d_model)
self.decoder = TransformerDecoder(decoder_layer, num_decoder_layers, decoder_norm,
return_intermediate=return_intermediate_dec)
self._reset_parameters()
self.d_model = d_model
self.nhead = nhead
def _reset_parameters(self):
for p in self.parameters():
if p.dim() > 1:
nn.init.xavier_uniform_(p)
def forward(self, src, mask, query_embed, pos_embed, latent_input=None, proprio_input=None, additional_pos_embed=None):
# TODO flatten only when input has H and W
if len(src.shape) == 4: # has H and W
# flatten NxCxHxW to HWxNxC
bs, c, h, w = src.shape
src = src.flatten(2).permute(2, 0, 1)
pos_embed = pos_embed.flatten(2).permute(2, 0, 1).repeat(1, bs, 1)
query_embed = query_embed.unsqueeze(1).repeat(1, bs, 1)
# mask = mask.flatten(1)
additional_pos_embed = additional_pos_embed.unsqueeze(1).repeat(1, bs, 1) # seq, bs, dim
pos_embed = torch.cat([additional_pos_embed, pos_embed], axis=0)
addition_input = torch.stack([latent_input, proprio_input], axis=0)
src = torch.cat([addition_input, src], axis=0)
else:
assert len(src.shape) == 3
# flatten NxHWxC to HWxNxC
bs, hw, c = src.shape
src = src.permute(1, 0, 2)
pos_embed = pos_embed.unsqueeze(1).repeat(1, bs, 1)
query_embed = query_embed.unsqueeze(1).repeat(1, bs, 1)
tgt = torch.zeros_like(query_embed)
memory = self.encoder(src, src_key_padding_mask=mask, pos=pos_embed)
hs = self.decoder(tgt, memory, memory_key_padding_mask=mask,
pos=pos_embed, query_pos=query_embed)
hs = hs.transpose(1, 2)
return hs
class TransformerEncoder(nn.Module):
def __init__(self, encoder_layer, num_layers, norm=None):
super().__init__()
self.layers = _get_clones(encoder_layer, num_layers)
self.num_layers = num_layers
self.norm = norm
def forward(self, src,
mask: Optional[Tensor] = None,
src_key_padding_mask: Optional[Tensor] = None,
pos: Optional[Tensor] = None):
output = src
for layer in self.layers:
output = layer(output, src_mask=mask,
src_key_padding_mask=src_key_padding_mask, pos=pos)
if self.norm is not None:
output = self.norm(output)
return output
class TransformerDecoder(nn.Module):
def __init__(self, decoder_layer, num_layers, norm=None, return_intermediate=False):
super().__init__()
self.layers = _get_clones(decoder_layer, num_layers)
self.num_layers = num_layers
self.norm = norm
self.return_intermediate = return_intermediate
def forward(self, tgt, memory,
tgt_mask: Optional[Tensor] = None,
memory_mask: Optional[Tensor] = None,
tgt_key_padding_mask: Optional[Tensor] = None,
memory_key_padding_mask: Optional[Tensor] = None,
pos: Optional[Tensor] = None,
query_pos: Optional[Tensor] = None):
output = tgt
intermediate = []
for layer in self.layers:
output = layer(output, memory, tgt_mask=tgt_mask,
memory_mask=memory_mask,
tgt_key_padding_mask=tgt_key_padding_mask,
memory_key_padding_mask=memory_key_padding_mask,
pos=pos, query_pos=query_pos)
if self.return_intermediate:
intermediate.append(self.norm(output))
if self.norm is not None:
output = self.norm(output)
if self.return_intermediate:
intermediate.pop()
intermediate.append(output)
if self.return_intermediate:
return torch.stack(intermediate)
return output.unsqueeze(0)
class TransformerEncoderLayer(nn.Module):
def __init__(self, d_model, nhead, dim_feedforward=2048, dropout=0.1,
activation="relu", normalize_before=False):
super().__init__()
self.self_attn = nn.MultiheadAttention(d_model, nhead, dropout=dropout)
# Implementation of Feedforward model
self.linear1 = nn.Linear(d_model, dim_feedforward)
self.dropout = nn.Dropout(dropout)
self.linear2 = nn.Linear(dim_feedforward, d_model)
self.norm1 = nn.LayerNorm(d_model)
self.norm2 = nn.LayerNorm(d_model)
self.dropout1 = nn.Dropout(dropout)
self.dropout2 = nn.Dropout(dropout)
self.activation = _get_activation_fn(activation)
self.normalize_before = normalize_before
def with_pos_embed(self, tensor, pos: Optional[Tensor]):
return tensor if pos is None else tensor + pos
def forward_post(self,
src,
src_mask: Optional[Tensor] = None,
src_key_padding_mask: Optional[Tensor] = None,
pos: Optional[Tensor] = None):
q = k = self.with_pos_embed(src, pos)
src2 = self.self_attn(q, k, value=src, attn_mask=src_mask,
key_padding_mask=src_key_padding_mask)[0]
src = src + self.dropout1(src2)
src = self.norm1(src)
src2 = self.linear2(self.dropout(self.activation(self.linear1(src))))
src = src + self.dropout2(src2)
src = self.norm2(src)
return src
def forward_pre(self, src,
src_mask: Optional[Tensor] = None,
src_key_padding_mask: Optional[Tensor] = None,
pos: Optional[Tensor] = None):
src2 = self.norm1(src)
q = k = self.with_pos_embed(src2, pos)
src2 = self.self_attn(q, k, value=src2, attn_mask=src_mask,
key_padding_mask=src_key_padding_mask)[0]
src = src + self.dropout1(src2)
src2 = self.norm2(src)
src2 = self.linear2(self.dropout(self.activation(self.linear1(src2))))
src = src + self.dropout2(src2)
return src
def forward(self, src,
src_mask: Optional[Tensor] = None,
src_key_padding_mask: Optional[Tensor] = None,
pos: Optional[Tensor] = None):
if self.normalize_before:
return self.forward_pre(src, src_mask, src_key_padding_mask, pos)
return self.forward_post(src, src_mask, src_key_padding_mask, pos)
class TransformerDecoderLayer(nn.Module):
def __init__(self, d_model, nhead, dim_feedforward=2048, dropout=0.1,
activation="relu", normalize_before=False):
super().__init__()
self.self_attn = nn.MultiheadAttention(d_model, nhead, dropout=dropout)
self.multihead_attn = nn.MultiheadAttention(d_model, nhead, dropout=dropout)
# Implementation of Feedforward model
self.linear1 = nn.Linear(d_model, dim_feedforward)
self.dropout = nn.Dropout(dropout)
self.linear2 = nn.Linear(dim_feedforward, d_model)
self.norm1 = nn.LayerNorm(d_model)
self.norm2 = nn.LayerNorm(d_model)
self.norm3 = nn.LayerNorm(d_model)
self.dropout1 = nn.Dropout(dropout)
self.dropout2 = nn.Dropout(dropout)
self.dropout3 = nn.Dropout(dropout)
self.activation = _get_activation_fn(activation)
self.normalize_before = normalize_before
def with_pos_embed(self, tensor, pos: Optional[Tensor]):
return tensor if pos is None else tensor + pos
def forward_post(self, tgt, memory,
tgt_mask: Optional[Tensor] = None,
memory_mask: Optional[Tensor] = None,
tgt_key_padding_mask: Optional[Tensor] = None,
memory_key_padding_mask: Optional[Tensor] = None,
pos: Optional[Tensor] = None,
query_pos: Optional[Tensor] = None):
q = k = self.with_pos_embed(tgt, query_pos)
tgt2 = self.self_attn(q, k, value=tgt, attn_mask=tgt_mask,
key_padding_mask=tgt_key_padding_mask)[0]
tgt = tgt + self.dropout1(tgt2)
tgt = self.norm1(tgt)
tgt2 = self.multihead_attn(query=self.with_pos_embed(tgt, query_pos),
key=self.with_pos_embed(memory, pos),
value=memory, attn_mask=memory_mask,
key_padding_mask=memory_key_padding_mask)[0]
tgt = tgt + self.dropout2(tgt2)
tgt = self.norm2(tgt)
tgt2 = self.linear2(self.dropout(self.activation(self.linear1(tgt))))
tgt = tgt + self.dropout3(tgt2)
tgt = self.norm3(tgt)
return tgt
def forward_pre(self, tgt, memory,
tgt_mask: Optional[Tensor] = None,
memory_mask: Optional[Tensor] = None,
tgt_key_padding_mask: Optional[Tensor] = None,
memory_key_padding_mask: Optional[Tensor] = None,
pos: Optional[Tensor] = None,
query_pos: Optional[Tensor] = None):
tgt2 = self.norm1(tgt)
q = k = self.with_pos_embed(tgt2, query_pos)
tgt2 = self.self_attn(q, k, value=tgt2, attn_mask=tgt_mask,
key_padding_mask=tgt_key_padding_mask)[0]
tgt = tgt + self.dropout1(tgt2)
tgt2 = self.norm2(tgt)
tgt2 = self.multihead_attn(query=self.with_pos_embed(tgt2, query_pos),
key=self.with_pos_embed(memory, pos),
value=memory, attn_mask=memory_mask,
key_padding_mask=memory_key_padding_mask)[0]
tgt = tgt + self.dropout2(tgt2)
tgt2 = self.norm3(tgt)
tgt2 = self.linear2(self.dropout(self.activation(self.linear1(tgt2))))
tgt = tgt + self.dropout3(tgt2)
return tgt
def forward(self, tgt, memory,
tgt_mask: Optional[Tensor] = None,
memory_mask: Optional[Tensor] = None,
tgt_key_padding_mask: Optional[Tensor] = None,
memory_key_padding_mask: Optional[Tensor] = None,
pos: Optional[Tensor] = None,
query_pos: Optional[Tensor] = None):
if self.normalize_before:
return self.forward_pre(tgt, memory, tgt_mask, memory_mask,
tgt_key_padding_mask, memory_key_padding_mask, pos, query_pos)
return self.forward_post(tgt, memory, tgt_mask, memory_mask,
tgt_key_padding_mask, memory_key_padding_mask, pos, query_pos)
def _get_clones(module, N):
return nn.ModuleList([copy.deepcopy(module) for i in range(N)])
def build_transformer(args):
return Transformer(
d_model=args.hidden_dim,
dropout=args.dropout,
nhead=args.nheads,
dim_feedforward=args.dim_feedforward,
num_encoder_layers=args.enc_layers,
num_decoder_layers=args.dec_layers,
normalize_before=args.pre_norm,
return_intermediate_dec=True,
)
def _get_activation_fn(activation):
"""Return an activation function given a string"""
if activation == "relu":
return F.relu
if activation == "gelu":
return F.gelu
if activation == "glu":
return F.glu
raise RuntimeError(F"activation should be relu/gelu, not {activation}.")

10
act/detr/setup.py

@ -1,10 +0,0 @@
from distutils.core import setup
from setuptools import find_packages
setup(
name='detr',
version='0.0.0',
packages=find_packages(),
license='MIT License',
long_description=open('README.md').read(),
)

1
act/detr/util/__init__.py

@ -1 +0,0 @@
# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved

88
act/detr/util/box_ops.py

@ -1,88 +0,0 @@
# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
"""
Utilities for bounding box manipulation and GIoU.
"""
import torch
from torchvision.ops.boxes import box_area
def box_cxcywh_to_xyxy(x):
x_c, y_c, w, h = x.unbind(-1)
b = [(x_c - 0.5 * w), (y_c - 0.5 * h),
(x_c + 0.5 * w), (y_c + 0.5 * h)]
return torch.stack(b, dim=-1)
def box_xyxy_to_cxcywh(x):
x0, y0, x1, y1 = x.unbind(-1)
b = [(x0 + x1) / 2, (y0 + y1) / 2,
(x1 - x0), (y1 - y0)]
return torch.stack(b, dim=-1)
# modified from torchvision to also return the union
def box_iou(boxes1, boxes2):
area1 = box_area(boxes1)
area2 = box_area(boxes2)
lt = torch.max(boxes1[:, None, :2], boxes2[:, :2]) # [N,M,2]
rb = torch.min(boxes1[:, None, 2:], boxes2[:, 2:]) # [N,M,2]
wh = (rb - lt).clamp(min=0) # [N,M,2]
inter = wh[:, :, 0] * wh[:, :, 1] # [N,M]
union = area1[:, None] + area2 - inter
iou = inter / union
return iou, union
def generalized_box_iou(boxes1, boxes2):
"""
Generalized IoU from https://giou.stanford.edu/
The boxes should be in [x0, y0, x1, y1] format
Returns a [N, M] pairwise matrix, where N = len(boxes1)
and M = len(boxes2)
"""
# degenerate boxes gives inf / nan results
# so do an early check
assert (boxes1[:, 2:] >= boxes1[:, :2]).all()
assert (boxes2[:, 2:] >= boxes2[:, :2]).all()
iou, union = box_iou(boxes1, boxes2)
lt = torch.min(boxes1[:, None, :2], boxes2[:, :2])
rb = torch.max(boxes1[:, None, 2:], boxes2[:, 2:])
wh = (rb - lt).clamp(min=0) # [N,M,2]
area = wh[:, :, 0] * wh[:, :, 1]
return iou - (area - union) / area
def masks_to_boxes(masks):
"""Compute the bounding boxes around the provided masks
The masks should be in format [N, H, W] where N is the number of masks, (H, W) are the spatial dimensions.
Returns a [N, 4] tensors, with the boxes in xyxy format
"""
if masks.numel() == 0:
return torch.zeros((0, 4), device=masks.device)
h, w = masks.shape[-2:]
y = torch.arange(0, h, dtype=torch.float)
x = torch.arange(0, w, dtype=torch.float)
y, x = torch.meshgrid(y, x)
x_mask = (masks * x.unsqueeze(0))
x_max = x_mask.flatten(1).max(-1)[0]
x_min = x_mask.masked_fill(~(masks.bool()), 1e8).flatten(1).min(-1)[0]
y_mask = (masks * y.unsqueeze(0))
y_max = y_mask.flatten(1).max(-1)[0]
y_min = y_mask.masked_fill(~(masks.bool()), 1e8).flatten(1).min(-1)[0]
return torch.stack([x_min, y_min, x_max, y_max], 1)

468
act/detr/util/misc.py

@ -1,468 +0,0 @@
# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
"""
Misc functions, including distributed helpers.
Mostly copy-paste from torchvision references.
"""
import os
import subprocess
import time
from collections import defaultdict, deque
import datetime
import pickle
from packaging import version
from typing import Optional, List
import torch
import torch.distributed as dist
from torch import Tensor
# needed due to empty tensor bug in pytorch and torchvision 0.5
import torchvision
if version.parse(torchvision.__version__) < version.parse('0.7'):
from torchvision.ops import _new_empty_tensor
from torchvision.ops.misc import _output_size
class SmoothedValue(object):
"""Track a series of values and provide access to smoothed values over a
window or the global series average.
"""
def __init__(self, window_size=20, fmt=None):
if fmt is None:
fmt = "{median:.4f} ({global_avg:.4f})"
self.deque = deque(maxlen=window_size)
self.total = 0.0
self.count = 0
self.fmt = fmt
def update(self, value, n=1):
self.deque.append(value)
self.count += n
self.total += value * n
def synchronize_between_processes(self):
"""
Warning: does not synchronize the deque!
"""
if not is_dist_avail_and_initialized():
return
t = torch.tensor([self.count, self.total], dtype=torch.float64, device='cuda')
dist.barrier()
dist.all_reduce(t)
t = t.tolist()
self.count = int(t[0])
self.total = t[1]
@property
def median(self):
d = torch.tensor(list(self.deque))
return d.median().item()
@property
def avg(self):
d = torch.tensor(list(self.deque), dtype=torch.float32)
return d.mean().item()
@property
def global_avg(self):
return self.total / self.count
@property
def max(self):
return max(self.deque)
@property
def value(self):
return self.deque[-1]
def __str__(self):
return self.fmt.format(
median=self.median,
avg=self.avg,
global_avg=self.global_avg,
max=self.max,
value=self.value)
def all_gather(data):
"""
Run all_gather on arbitrary picklable data (not necessarily tensors)
Args:
data: any picklable object
Returns:
list[data]: list of data gathered from each rank
"""
world_size = get_world_size()
if world_size == 1:
return [data]
# serialized to a Tensor
buffer = pickle.dumps(data)
storage = torch.ByteStorage.from_buffer(buffer)
tensor = torch.ByteTensor(storage).to("cuda")
# obtain Tensor size of each rank
local_size = torch.tensor([tensor.numel()], device="cuda")
size_list = [torch.tensor([0], device="cuda") for _ in range(world_size)]
dist.all_gather(size_list, local_size)
size_list = [int(size.item()) for size in size_list]
max_size = max(size_list)
# receiving Tensor from all ranks
# we pad the tensor because torch all_gather does not support
# gathering tensors of different shapes
tensor_list = []
for _ in size_list:
tensor_list.append(torch.empty((max_size,), dtype=torch.uint8, device="cuda"))
if local_size != max_size:
padding = torch.empty(size=(max_size - local_size,), dtype=torch.uint8, device="cuda")
tensor = torch.cat((tensor, padding), dim=0)
dist.all_gather(tensor_list, tensor)
data_list = []
for size, tensor in zip(size_list, tensor_list):
buffer = tensor.cpu().numpy().tobytes()[:size]
data_list.append(pickle.loads(buffer))
return data_list
def reduce_dict(input_dict, average=True):
"""
Args:
input_dict (dict): all the values will be reduced
average (bool): whether to do average or sum
Reduce the values in the dictionary from all processes so that all processes
have the averaged results. Returns a dict with the same fields as
input_dict, after reduction.
"""
world_size = get_world_size()
if world_size < 2:
return input_dict
with torch.no_grad():
names = []
values = []
# sort the keys so that they are consistent across processes
for k in sorted(input_dict.keys()):
names.append(k)
values.append(input_dict[k])
values = torch.stack(values, dim=0)
dist.all_reduce(values)
if average:
values /= world_size
reduced_dict = {k: v for k, v in zip(names, values)}
return reduced_dict
class MetricLogger(object):
def __init__(self, delimiter="\t"):
self.meters = defaultdict(SmoothedValue)
self.delimiter = delimiter
def update(self, **kwargs):
for k, v in kwargs.items():
if isinstance(v, torch.Tensor):
v = v.item()
assert isinstance(v, (float, int))
self.meters[k].update(v)
def __getattr__(self, attr):
if attr in self.meters:
return self.meters[attr]
if attr in self.__dict__:
return self.__dict__[attr]
raise AttributeError("'{}' object has no attribute '{}'".format(
type(self).__name__, attr))
def __str__(self):
loss_str = []
for name, meter in self.meters.items():
loss_str.append(
"{}: {}".format(name, str(meter))
)
return self.delimiter.join(loss_str)
def synchronize_between_processes(self):
for meter in self.meters.values():
meter.synchronize_between_processes()
def add_meter(self, name, meter):
self.meters[name] = meter
def log_every(self, iterable, print_freq, header=None):
i = 0
if not header:
header = ''
start_time = time.time()
end = time.time()
iter_time = SmoothedValue(fmt='{avg:.4f}')
data_time = SmoothedValue(fmt='{avg:.4f}')
space_fmt = ':' + str(len(str(len(iterable)))) + 'd'
if torch.cuda.is_available():
log_msg = self.delimiter.join([
header,
'[{0' + space_fmt + '}/{1}]',
'eta: {eta}',
'{meters}',
'time: {time}',
'data: {data}',
'max mem: {memory:.0f}'
])
else:
log_msg = self.delimiter.join([
header,
'[{0' + space_fmt + '}/{1}]',
'eta: {eta}',
'{meters}',
'time: {time}',
'data: {data}'
])
MB = 1024.0 * 1024.0
for obj in iterable:
data_time.update(time.time() - end)
yield obj
iter_time.update(time.time() - end)
if i % print_freq == 0 or i == len(iterable) - 1:
eta_seconds = iter_time.global_avg * (len(iterable) - i)
eta_string = str(datetime.timedelta(seconds=int(eta_seconds)))
if torch.cuda.is_available():
print(log_msg.format(
i, len(iterable), eta=eta_string,
meters=str(self),
time=str(iter_time), data=str(data_time),
memory=torch.cuda.max_memory_allocated() / MB))
else:
print(log_msg.format(
i, len(iterable), eta=eta_string,
meters=str(self),
time=str(iter_time), data=str(data_time)))
i += 1
end = time.time()
total_time = time.time() - start_time
total_time_str = str(datetime.timedelta(seconds=int(total_time)))
print('{} Total time: {} ({:.4f} s / it)'.format(
header, total_time_str, total_time / len(iterable)))
def get_sha():
cwd = os.path.dirname(os.path.abspath(__file__))
def _run(command):
return subprocess.check_output(command, cwd=cwd).decode('ascii').strip()
sha = 'N/A'
diff = "clean"
branch = 'N/A'
try:
sha = _run(['git', 'rev-parse', 'HEAD'])
subprocess.check_output(['git', 'diff'], cwd=cwd)
diff = _run(['git', 'diff-index', 'HEAD'])
diff = "has uncommited changes" if diff else "clean"
branch = _run(['git', 'rev-parse', '--abbrev-ref', 'HEAD'])
except Exception:
pass
message = f"sha: {sha}, status: {diff}, branch: {branch}"
return message
def collate_fn(batch):
batch = list(zip(*batch))
batch[0] = nested_tensor_from_tensor_list(batch[0])
return tuple(batch)
def _max_by_axis(the_list):
# type: (List[List[int]]) -> List[int]
maxes = the_list[0]
for sublist in the_list[1:]:
for index, item in enumerate(sublist):
maxes[index] = max(maxes[index], item)
return maxes
class NestedTensor(object):
def __init__(self, tensors, mask: Optional[Tensor]):
self.tensors = tensors
self.mask = mask
def to(self, device):
# type: (Device) -> NestedTensor # noqa
cast_tensor = self.tensors.to(device)
mask = self.mask
if mask is not None:
assert mask is not None
cast_mask = mask.to(device)
else:
cast_mask = None
return NestedTensor(cast_tensor, cast_mask)
def decompose(self):
return self.tensors, self.mask
def __repr__(self):
return str(self.tensors)
def nested_tensor_from_tensor_list(tensor_list: List[Tensor]):
# TODO make this more general
if tensor_list[0].ndim == 3:
if torchvision._is_tracing():
# nested_tensor_from_tensor_list() does not export well to ONNX
# call _onnx_nested_tensor_from_tensor_list() instead
return _onnx_nested_tensor_from_tensor_list(tensor_list)
# TODO make it support different-sized images
max_size = _max_by_axis([list(img.shape) for img in tensor_list])
# min_size = tuple(min(s) for s in zip(*[img.shape for img in tensor_list]))
batch_shape = [len(tensor_list)] + max_size
b, c, h, w = batch_shape
dtype = tensor_list[0].dtype
device = tensor_list[0].device
tensor = torch.zeros(batch_shape, dtype=dtype, device=device)
mask = torch.ones((b, h, w), dtype=torch.bool, device=device)
for img, pad_img, m in zip(tensor_list, tensor, mask):
pad_img[: img.shape[0], : img.shape[1], : img.shape[2]].copy_(img)
m[: img.shape[1], :img.shape[2]] = False
else:
raise ValueError('not supported')
return NestedTensor(tensor, mask)
# _onnx_nested_tensor_from_tensor_list() is an implementation of
# nested_tensor_from_tensor_list() that is supported by ONNX tracing.
@torch.jit.unused
def _onnx_nested_tensor_from_tensor_list(tensor_list: List[Tensor]) -> NestedTensor:
max_size = []
for i in range(tensor_list[0].dim()):
max_size_i = torch.max(torch.stack([img.shape[i] for img in tensor_list]).to(torch.float32)).to(torch.int64)
max_size.append(max_size_i)
max_size = tuple(max_size)
# work around for
# pad_img[: img.shape[0], : img.shape[1], : img.shape[2]].copy_(img)
# m[: img.shape[1], :img.shape[2]] = False
# which is not yet supported in onnx
padded_imgs = []
padded_masks = []
for img in tensor_list:
padding = [(s1 - s2) for s1, s2 in zip(max_size, tuple(img.shape))]
padded_img = torch.nn.functional.pad(img, (0, padding[2], 0, padding[1], 0, padding[0]))
padded_imgs.append(padded_img)
m = torch.zeros_like(img[0], dtype=torch.int, device=img.device)
padded_mask = torch.nn.functional.pad(m, (0, padding[2], 0, padding[1]), "constant", 1)
padded_masks.append(padded_mask.to(torch.bool))
tensor = torch.stack(padded_imgs)
mask = torch.stack(padded_masks)
return NestedTensor(tensor, mask=mask)
def setup_for_distributed(is_master):
"""
This function disables printing when not in master process
"""
import builtins as __builtin__
builtin_print = __builtin__.print
def print(*args, **kwargs):
force = kwargs.pop('force', False)
if is_master or force:
builtin_print(*args, **kwargs)
__builtin__.print = print
def is_dist_avail_and_initialized():
if not dist.is_available():
return False
if not dist.is_initialized():
return False
return True
def get_world_size():
if not is_dist_avail_and_initialized():
return 1
return dist.get_world_size()
def get_rank():
if not is_dist_avail_and_initialized():
return 0
return dist.get_rank()
def is_main_process():
return get_rank() == 0
def save_on_master(*args, **kwargs):
if is_main_process():
torch.save(*args, **kwargs)
def init_distributed_mode(args):
if 'RANK' in os.environ and 'WORLD_SIZE' in os.environ:
args.rank = int(os.environ["RANK"])
args.world_size = int(os.environ['WORLD_SIZE'])
args.gpu = int(os.environ['LOCAL_RANK'])
elif 'SLURM_PROCID' in os.environ:
args.rank = int(os.environ['SLURM_PROCID'])
args.gpu = args.rank % torch.cuda.device_count()
else:
print('Not using distributed mode')
args.distributed = False
return
args.distributed = True
torch.cuda.set_device(args.gpu)
args.dist_backend = 'nccl'
print('| distributed init (rank {}): {}'.format(
args.rank, args.dist_url), flush=True)
torch.distributed.init_process_group(backend=args.dist_backend, init_method=args.dist_url,
world_size=args.world_size, rank=args.rank)
torch.distributed.barrier()
setup_for_distributed(args.rank == 0)
@torch.no_grad()
def accuracy(output, target, topk=(1,)):
"""Computes the precision@k for the specified values of k"""
if target.numel() == 0:
return [torch.zeros([], device=output.device)]
maxk = max(topk)
batch_size = target.size(0)
_, pred = output.topk(maxk, 1, True, True)
pred = pred.t()
correct = pred.eq(target.view(1, -1).expand_as(pred))
res = []
for k in topk:
correct_k = correct[:k].view(-1).float().sum(0)
res.append(correct_k.mul_(100.0 / batch_size))
return res
def interpolate(input, size=None, scale_factor=None, mode="nearest", align_corners=None):
# type: (Tensor, Optional[List[int]], Optional[float], str, Optional[bool]) -> Tensor
"""
Equivalent to nn.functional.interpolate, but with support for empty batch sizes.
This will eventually be supported natively by PyTorch, and this
class can go away.
"""
if version.parse(torchvision.__version__) < version.parse('0.7'):
if input.numel() > 0:
return torch.nn.functional.interpolate(
input, size, scale_factor, mode, align_corners
)
output_shape = _output_size(2, input, size, scale_factor)
output_shape = list(input.shape[:-2]) + list(output_shape)
return _new_empty_tensor(input, output_shape)
else:
return torchvision.ops.misc.interpolate(input, size, scale_factor, mode, align_corners)

107
act/detr/util/plot_utils.py

@ -1,107 +0,0 @@
"""
Plotting utilities to visualize training logs.
"""
import torch
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
from pathlib import Path, PurePath
def plot_logs(logs, fields=('class_error', 'loss_bbox_unscaled', 'mAP'), ewm_col=0, log_name='log.txt'):
'''
Function to plot specific fields from training log(s). Plots both training and test results.
:: Inputs - logs = list containing Path objects, each pointing to individual dir with a log file
- fields = which results to plot from each log file - plots both training and test for each field.
- ewm_col = optional, which column to use as the exponential weighted smoothing of the plots
- log_name = optional, name of log file if different than default 'log.txt'.
:: Outputs - matplotlib plots of results in fields, color coded for each log file.
- solid lines are training results, dashed lines are test results.
'''
func_name = "plot_utils.py::plot_logs"
# verify logs is a list of Paths (list[Paths]) or single Pathlib object Path,
# convert single Path to list to avoid 'not iterable' error
if not isinstance(logs, list):
if isinstance(logs, PurePath):
logs = [logs]
print(f"{func_name} info: logs param expects a list argument, converted to list[Path].")
else:
raise ValueError(f"{func_name} - invalid argument for logs parameter.\n \
Expect list[Path] or single Path obj, received {type(logs)}")
# Quality checks - verify valid dir(s), that every item in list is Path object, and that log_name exists in each dir
for i, dir in enumerate(logs):
if not isinstance(dir, PurePath):
raise ValueError(f"{func_name} - non-Path object in logs argument of {type(dir)}: \n{dir}")
if not dir.exists():
raise ValueError(f"{func_name} - invalid directory in logs argument:\n{dir}")
# verify log_name exists
fn = Path(dir / log_name)
if not fn.exists():
print(f"-> missing {log_name}. Have you gotten to Epoch 1 in training?")
print(f"--> full path of missing log file: {fn}")
return
# load log file(s) and plot
dfs = [pd.read_json(Path(p) / log_name, lines=True) for p in logs]
fig, axs = plt.subplots(ncols=len(fields), figsize=(16, 5))
for df, color in zip(dfs, sns.color_palette(n_colors=len(logs))):
for j, field in enumerate(fields):
if field == 'mAP':
coco_eval = pd.DataFrame(
np.stack(df.test_coco_eval_bbox.dropna().values)[:, 1]
).ewm(com=ewm_col).mean()
axs[j].plot(coco_eval, c=color)
else:
df.interpolate().ewm(com=ewm_col).mean().plot(
y=[f'train_{field}', f'test_{field}'],
ax=axs[j],
color=[color] * 2,
style=['-', '--']
)
for ax, field in zip(axs, fields):
ax.legend([Path(p).name for p in logs])
ax.set_title(field)
def plot_precision_recall(files, naming_scheme='iter'):
if naming_scheme == 'exp_id':
# name becomes exp_id
names = [f.parts[-3] for f in files]
elif naming_scheme == 'iter':
names = [f.stem for f in files]
else:
raise ValueError(f'not supported {naming_scheme}')
fig, axs = plt.subplots(ncols=2, figsize=(16, 5))
for f, color, name in zip(files, sns.color_palette("Blues", n_colors=len(files)), names):
data = torch.load(f)
# precision is n_iou, n_points, n_cat, n_area, max_det
precision = data['precision']
recall = data['params'].recThrs
scores = data['scores']
# take precision for all classes, all areas and 100 detections
precision = precision[0, :, :, 0, -1].mean(1)
scores = scores[0, :, :, 0, -1].mean(1)
prec = precision.mean()
rec = data['recall'][0, :, 0, -1].mean()
print(f'{naming_scheme} {name}: mAP@50={prec * 100: 05.1f}, ' +
f'score={scores.mean():0.3f}, ' +
f'f1={2 * prec * rec / (prec + rec + 1e-8):0.3f}'
)
axs[0].plot(recall, precision, c=color)
axs[1].plot(recall, scores, c=color)
axs[0].set_title('Precision / Recall')
axs[0].legend(names)
axs[1].set_title('Scores / Recall')
axs[1].legend(names)
return fig, axs

367
act/imitate_episodes.py

@ -1,367 +0,0 @@
import torch
import numpy as np
import os
import pickle
import argparse
import matplotlib.pyplot as plt
from copy import deepcopy
from tqdm import tqdm
from einops import rearrange
# from .constants import DT
# from .constants import PUPPET_GRIPPER_JOINT_OPEN
from utils import load_data # data functions
from utils import compute_dict_mean, set_seed, detach_dict, parse_id, find_all_ckpt # helper functions
from policy import ACTPolicy, CNNMLPPolicy
# from .visualize_episodes import save_videos
import wandb
# from sim_env import BOX_POSE
# from constants import SIM_TASK_CONFIGS
import IPython
e = IPython.embed
import time
from itertools import repeat
def repeater(data_loader):
epoch = 0
for loader in repeat(data_loader):
for data in loader:
yield data
print(f'Epoch {epoch} done')
epoch += 1
from pathlib import Path
def main(args):
set_seed(1)
# command line parameters
is_eval = args['eval']
policy_class = args['policy_class']
onscreen_render = args['onscreen_render']
# task_name = args['task_name']
batch_size_train = args['batch_size']
batch_size_val = args['batch_size']
num_epochs = args['num_epochs']
# get task parameters
# is_sim = task_name[:4] == 'sim_'
task_dir, task_name = parse_id(RECORD_DIR, args['taskid'])
dataset_dir = (Path(task_dir) / 'processed').resolve()
ckpt_dir = (LOG_DIR / task_name / args['exptid']).resolve()
print("*"*20)
print(f"Task name: {task_name}")
print("*"*20)
# print(f"Checkpoint dir: {ckpt_dir}")
# task_config = SIM_TASK_CONFIGS[task_name]
# dataset_dir = task_config['dataset_dir']
# ckpt_dir = task_config['ckpt_dir']
# num_episodes = task_config['num_episodes']
# episode_len = task_config['episode_len']
camera_names = ['left', 'right']
# fixed parameters
state_dim = 26
action_dim = 28
lr_backbone = 1e-5
backbone = 'dino_v2'
if policy_class == 'ACT':
enc_layers = 4
dec_layers = 7
nheads = 8
policy_config = {'lr': args['lr'],
'num_queries': args['chunk_size'],
'kl_weight': args['kl_weight'],
'hidden_dim': args['hidden_dim'],
'dim_feedforward': args['dim_feedforward'],
'lr_backbone': lr_backbone,
'backbone': backbone,
'enc_layers': enc_layers,
'dec_layers': dec_layers,
'nheads': nheads,
'camera_names': camera_names,
'state_dim': state_dim,
'action_dim': action_dim,
'qpos_noise_std': args['qpos_noise_std'],
}
elif policy_class == 'CNNMLP':
policy_config = {'lr': args['lr'], 'lr_backbone': lr_backbone, 'backbone' : backbone, 'num_queries': 1,
'camera_names': camera_names,}
else:
raise NotImplementedError
config = {
'num_epochs': num_epochs,
'ckpt_dir': ckpt_dir,
# 'episode_len': episode_len,
'state_dim': state_dim,
'action_dim': action_dim,
'lr': args['lr'],
'policy_class': policy_class,
'onscreen_render': onscreen_render,
'policy_config': policy_config,
# 'task_name': task_name,
'seed': args['seed'],
'temporal_agg': args['temporal_agg'],
'camera_names': camera_names,
# 'real_robot': not is_sim
'resumeid': args['resumeid'],
'resume_ckpt': args['resume_ckpt'],
'task_name': task_name,
'exptid': args['exptid'],
}
mode = "disabled" if args["no_wandb"] or args["save_jit"] else "online"
wandb.init(project="television", name=args['exptid'], group=task_name, entity="cxx", mode=mode, dir="../data/logs")
wandb.config.update(config)
train_dataloader, val_dataloader, stats, _ = load_data(dataset_dir, camera_names, batch_size_train, batch_size_val)
# save dataset stats
if not os.path.isdir(ckpt_dir):
os.makedirs(ckpt_dir)
stats_path = os.path.join(ckpt_dir, f'dataset_stats.pkl')
with open(stats_path, 'wb') as f:
pickle.dump(stats, f)
if args['save_jit']:
save_jit(config)
return
best_ckpt_info = train_bc(train_dataloader, val_dataloader, config)
best_epoch, min_val_loss, best_state_dict = best_ckpt_info
# save best checkpoint
ckpt_path = os.path.join(ckpt_dir, f'policy_best.ckpt')
torch.save(best_state_dict, ckpt_path)
print(f'Best ckpt, val loss {min_val_loss:.6f} @ epoch{best_epoch}')
wandb.finish()
def make_policy(policy_class, policy_config):
if policy_class == 'ACT':
policy = ACTPolicy(policy_config)
elif policy_class == 'CNNMLP':
policy = CNNMLPPolicy(policy_config)
else:
raise NotImplementedError
return policy
def make_optimizer(policy_class, policy):
if policy_class == 'ACT':
optimizer = policy.configure_optimizers()
elif policy_class == 'CNNMLP':
optimizer = policy.configure_optimizers()
else:
raise NotImplementedError
return optimizer
def get_image(ts, camera_names):
curr_images = []
for cam_name in camera_names:
curr_image = rearrange(ts.observation['images'][cam_name], 'h w c -> c h w')
curr_images.append(curr_image)
curr_image = np.stack(curr_images, axis=0)
curr_image = torch.from_numpy(curr_image / 255.0).float().cuda().unsqueeze(0)
return curr_image
def forward_pass(data, policy):
image_data, qpos_data, action_data, is_pad = data
image_data, qpos_data, action_data, is_pad = image_data.cuda(), qpos_data.cuda(), action_data.cuda(), is_pad.cuda()
return policy(qpos_data, image_data, action_data, is_pad) # TODO remove None
def train_bc(train_dataloader, val_dataloader, config):
num_epochs = config['num_epochs']
ckpt_dir = config['ckpt_dir']
seed = config['seed']
policy_class = config['policy_class']
policy_config = config['policy_config']
set_seed(seed)
policy = make_policy(policy_class, policy_config)
policy.cuda()
optimizer = make_optimizer(policy_class, policy)
if config['resumeid']:
exp_dir, exp_name = parse_id((LOG_DIR / config['task_name']).resolve(), config['resumeid'])
policy, _, _ = load_ckpt(policy, exp_dir, config['resume_ckpt'])
# if config['resume_ckpt']:
# ckpt_name = f"policy_epoch_{config['resume_ckpt']}_seed_0.ckpt"
# else:
# ckpt_name, _ = find_all_ckpt(exp_dir)#f"policy_last.ckpt"
# resume_path = (Path(exp_dir) / ckpt_name).resolve()
# print(f"Resuming from {resume_path}")
# checkpoint = torch.load(resume_path)
# policy.load_state_dict(checkpoint)
# train_history = []
# validation_history = []
min_val_loss = np.inf
best_ckpt_info = None
train_dataloader = repeater(train_dataloader)
for epoch in tqdm(range(num_epochs)):
print(f'\nEpoch {epoch}')
if epoch % 500 == 0:
# validation
with torch.inference_mode():
policy.eval()
validation_dicts = []
for batch_idx, data in enumerate(val_dataloader):
forward_dict = forward_pass(data, policy)
validation_dicts.append(forward_dict)
if batch_idx > 20:
break
validation_summary = compute_dict_mean(validation_dicts)
epoch_val_loss = validation_summary['loss']
if epoch_val_loss < min_val_loss:
min_val_loss = epoch_val_loss
best_ckpt_info = (epoch, min_val_loss, deepcopy(policy.state_dict()))
for k in list(validation_summary.keys()):
validation_summary[f'val/{k}'] = validation_summary.pop(k)
wandb.log(validation_summary, step=epoch)
print(f'Val loss: {epoch_val_loss:.5f}')
summary_string = ''
for k, v in validation_summary.items():
summary_string += f'{k}: {v.item():.3f} '
print(summary_string)
# training
policy.train()
optimizer.zero_grad()
data = next(train_dataloader)
forward_dict = forward_pass(data, policy)
# backward
loss = forward_dict['loss']
loss.backward()
optimizer.step()
optimizer.zero_grad()
epoch_summary = detach_dict(forward_dict)
# epoch_summary = compute_dict_mean(train_history[(batch_idx+1)*epoch:(batch_idx+1)*(epoch+1)])
epoch_train_loss = epoch_summary['loss']
print(f'Train loss: {epoch_train_loss:.5f}')
summary_string = ''
for k, v in epoch_summary.items():
summary_string += f'{k}: {v.item():.3f} '
print(summary_string)
wandb.log(epoch_summary, step=epoch)
if epoch % 1000 == 0 and epoch >= 1000:
ckpt_path = os.path.join(ckpt_dir, f'policy_epoch_{epoch}_seed_{seed}.ckpt')
torch.save(policy.state_dict(), ckpt_path)
# plot_history(train_history, validation_history, epoch, ckpt_dir, seed)
ckpt_path = os.path.join(ckpt_dir, f'policy_last.ckpt')
torch.save(policy.state_dict(), ckpt_path)
best_epoch, min_val_loss, best_state_dict = best_ckpt_info
ckpt_path = os.path.join(ckpt_dir, f'policy_epoch_{best_epoch}_seed_{seed}.ckpt')
torch.save(best_state_dict, ckpt_path)
print(f'Training finished:\nSeed {seed}, val loss {min_val_loss:.6f} at epoch {best_epoch}')
# save training curves
# plot_history(train_history, validation_history, num_epochs, ckpt_dir, seed)
return best_ckpt_info
def plot_history(train_history, validation_history, num_epochs, ckpt_dir, seed):
# save training curves
for key in train_history[0]:
plot_path = os.path.join(ckpt_dir, f'train_val_{key}_seed_{seed}.png')
plt.figure()
train_values = [summary[key].item() for summary in train_history]
val_values = [summary[key].item() for summary in validation_history]
plt.plot(np.linspace(0, num_epochs-1, len(train_history)), train_values, label='train')
plt.plot(np.linspace(0, num_epochs-1, len(validation_history)), val_values, label='validation')
# plt.ylim([-0.1, 1])
plt.tight_layout()
plt.legend()
plt.title(key)
plt.savefig(plot_path)
print(f'Saved plots to {ckpt_dir}')
def load_ckpt(policy, exp_dir, ckpt_name):
if ckpt_name:
epoch = ckpt_name
ckpt_name = f"policy_epoch_{ckpt_name}_seed_0.ckpt"
else:
ckpt_name, epoch = find_all_ckpt(exp_dir)#f"policy_last.ckpt"
resume_path = (Path(exp_dir) / ckpt_name).resolve()
print("*"*20)
print(f"Resuming from {resume_path}")
print("*"*20)
policy.load_state_dict(torch.load(resume_path))
return policy, ckpt_name, epoch
def save_jit(config):
# ckpt_dir = config['ckpt_dir']
policy_class = config['policy_class']
policy_config = config['policy_config']
exp_dir, exp_name = parse_id((LOG_DIR / config['task_name']).resolve(), config['exptid'])
policy = make_policy(policy_class, policy_config)
policy.cuda()
policy, ckpt_name, epoch = load_ckpt(policy, exp_dir, config['resume_ckpt'])
policy.eval()
image_data = torch.rand((1, 2, 3, 480, 640), device='cuda')
qpos_data = torch.rand((1, config['state_dim']), device='cuda')
input_data = (qpos_data, image_data)
traced_policy = torch.jit.trace(policy, input_data)
save_path = os.path.join(exp_dir, f"traced_jit_{epoch}.pt")
traced_policy.save(save_path)
print("Saved traced actor at ", save_path)
new_policy = torch.jit.load(save_path)
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('--eval', action='store_true')
parser.add_argument('--onscreen_render', action='store_true')
parser.add_argument('--policy_class', action='store', type=str, help='policy_class, capitalize', required=True)
# parser.add_argument('--task_name', action='store', type=str, help='task_name', required=True)
parser.add_argument('--batch_size', action='store', type=int, help='batch_size', required=True)
parser.add_argument('--seed', action='store', type=int, help='seed', required=True)
parser.add_argument('--num_epochs', action='store', type=int, help='num_epochs', required=True)
parser.add_argument('--lr', action='store', type=float, help='lr', required=True)
parser.add_argument('--qpos_noise_std', action='store', default=0, type=float, help='lr', required=False)
# for ACT
parser.add_argument('--kl_weight', action='store', type=int, help='KL Weight', required=False)
parser.add_argument('--chunk_size', action='store', type=int, help='chunk_size', required=False)
parser.add_argument('--hidden_dim', action='store', type=int, help='hidden_dim', required=False)
parser.add_argument('--dim_feedforward', action='store', type=int, help='dim_feedforward', required=False)
parser.add_argument('--temporal_agg', action='store_true')
parser.add_argument('--save_jit', action='store_true')
parser.add_argument('--no_wandb', action='store_true')
parser.add_argument('--resumeid', action='store', default="", type=str, help='resume id', required=False)
parser.add_argument('--resume_ckpt', action='store', default="", type=str, help='resume ckpt', required=False)
parser.add_argument('--taskid', action='store', type=str, help='task id', required=True)
parser.add_argument('--exptid', action='store', type=str, help='experiment id', required=True)
parser.add_argument('--source', choices=['self', 'ssd'], default='self')
args = vars(parser.parse_args())
if args['source'] == 'self':
current_dir = Path(__file__).parent.resolve()
else:
current_dir = Path("/media/cxx/Extreme Pro/human2robot/data/").resolve()
DATA_DIR = (current_dir.parent / 'data/').resolve()
RECORD_DIR = (DATA_DIR / 'recordings/').resolve()
LOG_DIR = (DATA_DIR / 'logs/').resolve()
# print(f"\nDATA dir: {DATA_DIR}")
main(args)

115
act/policy.py

@ -1,115 +0,0 @@
import torch.nn as nn
from torch.nn import functional as F
from torchvision.transforms import v2
import torch
from detr.main import build_ACT_model_and_optimizer, build_CNNMLP_model_and_optimizer
import IPython
e = IPython.embed
class ACTPolicy(nn.Module):
def __init__(self, args_override):
super().__init__()
model, optimizer = build_ACT_model_and_optimizer(args_override)
self.model = model # CVAE decoder
self.optimizer = optimizer
self.kl_weight = args_override['kl_weight']
self.qpos_noise_std = args_override['qpos_noise_std']
print(f'KL Weight {self.kl_weight}')
def __call__(self, qpos, image, actions=None, is_pad=None):
env_state = None
# normalize = transforms.Normalize(mean=[0.485, 0.456, 0.406],
# std=[0.229, 0.224, 0.225])
patch_h = 16
patch_w = 22
if actions is not None: # training time
# transform = v2.Compose([
# v2.ColorJitter(brightness=0.5, contrast=0.5, saturation=0.5, hue=0.5),
# v2.RandomPerspective(distortion_scale=0.5),
# v2.RandomAffine(degrees=10, translate=(0.1,0.1), scale=(0.9,1.1)),
# v2.GaussianBlur(kernel_size=(9,9), sigma=(0.1,2.0)),
# v2.Normalize(
# mean=[0.485, 0.456, 0.406],
# std=[0.229, 0.224, 0.225])
# ])
transform = v2.Compose([
v2.ColorJitter(brightness=0.5, contrast=0.5, saturation=0.5, hue=0.5),
v2.RandomPerspective(distortion_scale=0.5),
v2.RandomAffine(degrees=10, translate=(0.1,0.1), scale=(0.9,1.1)),
v2.GaussianBlur(kernel_size=(9,9), sigma=(0.1,2.0)),
v2.Resize((patch_h * 14, patch_w * 14)),
# v2.CenterCrop((patch_h * 14, patch_w * 14)),
v2.Normalize(mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225)),
])
qpos += (self.qpos_noise_std**0.5)*torch.randn_like(qpos)
else: # inference time
transform = v2.Compose([
v2.Resize((patch_h * 14, patch_w * 14)),
# v2.CenterCrop((patch_h * 14, patch_w * 14)),
v2.Normalize(mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225))
])
image = transform(image)
if actions is not None: # training time
actions = actions[:, :self.model.num_queries]
is_pad = is_pad[:, :self.model.num_queries]
a_hat, is_pad_hat, (mu, logvar) = self.model(qpos, image, env_state, actions, is_pad)
total_kld, dim_wise_kld, mean_kld = kl_divergence(mu, logvar)
loss_dict = dict()
all_l1 = F.l1_loss(actions, a_hat, reduction='none')
l1 = (all_l1 * ~is_pad.unsqueeze(-1)).mean()
loss_dict['l1'] = l1
loss_dict['kl'] = total_kld[0]
loss_dict['loss'] = loss_dict['l1'] + loss_dict['kl'] * self.kl_weight
return loss_dict
else: # inference time
a_hat, _, (_, _) = self.model(qpos, image, env_state) # no action, sample from prior
return a_hat
def configure_optimizers(self):
return self.optimizer
class CNNMLPPolicy(nn.Module):
def __init__(self, args_override):
super().__init__()
model, optimizer = build_CNNMLP_model_and_optimizer(args_override)
self.model = model # decoder
self.optimizer = optimizer
def __call__(self, qpos, image, actions=None, is_pad=None):
env_state = None # TODO
normalize = transforms.Normalize(mean=[0.485, 0.456, 0.406],
std=[0.229, 0.224, 0.225])
image = normalize(image)
if actions is not None: # training time
actions = actions[:, 0]
a_hat = self.model(qpos, image, env_state, actions)
mse = F.mse_loss(actions, a_hat)
loss_dict = dict()
loss_dict['mse'] = mse
loss_dict['loss'] = loss_dict['mse']
return loss_dict
else: # inference time
a_hat = self.model(qpos, image, env_state) # no action, sample from prior
return a_hat
def configure_optimizers(self):
return self.optimizer
def kl_divergence(mu, logvar):
batch_size = mu.size(0)
assert batch_size != 0
if mu.data.ndimension() == 4:
mu = mu.view(mu.size(0), mu.size(1))
if logvar.data.ndimension() == 4:
logvar = logvar.view(logvar.size(0), logvar.size(1))
klds = -0.5 * (1 + logvar - mu.pow(2) - logvar.exp())
total_kld = klds.sum(1).mean(0, True)
dimension_wise_kld = klds.mean(0)
mean_kld = klds.mean(1).mean(0, True)
return total_kld, dimension_wise_kld, mean_kld

286
act/utils.py

@ -1,286 +0,0 @@
import numpy as np
import torch
import os
import h5py
from torch.utils.data import TensorDataset, DataLoader
import time
import IPython
e = IPython.embed
from pathlib import Path
class EpisodicDataset(torch.utils.data.Dataset):
def __init__(self, episode_ids, dataset_dir, camera_names, norm_stats, episode_len, history_stack=0):
super(EpisodicDataset).__init__()
self.episode_ids = episode_ids
self.dataset_dir = dataset_dir
self.camera_names = camera_names
self.norm_stats = norm_stats
self.is_sim = None
self.max_pad_len = 200
action_str = 'qpos_action'
self.history_stack = history_stack
self.dataset_paths = []
self.roots = []
self.is_sims = []
self.original_action_shapes = []
self.states = []
self.image_dict = dict()
for cam_name in self.camera_names:
self.image_dict[cam_name] = []
self.actions = []
for i, episode_id in enumerate(self.episode_ids):
self.dataset_paths.append(os.path.join(self.dataset_dir, f'processed_episode_{episode_id}.hdf5'))
root = h5py.File(self.dataset_paths[i], 'r')
self.roots.append(root)
self.is_sims.append(root.attrs['sim'])
self.original_action_shapes.append(root[action_str].shape)
self.states.append(np.array(root['observation.state']))
for cam_name in self.camera_names:
self.image_dict[cam_name].append(root[f'observation.image.{cam_name}'])
self.actions.append(np.array(root[action_str]))
self.is_sim = self.is_sims[0]
self.episode_len = episode_len
self.cumulative_len = np.cumsum(self.episode_len)
# self.__getitem__(0) # initialize self.is_sim
# def __len__(self):
# return len(self.episode_ids)
def _locate_transition(self, index):
assert index < self.cumulative_len[-1]
episode_index = np.argmax(self.cumulative_len > index) # argmax returns first True index
start_ts = index - (self.cumulative_len[episode_index] - self.episode_len[episode_index])
return episode_index, start_ts
def __getitem__(self, ts_index):
sample_full_episode = False # hardcode
index, start_ts = self._locate_transition(ts_index)
original_action_shape = self.original_action_shapes[index]
episode_len = original_action_shape[0]
if sample_full_episode:
start_ts = 0
else:
start_ts = np.random.choice(episode_len)
# get observation at start_ts only
qpos = self.states[index][start_ts]
# qvel = root['/observations/qvel'][start_ts]
if self.history_stack > 0:
last_indices = np.maximum(0, np.arange(start_ts-self.history_stack, start_ts)).astype(int)
last_action = self.actions[index][last_indices, :]
image_dict = dict()
for cam_name in self.camera_names:
image_dict[cam_name] = self.image_dict[cam_name][index][start_ts]
# get all actions after and including start_ts
all_time_action = self.actions[index][:]
all_time_action_padded = np.zeros((self.max_pad_len+original_action_shape[0], original_action_shape[1]), dtype=np.float32)
all_time_action_padded[:episode_len] = all_time_action
all_time_action_padded[episode_len:] = all_time_action[-1]
padded_action = all_time_action_padded[start_ts:start_ts+self.max_pad_len]
real_len = episode_len - start_ts
is_pad = np.zeros(self.max_pad_len)
is_pad[real_len:] = 1
# new axis for different cameras
all_cam_images = []
for cam_name in self.camera_names:
all_cam_images.append(image_dict[cam_name])
all_cam_images = np.stack(all_cam_images, axis=0)
# construct observations
image_data = torch.from_numpy(all_cam_images)
qpos_data = torch.from_numpy(qpos).float()
action_data = torch.from_numpy(padded_action).float()
is_pad = torch.from_numpy(is_pad).bool()
if self.history_stack > 0:
last_action_data = torch.from_numpy(last_action).float()
# normalize image and change dtype to float
image_data = image_data / 255.0
action_data = (action_data - self.norm_stats["action_mean"]) / self.norm_stats["action_std"]
qpos_data = (qpos_data - self.norm_stats["qpos_mean"]) / self.norm_stats["qpos_std"]
if self.history_stack > 0:
last_action_data = (last_action_data - self.norm_stats['action_mean']) / self.norm_stats['action_std']
qpos_data = torch.cat((qpos_data, last_action_data.flatten()))
# print(f"qpos_data: {qpos_data.shape}, action_data: {action_data.shape}, image_data: {image_data.shape}, is_pad: {is_pad.shape}")
return image_data, qpos_data, action_data, is_pad
def get_norm_stats(dataset_dir, num_episodes):
action_str = 'qpos_action'
all_qpos_data = []
all_action_data = []
all_episode_len = []
for episode_idx in range(num_episodes):
dataset_path = os.path.join(dataset_dir, f'processed_episode_{episode_idx}.hdf5')
with h5py.File(dataset_path, 'r') as root:
qpos = root['observation.state'][()]
action = root[action_str][()]
all_qpos_data.append(torch.from_numpy(qpos))
all_action_data.append(torch.from_numpy(action))
all_episode_len.append(len(qpos))
all_qpos_data = torch.cat(all_qpos_data)
all_action_data = torch.cat(all_action_data)
all_action_data = all_action_data
# normalize action data
action_mean = all_action_data.mean(dim=0, keepdim=True) # (episode, timstep, action_dim)
action_std = all_action_data.std(dim=0, keepdim=True)
action_std = torch.clip(action_std, 1e-2, np.inf) # clipping
# normalize qpos data
qpos_mean = all_qpos_data.mean(dim=0, keepdim=True)
qpos_std = all_qpos_data.std(dim=0, keepdim=True)
qpos_std = torch.clip(qpos_std, 1e-2, np.inf) # clipping
stats = {"action_mean": action_mean.numpy().squeeze(), "action_std": action_std.numpy().squeeze(),
"qpos_mean": qpos_mean.numpy().squeeze(), "qpos_std": qpos_std.numpy().squeeze(),
"example_qpos": qpos}
return stats, all_episode_len
def find_all_processed_episodes(path):
episodes = [f for f in os.listdir(path)]
return episodes
def BatchSampler(batch_size, episode_len_l, sample_weights=None):
sample_probs = np.array(sample_weights) / np.sum(sample_weights) if sample_weights is not None else None
sum_dataset_len_l = np.cumsum([0] + [np.sum(episode_len) for episode_len in episode_len_l])
while True:
batch = []
for _ in range(batch_size):
episode_idx = np.random.choice(len(episode_len_l), p=sample_probs)
step_idx = np.random.randint(sum_dataset_len_l[episode_idx], sum_dataset_len_l[episode_idx + 1])
batch.append(step_idx)
yield batch
def load_data(dataset_dir, camera_names, batch_size_train, batch_size_val):
print(f'\nData from: {dataset_dir}\n')
all_eps = find_all_processed_episodes(dataset_dir)
num_episodes = len(all_eps)
# obtain train test split
train_ratio = 0.99
shuffled_indices = np.random.permutation(num_episodes)
train_indices = shuffled_indices[:int(train_ratio * num_episodes)]
val_indices = shuffled_indices[int(train_ratio * num_episodes):]
print(f"Train episodes: {len(train_indices)}, Val episodes: {len(val_indices)}")
# obtain normalization stats for qpos and action
norm_stats, all_episode_len = get_norm_stats(dataset_dir, num_episodes)
train_episode_len_l = [all_episode_len[i] for i in train_indices]
val_episode_len_l = [all_episode_len[i] for i in val_indices]
batch_sampler_train = BatchSampler(batch_size_train, train_episode_len_l)
batch_sampler_val = BatchSampler(batch_size_val, val_episode_len_l, None)
# construct dataset and dataloader
train_dataset = EpisodicDataset(train_indices, dataset_dir, camera_names, norm_stats, train_episode_len_l)
val_dataset = EpisodicDataset(val_indices, dataset_dir, camera_names, norm_stats, val_episode_len_l)
train_dataloader = DataLoader(train_dataset, batch_sampler=batch_sampler_train, pin_memory=True, num_workers=24, prefetch_factor=2)
val_dataloader = DataLoader(val_dataset, batch_sampler=batch_sampler_val, pin_memory=True, num_workers=16, prefetch_factor=2)
return train_dataloader, val_dataloader, norm_stats, train_dataset.is_sim
def sample_box_pose():
x_range = [0.0, 0.2]
y_range = [0.4, 0.6]
z_range = [0.05, 0.05]
ranges = np.vstack([x_range, y_range, z_range])
cube_position = np.random.uniform(ranges[:, 0], ranges[:, 1])
cube_quat = np.array([1, 0, 0, 0])
return np.concatenate([cube_position, cube_quat])
def sample_insertion_pose():
# Peg
x_range = [0.1, 0.2]
y_range = [0.4, 0.6]
z_range = [0.05, 0.05]
ranges = np.vstack([x_range, y_range, z_range])
peg_position = np.random.uniform(ranges[:, 0], ranges[:, 1])
peg_quat = np.array([1, 0, 0, 0])
peg_pose = np.concatenate([peg_position, peg_quat])
# Socket
x_range = [-0.2, -0.1]
y_range = [0.4, 0.6]
z_range = [0.05, 0.05]
ranges = np.vstack([x_range, y_range, z_range])
socket_position = np.random.uniform(ranges[:, 0], ranges[:, 1])
socket_quat = np.array([1, 0, 0, 0])
socket_pose = np.concatenate([socket_position, socket_quat])
return peg_pose, socket_pose
### helper functions
def compute_dict_mean(epoch_dicts):
result = {k: None for k in epoch_dicts[0]}
num_items = len(epoch_dicts)
for k in result:
value_sum = 0
for epoch_dict in epoch_dicts:
value_sum += epoch_dict[k]
result[k] = value_sum / num_items
return result
def detach_dict(d):
new_d = dict()
for k, v in d.items():
new_d[k] = v.detach()
return new_d
def set_seed(seed):
torch.manual_seed(seed)
np.random.seed(seed)
def parse_id(base_dir, prefix):
base_path = Path(base_dir)
# Ensure the base path exists and is a directory
if not base_path.exists() or not base_path.is_dir():
raise ValueError(f"The provided base directory does not exist or is not a directory: \n{base_path}")
# Loop through all subdirectories of the base path
for subfolder in base_path.iterdir():
if subfolder.is_dir() and subfolder.name.startswith(prefix):
return str(subfolder), subfolder.name
# If no matching subfolder is found
return None, None
def find_all_ckpt(base_dir, prefix="policy_epoch_"):
base_path = Path(base_dir)
# Ensure the base path exists and is a directory
if not base_path.exists() or not base_path.is_dir():
raise ValueError("The provided base directory does not exist or is not a directory.")
ckpt_files = []
for file in base_path.iterdir():
if file.is_file() and file.name.startswith(prefix):
ckpt_files.append(file.name)
# find latest ckpt
ckpt_files = sorted(ckpt_files, key=lambda x: int(x.split(prefix)[-1].split('_')[0]), reverse=True)
epoch = int(ckpt_files[0].split(prefix)[-1].split('_')[0])
return ckpt_files[0], epoch

0
teleop/inspire_hand.yml → assets/inspire_hand/inspire_hand.yml

819
assets/inspire_hand/inspire_hand_left.urdf

@ -0,0 +1,819 @@
<robot
name="h1">
<link name="L_hand_base_link">
<inertial>
<origin
xyz="-0.002551 -0.066047 -0.0019357"
rpy="0 0 0" />
<mass
value="0.14143" />
<inertia
ixx="0.0001234"
ixy="2.1995E-06"
ixz="-1.7694E-06"
iyy="8.3835E-05"
iyz="1.5968E-06"
izz="7.7231E-05" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/L_hand_base_link.STL" />
</geometry>
<material name="">
<color rgba="0.1 0.1 0.1 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/L_hand_base_link.STL" />
</geometry>
</collision>
</link>
<link name="L_thumb_proximal_base">
<inertial>
<origin
xyz="0.0048817 0.00038782 -0.00722"
rpy="0 0 0" />
<mass
value="0.0018869" />
<inertia
ixx="5.5158E-08"
ixy="-1.1803E-08"
ixz="-4.6743E-09"
iyy="8.2164E-08"
iyz="-1.3521E-09"
izz="6.7434E-08" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link11_L.STL" />
</geometry>
<material name="">
<color rgba="0.1 0.1 0.1 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link11_L.STL" />
</geometry>
</collision>
</link>
<joint
name="L_thumb_proximal_yaw_joint"
type="revolute">
<origin
xyz="-0.01696 -0.0691 0.02045"
rpy="1.5708 -1.5708 0" />
<parent
link="L_hand_base_link" />
<child
link="L_thumb_proximal_base" />
<axis
xyz="0 0 1" />
<limit
lower="-0.1"
upper="1.3"
effort="1"
velocity="0.5" />
</joint>
<link name="L_thumb_proximal">
<inertial>
<origin
xyz="0.021936 -0.01279 -0.0080386"
rpy="0 0 0" />
<mass
value="0.0066101" />
<inertia
ixx="1.5693E-06"
ixy="7.8339E-07"
ixz="8.5959E-10"
iyy="1.7356E-06"
iyz="1.0378E-09"
izz="2.787E-06" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link12_L.STL" />
</geometry>
<material name="">
<color rgba="0.1 0.1 0.1 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link12_L.STL" />
</geometry>
</collision>
</link>
<joint
name="L_thumb_proximal_pitch_joint"
type="revolute">
<origin
xyz="0.0099867 0.0098242 -0.0089"
rpy="-1.5708 0 0.16939" />
<parent
link="L_thumb_proximal_base" />
<child
link="L_thumb_proximal" />
<axis
xyz="0 0 -1" />
<limit
lower="0.0"
upper="0.5"
effort="1"
velocity="0.5" />
</joint>
<link name="L_thumb_intermediate">
<inertial>
<origin
xyz="0.0095531 0.0016282 -0.0072002"
rpy="0 0 0" />
<mass
value="0.0037844" />
<inertia
ixx="3.6981E-07"
ixy="9.8603E-08"
ixz="-2.8173E-12"
iyy="3.2395E-07"
iyz="-2.8028E-12"
izz="4.6532E-07" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link13_L.STL" />
</geometry>
<material name="">
<color rgba="0.1 0.1 0.1 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link13_L.STL" />
</geometry>
</collision>
</link>
<joint
name="L_thumb_intermediate_joint"
type="revolute">
<origin
xyz="0.04407 -0.034553 -0.0008"
rpy="0 0 0" />
<parent
link="L_thumb_proximal" />
<child
link="L_thumb_intermediate" />
<axis
xyz="0 0 -1" />
<limit
lower="0"
upper="0.8"
effort="1"
velocity="0.5" />
<mimic
joint="L_thumb_proximal_pitch_joint"
multiplier="1.6"
offset="0" />
</joint>
<link name="L_thumb_distal">
<inertial>
<origin
xyz="0.0092888 -0.004953 -0.0060033"
rpy="0 0 0" />
<mass
value="0.003344" />
<inertia
ixx="1.3632E-07"
ixy="5.6787E-08"
ixz="-9.1939E-11"
iyy="1.4052E-07"
iyz="1.2145E-10"
izz="2.0026E-07" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link14_L.STL" />
</geometry>
<material name="">
<color rgba="0.1 0.1 0.1 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link14_L.STL" />
</geometry>
</collision>
</link>
<joint
name="L_thumb_distal_joint"
type="revolute">
<origin
xyz="0.020248 -0.010156 -0.0012"
rpy="0 0 0" />
<parent
link="L_thumb_intermediate" />
<child
link="L_thumb_distal" />
<axis
xyz="0 0 -1" />
<limit
lower="0"
upper="1.2"
effort="1"
velocity="0.5" />
<mimic
joint="L_thumb_proximal_pitch_joint"
multiplier="2.4"
offset="0" />
</joint>
<link name="L_index_proximal">
<inertial>
<origin
xyz="0.0012971 -0.011934 -0.0059998"
rpy="0 0 0" />
<mass
value="0.0042405" />
<inertia
ixx="6.6215E-07"
ixy="1.8442E-08"
ixz="1.3746E-12"
iyy="2.1167E-07"
iyz="-1.4773E-11"
izz="6.9402E-07" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link15_L.STL" />
</geometry>
<material name="">
<color rgba="0.1 0.1 0.1 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link15_L.STL" />
</geometry>
</collision>
</link>
<link name="L_thumb_tip">
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<sphere radius="0.005"/>
</geometry>
<material name="green">
<color rgba="0 1 0 1" />
</material>
</visual>
</link>
<joint name="L_thumb_tip_joint" type="fixed">
<parent link="L_thumb_distal"/>
<child link="L_thumb_tip"/>
<origin rpy="0 0 0" xyz="0.015 -0.013 -0.004"/>
</joint>
<joint
name="L_index_proximal_joint"
type="revolute">
<origin
xyz="0.00028533 -0.13653 0.032268"
rpy="-0.034907 0 0" />
<parent
link="L_hand_base_link" />
<child
link="L_index_proximal" />
<axis
xyz="0 0 -1" />
<limit
lower="0"
upper="1.7"
effort="1"
velocity="0.5" />
</joint>
<link name="L_index_intermediate">
<inertial>
<origin
xyz="0.0021753 -0.019567 -0.005"
rpy="0 0 0" />
<mass
value="0.0045682" />
<inertia
ixx="7.6284E-07"
ixy="-8.063E-08"
ixz="3.6797E-13"
iyy="9.4308E-08"
iyz="1.5743E-13"
izz="7.8176E-07" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link16_L.STL" />
</geometry>
<material name="">
<color rgba="0.1 0.1 0.1 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link16_L.STL" />
</geometry>
</collision>
</link>
<joint
name="L_index_intermediate_joint"
type="revolute">
<origin
xyz="-0.0024229 -0.032041 -0.001"
rpy="0 0 0" />
<parent
link="L_index_proximal" />
<child
link="L_index_intermediate" />
<axis
xyz="0 0 -1" />
<limit
lower="0"
upper="1.7"
effort="1"
velocity="0.5" />
<mimic
joint="L_index_proximal_joint"
multiplier="1"
offset="0" />
</joint>
<link name="L_index_tip">
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<sphere radius="0.005"/>
</geometry>
<material name="green">
<color rgba="0 1 0 1" />
</material>
</visual>
</link>
<joint name="L_index_tip_joint" type="fixed">
<parent link="L_index_intermediate"/>
<child link="L_index_tip"/>
<origin rpy="0 0 0" xyz="-0.005 -0.04 -0.004"/>
</joint>
<link name="L_middle_proximal">
<inertial>
<origin
xyz="0.0012971 -0.011934 -0.0059999"
rpy="0 0 0" />
<mass
value="0.0042405" />
<inertia
ixx="6.6215E-07"
ixy="1.8442E-08"
ixz="1.2299E-12"
iyy="2.1167E-07"
iyz="-1.4484E-11"
izz="6.9402E-07" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link17_L.STL" />
</geometry>
<material name="">
<color rgba="0.1 0.1 0.1 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link17_L.STL" />
</geometry>
</collision>
</link>
<joint
name="L_middle_proximal_joint"
type="revolute">
<origin
xyz="0.00028533 -0.1371 0.01295"
rpy="0 0 0" />
<parent
link="L_hand_base_link" />
<child
link="L_middle_proximal" />
<axis
xyz="0 0 -1" />
<limit
lower="0"
upper="1.7"
effort="1"
velocity="0.5" />
</joint>
<link name="L_middle_intermediate">
<inertial>
<origin
xyz="0.001921 -0.020796 -0.0049999"
rpy="0 0 0" />
<mass
value="0.0050397" />
<inertia
ixx="9.5823E-07"
ixy="-1.1425E-07"
ixz="-2.4186E-12"
iyy="1.0646E-07"
iyz="3.6974E-12"
izz="9.8385E-07" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link18_L.STL" />
</geometry>
<material name="">
<color rgba="0.1 0.1 0.1 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link18_L.STL" />
</geometry>
</collision>
</link>
<joint
name="L_middle_intermediate_joint"
type="revolute">
<origin
xyz="-0.0024229 -0.032041 -0.001"
rpy="0 0 0" />
<parent
link="L_middle_proximal" />
<child
link="L_middle_intermediate" />
<axis
xyz="0 0 -1" />
<limit
lower="0"
upper="1.7"
effort="1"
velocity="0.5" />
<mimic
joint="L_middle_proximal_joint"
multiplier="1"
offset="0" />
</joint>
<link name="L_middle_tip">
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<sphere radius="0.005"/>
</geometry>
<material name="green">
<color rgba="0 1 0 1" />
</material>
</visual>
</link>
<joint name="L_middle_tip_joint" type="fixed">
<parent link="L_middle_intermediate"/>
<child link="L_middle_tip"/>
<origin rpy="0 0 0" xyz="-0.005 -0.045 -0.004"/>
</joint>
<link name="L_ring_proximal">
<inertial>
<origin
xyz="0.0012971 -0.011934 -0.0059999"
rpy="0 0 0" />
<mass
value="0.0042405" />
<inertia
ixx="6.6215E-07"
ixy="1.8442E-08"
ixz="9.6052E-13"
iyy="2.1167E-07"
iyz="-1.4124E-11"
izz="6.9402E-07" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link19_L.STL" />
</geometry>
<material name="">
<color rgba="0.1 0.1 0.1 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link19_L.STL" />
</geometry>
</collision>
</link>
<joint
name="L_ring_proximal_joint"
type="revolute">
<origin
xyz="0.00028533 -0.13691 -0.0062872"
rpy="0.05236 0 0" />
<parent
link="L_hand_base_link" />
<child
link="L_ring_proximal" />
<axis
xyz="0 0 -1" />
<limit
lower="0"
upper="1.7"
effort="1"
velocity="0.5" />
</joint>
<link name="L_ring_intermediate">
<inertial>
<origin
xyz="0.0021753 -0.019567 -0.005"
rpy="0 0 0" />
<mass
value="0.0045682" />
<inertia
ixx="7.6285E-07"
ixy="-8.0631E-08"
ixz="3.3472E-14"
iyy="9.4308E-08"
iyz="-4.4773E-13"
izz="7.8176E-07" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link20_L.STL" />
</geometry>
<material name="">
<color rgba="0.1 0.1 0.1 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link20_L.STL" />
</geometry>
</collision>
</link>
<joint
name="L_ring_intermediate_joint"
type="revolute">
<origin
xyz="-0.0024229 -0.032041 -0.001"
rpy="0 0 0" />
<parent
link="L_ring_proximal" />
<child
link="L_ring_intermediate" />
<axis
xyz="0 0 -1" />
<limit
lower="0"
upper="1.7"
effort="1"
velocity="0.5" />
<mimic
joint="L_ring_proximal_joint"
multiplier="1"
offset="0" />
</joint>
<link name="L_ring_tip">
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<sphere radius="0.005"/>
</geometry>
<material name="green">
<color rgba="0 1 0 1" />
</material>
</visual>
</link>
<joint name="L_ring_tip_joint" type="fixed">
<parent link="L_ring_intermediate"/>
<child link="L_ring_tip"/>
<origin rpy="0 0 0" xyz="-0.002 -0.04 -0.004"/>
</joint>
<link name="L_pinky_proximal">
<inertial>
<origin
xyz="0.0012971 -0.011934 -0.0059999"
rpy="0 0 0" />
<mass
value="0.0042405" />
<inertia
ixx="6.6215E-07"
ixy="1.8442E-08"
ixz="1.0279E-12"
iyy="2.1167E-07"
iyz="-1.4277E-11"
izz="6.9402E-07" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link21_L.STL" />
</geometry>
<material name="">
<color rgba="0.1 0.1 0.1 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link21_L.STL" />
</geometry>
</collision>
</link>
<joint
name="L_pinky_proximal_joint"
type="revolute">
<origin
xyz="0.00028533 -0.13571 -0.025488"
rpy="0.10472 0 0" />
<parent
link="L_hand_base_link" />
<child
link="L_pinky_proximal" />
<axis
xyz="0 0 -1" />
<limit
lower="0"
upper="1.7"
effort="1"
velocity="0.5" />
</joint>
<link name="L_pinky_intermediate">
<inertial>
<origin
xyz="0.0024788 -0.016208 -0.0050001"
rpy="0 0 0" />
<mass
value="0.0036036" />
<inertia
ixx="4.3923E-07"
ixy="-4.1355E-08"
ixz="1.2263E-12"
iyy="7.0315E-08"
iyz="3.1311E-12"
izz="4.4881E-07" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link22_L.STL" />
</geometry>
<material name="">
<color rgba="0.1 0.1 0.1 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link22_L.STL" />
</geometry>
</collision>
</link>
<joint
name="L_pinky_intermediate_joint"
type="revolute">
<origin
xyz="-0.0024229 -0.032041 -0.001"
rpy="0 0 0" />
<parent
link="L_pinky_proximal" />
<child
link="L_pinky_intermediate" />
<axis
xyz="0 0 -1" />
<limit
lower="0"
upper="1.7"
effort="1"
velocity="0.5" />
<mimic
joint="L_pinky_proximal_joint"
multiplier="1"
offset="0" />
</joint>
<link name="L_pinky_tip">
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<sphere radius="0.005"/>
</geometry>
<material name="green">
<color rgba="0 1 0 1" />
</material>
</visual>
</link>
<joint name="L_pinky_tip_joint" type="fixed">
<parent link="L_pinky_intermediate"/>
<child link="L_pinky_tip"/>
<origin rpy="0 0 0" xyz="-0.002 -0.032 -0.004"/>
</joint>
</robot>

830
assets/inspire_hand/inspire_hand_right.urdf

@ -0,0 +1,830 @@
<robot
name="h1">
<mujoco>
<compiler meshdir="./meshes" discardvisual="false" />
</mujoco>
<!-- [CAUTION] uncomment when convert to mujoco -->
<!-- <link name="world"></link>
<joint name="floating_base_joint" type="floating">
<parent link="world" />
<child link="pelvis" />
</joint> -->
<link name="R_hand_base_link">
<inertial>
<origin
xyz="-0.0025264 -0.066047 0.0019598"
rpy="0 0 0" />
<mass
value="0.14143" />
<inertia
ixx="0.00012281"
ixy="2.1711E-06"
ixz="1.7709E-06"
iyy="8.3832E-05"
iyz="-1.6551E-06"
izz="7.6663E-05" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/R_hand_base_link.STL" />
</geometry>
<material name="">
<color rgba="0.1 0.1 0.1 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/R_hand_base_link.STL" />
</geometry>
</collision>
</link>
<link name="R_thumb_proximal_base">
<inertial>
<origin
xyz="-0.0048064 0.0009382 -0.00757"
rpy="0 0 0" />
<mass
value="0.0018869" />
<inertia
ixx="5.816E-08"
ixy="1.4539E-08"
ixz="4.491E-09"
iyy="7.9161E-08"
iyz="-1.8727E-09"
izz="6.7433E-08" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link11_R.STL" />
</geometry>
<material name="">
<color rgba="0.1 0.1 0.1 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link11_R.STL" />
</geometry>
</collision>
</link>
<joint
name="R_thumb_proximal_yaw_joint"
type="revolute">
<origin
xyz="-0.01696 -0.0691 -0.02045"
rpy="1.5708 -1.5708 0" />
<parent
link="R_hand_base_link" />
<child
link="R_thumb_proximal_base" />
<axis
xyz="0 0 -1" />
<limit
lower="-0.1"
upper="1.3"
effort="1"
velocity="0.5" />
</joint>
<link name="R_thumb_proximal">
<inertial>
<origin
xyz="0.021932 0.012785 -0.0080386"
rpy="0 0 0" />
<mass
value="0.0066075" />
<inertia
ixx="1.5686E-06"
ixy="-7.8296E-07"
ixz="8.9143E-10"
iyy="1.7353E-06"
iyz="-1.0191E-09"
izz="2.786E-06" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link12_R.STL" />
</geometry>
<material name="">
<color rgba="0.1 0.1 0.1 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link12_R.STL" />
</geometry>
</collision>
</link>
<joint
name="R_thumb_proximal_pitch_joint"
type="revolute">
<origin
xyz="-0.0088099 0.010892 -0.00925"
rpy="1.5708 0 2.8587" />
<parent
link="R_thumb_proximal_base" />
<child
link="R_thumb_proximal" />
<axis
xyz="0 0 1" />
<limit
lower="0.0"
upper="0.5"
effort="1"
velocity="0.5" />
</joint>
<link name="R_thumb_intermediate">
<inertial>
<origin
xyz="0.0095544 -0.0016282 -0.0071997"
rpy="0 0 0" />
<mass
value="0.0037847" />
<inertia
ixx="3.6981E-07"
ixy="-9.8581E-08"
ixz="-4.7469E-12"
iyy="3.2394E-07"
iyz="1.0939E-12"
izz="4.6531E-07" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link13_R.STL" />
</geometry>
<material name="">
<color rgba="0.1 0.1 0.1 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link13_R.STL" />
</geometry>
</collision>
</link>
<joint
name="R_thumb_intermediate_joint"
type="revolute">
<origin
xyz="0.04407 0.034553 -0.0008"
rpy="0 0 0" />
<parent
link="R_thumb_proximal" />
<child
link="R_thumb_intermediate" />
<axis
xyz="0 0 1" />
<limit
lower="0"
upper="0.8"
effort="1"
velocity="0.5" />
<mimic
joint="R_thumb_proximal_pitch_joint"
multiplier="1.6"
offset="0" />
</joint>
<link name="R_thumb_distal">
<inertial>
<origin
xyz="0.0092888 0.0049529 -0.0060033"
rpy="0 0 0" />
<mass
value="0.0033441" />
<inertia
ixx="1.3632E-07"
ixy="-5.6788E-08"
ixz="-9.2764E-11"
iyy="1.4052E-07"
iyz="-1.2283E-10"
izz="2.0026E-07" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link14_R.STL" />
</geometry>
<material name="">
<color rgba="0.1 0.1 0.1 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link14_R.STL" />
</geometry>
</collision>
</link>
<joint
name="R_thumb_distal_joint"
type="revolute">
<origin
xyz="0.020248 0.010156 -0.0012"
rpy="0 0 0" />
<parent
link="R_thumb_intermediate" />
<child
link="R_thumb_distal" />
<axis
xyz="0 0 1" />
<limit
lower="0"
upper="1.2"
effort="1"
velocity="0.5" />
<mimic
joint="R_thumb_proximal_pitch_joint"
multiplier="2.4"
offset="0" />
</joint>
<link name="R_thumb_tip">
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<sphere radius="0.005"/>
</geometry>
<material name="green">
<color rgba="0 1 0 1" />
</material>
</visual>
</link>
<joint name="R_thumb_tip_joint" type="fixed">
<parent link="R_thumb_distal"/>
<child link="R_thumb_tip"/>
<origin rpy="0 0 0" xyz="0.015 0.013 -0.004"/>
</joint>
<link name="R_index_proximal">
<inertial>
<origin
xyz="0.0012259 0.011942 -0.0060001"
rpy="0 0 0" />
<mass
value="0.0042403" />
<inertia
ixx="6.6232E-07"
ixy="-1.5775E-08"
ixz="1.8515E-12"
iyy="2.1146E-07"
iyz="-5.0828E-12"
izz="6.9398E-07" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link15_R.STL" />
</geometry>
<material name="">
<color rgba="0.1 0.1 0.1 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link15_R.STL" />
</geometry>
</collision>
</link>
<joint
name="R_index_proximal_joint"
type="revolute">
<origin
xyz="0.00028533 -0.13653 -0.032268"
rpy="-3.1067 0 0" />
<parent
link="R_hand_base_link" />
<child
link="R_index_proximal" />
<axis
xyz="0 0 1" />
<limit
lower="0"
upper="1.7"
effort="1"
velocity="0.5" />
</joint>
<link name="R_index_intermediate">
<inertial>
<origin
xyz="0.0019697 0.019589 -0.005"
rpy="0 0 0" />
<mass
value="0.0045683" />
<inertia
ixx="7.6111E-07"
ixy="8.7637E-08"
ixz="-3.7751E-13"
iyy="9.6076E-08"
iyz="9.9444E-13"
izz="7.8179E-07" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link16_R.STL" />
</geometry>
<material name="">
<color rgba="0.1 0.1 0.1 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link16_R.STL" />
</geometry>
</collision>
</link>
<joint
name="R_index_intermediate_joint"
type="revolute">
<origin
xyz="-0.0026138 0.032026 -0.001"
rpy="0 0 0" />
<parent
link="R_index_proximal" />
<child
link="R_index_intermediate" />
<axis
xyz="0 0 1" />
<limit
lower="0"
upper="1.7"
effort="1"
velocity="0.5" />
<mimic
joint="R_index_proximal_joint"
multiplier="1"
offset="0" />
</joint>
<link name="R_index_tip">
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<sphere radius="0.005"/>
</geometry>
<material name="green">
<color rgba="0 1 0 1" />
</material>
</visual>
</link>
<joint name="R_index_tip_joint" type="fixed">
<parent link="R_index_intermediate"/>
<child link="R_index_tip"/>
<origin rpy="0 0 0" xyz="-0.005 0.04 -0.004"/>
</joint>
<link name="R_middle_proximal">
<inertial>
<origin
xyz="0.001297 0.011934 -0.0060001"
rpy="0 0 0" />
<mass
value="0.0042403" />
<inertia
ixx="6.6211E-07"
ixy="-1.8461E-08"
ixz="1.8002E-12"
iyy="2.1167E-07"
iyz="-6.6808E-12"
izz="6.9397E-07" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link17_R.STL" />
</geometry>
<material name="">
<color rgba="0.1 0.1 0.1 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link17_R.STL" />
</geometry>
</collision>
</link>
<joint
name="R_middle_proximal_joint"
type="revolute">
<origin
xyz="0.00028533 -0.1371 -0.01295"
rpy="-3.1416 0 0" />
<parent
link="R_hand_base_link" />
<child
link="R_middle_proximal" />
<axis
xyz="0 0 1" />
<limit
lower="0"
upper="1.7"
effort="1"
velocity="0.5" />
</joint>
<link name="R_middle_intermediate">
<inertial>
<origin
xyz="0.001921 0.020796 -0.005"
rpy="0 0 0" />
<mass
value="0.0050396" />
<inertia
ixx="9.5822E-07"
ixy="1.1425E-07"
ixz="-2.4791E-12"
iyy="1.0646E-07"
iyz="5.9173E-12"
izz="9.8384E-07" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link18_R.STL" />
</geometry>
<material name="">
<color rgba="0.1 0.1 0.1 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link18_R.STL" />
</geometry>
</collision>
</link>
<joint
name="R_middle_intermediate_joint"
type="revolute">
<origin
xyz="-0.0024229 0.032041 -0.001"
rpy="0 0 0" />
<parent
link="R_middle_proximal" />
<child
link="R_middle_intermediate" />
<axis
xyz="0 0 1" />
<limit
lower="0"
upper="1.7"
effort="1"
velocity="0.5" />
<mimic
joint="R_middle_proximal_joint"
multiplier="1"
offset="0" />
</joint>
<link name="R_middle_tip">
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<sphere radius="0.005"/>
</geometry>
<material name="green">
<color rgba="0 1 0 1" />
</material>
</visual>
</link>
<joint name="R_middle_tip_joint" type="fixed">
<parent link="R_middle_intermediate"/>
<child link="R_middle_tip"/>
<origin rpy="0 0 0" xyz="-0.005 0.045 -0.004"/>
</joint>
<link name="R_ring_proximal">
<inertial>
<origin
xyz="0.001297 0.011934 -0.0060002"
rpy="0 0 0" />
<mass
value="0.0042403" />
<inertia
ixx="6.6211E-07"
ixy="-1.8461E-08"
ixz="1.5793E-12"
iyy="2.1167E-07"
iyz="-6.6868E-12"
izz="6.9397E-07" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link19_R.STL" />
</geometry>
<material name="">
<color rgba="0.1 0.1 0.1 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link19_R.STL" />
</geometry>
</collision>
</link>
<joint
name="R_ring_proximal_joint"
type="revolute">
<origin
xyz="0.00028533 -0.13691 0.0062872"
rpy="3.0892 0 0" />
<parent
link="R_hand_base_link" />
<child
link="R_ring_proximal" />
<axis
xyz="0 0 1" />
<limit
lower="0"
upper="1.7"
effort="1"
velocity="0.5" />
</joint>
<link name="R_ring_intermediate">
<inertial>
<origin
xyz="0.0021753 0.019567 -0.005"
rpy="0 0 0" />
<mass
value="0.0045683" />
<inertia
ixx="7.6286E-07"
ixy="8.0635E-08"
ixz="-6.1562E-13"
iyy="9.431E-08"
iyz="5.8619E-13"
izz="7.8177E-07" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link20_R.STL" />
</geometry>
<material name="">
<color rgba="0.1 0.1 0.1 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link20_R.STL" />
</geometry>
</collision>
</link>
<joint
name="R_ring_intermediate_joint"
type="revolute">
<origin
xyz="-0.0024229 0.032041 -0.001"
rpy="0 0 0" />
<parent
link="R_ring_proximal" />
<child
link="R_ring_intermediate" />
<axis
xyz="0 0 1" />
<limit
lower="0"
upper="1.7"
effort="1"
velocity="0.5" />
<mimic
joint="R_ring_proximal_joint"
multiplier="1"
offset="0" />
</joint>
<link name="R_ring_tip">
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<sphere radius="0.005"/>
</geometry>
<material name="green">
<color rgba="0 1 0 1" />
</material>
</visual>
</link>
<joint name="R_ring_tip_joint" type="fixed">
<parent link="R_ring_intermediate"/>
<child link="R_ring_tip"/>
<origin rpy="0 0 0" xyz="-0.002 0.04 -0.004"/>
</joint>
<link name="R_pinky_proximal">
<inertial>
<origin
xyz="0.001297 0.011934 -0.0060001"
rpy="0 0 0" />
<mass
value="0.0042403" />
<inertia
ixx="6.6211E-07"
ixy="-1.8461E-08"
ixz="1.6907E-12"
iyy="2.1167E-07"
iyz="-6.9334E-12"
izz="6.9397E-07" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link21_R.STL" />
</geometry>
<material name="">
<color rgba="0.1 0.1 0.1 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link21_R.STL" />
</geometry>
</collision>
</link>
<joint
name="R_pinky_proximal_joint"
type="revolute">
<origin
xyz="0.00028533 -0.13571 0.025488"
rpy="3.0369 0 0" />
<parent
link="R_hand_base_link" />
<child
link="R_pinky_proximal" />
<axis
xyz="0 0 1" />
<limit
lower="0"
upper="1.7"
effort="1"
velocity="0.5" />
</joint>
<link name="R_pinky_intermediate">
<inertial>
<origin
xyz="0.0024748 0.016203 -0.0050031"
rpy="0 0 0" />
<mass
value="0.0035996" />
<inertia
ixx="4.3913E-07"
ixy="4.1418E-08"
ixz="3.7168E-11"
iyy="7.0247E-08"
iyz="5.8613E-11"
izz="4.4867E-07" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link22_R.STL" />
</geometry>
<material name="">
<color rgba="0.1 0.1 0.1 1" />
</material>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh filename="./meshes/Link22_R.STL" />
</geometry>
</collision>
</link>
<joint
name="R_pinky_intermediate_joint"
type="revolute">
<origin
xyz="-0.0024229 0.032041 -0.001"
rpy="0 0 0" />
<parent
link="R_pinky_proximal" />
<child
link="R_pinky_intermediate" />
<axis
xyz="0 0 1" />
<limit
lower="0"
upper="1.7"
effort="1"
velocity="0.5" />
<mimic
joint="R_pinky_proximal_joint"
multiplier="1"
offset="0" />
</joint>
<link name="R_pinky_tip">
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<sphere radius="0.005"/>
</geometry>
<material name="green">
<color rgba="0 1 0 1" />
</material>
</visual>
</link>
<joint name="R_pinky_tip_joint" type="fixed">
<parent link="R_pinky_intermediate"/>
<child link="R_pinky_tip"/>
<origin rpy="0 0 0" xyz="-0.002 0.032 -0.004"/>
</joint>
</robot>

BIN
assets/inspire_hand/meshes/L_hand_base_link.STL

1474
assets/inspire_hand/meshes/L_hand_base_link.STL.convex.stl
File diff suppressed because it is too large
View File

BIN
assets/inspire_hand/meshes/Link11_L.STL

354
assets/inspire_hand/meshes/Link11_L.STL.convex.stl

@ -0,0 +1,354 @@
solid AssimpScene
facet normal 0 0 0
outer loop
vertex 0.000320842082 -0.00780766038 -0.0139000015
vertex -0.0034187967 -0.00834355317 -0.0139000015
vertex -0.00586737599 -0.00661021611 -0.0139000015
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000320842082 -0.00780766038 -0.0139000015
vertex -0.00586737599 -0.00661021611 -0.0139000015
vertex -0.00617566239 -0.000897735415 -0.0139000015
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000320842082 -0.00780766038 -0.0139000015
vertex -0.00617566239 -0.000897735415 -0.0139000015
vertex -0.00410403404 0.00264112325 -0.0139000015
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000320842082 -0.00780766038 -0.0139000015
vertex -0.00410403404 0.00264112325 -0.0139000015
vertex 0.000184911041 0.00485059852 -0.0139000015
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000320842082 -0.00780766038 -0.0139000015
vertex 0.000184911041 0.00485059852 -0.0139000015
vertex 0.0103229769 0.00658453628 -0.0137637034
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000320842082 -0.00780766038 -0.0139000015
vertex 0.0103229769 0.00658453628 -0.0137637034
vertex 0.0119245276 -0.00277949241 -0.0137637034
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0125521189 -0.00267215422 0.0013271413
vertex 0.00894162059 0.0063482793 0.0028615233
vertex 0.00968639739 -0.00316228531 0.00293946848
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00644383626 -0.003635498 -0.00239999988
vertex -0.00586737599 -0.00661021611 -0.00239999988
vertex 0.00968639739 -0.00316228531 0.00293946848
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00644383626 -0.003635498 -0.00239999988
vertex 0.00968639739 -0.00316228531 0.00293946848
vertex 0.00894162059 0.0063482793 0.0028615233
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00644383626 -0.003635498 -0.00239999988
vertex -0.00617566239 -0.000897735415 -0.0139000015
vertex -0.00644383626 -0.003635498 -0.00590000022
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00586737599 -0.00661021611 -0.0139000015
vertex -0.00644383626 -0.003635498 -0.00590000022
vertex -0.00617566239 -0.000897735415 -0.0139000015
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00586737599 -0.00661021611 -0.0139000015
vertex -0.0034187967 -0.00834355317 -0.0139000015
vertex -0.00418250822 -0.00817011949 -0.00239999988
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0112613048 0.00674502039 0.000513367006
vertex 0.00894162059 0.0063482793 0.0028615233
vertex 0.0125521189 -0.00267215422 0.0013271413
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000320842082 -0.00780766038 -0.00239999988
vertex 0.0125521189 -0.00267215422 0.0013271413
vertex 0.00968639739 -0.00316228531 0.00293946848
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000320842082 -0.00780766038 -0.00239999988
vertex 0.00968639739 -0.00316228531 0.00293946848
vertex -0.00418250822 -0.00817011949 -0.00239999988
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000320842082 -0.00780766038 -0.00239999988
vertex -0.00418250822 -0.00817011949 -0.00239999988
vertex -0.0034187967 -0.00834355317 -0.0139000015
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000184911041 0.00485059852 -0.0139000015
vertex -0.00410403404 0.00264112325 -0.0139000015
vertex -0.00410403404 0.00264112325 -0.00239999988
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000184911041 0.00485059852 -0.0139000015
vertex -0.00410403404 0.00264112325 -0.00239999988
vertex -0.000551194127 0.0046886811 -0.00239999988
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000551194127 0.0046886811 -0.00239999988
vertex -0.00410403404 0.00264112325 -0.00239999988
vertex 0.00894162059 0.0063482793 0.0028615233
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0132452659 0.00708434219 -0.00889999978
vertex 0.0127170384 0.00699399831 -0.0119000003
vertex 0.0103229769 0.00658453628 -0.0137637034
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0132452659 0.00708434219 -0.00889999978
vertex 0.0103229769 0.00658453628 -0.0137637034
vertex 0.000184911041 0.00485059852 -0.0139000015
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0132452659 0.00708434219 -0.00889999978
vertex 0.000184911041 0.00485059852 -0.0139000015
vertex -0.000551194127 0.0046886811 -0.00239999988
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0132452659 0.00708434219 -0.00889999978
vertex -0.000551194127 0.0046886811 -0.00239999988
vertex 0.00894162059 0.0063482793 0.0028615233
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0132452659 0.00708434219 -0.00889999978
vertex 0.00894162059 0.0063482793 0.0028615233
vertex 0.0112613048 0.00674502039 0.000513367006
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0132452659 0.00708434219 -0.00889999978
vertex 0.0112613048 0.00674502039 0.000513367006
vertex 0.0125521189 -0.00267215422 0.0013271413
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0132452659 0.00708434219 -0.00889999978
vertex 0.0125521189 -0.00267215422 0.0013271413
vertex 0.0148468185 -0.00227968604 -0.00989999995
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0132452659 0.00708434219 -0.00889999978
vertex 0.0148468185 -0.00227968604 -0.00989999995
vertex 0.0127170384 0.00699399831 -0.0119000003
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00586737599 -0.00661021611 -0.00239999988
vertex -0.00644383626 -0.003635498 -0.00239999988
vertex -0.00644383626 -0.003635498 -0.00590000022
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00586737599 -0.00661021611 -0.00239999988
vertex -0.00644383626 -0.003635498 -0.00590000022
vertex -0.00586737599 -0.00661021611 -0.0139000015
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00586737599 -0.00661021611 -0.00239999988
vertex -0.00586737599 -0.00661021611 -0.0139000015
vertex -0.00418250822 -0.00817011949 -0.00239999988
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00586737599 -0.00661021611 -0.00239999988
vertex -0.00418250822 -0.00817011949 -0.00239999988
vertex 0.00968639739 -0.00316228531 0.00293946848
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0143185901 -0.00237003039 -0.0119000003
vertex 0.0119245276 -0.00277949241 -0.0137637034
vertex 0.0103229769 0.00658453628 -0.0137637034
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0143185901 -0.00237003039 -0.0119000003
vertex 0.0103229769 0.00658453628 -0.0137637034
vertex 0.0127170384 0.00699399831 -0.0119000003
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0143185901 -0.00237003039 -0.0119000003
vertex 0.0127170384 0.00699399831 -0.0119000003
vertex 0.0148468185 -0.00227968604 -0.00989999995
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000320842082 -0.00780766038 -0.0139000015
vertex 0.0119245276 -0.00277949241 -0.0137637034
vertex 0.0143185901 -0.00237003039 -0.0119000003
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000320842082 -0.00780766038 -0.0139000015
vertex 0.0143185901 -0.00237003039 -0.0119000003
vertex 0.0148468185 -0.00227968604 -0.00989999995
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000320842082 -0.00780766038 -0.0139000015
vertex 0.0148468185 -0.00227968604 -0.00989999995
vertex 0.0125521189 -0.00267215422 0.0013271413
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000320842082 -0.00780766038 -0.0139000015
vertex 0.0125521189 -0.00267215422 0.0013271413
vertex 0.000320842082 -0.00780766038 -0.00239999988
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000320842082 -0.00780766038 -0.0139000015
vertex 0.000320842082 -0.00780766038 -0.00239999988
vertex -0.0034187967 -0.00834355317 -0.0139000015
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00569342636 0.00039588529 -0.00239999988
vertex -0.00617566239 -0.000897735415 -0.0139000015
vertex -0.00644383626 -0.003635498 -0.00239999988
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00569342636 0.00039588529 -0.00239999988
vertex -0.00644383626 -0.003635498 -0.00239999988
vertex 0.00894162059 0.0063482793 0.0028615233
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00569342636 0.00039588529 -0.00239999988
vertex 0.00894162059 0.0063482793 0.0028615233
vertex -0.00410403404 0.00264112325 -0.00239999988
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00569342636 0.00039588529 -0.00239999988
vertex -0.00410403404 0.00264112325 -0.00239999988
vertex -0.00410403404 0.00264112325 -0.0139000015
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00569342636 0.00039588529 -0.00239999988
vertex -0.00410403404 0.00264112325 -0.0139000015
vertex -0.00617566239 -0.000897735415 -0.0139000015
endloop
endfacet
endsolid AssimpScene

BIN
assets/inspire_hand/meshes/Link11_R.STL

306
assets/inspire_hand/meshes/Link11_R.STL.convex.stl

@ -0,0 +1,306 @@
solid AssimpScene
facet normal 0 0 0
outer loop
vertex -0.0104372548 0.00798051991 -0.0137141012
vertex -0.0122268833 0.00850073155 -0.0112852762
vertex -0.012251948 0.00850801729 -0.00847933069
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0104372548 0.00798051991 -0.0137141012
vertex -0.012251948 0.00850801729 -0.00847933069
vertex -0.0101222722 0.00788896065 0.000977141317
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0104372548 0.00798051991 -0.0137141012
vertex -0.0101222722 0.00788896065 0.000977141317
vertex -0.00733049354 0.00707744341 0.00258946838
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0104372548 0.00798051991 -0.0137141012
vertex -0.00733049354 0.00707744341 0.00258946838
vertex 0.00231353962 0.0039788289 -0.00274999999
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0104372548 0.00798051991 -0.0137141012
vertex 0.00231353962 0.0039788289 -0.00274999999
vertex 0.00231353962 0.0039788289 -0.01425
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0121625876 -0.00141117361 -0.0141137028
vertex -0.0104372548 0.00798051991 -0.0137141012
vertex 0.00231353962 0.0039788289 -0.01425
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0121625876 -0.00141117361 -0.0141137028
vertex 0.00231353962 0.0039788289 -0.01425
vertex 0.00514358236 0.00101133483 -0.01425
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0121625876 -0.00141117361 -0.0141137028
vertex 0.00514358236 0.00101133483 -0.01425
vertex 0.00613157591 -0.00296849385 -0.01425
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0121625876 -0.00141117361 -0.0141137028
vertex 0.00613157591 -0.00296849385 -0.01425
vertex 0.00508103101 -0.0072321631 -0.01425
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0121625876 -0.00141117361 -0.0141137028
vertex 0.00508103101 -0.0072321631 -0.01425
vertex 0.0016777761 -0.00855847914 -0.01425
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00539592188 -0.00651510013 -0.00274999999
vertex 0.00613157591 -0.00296849385 -0.01425
vertex 0.0057016327 -0.000251434773 -0.00274999999
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00539592188 -0.00651510013 -0.00274999999
vertex 0.0057016327 -0.000251434773 -0.00274999999
vertex -0.00733049354 0.00707744341 0.00258946838
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0101222722 0.00788896065 0.000977141317
vertex -0.0115989745 -0.00157500547 0.00219807634
vertex -0.00733049354 0.00707744341 0.00258946838
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00508103101 -0.0072321631 -0.01425
vertex 0.00613157591 -0.00296849385 -0.01425
vertex 0.00539592188 -0.00651510013 -0.00274999999
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00508103101 -0.0072321631 -0.01425
vertex 0.00539592188 -0.00651510013 -0.00274999999
vertex 0.00245190575 -0.00867705047 -0.00274999999
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00508103101 -0.0072321631 -0.01425
vertex 0.00245190575 -0.00867705047 -0.00274999999
vertex 0.0016777761 -0.00855847914 -0.01425
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00231353962 0.0039788289 -0.00274999999
vertex -0.00733049354 0.00707744341 0.00258946838
vertex 0.0057016327 -0.000251434773 -0.00274999999
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0144948773 -0.000733221415 -0.0122499997
vertex -0.0104372548 0.00798051991 -0.0137141012
vertex -0.0121625876 -0.00141117361 -0.0141137028
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0144948773 -0.000733221415 -0.0122499997
vertex -0.0121625876 -0.00141117361 -0.0141137028
vertex 0.0016777761 -0.00855847914 -0.01425
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00514358236 0.00101133483 -0.01425
vertex 0.00231353962 0.0039788289 -0.01425
vertex 0.00231353962 0.0039788289 -0.00274999999
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00514358236 0.00101133483 -0.01425
vertex 0.00231353962 0.0039788289 -0.00274999999
vertex 0.0057016327 -0.000251434773 -0.00274999999
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00514358236 0.00101133483 -0.01425
vertex 0.0057016327 -0.000251434773 -0.00274999999
vertex 0.00613157591 -0.00296849385 -0.01425
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0122268833 0.00850073155 -0.0112852762
vertex -0.0104372548 0.00798051991 -0.0137141012
vertex -0.0144948773 -0.000733221415 -0.0122499997
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0122268833 0.00850073155 -0.0112852762
vertex -0.0144948773 -0.000733221415 -0.0122499997
vertex -0.0150094749 -0.000583637215 -0.00925000012
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0122268833 0.00850073155 -0.0112852762
vertex -0.0150094749 -0.000583637215 -0.00925000012
vertex -0.012251948 0.00850801729 -0.00847933069
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00915903505 -0.00228424976 0.0024259272
vertex 0.00245190575 -0.00867705047 -0.00274999999
vertex 0.00539592188 -0.00651510013 -0.00274999999
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00915903505 -0.00228424976 0.0024259272
vertex 0.00539592188 -0.00651510013 -0.00274999999
vertex -0.00733049354 0.00707744341 0.00258946838
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00915903505 -0.00228424976 0.0024259272
vertex -0.00733049354 0.00707744341 0.00258946838
vertex -0.0115989745 -0.00157500547 0.00219807634
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0130767059 -0.0011454568 0.000163367033
vertex -0.0115989745 -0.00157500547 0.00219807634
vertex -0.0101222722 0.00788896065 0.000977141317
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0101222722 0.00788896065 0.000977141317
vertex -0.012251948 0.00850801729 -0.00847933069
vertex -0.0150094749 -0.000583637215 -0.00925000012
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0101222722 0.00788896065 0.000977141317
vertex -0.0150094749 -0.000583637215 -0.00925000012
vertex -0.0130767059 -0.0011454568 0.000163367033
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00120298541 -0.00772109628 -0.00274999999
vertex 0.00245190575 -0.00867705047 -0.00274999999
vertex -0.00915903505 -0.00228424976 0.0024259272
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00120298541 -0.00772109628 -0.00274999999
vertex -0.00915903505 -0.00228424976 0.0024259272
vertex -0.0115989745 -0.00157500547 0.00219807634
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00120298541 -0.00772109628 -0.00274999999
vertex -0.0115989745 -0.00157500547 0.00219807634
vertex -0.0130767059 -0.0011454568 0.000163367033
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00120298541 -0.00772109628 -0.00274999999
vertex -0.0130767059 -0.0011454568 0.000163367033
vertex -0.0150094749 -0.000583637215 -0.00925000012
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00120298541 -0.00772109628 -0.00274999999
vertex -0.0150094749 -0.000583637215 -0.00925000012
vertex -0.0144948773 -0.000733221415 -0.0122499997
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00120298541 -0.00772109628 -0.00274999999
vertex -0.0144948773 -0.000733221415 -0.0122499997
vertex 0.0016777761 -0.00855847914 -0.01425
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00120298541 -0.00772109628 -0.00274999999
vertex 0.0016777761 -0.00855847914 -0.01425
vertex 0.00245190575 -0.00867705047 -0.00274999999
endloop
endfacet
endsolid AssimpScene

BIN
assets/inspire_hand/meshes/Link12_L.STL

802
assets/inspire_hand/meshes/Link12_L.STL.convex.stl

@ -0,0 +1,802 @@
solid AssimpScene
facet normal 0 0 0
outer loop
vertex -0.00129650591 -0.0162051488 -0.0132586677
vertex -0.000944086467 -0.0178504046 -0.00800000038
vertex -0.00125287706 -0.0161745716 -0.00268379832
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00129650591 -0.0162051488 -0.0132586677
vertex -0.00125287706 -0.0161745716 -0.00268379832
vertex -0.00361194648 0.000977804302 0.00075852446
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00129650591 -0.0162051488 -0.0132586677
vertex -0.00361194648 0.000977804302 0.00075852446
vertex -0.00369759114 0.000157288829 -0.0158090685
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0587727875 -0.0249389615 -0.0129669309
vertex 0.0463246703 -0.0377887599 -0.0132499998
vertex 0.0385552123 -0.0346003622 -0.0167571697
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.038985759 -0.0389309861 -0.00222051237
vertex 0.0300528537 -0.0363949016 -0.00370239769
vertex 0.0366866067 -0.0390286148 -0.0118782828
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.038985759 -0.0389309861 -0.00222051237
vertex 0.0366866067 -0.0390286148 -0.0118782828
vertex 0.038939625 -0.0387066342 -0.0140485372
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.038985759 -0.0389309861 -0.00222051237
vertex 0.038939625 -0.0387066342 -0.0140485372
vertex 0.0463246703 -0.0377887599 -0.0132499998
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.038985759 -0.0389309861 -0.00222051237
vertex 0.0463246703 -0.0377887599 -0.0132499998
vertex 0.0449747592 -0.0382568054 -0.00524999993
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0463246703 -0.0377887599 -0.00274999999
vertex 0.0587270781 -0.0250065289 -0.00303167757
vertex 0.038556084 -0.0347322114 0.000708622334
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0463246703 -0.0377887599 -0.00274999999
vertex 0.038556084 -0.0347322114 0.000708622334
vertex 0.038985759 -0.0389309861 -0.00222051237
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0463246703 -0.0377887599 -0.00274999999
vertex 0.038985759 -0.0389309861 -0.00222051237
vertex 0.0449747592 -0.0382568054 -0.00524999993
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0463246703 -0.0377887599 -0.00274999999
vertex 0.0449747592 -0.0382568054 -0.00524999993
vertex 0.0463246703 -0.0377887599 -0.0132499998
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0463246703 -0.0377887599 -0.0132499998
vertex 0.0587727875 -0.0249389615 -0.0129669309
vertex 0.0597232096 -0.0241596848 -0.0080001587
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0463246703 -0.0377887599 -0.0132499998
vertex 0.0597232096 -0.0241596848 -0.0080001587
vertex 0.0587270781 -0.0250065289 -0.00303167757
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0463246703 -0.0377887599 -0.0132499998
vertex 0.0587270781 -0.0250065289 -0.00303167757
vertex 0.0463246703 -0.0377887599 -0.00274999999
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.043582473 -0.0133989612 -0.000415016053
vertex 0.0022329858 0.00815676525 0.000276454171
vertex 0.0419684686 -0.0220694635 0.0013211047
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0549617745 -0.0185450427 -0.0118389707
vertex 0.0587727875 -0.0249389615 -0.0129669309
vertex 0.0475613885 -0.0173089895 -0.0156070692
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0549617745 -0.0185450427 -0.0118389707
vertex 0.0451193266 -0.0106000351 -0.0124442028
vertex 0.0514556989 -0.0154607352 -0.00387924421
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0549617745 -0.0185450427 -0.0118389707
vertex 0.0597232096 -0.0241596848 -0.0080001587
vertex 0.0587727875 -0.0249389615 -0.0129669309
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0385552123 -0.0346003622 -0.0167571697
vertex -0.00148780027 -0.00483932812 -0.016804276
vertex -0.00346967368 0.00178620487 -0.0169463232
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0385552123 -0.0346003622 -0.0167571697
vertex -0.00346967368 0.00178620487 -0.0169463232
vertex 0.0403454229 -0.0248590484 -0.0176166371
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0403454229 -0.0248590484 -0.0176166371
vertex 0.00118220644 0.00757891079 -0.0164638422
vertex 0.0475613885 -0.0173089895 -0.0156070692
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0403454229 -0.0248590484 -0.0176166371
vertex 0.0475613885 -0.0173089895 -0.0156070692
vertex 0.0587727875 -0.0249389615 -0.0129669309
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0403454229 -0.0248590484 -0.0176166371
vertex 0.0587727875 -0.0249389615 -0.0129669309
vertex 0.0385552123 -0.0346003622 -0.0167571697
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.038939625 -0.0387066342 -0.0140485372
vertex 0.0366866067 -0.0390286148 -0.0118782828
vertex 0.0279816389 -0.0351464711 -0.0129533736
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.038939625 -0.0387066342 -0.0140485372
vertex 0.0385552123 -0.0346003622 -0.0167571697
vertex 0.0463246703 -0.0377887599 -0.0132499998
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00346967368 0.00178620487 -0.0169463232
vertex 0.00118220644 0.00757891079 -0.0164638422
vertex 0.0403454229 -0.0248590484 -0.0176166371
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00346967368 0.00178620487 -0.0169463232
vertex -0.00369759114 0.000157288829 -0.0158090685
vertex -0.00361194648 0.000977804302 0.00075852446
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000647108303 -0.0125640538 -0.000612358155
vertex -0.00361194648 0.000977804302 0.00075852446
vertex -0.00125287706 -0.0161745716 -0.00268379832
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0243701637 -0.0317206345 -0.00149137573
vertex 0.0300528537 -0.0363949016 -0.00370239769
vertex 0.038985759 -0.0389309861 -0.00222051237
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0243701637 -0.0317206345 -0.00149137573
vertex 0.038985759 -0.0389309861 -0.00222051237
vertex 0.038556084 -0.0347322114 0.000708622334
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0243701637 -0.0317206345 -0.00149137573
vertex 0.038556084 -0.0347322114 0.000708622334
vertex -0.000647108303 -0.0125640538 -0.000612358155
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0243701637 -0.0317206345 -0.00149137573
vertex -0.000647108303 -0.0125640538 -0.000612358155
vertex -0.00125287706 -0.0161745716 -0.00268379832
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00206399104 0.00455146888 -0.000118971424
vertex 0.0022329858 0.00815676525 0.000276454171
vertex 0.00118220644 0.00757891079 -0.0164638422
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00206399104 0.00455146888 -0.000118971424
vertex 0.00118220644 0.00757891079 -0.0164638422
vertex -0.00346967368 0.00178620487 -0.0169463232
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00206399104 0.00455146888 -0.000118971424
vertex -0.00346967368 0.00178620487 -0.0169463232
vertex -0.00361194648 0.000977804302 0.00075852446
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00591362314 0.0103434622 -0.00800000038
vertex 0.00118220644 0.00757891079 -0.0164638422
vertex 0.0022329858 0.00815676525 0.000276454171
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00591362314 0.0103434622 -0.00800000038
vertex 0.0110037131 0.0108430805 -0.00312744267
vertex 0.0108220866 0.0108270971 -0.0130623132
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0397079028 -0.00877458788 -0.0146957589
vertex 0.0108220866 0.0108270971 -0.0130623132
vertex 0.0451193266 -0.0106000351 -0.0124442028
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0397079028 -0.00877458788 -0.0146957589
vertex 0.0451193266 -0.0106000351 -0.0124442028
vertex 0.0549617745 -0.0185450427 -0.0118389707
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0397079028 -0.00877458788 -0.0146957589
vertex 0.0549617745 -0.0185450427 -0.0118389707
vertex 0.0475613885 -0.0173089895 -0.0156070692
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00125287706 -0.0161745716 -0.00268379832
vertex -0.000944086467 -0.0178504046 -0.00800000038
vertex 0.0113675324 -0.0264426414 -0.00800000038
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00125287706 -0.0161745716 -0.00268379832
vertex 0.0113675324 -0.0264426414 -0.00800000038
vertex 0.0165896807 -0.0291688778 -0.00392314419
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0165896807 -0.0291688778 -0.00392314419
vertex 0.0300528537 -0.0363949016 -0.00370239769
vertex 0.0243701637 -0.0317206345 -0.00149137573
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0165896807 -0.0291688778 -0.00392314419
vertex 0.0243701637 -0.0317206345 -0.00149137573
vertex -0.00125287706 -0.0161745716 -0.00268379832
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0275258422 0.00159642869 -0.00800000038
vertex 0.0313934423 -0.00158262462 -0.00309562916
vertex 0.0514556989 -0.0154607352 -0.00387924421
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0275258422 0.00159642869 -0.00800000038
vertex 0.0514556989 -0.0154607352 -0.00387924421
vertex 0.0451193266 -0.0106000351 -0.0124442028
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0275258422 0.00159642869 -0.00800000038
vertex 0.0451193266 -0.0106000351 -0.0124442028
vertex 0.0108220866 0.0108270971 -0.0130623132
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0275258422 0.00159642869 -0.00800000038
vertex 0.0108220866 0.0108270971 -0.0130623132
vertex 0.0110037131 0.0108430805 -0.00312744267
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0275258422 0.00159642869 -0.00800000038
vertex 0.0110037131 0.0108430805 -0.00312744267
vertex 0.0313934423 -0.00158262462 -0.00309562916
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0385552123 -0.0346003622 -0.0167571697
vertex 0.038939625 -0.0387066342 -0.0140485372
vertex 0.0279816389 -0.0351464711 -0.0129533736
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0385552123 -0.0346003622 -0.0167571697
vertex 0.0279816389 -0.0351464711 -0.0129533736
vertex 0.0240504984 -0.0300919656 -0.0153093832
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00659456057 0.0101385117 -0.0151668033
vertex 0.0108220866 0.0108270971 -0.0130623132
vertex 0.0397079028 -0.00877458788 -0.0146957589
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00659456057 0.0101385117 -0.0151668033
vertex 0.0397079028 -0.00877458788 -0.0146957589
vertex 0.0475613885 -0.0173089895 -0.0156070692
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00659456057 0.0101385117 -0.0151668033
vertex 0.0475613885 -0.0173089895 -0.0156070692
vertex 0.00118220644 0.00757891079 -0.0164638422
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00659456057 0.0101385117 -0.0151668033
vertex 0.00118220644 0.00757891079 -0.0164638422
vertex 0.00591362314 0.0103434622 -0.00800000038
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00659456057 0.0101385117 -0.0151668033
vertex 0.00591362314 0.0103434622 -0.00800000038
vertex 0.0108220866 0.0108270971 -0.0130623132
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0110664507 -0.0256833583 -0.0120121539
vertex 0.0113675324 -0.0264426414 -0.00800000038
vertex -0.000944086467 -0.0178504046 -0.00800000038
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0110664507 -0.0256833583 -0.0120121539
vertex -0.000944086467 -0.0178504046 -0.00800000038
vertex -0.00129650591 -0.0162051488 -0.0132586677
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00129650591 -0.0162051488 -0.0132586677
vertex 0.0240504984 -0.0300919656 -0.0153093832
vertex 0.0279816389 -0.0351464711 -0.0129533736
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00129650591 -0.0162051488 -0.0132586677
vertex 0.0279816389 -0.0351464711 -0.0129533736
vertex 0.0110664507 -0.0256833583 -0.0120121539
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.052863922 -0.0188148711 -0.00189987256
vertex 0.043582473 -0.0133989612 -0.000415016053
vertex 0.0419684686 -0.0220694635 0.0013211047
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.052863922 -0.0188148711 -0.00189987256
vertex 0.0419684686 -0.0220694635 0.0013211047
vertex 0.0587270781 -0.0250065289 -0.00303167757
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00621645758 0.00994435139 -0.000695477705
vertex 0.0022329858 0.00815676525 0.000276454171
vertex 0.043582473 -0.0133989612 -0.000415016053
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00621645758 0.00994435139 -0.000695477705
vertex 0.043582473 -0.0133989612 -0.000415016053
vertex 0.0101587456 0.00891728885 -0.00116847188
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00621645758 0.00994435139 -0.000695477705
vertex 0.0101587456 0.00891728885 -0.00116847188
vertex 0.0110037131 0.0108430805 -0.00312744267
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00621645758 0.00994435139 -0.000695477705
vertex 0.0110037131 0.0108430805 -0.00312744267
vertex 0.00591362314 0.0103434622 -0.00800000038
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00621645758 0.00994435139 -0.000695477705
vertex 0.00591362314 0.0103434622 -0.00800000038
vertex 0.0022329858 0.00815676525 0.000276454171
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00148780027 -0.00483932812 -0.016804276
vertex 0.0385552123 -0.0346003622 -0.0167571697
vertex 0.0240504984 -0.0300919656 -0.0153093832
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00148780027 -0.00483932812 -0.016804276
vertex 0.0240504984 -0.0300919656 -0.0153093832
vertex -0.00113201002 -0.0135255018 -0.0149773499
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00113201002 -0.0135255018 -0.0149773499
vertex 0.0240504984 -0.0300919656 -0.0153093832
vertex -0.00129650591 -0.0162051488 -0.0132586677
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00113201002 -0.0135255018 -0.0149773499
vertex -0.00129650591 -0.0162051488 -0.0132586677
vertex -0.00369759114 0.000157288829 -0.0158090685
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00113201002 -0.0135255018 -0.0149773499
vertex -0.00369759114 0.000157288829 -0.0158090685
vertex -0.00346967368 0.00178620487 -0.0169463232
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00113201002 -0.0135255018 -0.0149773499
vertex -0.00346967368 0.00178620487 -0.0169463232
vertex -0.00148780027 -0.00483932812 -0.016804276
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0252605192 -0.0346496664 -0.00800000038
vertex 0.0300528537 -0.0363949016 -0.00370239769
vertex 0.0165896807 -0.0291688778 -0.00392314419
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0252605192 -0.0346496664 -0.00800000038
vertex 0.0165896807 -0.0291688778 -0.00392314419
vertex 0.0113675324 -0.0264426414 -0.00800000038
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0252605192 -0.0346496664 -0.00800000038
vertex 0.0113675324 -0.0264426414 -0.00800000038
vertex 0.0110664507 -0.0256833583 -0.0120121539
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0252605192 -0.0346496664 -0.00800000038
vertex 0.0110664507 -0.0256833583 -0.0120121539
vertex 0.0279816389 -0.0351464711 -0.0129533736
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0252605192 -0.0346496664 -0.00800000038
vertex 0.0279816389 -0.0351464711 -0.0129533736
vertex 0.0366866067 -0.0390286148 -0.0118782828
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0252605192 -0.0346496664 -0.00800000038
vertex 0.0366866067 -0.0390286148 -0.0118782828
vertex 0.0300528537 -0.0363949016 -0.00370239769
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0554773659 -0.0190902278 -0.0043225158
vertex 0.0597232096 -0.0241596848 -0.0080001587
vertex 0.0549617745 -0.0185450427 -0.0118389707
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0554773659 -0.0190902278 -0.0043225158
vertex 0.0549617745 -0.0185450427 -0.0118389707
vertex 0.0514556989 -0.0154607352 -0.00387924421
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0554773659 -0.0190902278 -0.0043225158
vertex 0.0514556989 -0.0154607352 -0.00387924421
vertex 0.052863922 -0.0188148711 -0.00189987256
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0554773659 -0.0190902278 -0.0043225158
vertex 0.052863922 -0.0188148711 -0.00189987256
vertex 0.0587270781 -0.0250065289 -0.00303167757
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0554773659 -0.0190902278 -0.0043225158
vertex 0.0587270781 -0.0250065289 -0.00303167757
vertex 0.0597232096 -0.0241596848 -0.0080001587
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00192932202 0.00445118407 0.000857932842
vertex 0.0022329858 0.00815676525 0.000276454171
vertex -0.00206399104 0.00455146888 -0.000118971424
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00192932202 0.00445118407 0.000857932842
vertex -0.00206399104 0.00455146888 -0.000118971424
vertex -0.00361194648 0.000977804302 0.00075852446
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00192932202 0.00445118407 0.000857932842
vertex 0.0419684686 -0.0220694635 0.0013211047
vertex 0.0022329858 0.00815676525 0.000276454171
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00361194648 0.000977804302 0.00075852446
vertex -0.000647108303 -0.0125640538 -0.000612358155
vertex 0.038556084 -0.0347322114 0.000708622334
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00361194648 0.000977804302 0.00075852446
vertex 0.038556084 -0.0347322114 0.000708622334
vertex 0.0390611216 -0.0294232871 0.00165800774
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0390611216 -0.0294232871 0.00165800774
vertex 0.038556084 -0.0347322114 0.000708622334
vertex 0.0587270781 -0.0250065289 -0.00303167757
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0390611216 -0.0294232871 0.00165800774
vertex 0.0587270781 -0.0250065289 -0.00303167757
vertex 0.0419684686 -0.0220694635 0.0013211047
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0390611216 -0.0294232871 0.00165800774
vertex 0.0419684686 -0.0220694635 0.0013211047
vertex -0.00192932202 0.00445118407 0.000857932842
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0390611216 -0.0294232871 0.00165800774
vertex -0.00192932202 0.00445118407 0.000857932842
vertex -0.00361194648 0.000977804302 0.00075852446
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0446911342 -0.0114113111 -0.00193118036
vertex 0.0313934423 -0.00158262462 -0.00309562916
vertex 0.0110037131 0.0108430805 -0.00312744267
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0446911342 -0.0114113111 -0.00193118036
vertex 0.0110037131 0.0108430805 -0.00312744267
vertex 0.0101587456 0.00891728885 -0.00116847188
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0446911342 -0.0114113111 -0.00193118036
vertex 0.0101587456 0.00891728885 -0.00116847188
vertex 0.043582473 -0.0133989612 -0.000415016053
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0446911342 -0.0114113111 -0.00193118036
vertex 0.043582473 -0.0133989612 -0.000415016053
vertex 0.052863922 -0.0188148711 -0.00189987256
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0446911342 -0.0114113111 -0.00193118036
vertex 0.052863922 -0.0188148711 -0.00189987256
vertex 0.0514556989 -0.0154607352 -0.00387924421
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0446911342 -0.0114113111 -0.00193118036
vertex 0.0514556989 -0.0154607352 -0.00387924421
vertex 0.0313934423 -0.00158262462 -0.00309562916
endloop
endfacet
endsolid AssimpScene

BIN
assets/inspire_hand/meshes/Link12_R.STL

754
assets/inspire_hand/meshes/Link12_R.STL.convex.stl

@ -0,0 +1,754 @@
solid AssimpScene
facet normal 0 0 0
outer loop
vertex -0.00362793426 -0.000652820978 -0.016938217
vertex -0.00369002484 -0.000532748527 -0.000203864271
vertex -0.00338406535 0.00146551302 0.000845592876
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00362793426 -0.000652820978 -0.016938217
vertex -0.00338406535 0.00146551302 0.000845592876
vertex -0.00132502557 0.0160559155 -0.0027371191
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00362793426 -0.000652820978 -0.016938217
vertex -0.00132502557 0.0160559155 -0.0027371191
vertex -0.000944086409 0.0178504046 -0.00800000038
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00362793426 -0.000652820978 -0.016938217
vertex -0.000944086409 0.0178504046 -0.00800000038
vertex -0.00138285034 0.0153856613 -0.0139250662
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0587762967 0.0249368995 -0.00303505594
vertex 0.0463246666 0.0377887599 -0.00274999999
vertex 0.0385551453 0.0345796607 0.000764651631
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0463246666 0.0377887599 -0.00274999999
vertex 0.0449747555 0.0382568054 -0.0107499994
vertex 0.038985759 0.0389309861 -0.0137794875
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0463246666 0.0377887599 -0.00274999999
vertex 0.038985759 0.0389309861 -0.0137794875
vertex 0.0372769497 0.0390150361 -0.00341521064
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0463246666 0.0377887599 -0.0132499998
vertex 0.0587265044 0.0250115357 -0.0129659493
vertex 0.038556084 0.0347321518 -0.016708646
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0463246666 0.0377887599 -0.0132499998
vertex 0.038556084 0.0347321518 -0.016708646
vertex 0.038985759 0.0389309861 -0.0137794875
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0463246666 0.0377887599 -0.0132499998
vertex 0.038985759 0.0389309861 -0.0137794875
vertex 0.0449747555 0.0382568054 -0.0107499994
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0463246666 0.0377887599 -0.0132499998
vertex 0.0449747555 0.0382568054 -0.0107499994
vertex 0.0463246666 0.0377887599 -0.00274999999
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0463246666 0.0377887599 -0.00274999999
vertex 0.0587762967 0.0249368995 -0.00303505594
vertex 0.0597232096 0.0241596848 -0.00799984112
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0463246666 0.0377887599 -0.00274999999
vertex 0.0597232096 0.0241596848 -0.00799984112
vertex 0.0587265044 0.0250115357 -0.0129659493
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0463246666 0.0377887599 -0.00274999999
vertex 0.0587265044 0.0250115357 -0.0129659493
vertex 0.0463246666 0.0377887599 -0.0132499998
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0541602969 0.0177621543 -0.0119234342
vertex 0.0587265044 0.0250115357 -0.0129659493
vertex 0.0597232096 0.0241596848 -0.00799984112
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0541602969 0.0177621543 -0.0119234342
vertex 0.0451193452 0.0106000016 -0.00355592696
vertex 0.0404670462 0.00763173169 -0.0130943134
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0489069261 0.0177280754 -0.015321088
vertex 0.0419684649 0.0220694635 -0.0173211042
vertex 0.0587265044 0.0250115357 -0.0129659493
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0489069261 0.0177280754 -0.015321088
vertex 0.0587265044 0.0250115357 -0.0129659493
vertex 0.0541602969 0.0177621543 -0.0119234342
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0489069261 0.0177280754 -0.015321088
vertex 0.0541602969 0.0177621543 -0.0119234342
vertex 0.0404670462 0.00763173169 -0.0130943134
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00125045481 0.00490831677 0.000815086474
vertex 0.0385551453 0.0345796607 0.000764651631
vertex 0.000677756499 0.0178687721 -0.00214548828
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0549618006 0.018545026 -0.00416113157
vertex 0.0587762967 0.0249368995 -0.00303505594
vertex 0.0475613847 0.0173089895 -0.000392930204
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0549618006 0.018545026 -0.00416113157
vertex 0.0451193452 0.0106000016 -0.00355592696
vertex 0.0541602969 0.0177621543 -0.0119234342
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0549618006 0.018545026 -0.00416113157
vertex 0.0541602969 0.0177621543 -0.0119234342
vertex 0.0597232096 0.0241596848 -0.00799984112
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0549618006 0.018545026 -0.00416113157
vertex 0.0597232096 0.0241596848 -0.00799984112
vertex 0.0587762967 0.0249368995 -0.00303505594
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0403360985 0.0248796996 0.00161793025
vertex 0.0385551453 0.0345796607 0.000764651631
vertex -0.00125045481 0.00490831677 0.000815086474
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0403360985 0.0248796996 0.00161793025
vertex 0.000918214442 -0.0073946747 0.000328655733
vertex 0.00636783149 -0.00988847017 -0.000695490802
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0403360985 0.0248796996 0.00161793025
vertex 0.00636783149 -0.00988847017 -0.000695490802
vertex 0.0475613847 0.0173089895 -0.000392930204
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0403360985 0.0248796996 0.00161793025
vertex 0.0475613847 0.0173089895 -0.000392930204
vertex 0.0587762967 0.0249368995 -0.00303505594
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0403360985 0.0248796996 0.00161793025
vertex 0.0587762967 0.0249368995 -0.00303505594
vertex 0.0385551453 0.0345796607 0.000764651631
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000944086409 0.0178504046 -0.00800000038
vertex 0.00971134193 0.0251767542 -0.0107111074
vertex -0.00138285034 0.0153856613 -0.0139250662
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000944086409 0.0178504046 -0.00800000038
vertex -0.00132502557 0.0160559155 -0.0027371191
vertex 0.000677756499 0.0178687721 -0.00214548828
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00206399104 -0.00455146888 -0.015881028
vertex -0.00202409131 -0.0045184521 -0.0168692134
vertex 0.00241828035 -0.00839195866 -0.0162292961
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00206399104 -0.00455146888 -0.015881028
vertex 0.00241828035 -0.00839195866 -0.0162292961
vertex 0.000918214442 -0.0073946747 0.000328655733
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00315540261 -0.00244195107 0.000928608177
vertex 0.000918214442 -0.0073946747 0.000328655733
vertex 0.0403360985 0.0248796996 0.00161793025
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00315540261 -0.00244195107 0.000928608177
vertex -0.00369002484 -0.000532748527 -0.000203864271
vertex -0.00362793426 -0.000652820978 -0.016938217
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00315540261 -0.00244195107 0.000928608177
vertex -0.00362793426 -0.000652820978 -0.016938217
vertex -0.00202409131 -0.0045184521 -0.0168692134
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00315540261 -0.00244195107 0.000928608177
vertex -0.00202409131 -0.0045184521 -0.0168692134
vertex -0.00206399104 -0.00455146888 -0.015881028
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00315540261 -0.00244195107 0.000928608177
vertex -0.00206399104 -0.00455146888 -0.015881028
vertex 0.000918214442 -0.0073946747 0.000328655733
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0278518125 0.0336349532 -0.0146128209
vertex 0.0300514866 0.0363943689 -0.012297445
vertex 0.038985759 0.0389309861 -0.0137794875
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0278518125 0.0336349532 -0.0146128209
vertex 0.038985759 0.0389309861 -0.0137794875
vertex 0.038556084 0.0347321518 -0.016708646
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0278518125 0.0336349532 -0.0146128209
vertex -0.00138285034 0.0153856613 -0.0139250662
vertex 0.00971134193 0.0251767542 -0.0107111074
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0278518125 0.0336349532 -0.0146128209
vertex 0.00971134193 0.0251767542 -0.0107111074
vertex 0.0300514866 0.0363943689 -0.012297445
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00591362314 -0.0103434622 -0.00800000038
vertex 0.000918214442 -0.0073946747 0.000328655733
vertex 0.00241828035 -0.00839195866 -0.0162292961
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00591362314 -0.0103434622 -0.00800000038
vertex 0.0077118515 -0.0104039367 -0.0147853205
vertex 0.0110789239 -0.0108499546 -0.0127844093
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00591362314 -0.0103434622 -0.00800000038
vertex 0.0110789239 -0.0108499546 -0.0127844093
vertex 0.0108520966 -0.0108297039 -0.00296667311
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.039731469 0.00879117288 -0.00130356429
vertex 0.0108520966 -0.0108297039 -0.00296667311
vertex 0.0451193452 0.0106000016 -0.00355592696
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.039731469 0.00879117288 -0.00130356429
vertex 0.0451193452 0.0106000016 -0.00355592696
vertex 0.0549618006 0.018545026 -0.00416113157
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.039731469 0.00879117288 -0.00130356429
vertex 0.0549618006 0.018545026 -0.00416113157
vertex 0.0475613847 0.0173089895 -0.000392930204
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0275254995 -0.00159664499 -0.00800000038
vertex 0.0110789239 -0.0108499546 -0.0127844093
vertex 0.0404670462 0.00763173169 -0.0130943134
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0275254995 -0.00159664499 -0.00800000038
vertex 0.0404670462 0.00763173169 -0.0130943134
vertex 0.0451193452 0.0106000016 -0.00355592696
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0275254995 -0.00159664499 -0.00800000038
vertex 0.0451193452 0.0106000016 -0.00355592696
vertex 0.0108520966 -0.0108297039 -0.00296667311
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0275254995 -0.00159664499 -0.00800000038
vertex 0.0108520966 -0.0108297039 -0.00296667311
vertex 0.0110789239 -0.0108499546 -0.0127844093
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0278568976 0.0336375833 -0.00138695969
vertex 0.0280355327 0.0354826637 -0.0037283462
vertex 0.000677756499 0.0178687721 -0.00214548828
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0278568976 0.0336375833 -0.00138695969
vertex 0.000677756499 0.0178687721 -0.00214548828
vertex 0.0385551453 0.0345796607 0.000764651631
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0404670462 0.00763173169 -0.0130943134
vertex 0.0110789239 -0.0108499546 -0.0127844093
vertex 0.0077118515 -0.0104039367 -0.0147853205
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0404670462 0.00763173169 -0.0130943134
vertex 0.0077118515 -0.0104039367 -0.0147853205
vertex 0.0236400515 -0.000443518395 -0.0150949154
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00241828035 -0.00839195866 -0.0162292961
vertex 0.0419684649 0.0220694635 -0.0173211042
vertex 0.0489069261 0.0177280754 -0.015321088
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00241828035 -0.00839195866 -0.0162292961
vertex 0.0489069261 0.0177280754 -0.015321088
vertex 0.0236400515 -0.000443518395 -0.0150949154
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0236400515 -0.000443518395 -0.0150949154
vertex 0.0489069261 0.0177280754 -0.015321088
vertex 0.0404670462 0.00763173169 -0.0130943134
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00636783149 -0.00988847017 -0.000695490802
vertex 0.0108520966 -0.0108297039 -0.00296667311
vertex 0.039731469 0.00879117288 -0.00130356429
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00636783149 -0.00988847017 -0.000695490802
vertex 0.039731469 0.00879117288 -0.00130356429
vertex 0.0475613847 0.0173089895 -0.000392930204
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00636783149 -0.00988847017 -0.000695490802
vertex 0.000918214442 -0.0073946747 0.000328655733
vertex 0.00591362314 -0.0103434622 -0.00800000038
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00636783149 -0.00988847017 -0.000695490802
vertex 0.00591362314 -0.0103434622 -0.00800000038
vertex 0.0108520966 -0.0108297039 -0.00296667311
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0389296189 0.0386557691 -0.00189383514
vertex 0.0463246666 0.0377887599 -0.00274999999
vertex 0.0372769497 0.0390150361 -0.00341521064
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0389296189 0.0386557691 -0.00189383514
vertex 0.0372769497 0.0390150361 -0.00341521064
vertex 0.0280355327 0.0354826637 -0.0037283462
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0389296189 0.0386557691 -0.00189383514
vertex 0.0280355327 0.0354826637 -0.0037283462
vertex 0.0278568976 0.0336375833 -0.00138695969
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0389296189 0.0386557691 -0.00189383514
vertex 0.0278568976 0.0336375833 -0.00138695969
vertex 0.0385551453 0.0345796607 0.000764651631
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0389296189 0.0386557691 -0.00189383514
vertex 0.0385551453 0.0345796607 0.000764651631
vertex 0.0463246666 0.0377887599 -0.00274999999
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0147730242 0.0284475405 -0.00528044254
vertex 0.0280355327 0.0354826637 -0.0037283462
vertex 0.0300514866 0.0363943689 -0.012297445
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0147730242 0.0284475405 -0.00528044254
vertex 0.0300514866 0.0363943689 -0.012297445
vertex 0.00971134193 0.0251767542 -0.0107111074
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0147730242 0.0284475405 -0.00528044254
vertex 0.00971134193 0.0251767542 -0.0107111074
vertex -0.000944086409 0.0178504046 -0.00800000038
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0147730242 0.0284475405 -0.00528044254
vertex -0.000944086409 0.0178504046 -0.00800000038
vertex 0.000677756499 0.0178687721 -0.00214548828
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0147730242 0.0284475405 -0.00528044254
vertex 0.000677756499 0.0178687721 -0.00214548828
vertex 0.0280355327 0.0354826637 -0.0037283462
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00338406535 0.00146551302 0.000845592876
vertex -0.00369002484 -0.000532748527 -0.000203864271
vertex -0.00315540261 -0.00244195107 0.000928608177
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00315540261 -0.00244195107 0.000928608177
vertex 0.0403360985 0.0248796996 0.00161793025
vertex -0.00125045481 0.00490831677 0.000815086474
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00315540261 -0.00244195107 0.000928608177
vertex -0.00125045481 0.00490831677 0.000815086474
vertex -0.00338406535 0.00146551302 0.000845592876
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00338406535 0.00146551302 0.000845592876
vertex -0.00125045481 0.00490831677 0.000815086474
vertex 0.000677756499 0.0178687721 -0.00214548828
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00338406535 0.00146551302 0.000845592876
vertex 0.000677756499 0.0178687721 -0.00214548828
vertex -0.00132502557 0.0160559155 -0.0027371191
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0077118515 -0.0104039367 -0.0147853205
vertex 0.00241828035 -0.00839195866 -0.0162292961
vertex 0.0236400515 -0.000443518395 -0.0150949154
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0077118515 -0.0104039367 -0.0147853205
vertex 0.00591362314 -0.0103434622 -0.00800000038
vertex 0.00241828035 -0.00839195866 -0.0162292961
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00202409131 -0.0045184521 -0.0168692134
vertex 0.0419684649 0.0220694635 -0.0173211042
vertex 0.00241828035 -0.00839195866 -0.0162292961
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000758886978 0.0123457564 -0.0154223097
vertex -0.00138285034 0.0153856613 -0.0139250662
vertex 0.0278518125 0.0336349532 -0.0146128209
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000758886978 0.0123457564 -0.0154223097
vertex 0.0278518125 0.0336349532 -0.0146128209
vertex 0.038556084 0.0347321518 -0.016708646
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000758886978 0.0123457564 -0.0154223097
vertex -0.00362793426 -0.000652820978 -0.016938217
vertex -0.00138285034 0.0153856613 -0.0139250662
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00362793426 -0.000652820978 -0.016938217
vertex -0.000758886978 0.0123457564 -0.0154223097
vertex 0.038556084 0.0347321518 -0.016708646
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00362793426 -0.000652820978 -0.016938217
vertex 0.038556084 0.0347321518 -0.016708646
vertex 0.0390611403 0.0294230543 -0.0176580176
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0390611403 0.0294230543 -0.0176580176
vertex 0.038556084 0.0347321518 -0.016708646
vertex 0.0587265044 0.0250115357 -0.0129659493
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0390611403 0.0294230543 -0.0176580176
vertex 0.0587265044 0.0250115357 -0.0129659493
vertex 0.0419684649 0.0220694635 -0.0173211042
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0419684649 0.0220694635 -0.0173211042
vertex -0.00202409131 -0.0045184521 -0.0168692134
vertex -0.00362793426 -0.000652820978 -0.016938217
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0419684649 0.0220694635 -0.0173211042
vertex -0.00362793426 -0.000652820978 -0.016938217
vertex 0.0390611403 0.0294230543 -0.0176580176
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0362065658 0.0390213616 -0.0109558506
vertex 0.0300514866 0.0363943689 -0.012297445
vertex 0.0280355327 0.0354826637 -0.0037283462
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0362065658 0.0390213616 -0.0109558506
vertex 0.0280355327 0.0354826637 -0.0037283462
vertex 0.0372769497 0.0390150361 -0.00341521064
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0362065658 0.0390213616 -0.0109558506
vertex 0.0372769497 0.0390150361 -0.00341521064
vertex 0.038985759 0.0389309861 -0.0137794875
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0362065658 0.0390213616 -0.0109558506
vertex 0.038985759 0.0389309861 -0.0137794875
vertex 0.0300514866 0.0363943689 -0.012297445
endloop
endfacet
endsolid AssimpScene

BIN
assets/inspire_hand/meshes/Link13_L.STL

514
assets/inspire_hand/meshes/Link13_L.STL.convex.stl

@ -0,0 +1,514 @@
solid AssimpScene
facet normal 0 0 0
outer loop
vertex -0.00954299793 0.00346851116 -0.000116769595
vertex -0.00952879526 0.00349948788 -0.0148
vertex -0.00360827777 -0.00293576159 -0.0148264747
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00954299793 0.00346851116 -0.000116769595
vertex -0.00360827777 -0.00293576159 -0.0148264747
vertex 0.00197924627 -0.00877810735 -0.00719999941
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00954299793 0.00346851116 -0.000116769595
vertex 0.00197924627 -0.00877810735 -0.00719999941
vertex -0.00294060563 -0.00362145854 0.000121843914
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00520853046 0.0159514118 -0.000468590471
vertex 0.00335793849 0.0162850786 -2.80580352e-05
vertex 0.00204475131 0.0164765455 -0.0145255793
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0236538425 -0.0112433638 0.000139167751
vertex 0.0236305781 -0.0113051506 -0.0145429783
vertex 0.0255211797 -0.00114994799 -0.00720000034
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00636306778 0.0155265052 -0.0139314095
vertex -0.0122086694 0.011017709 -0.0145997265
vertex -0.0122417556 0.0111436844 4.56855414e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00636306778 0.0155265052 -0.0139314095
vertex -0.0122417556 0.0111436844 4.56855414e-05
vertex -0.00520853046 0.0159514118 -0.000468590471
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00636306778 0.0155265052 -0.0139314095
vertex -0.00520853046 0.0159514118 -0.000468590471
vertex 0.00204475131 0.0164765455 -0.0145255793
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00636306778 0.0155265052 -0.0139314095
vertex 0.00204475131 0.0164765455 -0.0145255793
vertex -0.0122086694 0.011017709 -0.0145997265
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0122417556 0.0111436844 4.56855414e-05
vertex -0.0122086694 0.011017709 -0.0145997265
vertex -0.00952879526 0.00349948788 -0.0148
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0122417556 0.0111436844 4.56855414e-05
vertex -0.00952879526 0.00349948788 -0.0148
vertex -0.00954299793 0.00346851116 -0.000116769595
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0239881519 -0.00389247201 -0.0132786492
vertex 0.00204475131 0.0164765455 -0.0145255793
vertex 0.0103289252 0.0133193498 -0.011785998
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0239881519 -0.00389247201 -0.0132786492
vertex 0.0103289252 0.0133193498 -0.011785998
vertex 0.0226684213 0.00165674044 -0.011292317
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0255211797 -0.00114994799 -0.00720000034
vertex 0.0226684213 0.00165674044 -0.011292317
vertex 0.0103289252 0.0133193498 -0.011785998
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0255211797 -0.00114994799 -0.00720000034
vertex 0.0103289252 0.0133193498 -0.011785998
vertex 0.0109909363 0.0127807539 -0.00266474276
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0255211797 -0.00114994799 -0.00720000034
vertex 0.0109909363 0.0127807539 -0.00266474276
vertex 0.0226867665 0.00173585175 -0.00326977787
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0226867665 0.00173585175 -0.00326977787
vertex 0.0109909363 0.0127807539 -0.00266474276
vertex 0.00335793849 0.0162850786 -2.80580352e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0226867665 0.00173585175 -0.00326977787
vertex 0.00335793849 0.0162850786 -2.80580352e-05
vertex 0.0240718275 -0.00358527782 -0.00124900579
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00204026955 -0.00829510204 -0.0115155755
vertex 0.00197924627 -0.00877810735 -0.00719999941
vertex -0.00360827777 -0.00293576159 -0.0148264747
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00204026955 -0.00829510204 -0.0115155755
vertex -0.00360827777 -0.00293576159 -0.0148264747
vertex 0.0198158212 -0.0136940712 -0.013746094
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0126133738 -0.012876221 -0.00719476445
vertex 0.00197924627 -0.00877810735 -0.00719999941
vertex 0.00204026955 -0.00829510204 -0.0115155755
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0126133738 -0.012876221 -0.00719476445
vertex 0.00204026955 -0.00829510204 -0.0115155755
vertex 0.0198158212 -0.0136940712 -0.013746094
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0126133738 -0.012876221 -0.00719476445
vertex 0.0198158212 -0.0136940712 -0.013746094
vertex 0.020417748 -0.0136719858 -0.000442875171
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00204027537 -0.0082951067 -0.00288442057
vertex -0.00294060563 -0.00362145854 0.000121843914
vertex 0.00197924627 -0.00877810735 -0.00719999941
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00204027537 -0.0082951067 -0.00288442057
vertex 0.00197924627 -0.00877810735 -0.00719999941
vertex 0.0126133738 -0.012876221 -0.00719476445
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00204027537 -0.0082951067 -0.00288442057
vertex 0.0126133738 -0.012876221 -0.00719476445
vertex 0.020417748 -0.0136719858 -0.000442875171
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00204027537 -0.0082951067 -0.00288442057
vertex 0.020417748 -0.0136719858 -0.000442875171
vertex -0.00294060563 -0.00362145854 0.000121843914
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0252160393 -0.00136334961 -0.0109543726
vertex 0.0239881519 -0.00389247201 -0.0132786492
vertex 0.0226684213 0.00165674044 -0.011292317
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0252160393 -0.00136334961 -0.0109543726
vertex 0.0226684213 0.00165674044 -0.011292317
vertex 0.0255211797 -0.00114994799 -0.00720000034
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0252160393 -0.00136334961 -0.0109543726
vertex 0.0255211797 -0.00114994799 -0.00720000034
vertex 0.0236305781 -0.0113051506 -0.0145429783
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0252160393 -0.00136334961 -0.0109543726
vertex 0.0236305781 -0.0113051506 -0.0145429783
vertex 0.0239881519 -0.00389247201 -0.0132786492
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0252181608 -0.00136049103 -0.00345343351
vertex 0.0255211797 -0.00114994799 -0.00720000034
vertex 0.0226867665 0.00173585175 -0.00326977787
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0252181608 -0.00136049103 -0.00345343351
vertex 0.0226867665 0.00173585175 -0.00326977787
vertex 0.0240718275 -0.00358527782 -0.00124900579
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0252181608 -0.00136049103 -0.00345343351
vertex 0.0240718275 -0.00358527782 -0.00124900579
vertex 0.0236538425 -0.0112433638 0.000139167751
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0252181608 -0.00136049103 -0.00345343351
vertex 0.0236538425 -0.0112433638 0.000139167751
vertex 0.0255211797 -0.00114994799 -0.00720000034
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0236538425 -0.0112433638 0.000139167751
vertex 0.0240718275 -0.00358527782 -0.00124900579
vertex 0.00335793849 0.0162850786 -2.80580352e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0236538425 -0.0112433638 0.000139167751
vertex 0.00335793849 0.0162850786 -2.80580352e-05
vertex 0.00106034789 0.0139854029 0.000899999985
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00106034789 0.0139854029 0.000899999985
vertex 0.00335793849 0.0162850786 -2.80580352e-05
vertex -0.00520853046 0.0159514118 -0.000468590471
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00106034789 0.0139854029 0.000899999985
vertex -0.00520853046 0.0159514118 -0.000468590471
vertex -0.0122417556 0.0111436844 4.56855414e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0236305781 -0.0113051506 -0.0145429783
vertex 0.0236538425 -0.0112433638 0.000139167751
vertex 0.0225232132 -0.0129914945 0.000107712556
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0236305781 -0.0113051506 -0.0145429783
vertex 0.0225232132 -0.0129914945 0.000107712556
vertex 0.0225723535 -0.0130556496 -0.0114215398
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0224094652 -0.0130734621 -0.0144883329
vertex 0.0236305781 -0.0113051506 -0.0145429783
vertex 0.0225723535 -0.0130556496 -0.0114215398
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0224094652 -0.0130734621 -0.0144883329
vertex 0.0225723535 -0.0130556496 -0.0114215398
vertex 0.020417748 -0.0136719858 -0.000442875171
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0224094652 -0.0130734621 -0.0144883329
vertex 0.020417748 -0.0136719858 -0.000442875171
vertex 0.0198158212 -0.0136940712 -0.013746094
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0224094652 -0.0130734621 -0.0144883329
vertex 0.0198158212 -0.0136940712 -0.013746094
vertex -0.00360827777 -0.00293576159 -0.0148264747
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00658740941 0.0156882554 -0.00720697967
vertex 0.00335793849 0.0162850786 -2.80580352e-05
vertex 0.0109909363 0.0127807539 -0.00266474276
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00658740941 0.0156882554 -0.00720697967
vertex 0.0109909363 0.0127807539 -0.00266474276
vertex 0.0103289252 0.0133193498 -0.011785998
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00658740941 0.0156882554 -0.00720697967
vertex 0.0103289252 0.0133193498 -0.011785998
vertex 0.00204475131 0.0164765455 -0.0145255793
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00658740941 0.0156882554 -0.00720697967
vertex 0.00204475131 0.0164765455 -0.0145255793
vertex 0.00335793849 0.0162850786 -2.80580352e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0034821257 -0.00167539215 0.000899999985
vertex -0.00294060563 -0.00362145854 0.000121843914
vertex 0.020417748 -0.0136719858 -0.000442875171
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0034821257 -0.00167539215 0.000899999985
vertex 0.0225232132 -0.0129914945 0.000107712556
vertex 0.0236538425 -0.0112433638 0.000139167751
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0034821257 -0.00167539215 0.000899999985
vertex 0.0236538425 -0.0112433638 0.000139167751
vertex 0.00106034789 0.0139854029 0.000899999985
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0034821257 -0.00167539215 0.000899999985
vertex 0.00106034789 0.0139854029 0.000899999985
vertex -0.0122417556 0.0111436844 4.56855414e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0034821257 -0.00167539215 0.000899999985
vertex -0.0122417556 0.0111436844 4.56855414e-05
vertex -0.00954299793 0.00346851116 -0.000116769595
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0034821257 -0.00167539215 0.000899999985
vertex -0.00954299793 0.00346851116 -0.000116769595
vertex -0.00294060563 -0.00362145854 0.000121843914
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00551772537 0.01008128 -0.0152915008
vertex 0.00204475131 0.0164765455 -0.0145255793
vertex 0.0239881519 -0.00389247201 -0.0132786492
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00551772537 0.01008128 -0.0152915008
vertex 0.0239881519 -0.00389247201 -0.0132786492
vertex 0.0236305781 -0.0113051506 -0.0145429783
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00360827777 -0.00293576159 -0.0148264747
vertex -0.00952879526 0.00349948788 -0.0148
vertex 0.00551772537 0.01008128 -0.0152915008
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00360827777 -0.00293576159 -0.0148264747
vertex 0.00551772537 0.01008128 -0.0152915008
vertex 0.0236305781 -0.0113051506 -0.0145429783
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00360827777 -0.00293576159 -0.0148264747
vertex 0.0236305781 -0.0113051506 -0.0145429783
vertex 0.0224094652 -0.0130734621 -0.0144883329
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00551772537 0.01008128 -0.0152915008
vertex -0.00952879526 0.00349948788 -0.0148
vertex -0.0122086694 0.011017709 -0.0145997265
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00551772537 0.01008128 -0.0152915008
vertex -0.0122086694 0.011017709 -0.0145997265
vertex 0.00204475131 0.0164765455 -0.0145255793
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0225232132 -0.0129914945 0.000107712556
vertex 0.020417748 -0.0136719858 -0.000442875171
vertex 0.0225723535 -0.0130556496 -0.0114215398
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0225232132 -0.0129914945 0.000107712556
vertex -0.0034821257 -0.00167539215 0.000899999985
vertex 0.020417748 -0.0136719858 -0.000442875171
endloop
endfacet
endsolid AssimpScene

BIN
assets/inspire_hand/meshes/Link13_R.STL

498
assets/inspire_hand/meshes/Link13_R.STL.convex.stl

@ -0,0 +1,498 @@
solid AssimpScene
facet normal 0 0 0
outer loop
vertex -0.00294060563 0.00362145901 0.000121843914
vertex 0.00197924627 0.00877810828 -0.00719999941
vertex -0.00360827777 0.00293576182 -0.0148264747
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00294060563 0.00362145901 0.000121843914
vertex -0.00360827777 0.00293576182 -0.0148264747
vertex -0.00952879526 -0.00349948835 -0.0148
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00294060563 0.00362145901 0.000121843914
vertex -0.00952879526 -0.00349948835 -0.0148
vertex -0.00954299793 -0.00346851139 -0.000116769588
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00520839449 -0.0159510355 -0.000468590501
vertex 0.00204475131 -0.0164765473 -0.0145255793
vertex 0.00335777202 -0.0162851103 -2.79925516e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0236391071 0.0112828389 0.00014162685
vertex 0.0255211815 0.0011499481 -0.00720000034
vertex 0.0236065667 0.0113664642 -0.0145465545
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0236391071 0.0112828389 0.00014162685
vertex 0.00106034789 -0.0139854029 0.000899999985
vertex 0.00335777202 -0.0162851103 -2.79925516e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0236391071 0.0112828389 0.00014162685
vertex 0.00335777202 -0.0162851103 -2.79925516e-05
vertex 0.0242268927 0.00308478833 -0.00149034301
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00636311062 -0.0155266142 -0.0139314085
vertex 0.00204475131 -0.0164765473 -0.0145255793
vertex -0.00520839449 -0.0159510355 -0.000468590501
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00636311062 -0.0155266142 -0.0139314085
vertex -0.00520839449 -0.0159510355 -0.000468590501
vertex -0.0122417537 -0.0111434702 4.33475725e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00636311062 -0.0155266142 -0.0139314085
vertex -0.0122417537 -0.0111434702 4.33475725e-05
vertex -0.0122139715 -0.011040139 -0.0145840785
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00636311062 -0.0155266142 -0.0139314085
vertex -0.0122139715 -0.011040139 -0.0145840785
vertex 0.00204475131 -0.0164765473 -0.0145255793
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00954299793 -0.00346851139 -0.000116769588
vertex -0.00952879526 -0.00349948835 -0.0148
vertex -0.0122139715 -0.011040139 -0.0145840785
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00954299793 -0.00346851139 -0.000116769588
vertex -0.0122139715 -0.011040139 -0.0145840785
vertex -0.0122417537 -0.0111434702 4.33475725e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0226615071 -0.00163091347 -0.0113424873
vertex 0.010328915 -0.013319361 -0.0117860008
vertex 0.00204475131 -0.0164765473 -0.0145255793
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0226615071 -0.00163091347 -0.0113424873
vertex 0.00204475131 -0.0164765473 -0.0145255793
vertex 0.0240981504 0.0034947677 -0.0131107569
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0242268927 0.00308478833 -0.00149034301
vertex 0.00335777202 -0.0162851103 -2.79925516e-05
vertex 0.0110015655 -0.0127716335 -0.00266540423
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0242268927 0.00308478833 -0.00149034301
vertex 0.0110015655 -0.0127716335 -0.00266540423
vertex 0.0226853397 -0.00172916998 -0.0032542767
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0110015655 -0.0127716335 -0.00266540423
vertex 0.010328915 -0.013319361 -0.0117860008
vertex 0.0226615071 -0.00163091347 -0.0113424873
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0110015655 -0.0127716335 -0.00266540423
vertex 0.0226615071 -0.00163091347 -0.0113424873
vertex 0.0255211815 0.0011499481 -0.00720000034
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0110015655 -0.0127716335 -0.00266540423
vertex 0.0255211815 0.0011499481 -0.00720000034
vertex 0.0226853397 -0.00172916998 -0.0032542767
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0126133747 0.0128762219 -0.00719476445
vertex 0.0205292013 0.0136618959 -0.000404135411
vertex 0.0200176239 0.0136904577 -0.01381943
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00204026978 0.00829510298 -0.0115155764
vertex -0.00360827777 0.00293576182 -0.0148264747
vertex 0.00197924627 0.00877810828 -0.00719999941
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00204026978 0.00829510298 -0.0115155764
vertex 0.00197924627 0.00877810828 -0.00719999941
vertex 0.0126133747 0.0128762219 -0.00719476445
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00204026978 0.00829510298 -0.0115155764
vertex 0.0126133747 0.0128762219 -0.00719476445
vertex 0.0200176239 0.0136904577 -0.01381943
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00204026978 0.00829510298 -0.0115155764
vertex 0.0200176239 0.0136904577 -0.01381943
vertex -0.00360827777 0.00293576182 -0.0148264747
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00204027537 0.0082951067 -0.00288442057
vertex 0.0205292013 0.0136618959 -0.000404135411
vertex 0.0126133747 0.0128762219 -0.00719476445
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00204027537 0.0082951067 -0.00288442057
vertex 0.0126133747 0.0128762219 -0.00719476445
vertex 0.00197924627 0.00877810828 -0.00719999941
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00204027537 0.0082951067 -0.00288442057
vertex 0.00197924627 0.00877810828 -0.00719999941
vertex -0.00294060563 0.00362145901 0.000121843914
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00204027537 0.0082951067 -0.00288442057
vertex -0.00294060563 0.00362145901 0.000121843914
vertex 0.0205292013 0.0136618959 -0.000404135411
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0252200719 0.00135843654 -0.0109397583
vertex 0.0255211815 0.0011499481 -0.00720000034
vertex 0.0226615071 -0.00163091347 -0.0113424873
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0252200719 0.00135843654 -0.0109397583
vertex 0.0226615071 -0.00163091347 -0.0113424873
vertex 0.0240981504 0.0034947677 -0.0131107569
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0252200719 0.00135843654 -0.0109397583
vertex 0.0240981504 0.0034947677 -0.0131107569
vertex 0.0236065667 0.0113664642 -0.0145465545
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0252200719 0.00135843654 -0.0109397583
vertex 0.0236065667 0.0113664642 -0.0145465545
vertex 0.0255211815 0.0011499481 -0.00720000034
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00106034789 -0.0139854029 0.000899999985
vertex -0.0122417537 -0.0111434702 4.33475725e-05
vertex -0.00520839449 -0.0159510355 -0.000468590501
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00106034789 -0.0139854029 0.000899999985
vertex -0.00520839449 -0.0159510355 -0.000468590501
vertex 0.00335777202 -0.0162851103 -2.79925516e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.025217995 0.00136129372 -0.00345262326
vertex 0.0242268927 0.00308478833 -0.00149034301
vertex 0.0226853397 -0.00172916998 -0.0032542767
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.025217995 0.00136129372 -0.00345262326
vertex 0.0226853397 -0.00172916998 -0.0032542767
vertex 0.0255211815 0.0011499481 -0.00720000034
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.025217995 0.00136129372 -0.00345262326
vertex 0.0255211815 0.0011499481 -0.00720000034
vertex 0.0236391071 0.0112828389 0.00014162685
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.025217995 0.00136129372 -0.00345262326
vertex 0.0236391071 0.0112828389 0.00014162685
vertex 0.0242268927 0.00308478833 -0.00149034301
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0225723572 0.0130556514 -0.0114215408
vertex 0.0205292013 0.0136618959 -0.000404135411
vertex 0.0236391071 0.0112828389 0.00014162685
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0225723572 0.0130556514 -0.0114215408
vertex 0.0236391071 0.0112828389 0.00014162685
vertex 0.0236065667 0.0113664642 -0.0145465545
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0224094652 0.0130734639 -0.0144883338
vertex 0.0200176239 0.0136904577 -0.01381943
vertex 0.0205292013 0.0136618959 -0.000404135411
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0224094652 0.0130734639 -0.0144883338
vertex 0.0205292013 0.0136618959 -0.000404135411
vertex 0.0225723572 0.0130556514 -0.0114215408
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0224094652 0.0130734639 -0.0144883338
vertex 0.0225723572 0.0130556514 -0.0114215408
vertex 0.0236065667 0.0113664642 -0.0145465545
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0224094652 0.0130734639 -0.0144883338
vertex -0.00360827777 0.00293576182 -0.0148264747
vertex 0.0200176239 0.0136904577 -0.01381943
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00658748997 -0.0156884696 -0.00720697967
vertex 0.00204475131 -0.0164765473 -0.0145255793
vertex 0.010328915 -0.013319361 -0.0117860008
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00658748997 -0.0156884696 -0.00720697967
vertex 0.010328915 -0.013319361 -0.0117860008
vertex 0.0110015655 -0.0127716335 -0.00266540423
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00658748997 -0.0156884696 -0.00720697967
vertex 0.0110015655 -0.0127716335 -0.00266540423
vertex 0.00335777202 -0.0162851103 -2.79925516e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00658748997 -0.0156884696 -0.00720697967
vertex 0.00335777202 -0.0162851103 -2.79925516e-05
vertex 0.00204475131 -0.0164765473 -0.0145255793
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0034821257 0.00167539238 0.000899999985
vertex -0.0122417537 -0.0111434702 4.33475725e-05
vertex 0.00106034789 -0.0139854029 0.000899999985
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0034821257 0.00167539238 0.000899999985
vertex 0.00106034789 -0.0139854029 0.000899999985
vertex 0.0236391071 0.0112828389 0.00014162685
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0034821257 0.00167539238 0.000899999985
vertex 0.0236391071 0.0112828389 0.00014162685
vertex 0.0205292013 0.0136618959 -0.000404135411
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0034821257 0.00167539238 0.000899999985
vertex 0.0205292013 0.0136618959 -0.000404135411
vertex -0.00294060563 0.00362145901 0.000121843914
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0034821257 0.00167539238 0.000899999985
vertex -0.00294060563 0.00362145901 0.000121843914
vertex -0.00954299793 -0.00346851139 -0.000116769588
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0034821257 0.00167539238 0.000899999985
vertex -0.00954299793 -0.00346851139 -0.000116769588
vertex -0.0122417537 -0.0111434702 4.33475725e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0224094652 0.0130734639 -0.0144883338
vertex 0.0236065667 0.0113664642 -0.0145465545
vertex 0.00551772071 -0.0100812875 -0.0152915157
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0224094652 0.0130734639 -0.0144883338
vertex 0.00551772071 -0.0100812875 -0.0152915157
vertex -0.00952879526 -0.00349948835 -0.0148
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0224094652 0.0130734639 -0.0144883338
vertex -0.00952879526 -0.00349948835 -0.0148
vertex -0.00360827777 0.00293576182 -0.0148264747
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00551772071 -0.0100812875 -0.0152915157
vertex 0.0236065667 0.0113664642 -0.0145465545
vertex 0.0240981504 0.0034947677 -0.0131107569
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00551772071 -0.0100812875 -0.0152915157
vertex 0.0240981504 0.0034947677 -0.0131107569
vertex 0.00204475131 -0.0164765473 -0.0145255793
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00551772071 -0.0100812875 -0.0152915157
vertex 0.00204475131 -0.0164765473 -0.0145255793
vertex -0.0122139715 -0.011040139 -0.0145840785
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00551772071 -0.0100812875 -0.0152915157
vertex -0.0122139715 -0.011040139 -0.0145840785
vertex -0.00952879526 -0.00349948835 -0.0148
endloop
endfacet
endsolid AssimpScene

BIN
assets/inspire_hand/meshes/Link14_L.STL

578
assets/inspire_hand/meshes/Link14_L.STL.convex.stl

@ -0,0 +1,578 @@
solid AssimpScene
facet normal 0 0 0
outer loop
vertex 0.00512673147 0.00837041344 -0.0100894896
vertex 0.00535698887 0.0086597912 -0.00299278554
vertex 0.00826827437 0.00567460945 -0.00265491288
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00512673147 0.00837041344 -0.0100894896
vertex 0.00826827437 0.00567460945 -0.00265491288
vertex 0.0209318288 -0.00844171923 -0.00323660369
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00512673147 0.00837041344 -0.0100894896
vertex 0.0209318288 -0.00844171923 -0.00323660369
vertex 0.020510653 -0.00824526604 -0.00912056118
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00484760618 0.00193803303 -0.00245000003
vertex 0.00187790697 -0.00390737923 0.00105241139
vertex 0.0043730801 0.00669520022 -0.000304654066
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00484760618 0.00193803303 -0.00245000003
vertex 0.0043730801 0.00669520022 -0.000304654066
vertex -0.000304747809 0.00821762625 -0.00294999988
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00484760618 0.00193803303 -0.00245000003
vertex -0.00504786847 0.000576333841 -0.00954999961
vertex -0.00504786847 0.000576333841 -0.00445000036
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00535698887 0.0086597912 -0.00299278554
vertex 0.0043730801 0.00669520022 -0.000304654066
vertex 0.00826827437 0.00567460945 -0.00265491288
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00535698887 0.0086597912 -0.00299278554
vertex 0.00512673147 0.00837041344 -0.0100894896
vertex -0.000242706694 0.00825330801 -0.00905000139
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00535698887 0.0086597912 -0.00299278554
vertex -0.000242706694 0.00825330801 -0.00905000139
vertex -0.000304747809 0.00821762625 -0.00294999988
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00535698887 0.0086597912 -0.00299278554
vertex -0.000304747809 0.00821762625 -0.00294999988
vertex 0.0043730801 0.00669520022 -0.000304654066
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0209318288 -0.00844171923 -0.00323660369
vertex 0.00826827437 0.00567460945 -0.00265491288
vertex 0.0043730801 0.00669520022 -0.000304654066
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0209318288 -0.00844171923 -0.00323660369
vertex 0.0043730801 0.00669520022 -0.000304654066
vertex 0.0187538359 -0.0104011679 -0.000944506261
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0212634224 -0.0120062614 -0.00309343101
vertex 0.0222715605 -0.0103677548 -0.0063738809
vertex 0.0209318288 -0.00844171923 -0.00323660369
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0212634224 -0.0120062614 -0.00309343101
vertex 0.0209318288 -0.00844171923 -0.00323660369
vertex 0.0187538359 -0.0104011679 -0.000944506261
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.020510653 -0.00824526604 -0.00912056118
vertex 0.0209318288 -0.00844171923 -0.00323660369
vertex 0.0222715605 -0.0103677548 -0.0063738809
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00512673147 0.00837041344 -0.0100894896
vertex 0.020510653 -0.00824526604 -0.00912056118
vertex 0.0178316291 -0.00983346161 -0.0113605987
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00512673147 0.00837041344 -0.0100894896
vertex 0.0178316291 -0.00983346161 -0.0113605987
vertex 0.00407311833 0.005198495 -0.0122924624
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00407311833 0.005198495 -0.0122924624
vertex 0.0178316291 -0.00983346161 -0.0113605987
vertex 0.00383088435 -0.00185999623 -0.013342605
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00407311833 0.005198495 -0.0122924624
vertex 0.00383088435 -0.00185999623 -0.013342605
vertex 0.00124589994 -0.00437950715 -0.0127226021
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00407311833 0.005198495 -0.0122924624
vertex 0.00124589994 -0.00437950715 -0.0127226021
vertex -0.00504786847 0.000576333841 -0.00954999961
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00407311833 0.005198495 -0.0122924624
vertex -0.000242706694 0.00825330801 -0.00905000139
vertex 0.00512673147 0.00837041344 -0.0100894896
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00124589994 -0.00437950715 -0.0127226021
vertex -0.00312809576 -0.00401181774 -0.00954999961
vertex -0.00504786847 0.000576333841 -0.00954999961
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00124589994 -0.00437950715 -0.0127226021
vertex 0.00383088435 -0.00185999623 -0.013342605
vertex 0.00719717098 -0.00933754444 -0.0123852938
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00124589994 -0.00437950715 -0.0127226021
vertex 0.00719717098 -0.00933754444 -0.0123852938
vertex -0.00312809576 -0.00401181774 -0.00954999961
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0155541738 -0.0131858038 -0.0115278177
vertex 0.00719717098 -0.00933754444 -0.0123852938
vertex 0.00383088435 -0.00185999623 -0.013342605
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0155541738 -0.0131858038 -0.0115278177
vertex 0.00383088435 -0.00185999623 -0.013342605
vertex 0.0178316291 -0.00983346161 -0.0113605987
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0155541738 -0.0131858038 -0.0115278177
vertex 0.0178316291 -0.00983346161 -0.0113605987
vertex 0.0206866674 -0.0124441935 -0.0093129063
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0155541738 -0.0131858038 -0.0115278177
vertex 0.0206866674 -0.0124441935 -0.0093129063
vertex 0.0161192454 -0.0152129941 -0.00948119815
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.016499022 -0.0135002108 -0.000708093226
vertex 0.0114938971 -0.0135084242 -0.00118722441
vertex 0.0175848641 -0.0149372956 -0.00261197891
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.016499022 -0.0135002108 -0.000708093226
vertex 0.0175848641 -0.0149372956 -0.00261197891
vertex 0.0212634224 -0.0120062614 -0.00309343101
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.016499022 -0.0135002108 -0.000708093226
vertex 0.0212634224 -0.0120062614 -0.00309343101
vertex 0.0187538359 -0.0104011679 -0.000944506261
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0193030369 -0.0146003636 -0.00762915239
vertex 0.0161192454 -0.0152129941 -0.00948119815
vertex 0.0206866674 -0.0124441935 -0.0093129063
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0193030369 -0.0146003636 -0.00762915239
vertex 0.0206866674 -0.0124441935 -0.0093129063
vertex 0.0222715605 -0.0103677548 -0.0063738809
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0193030369 -0.0146003636 -0.00762915239
vertex 0.0222715605 -0.0103677548 -0.0063738809
vertex 0.0212634224 -0.0120062614 -0.00309343101
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0193030369 -0.0146003636 -0.00762915239
vertex 0.0212634224 -0.0120062614 -0.00309343101
vertex 0.0175848641 -0.0149372956 -0.00261197891
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0193030369 -0.0146003636 -0.00762915239
vertex 0.0175848641 -0.0149372956 -0.00261197891
vertex 0.0161192454 -0.0152129941 -0.00948119815
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0104746334 -0.0130751589 -0.0108739845
vertex 0.0076833386 -0.0125499945 -0.008095528
vertex -0.00312809576 -0.00401181774 -0.00954999961
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0104746334 -0.0130751589 -0.0108739845
vertex -0.00312809576 -0.00401181774 -0.00954999961
vertex 0.00719717098 -0.00933754444 -0.0123852938
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0104746334 -0.0130751589 -0.0108739845
vertex 0.00719717098 -0.00933754444 -0.0123852938
vertex 0.0155541738 -0.0131858038 -0.0115278177
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0104746334 -0.0130751589 -0.0108739845
vertex 0.0155541738 -0.0131858038 -0.0115278177
vertex 0.0161192454 -0.0152129941 -0.00948119815
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0143942619 -0.0153388241 -0.0039044756
vertex 0.0161192454 -0.0152129941 -0.00948119815
vertex 0.0175848641 -0.0149372956 -0.00261197891
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0143942619 -0.0153388241 -0.0039044756
vertex 0.0175848641 -0.0149372956 -0.00261197891
vertex 0.0114938971 -0.0135084242 -0.00118722441
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0143942619 -0.0153388241 -0.0039044756
vertex 0.0076833386 -0.0125499945 -0.008095528
vertex 0.0104746334 -0.0130751589 -0.0108739845
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0143942619 -0.0153388241 -0.0039044756
vertex 0.0104746334 -0.0130751589 -0.0108739845
vertex 0.0161192454 -0.0152129941 -0.00948119815
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00540134637 -0.000538525986 0.00110963604
vertex 0.00187790697 -0.00390737923 0.00105241139
vertex 0.016499022 -0.0135002108 -0.000708093226
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00540134637 -0.000538525986 0.00110963604
vertex 0.016499022 -0.0135002108 -0.000708093226
vertex 0.0187538359 -0.0104011679 -0.000944506261
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00540134637 -0.000538525986 0.00110963604
vertex 0.0187538359 -0.0104011679 -0.000944506261
vertex 0.0043730801 0.00669520022 -0.000304654066
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00540134637 -0.000538525986 0.00110963604
vertex 0.0043730801 0.00669520022 -0.000304654066
vertex 0.00187790697 -0.00390737923 0.00105241139
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00312809576 -0.00401181774 -0.00245000003
vertex -0.00312809576 -0.00401181774 -0.00954999961
vertex 0.0076833386 -0.0125499945 -0.008095528
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00312809576 -0.00401181774 -0.00245000003
vertex 0.0076833386 -0.0125499945 -0.008095528
vertex 0.00610036775 -0.0113324719 -0.00276233954
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00610036775 -0.0113324719 -0.00276233954
vertex 0.0076833386 -0.0125499945 -0.008095528
vertex 0.0143942619 -0.0153388241 -0.0039044756
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00610036775 -0.0113324719 -0.00276233954
vertex 0.0143942619 -0.0153388241 -0.0039044756
vertex 0.0114938971 -0.0135084242 -0.00118722441
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00495100906 -0.000699626165 -0.00245000003
vertex -0.00312809576 -0.00401181774 -0.00245000003
vertex 0.00187790697 -0.00390737923 0.00105241139
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00495100906 -0.000699626165 -0.00245000003
vertex 0.00187790697 -0.00390737923 0.00105241139
vertex -0.00484760618 0.00193803303 -0.00245000003
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00495100906 -0.000699626165 -0.00245000003
vertex -0.00484760618 0.00193803303 -0.00245000003
vertex -0.00504786847 0.000576333841 -0.00445000036
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00495100906 -0.000699626165 -0.00245000003
vertex -0.00504786847 0.000576333841 -0.00445000036
vertex -0.00504786847 0.000576333841 -0.00954999961
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00495100906 -0.000699626165 -0.00245000003
vertex -0.00504786847 0.000576333841 -0.00954999961
vertex -0.00312809576 -0.00401181774 -0.00954999961
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00495100906 -0.000699626165 -0.00245000003
vertex -0.00312809576 -0.00401181774 -0.00954999961
vertex -0.00312809576 -0.00401181774 -0.00245000003
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0043116766 0.00327486126 -0.00913701672
vertex -0.00504786847 0.000576333841 -0.00954999961
vertex -0.00484760618 0.00193803303 -0.00245000003
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0043116766 0.00327486126 -0.00913701672
vertex -0.00484760618 0.00193803303 -0.00245000003
vertex -0.000304747809 0.00821762625 -0.00294999988
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0043116766 0.00327486126 -0.00913701672
vertex -0.000304747809 0.00821762625 -0.00294999988
vertex -0.000242706694 0.00825330801 -0.00905000139
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0043116766 0.00327486126 -0.00913701672
vertex -0.000242706694 0.00825330801 -0.00905000139
vertex 0.00407311833 0.005198495 -0.0122924624
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0043116766 0.00327486126 -0.00913701672
vertex 0.00407311833 0.005198495 -0.0122924624
vertex -0.00504786847 0.000576333841 -0.00954999961
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0219888613 -0.0103672091 -0.00832071621
vertex 0.0206866674 -0.0124441935 -0.0093129063
vertex 0.0178316291 -0.00983346161 -0.0113605987
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0219888613 -0.0103672091 -0.00832071621
vertex 0.0178316291 -0.00983346161 -0.0113605987
vertex 0.020510653 -0.00824526604 -0.00912056118
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0219888613 -0.0103672091 -0.00832071621
vertex 0.020510653 -0.00824526604 -0.00912056118
vertex 0.0222715605 -0.0103677548 -0.0063738809
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0219888613 -0.0103672091 -0.00832071621
vertex 0.0222715605 -0.0103677548 -0.0063738809
vertex 0.0206866674 -0.0124441935 -0.0093129063
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00525678601 -0.00922832079 -0.000360598176
vertex 0.00187790697 -0.00390737923 0.00105241139
vertex -0.00312809576 -0.00401181774 -0.00245000003
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00525678601 -0.00922832079 -0.000360598176
vertex -0.00312809576 -0.00401181774 -0.00245000003
vertex 0.00610036775 -0.0113324719 -0.00276233954
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00525678601 -0.00922832079 -0.000360598176
vertex 0.00610036775 -0.0113324719 -0.00276233954
vertex 0.0114938971 -0.0135084242 -0.00118722441
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00525678601 -0.00922832079 -0.000360598176
vertex 0.0114938971 -0.0135084242 -0.00118722441
vertex 0.016499022 -0.0135002108 -0.000708093226
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00525678601 -0.00922832079 -0.000360598176
vertex 0.016499022 -0.0135002108 -0.000708093226
vertex 0.00187790697 -0.00390737923 0.00105241139
endloop
endfacet
endsolid AssimpScene

BIN
assets/inspire_hand/meshes/Link14_R.STL

578
assets/inspire_hand/meshes/Link14_R.STL.convex.stl

@ -0,0 +1,578 @@
solid AssimpScene
facet normal 0 0 0
outer loop
vertex -0.00312809576 0.00401181774 -0.00245000003
vertex 0.00844539888 0.0102744075 0.000254117127
vertex 0.0114938971 0.0135084251 -0.00118722429
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00312809576 0.00401181774 -0.00245000003
vertex 0.0114938971 0.0135084251 -0.00118722429
vertex 0.00867762603 0.0130432881 -0.00320307631
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00484760618 -0.00193803315 -0.00954999868
vertex 0.0017748453 0.0039776261 -0.0130125638
vertex 0.00434891228 -0.00660452293 -0.0117415087
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00484760618 -0.00193803315 -0.00954999868
vertex 0.00434891228 -0.00660452293 -0.0117415087
vertex -0.000242706723 -0.00825330894 -0.00905000046
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00484760618 -0.00193803315 -0.00954999868
vertex -0.00504786847 -0.000576333841 -0.00245000003
vertex -0.00504786847 -0.000576333841 -0.00754999975
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00533693377 -0.00863752514 -0.00917873066
vertex 0.00434891228 -0.00660452293 -0.0117415087
vertex 0.00828528125 -0.0056570014 -0.00934534147
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00516385119 -0.00841722917 -0.00202040863
vertex -0.000304747809 -0.00821762625 -0.00294999988
vertex -0.000242706723 -0.00825330894 -0.00905000046
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00516385119 -0.00841722917 -0.00202040863
vertex -0.000242706723 -0.00825330894 -0.00905000046
vertex 0.00533693377 -0.00863752514 -0.00917873066
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00533693377 -0.00863752514 -0.00917873066
vertex -0.000242706723 -0.00825330894 -0.00905000046
vertex 0.00434891228 -0.00660452293 -0.0117415087
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0164990537 0.0135001577 -0.000708083448
vertex 0.00844539888 0.0102744075 0.000254117127
vertex 0.00396200549 0.00156084588 0.00132731209
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0164990537 0.0135001577 -0.000708083448
vertex 0.00396200549 0.00156084588 0.00132731209
vertex 0.0192794092 0.00972571876 -0.00129629334
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0164990537 0.0135001577 -0.000708083448
vertex 0.0192794092 0.00972571876 -0.00129629334
vertex 0.0209506396 0.0126666781 -0.00326397689
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0164990537 0.0135001577 -0.000708083448
vertex 0.0209506396 0.0126666781 -0.00326397689
vertex 0.0164620057 0.0152845522 -0.00279510417
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00143230509 0.00423075259 0.000842975627
vertex 0.00844539888 0.0102744075 0.000254117127
vertex -0.00312809576 0.00401181774 -0.00245000003
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00143230509 0.00423075259 0.000842975627
vertex -0.00312809576 0.00401181774 -0.00245000003
vertex -0.00504786847 -0.000576333841 -0.00245000003
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00143230509 0.00423075259 0.000842975627
vertex 0.00396200549 0.00156084588 0.00132731209
vertex 0.00844539888 0.0102744075 0.000254117127
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0211814977 0.0084747551 -0.00363525026
vertex 0.0192794092 0.00972571876 -0.00129629334
vertex 0.00516385119 -0.00841722917 -0.00202040863
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0211814977 0.0084747551 -0.00363525026
vertex 0.00516385119 -0.00841722917 -0.00202040863
vertex 0.00533693377 -0.00863752514 -0.00917873066
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0211814977 0.0084747551 -0.00363525026
vertex 0.00533693377 -0.00863752514 -0.00917873066
vertex 0.00828528125 -0.0056570014 -0.00934534147
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0209304895 0.00844585523 -0.00876971241
vertex 0.00828528125 -0.0056570014 -0.00934534147
vertex 0.00434891228 -0.00660452293 -0.0117415087
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0209304895 0.00844585523 -0.00876971241
vertex 0.00434891228 -0.00660452293 -0.0117415087
vertex 0.0178316291 0.00983346254 -0.0113605987
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0209304895 0.00844585523 -0.00876971241
vertex 0.0178316291 0.00983346254 -0.0113605987
vertex 0.0206934288 0.0116302064 -0.00977565162
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0209304895 0.00844585523 -0.00876971241
vertex 0.0206934288 0.0116302064 -0.00977565162
vertex 0.0222715605 0.0103677986 -0.00637385482
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0209304895 0.00844585523 -0.00876971241
vertex 0.0222715605 0.0103677986 -0.00637385482
vertex 0.0211814977 0.0084747551 -0.00363525026
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0209304895 0.00844585523 -0.00876971241
vertex 0.0211814977 0.0084747551 -0.00363525026
vertex 0.00828528125 -0.0056570014 -0.00934534147
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0040774974 -0.00523231411 0.000282039575
vertex 0.00516385119 -0.00841722917 -0.00202040863
vertex 0.0192794092 0.00972571876 -0.00129629334
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0040774974 -0.00523231411 0.000282039575
vertex 0.0192794092 0.00972571876 -0.00129629334
vertex 0.00396200549 0.00156084588 0.00132731209
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0040774974 -0.00523231411 0.000282039575
vertex 0.00396200549 0.00156084588 0.00132731209
vertex 0.00143230509 0.00423075259 0.000842975627
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0040774974 -0.00523231411 0.000282039575
vertex 0.00143230509 0.00423075259 0.000842975627
vertex -0.00504786847 -0.000576333841 -0.00245000003
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0040774974 -0.00523231411 0.000282039575
vertex -0.000304747809 -0.00821762625 -0.00294999988
vertex 0.00516385119 -0.00841722917 -0.00202040863
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0164621435 0.0135565475 -0.0112799853
vertex 0.0179557018 0.0146923764 -0.00956679974
vertex 0.0206934288 0.0116302064 -0.00977565162
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0164621435 0.0135565475 -0.0112799853
vertex 0.0206934288 0.0116302064 -0.00977565162
vertex 0.0178316291 0.00983346254 -0.0113605987
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0144903483 0.015296259 -0.00866874587
vertex 0.0164620057 0.0152845522 -0.00279510417
vertex 0.0179557018 0.0146923764 -0.00956679974
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0144903483 0.015296259 -0.00866874587
vertex 0.0179557018 0.0146923764 -0.00956679974
vertex 0.0164621435 0.0135565475 -0.0112799853
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0144903483 0.015296259 -0.00866874587
vertex 0.0164621435 0.0135565475 -0.0112799853
vertex 0.0114938971 0.0135084251 -0.010812778
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0144903483 0.015296259 -0.00866874587
vertex 0.00867762603 0.0130432881 -0.00320307631
vertex 0.0164620057 0.0152845522 -0.00279510417
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0205947254 0.0135419331 -0.00788625237
vertex 0.0222715605 0.0103677986 -0.00637385482
vertex 0.0206934288 0.0116302064 -0.00977565162
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0205947254 0.0135419331 -0.00788625237
vertex 0.0206934288 0.0116302064 -0.00977565162
vertex 0.0179557018 0.0146923764 -0.00956679974
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0205947254 0.0135419331 -0.00788625237
vertex 0.0179557018 0.0146923764 -0.00956679974
vertex 0.0164620057 0.0152845522 -0.00279510417
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0205947254 0.0135419331 -0.00788625237
vertex 0.0164620057 0.0152845522 -0.00279510417
vertex 0.0209506396 0.0126666781 -0.00326397689
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00312809576 0.00401181774 -0.00954999868
vertex -0.00312809576 0.00401181774 -0.00245000003
vertex 0.00867762603 0.0130432881 -0.00320307631
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00312809576 0.00401181774 -0.00954999868
vertex 0.00867762603 0.0130432881 -0.00320307631
vertex 0.00735053048 0.0122600608 -0.00882250816
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00735053048 0.0122600608 -0.00882250816
vertex 0.00867762603 0.0130432881 -0.00320307631
vertex 0.0144903483 0.015296259 -0.00866874587
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00735053048 0.0122600608 -0.00882250816
vertex 0.0144903483 0.015296259 -0.00866874587
vertex 0.0114938971 0.0135084251 -0.010812778
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0017748453 0.0039776261 -0.0130125638
vertex 0.0164621435 0.0135565475 -0.0112799853
vertex 0.0178316291 0.00983346254 -0.0113605987
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0017748453 0.0039776261 -0.0130125638
vertex 0.0178316291 0.00983346254 -0.0113605987
vertex 0.00540134637 0.000538526045 -0.0131096393
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00540134637 0.000538526045 -0.0131096393
vertex 0.0178316291 0.00983346254 -0.0113605987
vertex 0.00434891228 -0.00660452293 -0.0117415087
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00540134637 0.000538526045 -0.0131096393
vertex 0.00434891228 -0.00660452293 -0.0117415087
vertex 0.0017748453 0.0039776261 -0.0130125638
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0114938971 0.0135084251 -0.00118722429
vertex 0.0164620057 0.0152845522 -0.00279510417
vertex 0.00867762603 0.0130432881 -0.00320307631
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0114938971 0.0135084251 -0.00118722429
vertex 0.00844539888 0.0102744075 0.000254117127
vertex 0.0164990537 0.0135001577 -0.000708083448
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0114938971 0.0135084251 -0.00118722429
vertex 0.0164990537 0.0135001577 -0.000708083448
vertex 0.0164620057 0.0152845522 -0.00279510417
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00495100906 0.000699626165 -0.00954999868
vertex -0.00312809576 0.00401181774 -0.00954999868
vertex 0.0017748453 0.0039776261 -0.0130125638
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00495100906 0.000699626165 -0.00954999868
vertex 0.0017748453 0.0039776261 -0.0130125638
vertex -0.00484760618 -0.00193803315 -0.00954999868
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00495100906 0.000699626165 -0.00954999868
vertex -0.00484760618 -0.00193803315 -0.00954999868
vertex -0.00504786847 -0.000576333841 -0.00754999975
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00495100906 0.000699626165 -0.00954999868
vertex -0.00504786847 -0.000576333841 -0.00754999975
vertex -0.00504786847 -0.000576333841 -0.00245000003
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00495100906 0.000699626165 -0.00954999868
vertex -0.00504786847 -0.000576333841 -0.00245000003
vertex -0.00312809576 0.00401181774 -0.00245000003
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00495100906 0.000699626165 -0.00954999868
vertex -0.00312809576 0.00401181774 -0.00245000003
vertex -0.00312809576 0.00401181774 -0.00954999868
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0221410356 0.0105005084 -0.00398013042
vertex 0.0209506396 0.0126666781 -0.00326397689
vertex 0.0192794092 0.00972571876 -0.00129629334
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0221410356 0.0105005084 -0.00398013042
vertex 0.0192794092 0.00972571876 -0.00129629334
vertex 0.0211814977 0.0084747551 -0.00363525026
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0221410356 0.0105005084 -0.00398013042
vertex 0.0211814977 0.0084747551 -0.00363525026
vertex 0.0222715605 0.0103677986 -0.00637385482
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0221410356 0.0105005084 -0.00398013042
vertex 0.0222715605 0.0103677986 -0.00637385482
vertex 0.0205947254 0.0135419331 -0.00788625237
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0221410356 0.0105005084 -0.00398013042
vertex 0.0205947254 0.0135419331 -0.00788625237
vertex 0.0209506396 0.0126666781 -0.00326397689
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00396492379 -0.0038324655 -0.00293883192
vertex -0.00504786847 -0.000576333841 -0.00245000003
vertex -0.00484760618 -0.00193803315 -0.00954999868
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00396492379 -0.0038324655 -0.00293883192
vertex -0.00484760618 -0.00193803315 -0.00954999868
vertex -0.000242706723 -0.00825330894 -0.00905000046
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00396492379 -0.0038324655 -0.00293883192
vertex -0.000242706723 -0.00825330894 -0.00905000046
vertex -0.000304747809 -0.00821762625 -0.00294999988
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00396492379 -0.0038324655 -0.00293883192
vertex -0.000304747809 -0.00821762625 -0.00294999988
vertex 0.0040774974 -0.00523231411 0.000282039575
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00396492379 -0.0038324655 -0.00293883192
vertex 0.0040774974 -0.00523231411 0.000282039575
vertex -0.00504786847 -0.000576333841 -0.00245000003
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00525678601 0.00922832172 -0.0116394041
vertex 0.0017748453 0.0039776261 -0.0130125638
vertex -0.00312809576 0.00401181774 -0.00954999868
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00525678601 0.00922832172 -0.0116394041
vertex -0.00312809576 0.00401181774 -0.00954999868
vertex 0.00735053048 0.0122600608 -0.00882250816
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00525678601 0.00922832172 -0.0116394041
vertex 0.00735053048 0.0122600608 -0.00882250816
vertex 0.0114938971 0.0135084251 -0.010812778
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00525678601 0.00922832172 -0.0116394041
vertex 0.0114938971 0.0135084251 -0.010812778
vertex 0.0164621435 0.0135565475 -0.0112799853
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00525678601 0.00922832172 -0.0116394041
vertex 0.0164621435 0.0135565475 -0.0112799853
vertex 0.0017748453 0.0039776261 -0.0130125638
endloop
endfacet
endsolid AssimpScene

BIN
assets/inspire_hand/meshes/Link15_L.STL

578
assets/inspire_hand/meshes/Link15_L.STL.convex.stl

@ -0,0 +1,578 @@
solid AssimpScene
facet normal 0 0 0
outer loop
vertex 0.00870714523 0.00640626019 -0.00598953292
vertex 0.00950312894 0.00461286493 -0.00238404726
vertex 0.0110836849 0.000444926991 -0.00464487588
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00870714523 0.00640626019 -0.00598953292
vertex 0.0110836849 0.000444926991 -0.00464487588
vertex 0.0108619863 0.000361838145 -0.0082310643
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00870714523 0.00640626019 -0.00598953292
vertex 0.0108619863 0.000361838145 -0.0082310643
vertex 0.00948811043 0.0037748625 -0.0100879287
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00168019475 -0.0353947729 -0.0117649594
vertex 0.00867131911 -0.0342117175 -0.00454189023
vertex -0.00298846234 -0.0356077217 -0.00239999988
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0110836849 0.000444926991 -0.00464487588
vertex 0.00979297794 -0.000237770757 -0.0017522797
vertex 0.00732633192 -0.0312311966 -0.000836168358
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0110836849 0.000444926991 -0.00464487588
vertex 0.00732633192 -0.0312311966 -0.000836168358
vertex 0.00867131911 -0.0342117175 -0.00454189023
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00867131911 -0.0342117175 -0.00454189023
vertex 0.00859882869 -0.0320471004 -0.00950245839
vertex 0.0108619863 0.000361838145 -0.0082310643
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00867131911 -0.0342117175 -0.00454189023
vertex 0.0108619863 0.000361838145 -0.0082310643
vertex 0.0110836849 0.000444926991 -0.00464487588
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00245324406 0.00911482889 -0.0130123673
vertex -8.95772318e-05 0.00956364814 -0.010644556
vertex 0.0052414448 0.00945578981 -0.010652706
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00245324406 0.00911482889 -0.0130123673
vertex -0.000471164734 0.00943676289 0.00084743608
vertex -8.95772318e-05 0.00956364814 -0.010644556
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00469024293 -0.0258794762 -0.0128043657
vertex -0.00168019475 -0.0353947729 -0.0117649594
vertex -0.00554241985 -0.0329650044 -0.0119373091
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0052414448 0.00945578981 -0.0013472935
vertex 0.0052414448 0.00945578981 -0.010652706
vertex -8.95772318e-05 0.00956364814 -0.010644556
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0052414448 0.00945578981 -0.0013472935
vertex -8.95772318e-05 0.00956364814 -0.010644556
vertex -0.000471164734 0.00943676289 0.00084743608
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00118642545 -0.0351593159 -0.000115798735
vertex -0.00298846234 -0.0356077217 -0.00239999988
vertex 0.00867131911 -0.0342117175 -0.00454189023
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0037693365 -0.026172813 0.000955631083
vertex -0.00479577668 -0.0338946246 5.21540693e-11
vertex -0.00118642545 -0.0351593159 -0.000115798735
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0037693365 -0.026172813 0.000955631083
vertex -0.00118642545 -0.0351593159 -0.000115798735
vertex 0.00732633192 -0.0312311966 -0.000836168358
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00528134033 0.00782435481 0.000980281737
vertex -0.000471164734 0.00943676289 0.00084743608
vertex -0.00245324406 0.00911482889 -0.0130123673
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00528134033 0.00782435481 0.000980281737
vertex -0.00823408179 0.00469105458 0.000259628578
vertex -0.00479577668 -0.0338946246 5.21540693e-11
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00528134033 0.00782435481 0.000980281737
vertex -0.00479577668 -0.0338946246 5.21540693e-11
vertex 0.0037693365 -0.026172813 0.000955631083
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00528134033 0.00782435481 0.000980281737
vertex 0.0037693365 -0.026172813 0.000955631083
vertex -0.000471164734 0.00943676289 0.00084743608
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00814419705 -0.0339711122 -0.00865195692
vertex 0.00867131911 -0.0342117175 -0.00454189023
vertex -0.00168019475 -0.0353947729 -0.0117649594
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00814419705 -0.0339711122 -0.00865195692
vertex 0.00859882869 -0.0320471004 -0.00950245839
vertex 0.00867131911 -0.0342117175 -0.00454189023
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619973568 0.00712514762 -0.012882188
vertex -0.00904458947 0.00293594948 -0.0116376197
vertex -0.00823408179 0.00469105458 0.000259628578
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619973568 0.00712514762 -0.012882188
vertex -0.00823408179 0.00469105458 0.000259628578
vertex -0.00528134033 0.00782435481 0.000980281737
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619973568 0.00712514762 -0.012882188
vertex -0.00528134033 0.00782435481 0.000980281737
vertex -0.00245324406 0.00911482889 -0.0130123673
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619973568 0.00712514762 -0.012882188
vertex -0.00245324406 0.00911482889 -0.0130123673
vertex 0.00469024293 -0.0258794762 -0.0128043657
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619973568 0.00712514762 -0.012882188
vertex 0.00469024293 -0.0258794762 -0.0128043657
vertex -0.00554241985 -0.0329650044 -0.0119373091
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619973568 0.00712514762 -0.012882188
vertex -0.00554241985 -0.0329650044 -0.0119373091
vertex -0.00904458947 0.00293594948 -0.0116376197
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00620628009 -0.0307127293 -0.0118967975
vertex -0.00168019475 -0.0353947729 -0.0117649594
vertex 0.00469024293 -0.0258794762 -0.0128043657
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00620628009 -0.0307127293 -0.0118967975
vertex 0.00469024293 -0.0258794762 -0.0128043657
vertex 0.00948811043 0.0037748625 -0.0100879287
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00620628009 -0.0307127293 -0.0118967975
vertex 0.00948811043 0.0037748625 -0.0100879287
vertex 0.00859882869 -0.0320471004 -0.00950245839
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00620628009 -0.0307127293 -0.0118967975
vertex 0.00859882869 -0.0320471004 -0.00950245839
vertex 0.00814419705 -0.0339711122 -0.00865195692
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00620628009 -0.0307127293 -0.0118967975
vertex 0.00814419705 -0.0339711122 -0.00865195692
vertex -0.00168019475 -0.0353947729 -0.0117649594
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00420491211 -0.0350654013 -0.0115261674
vertex -0.00554241985 -0.0329650044 -0.0119373091
vertex -0.00168019475 -0.0353947729 -0.0117649594
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00420491211 -0.0350654013 -0.0115261674
vertex -0.00168019475 -0.0353947729 -0.0117649594
vertex -0.00298846234 -0.0356077217 -0.00239999988
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00549842604 0.00772650121 -0.0118709719
vertex 0.00948811043 0.0037748625 -0.0100879287
vertex 0.00469024293 -0.0258794762 -0.0128043657
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00549842604 0.00772650121 -0.0118709719
vertex 0.00469024293 -0.0258794762 -0.0128043657
vertex -0.00245324406 0.00911482889 -0.0130123673
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00549842604 0.00772650121 -0.0118709719
vertex -0.00245324406 0.00911482889 -0.0130123673
vertex 0.0052414448 0.00945578981 -0.010652706
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00549842604 0.00772650121 -0.0118709719
vertex 0.0052414448 0.00945578981 -0.010652706
vertex 0.00948811043 0.0037748625 -0.0100879287
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00984699838 -0.00731367478 -0.00898697134
vertex -0.00904458947 0.00293594948 -0.0116376197
vertex -0.00554241985 -0.0329650044 -0.0119373091
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00870714523 0.00640626019 -0.00598953292
vertex 0.00948811043 0.0037748625 -0.0100879287
vertex 0.0052414448 0.00945578981 -0.010652706
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00870714523 0.00640626019 -0.00598953292
vertex 0.0052414448 0.00945578981 -0.010652706
vertex 0.0052414448 0.00945578981 -0.0013472935
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00979297794 -0.000237770757 -0.0017522797
vertex 0.00767573016 0.00588637171 -0.000752015447
vertex 0.0037693365 -0.026172813 0.000955631083
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00979297794 -0.000237770757 -0.0017522797
vertex 0.0037693365 -0.026172813 0.000955631083
vertex 0.00732633192 -0.0312311966 -0.000836168358
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0108619863 0.000361838145 -0.0082310643
vertex 0.00859882869 -0.0320471004 -0.00950245839
vertex 0.00948811043 0.0037748625 -0.0100879287
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00588553818 -0.0330666415 -0.00239999988
vertex -0.00554241985 -0.0329650044 -0.0119373091
vertex -0.00420491211 -0.0350654013 -0.0115261674
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00588553818 -0.0330666415 -0.00239999988
vertex -0.00479577668 -0.0338946246 5.21540693e-11
vertex -0.00923808385 -0.0071737715 -0.0015976117
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00588553818 -0.0330666415 -0.00239999988
vertex -0.00923808385 -0.0071737715 -0.0015976117
vertex -0.010015429 -0.00735280709 -0.00449603936
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00588553818 -0.0330666415 -0.00239999988
vertex -0.010015429 -0.00735280709 -0.00449603936
vertex -0.00984699838 -0.00731367478 -0.00898697134
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00588553818 -0.0330666415 -0.00239999988
vertex -0.00984699838 -0.00731367478 -0.00898697134
vertex -0.00554241985 -0.0329650044 -0.0119373091
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00950312894 0.00461286493 -0.00238404726
vertex 0.00870714523 0.00640626019 -0.00598953292
vertex 0.0052414448 0.00945578981 -0.0013472935
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00950312894 0.00461286493 -0.00238404726
vertex 0.0052414448 0.00945578981 -0.0013472935
vertex 0.00767573016 0.00588637171 -0.000752015447
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00950312894 0.00461286493 -0.00238404726
vertex 0.00767573016 0.00588637171 -0.000752015447
vertex 0.00979297794 -0.000237770757 -0.0017522797
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00950312894 0.00461286493 -0.00238404726
vertex 0.00979297794 -0.000237770757 -0.0017522797
vertex 0.0110836849 0.000444926991 -0.00464487588
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00358415442 -0.0352738127 -0.000235040148
vertex -0.00298846234 -0.0356077217 -0.00239999988
vertex -0.00118642545 -0.0351593159 -0.000115798735
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00358415442 -0.0352738127 -0.000235040148
vertex -0.00118642545 -0.0351593159 -0.000115798735
vertex -0.00479577668 -0.0338946246 5.21540693e-11
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00358415442 -0.0352738127 -0.000235040148
vertex -0.00479577668 -0.0338946246 5.21540693e-11
vertex -0.00588553818 -0.0330666415 -0.00239999988
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00358415442 -0.0352738127 -0.000235040148
vertex -0.00588553818 -0.0330666415 -0.00239999988
vertex -0.00420491211 -0.0350654013 -0.0115261674
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00358415442 -0.0352738127 -0.000235040148
vertex -0.00420491211 -0.0350654013 -0.0115261674
vertex -0.00298846234 -0.0356077217 -0.00239999988
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00749985129 -0.0333133452 -0.00187939638
vertex 0.00732633192 -0.0312311966 -0.000836168358
vertex -0.00118642545 -0.0351593159 -0.000115798735
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00749985129 -0.0333133452 -0.00187939638
vertex -0.00118642545 -0.0351593159 -0.000115798735
vertex 0.00867131911 -0.0342117175 -0.00454189023
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00749985129 -0.0333133452 -0.00187939638
vertex 0.00867131911 -0.0342117175 -0.00454189023
vertex 0.00732633192 -0.0312311966 -0.000836168358
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00411645509 0.00903278124 9.35034404e-05
vertex 0.00767573016 0.00588637171 -0.000752015447
vertex 0.0052414448 0.00945578981 -0.0013472935
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00411645509 0.00903278124 9.35034404e-05
vertex 0.0052414448 0.00945578981 -0.0013472935
vertex -0.000471164734 0.00943676289 0.00084743608
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00411645509 0.00903278124 9.35034404e-05
vertex -0.000471164734 0.00943676289 0.00084743608
vertex 0.0037693365 -0.026172813 0.000955631083
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00411645509 0.00903278124 9.35034404e-05
vertex 0.0037693365 -0.026172813 0.000955631083
vertex 0.00767573016 0.00588637171 -0.000752015447
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00954843778 0.000176081594 -0.00115589425
vertex -0.010015429 -0.00735280709 -0.00449603936
vertex -0.00923808385 -0.0071737715 -0.0015976117
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00954843778 0.000176081594 -0.00115589425
vertex -0.00923808385 -0.0071737715 -0.0015976117
vertex -0.00479577668 -0.0338946246 5.21540693e-11
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00954843778 0.000176081594 -0.00115589425
vertex -0.00479577668 -0.0338946246 5.21540693e-11
vertex -0.00823408179 0.00469105458 0.000259628578
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00954843778 0.000176081594 -0.00115589425
vertex -0.00823408179 0.00469105458 0.000259628578
vertex -0.00904458947 0.00293594948 -0.0116376197
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00954843778 0.000176081594 -0.00115589425
vertex -0.00904458947 0.00293594948 -0.0116376197
vertex -0.00984699838 -0.00731367478 -0.00898697134
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00954843778 0.000176081594 -0.00115589425
vertex -0.00984699838 -0.00731367478 -0.00898697134
vertex -0.010015429 -0.00735280709 -0.00449603936
endloop
endfacet
endsolid AssimpScene

BIN
assets/inspire_hand/meshes/Link15_R.STL

546
assets/inspire_hand/meshes/Link15_R.STL.convex.stl

@ -0,0 +1,546 @@
solid AssimpScene
facet normal 0 0 0
outer loop
vertex 0.0110861389 -0.000378863217 -0.00735513913
vertex 0.00969857723 0.000339805934 -0.0103491098
vertex 0.00714588352 0.0312779732 -0.0111587103
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0110861389 -0.000378863217 -0.00735513913
vertex 0.00714588352 0.0312779732 -0.0111587103
vertex 0.00846727099 0.0342627876 -0.00745810941
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00846727099 0.0342627876 -0.00745810941
vertex -0.00294619892 0.0356219411 -0.00959999952
vertex -0.00237921625 0.0354530029 -0.000235040148
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00846727099 0.0342627876 -0.00745810941
vertex 0.00839306135 0.0320879295 -0.00246613892
vertex 0.0108642885 -0.000297273858 -0.00376997283
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00846727099 0.0342627876 -0.00745810941
vertex 0.0108642885 -0.000297273858 -0.00376997283
vertex 0.0110861389 -0.000378863217 -0.00735513913
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00240866793 -0.00912777707 0.00101274764
vertex -3.32920863e-05 -0.0095640095 -0.00135544734
vertex 0.00529770553 -0.00942438561 -0.0013472935
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00240866793 -0.00912777707 0.00101274764
vertex -0.00131760468 -0.00935053267 -0.0129493466
vertex -3.32920863e-05 -0.0095640095 -0.00135544734
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00454500411 0.0260760244 0.000795508327
vertex -0.00237921625 0.0354530029 -0.000235040148
vertex -0.00577091472 0.0328120627 -6.26900655e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00952934101 -0.00374514144 -0.00194311794
vertex 0.00839306135 0.0320879295 -0.00246613892
vertex 0.00547963381 0.0319181234 -0.000330381503
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00952934101 -0.00374514144 -0.00194311794
vertex 0.00547963381 0.0319181234 -0.000330381503
vertex 0.00454500411 0.0260760244 0.000795508327
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00529770553 -0.00942438561 -0.010652706
vertex 0.00529770553 -0.00942438561 -0.0013472935
vertex -3.32920863e-05 -0.0095640095 -0.00135544734
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00529770553 -0.00942438561 -0.010652706
vertex -3.32920863e-05 -0.0095640095 -0.00135544734
vertex -0.00131760468 -0.00935053267 -0.0129493466
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0100590708 0.00729298685 -0.00750395935
vertex -0.00989039615 0.00725485617 -0.0030129645
vertex -0.00577091472 0.0328120627 -6.26900655e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0100590708 0.00729298685 -0.00750395935
vertex -0.00577091472 0.0328120627 -6.26900655e-05
vertex -0.00611816999 0.0328985304 -0.00959999952
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0100590708 0.00729298685 -0.00750395935
vertex -0.00857000705 -0.00407290878 -0.0120279966
vertex -0.00902691763 -0.00298983883 -0.000362366845
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00139594474 0.0351516195 -0.0118842013
vertex 0.00714588352 0.0312779732 -0.0111587103
vertex 0.00361328642 0.0261948127 -0.0129556311
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00139594474 0.0351516195 -0.0118842013
vertex 0.00361328642 0.0261948127 -0.0129556311
vertex -0.00471251877 0.0341851227 -0.0120000001
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00139594474 0.0351516195 -0.0118842013
vertex -0.00471251877 0.0341851227 -0.0120000001
vertex -0.00294619892 0.0356219411 -0.00959999952
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00139594474 0.0351516195 -0.0118842013
vertex -0.00294619892 0.0356219411 -0.00959999952
vertex 0.00846727099 0.0342627876 -0.00745810941
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00794159342 0.0340190455 -0.00334804319
vertex 0.00839306135 0.0320879295 -0.00246613892
vertex 0.00846727099 0.0342627876 -0.00745810941
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00794159342 0.0340190455 -0.00334804319
vertex 0.00846727099 0.0342627876 -0.00745810941
vertex -0.00237921625 0.0354530029 -0.000235040148
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00575273717 -0.00764227053 -0.0105823008
vertex -0.00131760468 -0.00935053267 -0.0129493466
vertex -0.00240866793 -0.00912777707 0.00101274764
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00606697379 -0.00723772869 -0.0128938593
vertex -0.00131760468 -0.00935053267 -0.0129493466
vertex -0.00575273717 -0.00764227053 -0.0105823008
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00606697379 -0.00723772869 -0.0128938593
vertex -0.00471251877 0.0341851227 -0.0120000001
vertex 0.00361328642 0.0261948127 -0.0129556311
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00606697379 -0.00723772869 -0.0128938593
vertex 0.00361328642 0.0261948127 -0.0129556311
vertex -0.00131760468 -0.00935053267 -0.0129493466
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00615712348 -0.00716200285 0.000882193504
vertex -0.00902691763 -0.00298983883 -0.000362366845
vertex -0.00857000705 -0.00407290878 -0.0120279966
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00615712348 -0.00716200285 0.000882193504
vertex -0.00857000705 -0.00407290878 -0.0120279966
vertex -0.00606697379 -0.00723772869 -0.0128938593
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00615712348 -0.00716200285 0.000882193504
vertex -0.00606697379 -0.00723772869 -0.0128938593
vertex -0.00575273717 -0.00764227053 -0.0105823008
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00615712348 -0.00716200285 0.000882193504
vertex -0.00575273717 -0.00764227053 -0.0105823008
vertex -0.00240866793 -0.00912777707 0.00101274764
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00615712348 -0.00716200285 0.000882193504
vertex -0.00240866793 -0.00912777707 0.00101274764
vertex 0.00454500411 0.0260760244 0.000795508327
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00615712348 -0.00716200285 0.000882193504
vertex 0.00454500411 0.0260760244 0.000795508327
vertex -0.00577091472 0.0328120627 -6.26900655e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00615712348 -0.00716200285 0.000882193504
vertex -0.00577091472 0.0328120627 -6.26900655e-05
vertex -0.00902691763 -0.00298983883 -0.000362366845
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00547963381 0.0319181234 -0.000330381503
vertex -0.00237921625 0.0354530029 -0.000235040148
vertex 0.00454500411 0.0260760244 0.000795508327
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00547963381 0.0319181234 -0.000330381503
vertex 0.00839306135 0.0320879295 -0.00246613892
vertex 0.00794159342 0.0340190455 -0.00334804319
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00547963381 0.0319181234 -0.000330381503
vertex 0.00794159342 0.0340190455 -0.00334804319
vertex -0.00237921625 0.0354530029 -0.000235040148
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00463572005 -0.00773072382 0.000137225317
vertex 0.00952934101 -0.00374514144 -0.00194311794
vertex 0.00454500411 0.0260760244 0.000795508327
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00463572005 -0.00773072382 0.000137225317
vertex 0.00454500411 0.0260760244 0.000795508327
vertex -0.00240866793 -0.00912777707 0.00101274764
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00463572005 -0.00773072382 0.000137225317
vertex -0.00240866793 -0.00912777707 0.00101274764
vertex 0.00529770553 -0.00942438561 -0.0013472935
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00463572005 -0.00773072382 0.000137225317
vertex 0.00529770553 -0.00942438561 -0.0013472935
vertex 0.00952934101 -0.00374514144 -0.00194311794
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00989039615 0.00725485617 -0.0030129645
vertex -0.0100590708 0.00729298685 -0.00750395935
vertex -0.00902691763 -0.00298983883 -0.000362366845
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00989039615 0.00725485617 -0.0030129645
vertex -0.00902691763 -0.00298983883 -0.000362366845
vertex -0.00577091472 0.0328120627 -6.26900655e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00918386877 -0.00536073092 -0.00935241766
vertex 0.0110861389 -0.000378863217 -0.00735513913
vertex 0.0108642885 -0.000297273858 -0.00376997283
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00918386877 -0.00536073092 -0.00935241766
vertex 0.0108642885 -0.000297273858 -0.00376997283
vertex 0.00952934101 -0.00374514144 -0.00194311794
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00918386877 -0.00536073092 -0.00935241766
vertex 0.00952934101 -0.00374514144 -0.00194311794
vertex 0.00529770553 -0.00942438561 -0.0013472935
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00918386877 -0.00536073092 -0.00935241766
vertex 0.00529770553 -0.00942438561 -0.0013472935
vertex 0.00529770553 -0.00942438561 -0.010652706
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00918386877 -0.00536073092 -0.00935241766
vertex 0.00529770553 -0.00942438561 -0.010652706
vertex 0.00766128488 -0.00578731857 -0.0112889735
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00969857723 0.000339805934 -0.0103491098
vertex 0.0110861389 -0.000378863217 -0.00735513913
vertex 0.00918386877 -0.00536073092 -0.00935241766
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00969857723 0.000339805934 -0.0103491098
vertex 0.00918386877 -0.00536073092 -0.00935241766
vertex 0.00766128488 -0.00578731857 -0.0112889735
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00969857723 0.000339805934 -0.0103491098
vertex 0.00766128488 -0.00578731857 -0.0112889735
vertex 0.00361328642 0.0261948127 -0.0129556311
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00969857723 0.000339805934 -0.0103491098
vertex 0.00361328642 0.0261948127 -0.0129556311
vertex 0.00714588352 0.0312779732 -0.0111587103
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00460010022 0.0349203385 -0.000473832159
vertex -0.00577091472 0.0328120627 -6.26900655e-05
vertex -0.00237921625 0.0354530029 -0.000235040148
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00460010022 0.0349203385 -0.000473832159
vertex -0.00237921625 0.0354530029 -0.000235040148
vertex -0.00294619892 0.0356219411 -0.00959999952
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00460010022 0.0349203385 -0.000473832159
vertex -0.00294619892 0.0356219411 -0.00959999952
vertex -0.00471251877 0.0341851227 -0.0120000001
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00460010022 0.0349203385 -0.000473832159
vertex -0.00471251877 0.0341851227 -0.0120000001
vertex -0.00611816999 0.0328985304 -0.00959999952
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00460010022 0.0349203385 -0.000473832159
vertex -0.00611816999 0.0328985304 -0.00959999952
vertex -0.00577091472 0.0328120627 -6.26900655e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00603099819 0.0323765352 -0.0117649594
vertex -0.00471251877 0.0341851227 -0.0120000001
vertex -0.00606697379 -0.00723772869 -0.0128938593
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00603099819 0.0323765352 -0.0117649594
vertex -0.00606697379 -0.00723772869 -0.0128938593
vertex -0.00857000705 -0.00407290878 -0.0120279966
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00603099819 0.0323765352 -0.0117649594
vertex -0.00857000705 -0.00407290878 -0.0120279966
vertex -0.0100590708 0.00729298685 -0.00750395935
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00603099819 0.0323765352 -0.0117649594
vertex -0.0100590708 0.00729298685 -0.00750395935
vertex -0.00611816999 0.0328985304 -0.00959999952
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00603099819 0.0323765352 -0.0117649594
vertex -0.00611816999 0.0328985304 -0.00959999952
vertex -0.00471251877 0.0341851227 -0.0120000001
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0108642885 -0.000297273858 -0.00376997283
vertex 0.00839306135 0.0320879295 -0.00246613892
vertex 0.00952934101 -0.00374514144 -0.00194311794
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00417021476 -0.00900808815 -0.0120935012
vertex 0.00766128488 -0.00578731857 -0.0112889735
vertex 0.00529770553 -0.00942438561 -0.010652706
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00417021476 -0.00900808815 -0.0120935012
vertex 0.00529770553 -0.00942438561 -0.010652706
vertex -0.00131760468 -0.00935053267 -0.0129493466
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00417021476 -0.00900808815 -0.0120935012
vertex -0.00131760468 -0.00935053267 -0.0129493466
vertex 0.00361328642 0.0261948127 -0.0129556311
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00417021476 -0.00900808815 -0.0120935012
vertex 0.00361328642 0.0261948127 -0.0129556311
vertex 0.00766128488 -0.00578731857 -0.0112889735
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0072981366 0.0333599113 -0.0101199131
vertex 0.00714588352 0.0312779732 -0.0111587103
vertex -0.00139594474 0.0351516195 -0.0118842013
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0072981366 0.0333599113 -0.0101199131
vertex -0.00139594474 0.0351516195 -0.0118842013
vertex 0.00846727099 0.0342627876 -0.00745810941
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0072981366 0.0333599113 -0.0101199131
vertex 0.00846727099 0.0342627876 -0.00745810941
vertex 0.00714588352 0.0312779732 -0.0111587103
endloop
endfacet
endsolid AssimpScene

BIN
assets/inspire_hand/meshes/Link16_L.STL

578
assets/inspire_hand/meshes/Link16_L.STL.convex.stl

@ -0,0 +1,578 @@
solid AssimpScene
facet normal 0 0 0
outer loop
vertex -0.000307882641 0.00586847169 -0.00204476621
vertex 0.00451644277 0.00780560076 -0.00196253788
vertex 0.0045315451 0.00792971067 -0.00655000005
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000307882641 0.00586847169 -0.00204476621
vertex 0.0045315451 0.00792971067 -0.00655000005
vertex 0.000465776073 0.00647113612 -0.00795523357
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00515188929 -0.0396574326 -0.00500000501
vertex -0.00310910842 0.000835592044 -0.00196253788
vertex -0.00288134371 0.00178353756 -0.0080374619
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000307882641 0.00586847169 -0.00204476621
vertex 0.00408238173 -0.00187340903 0.00130375288
vertex 0.00451644277 0.00780560076 -0.00196253788
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000307882641 0.00586847169 -0.00204476621
vertex -0.00288134371 0.00178353756 -0.0080374619
vertex -0.00310910842 0.000835592044 -0.00196253788
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000465776073 0.00647113612 -0.00795523357
vertex -0.00288134371 0.00178353756 -0.0080374619
vertex -0.000307882641 0.00586847169 -0.00204476621
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00736499764 -0.024230402 -0.00135727332
vertex 0.0019755722 -0.0424995646 -0.00173989905
vertex 0.00175187166 -0.0442894101 -0.00325343711
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00736499764 -0.024230402 -0.00135727332
vertex 0.00175187166 -0.0442894101 -0.00325343711
vertex 0.00793468021 -0.0254673474 -0.00501046702
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00736499764 -0.024230402 -0.00135727332
vertex 0.00793468021 -0.0254673474 -0.00501046702
vertex 0.0109147215 -0.00338476407 -0.00599905197
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00736499764 -0.024230402 -0.00135727332
vertex 0.0109147215 -0.00338476407 -0.00599905197
vertex 0.00980036985 -0.00276796333 -0.000782164396
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000478150789 -0.0445214137 -0.0078114639
vertex -0.00262691779 -0.0428678356 -0.00908724591
vertex 0.00209764228 -0.0416203551 -0.0084653087
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00736499764 -0.024230402 -0.00864272658
vertex 0.0109147215 -0.00338476407 -0.00599905197
vertex 0.00793468021 -0.0254673474 -0.00501046702
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00695778104 0.00602345867 -0.00204476621
vertex 0.00980036985 -0.00276796333 -0.000782164396
vertex 0.0109147215 -0.00338476407 -0.00599905197
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00695778104 0.00602345867 -0.00204476621
vertex 0.0109147215 -0.00338476407 -0.00599905197
vertex 0.00695778104 0.00602345867 -0.00795523357
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00695778104 0.00602345867 -0.00795523357
vertex 0.0045315451 0.00792971067 -0.00655000005
vertex 0.00451644277 0.00780560076 -0.00196253788
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00695778104 0.00602345867 -0.00795523357
vertex 0.00451644277 0.00780560076 -0.00196253788
vertex 0.00695778104 0.00602345867 -0.00204476621
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000105201041 -0.0445730276 -0.00216108374
vertex 0.0019755722 -0.0424995646 -0.00173989905
vertex -0.00293275737 -0.0429493263 -0.00113914383
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00246403739 -0.0434137695 -0.00601525279
vertex 0.000478150789 -0.0445214137 -0.0078114639
vertex 0.00209764228 -0.0416203551 -0.0084653087
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00246403739 -0.0434137695 -0.00601525279
vertex 0.00209764228 -0.0416203551 -0.0084653087
vertex 0.00736499764 -0.024230402 -0.00864272658
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00246403739 -0.0434137695 -0.00601525279
vertex 0.00736499764 -0.024230402 -0.00864272658
vertex 0.00793468021 -0.0254673474 -0.00501046702
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00451644277 0.00780560076 -0.0080374619
vertex 0.00695778104 0.00602345867 -0.00795523357
vertex 0.00562954973 -0.00067555462 -0.0112180943
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00451644277 0.00780560076 -0.0080374619
vertex 0.00562954973 -0.00067555462 -0.0112180943
vertex 0.000465776073 0.00647113612 -0.00795523357
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00451644277 0.00780560076 -0.0080374619
vertex 0.000465776073 0.00647113612 -0.00795523357
vertex 0.0045315451 0.00792971067 -0.00655000005
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00451644277 0.00780560076 -0.0080374619
vertex 0.0045315451 0.00792971067 -0.00655000005
vertex 0.00695778104 0.00602345867 -0.00795523357
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00460944278 -0.0356260799 -0.00131695811
vertex -0.00310910842 0.000835592044 -0.00196253788
vertex -0.00515188929 -0.0396574326 -0.00500000501
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00460944278 -0.0356260799 -0.00131695811
vertex -0.00515188929 -0.0396574326 -0.00500000501
vertex -0.00293275737 -0.0429493263 -0.00113914383
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00460944278 -0.0356260799 -0.00131695811
vertex -0.00293275737 -0.0429493263 -0.00113914383
vertex -0.00264506438 -0.0350661203 0.000425216655
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00460944278 -0.0356260799 -0.00131695811
vertex -0.00264506438 -0.0350661203 0.000425216655
vertex -0.00310910842 0.000835592044 -0.00196253788
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00283985701 -0.0443740748 -0.00501047261
vertex -0.00045522087 -0.0452524722 -0.00501047261
vertex 0.000105201041 -0.0445730276 -0.00216108374
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00283985701 -0.0443740748 -0.00501047261
vertex 0.000105201041 -0.0445730276 -0.00216108374
vertex -0.00293275737 -0.0429493263 -0.00113914383
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00283985701 -0.0443740748 -0.00501047261
vertex -0.00293275737 -0.0429493263 -0.00113914383
vertex -0.00515188929 -0.0396574326 -0.00500000501
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00283985701 -0.0443740748 -0.00501047261
vertex -0.00515188929 -0.0396574326 -0.00500000501
vertex -0.00262691779 -0.0428678356 -0.00908724591
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00262691779 -0.0428678356 -0.00908724591
vertex 0.000478150789 -0.0445214137 -0.0078114639
vertex -0.00045522087 -0.0452524722 -0.00501047261
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00262691779 -0.0428678356 -0.00908724591
vertex -0.00045522087 -0.0452524722 -0.00501047261
vertex -0.00283985701 -0.0443740748 -0.00501047261
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00023808924 -0.00438925112 -0.0106756082
vertex -0.00288134371 0.00178353756 -0.0080374619
vertex 0.000465776073 0.00647113612 -0.00795523357
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00023808924 -0.00438925112 -0.0106756082
vertex 0.000465776073 0.00647113612 -0.00795523357
vertex 0.00562954973 -0.00067555462 -0.0112180943
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00023808924 -0.00438925112 -0.0106756082
vertex 0.00562954973 -0.00067555462 -0.0112180943
vertex -0.00316523481 -0.0339629762 -0.0102867959
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00023808924 -0.00438925112 -0.0106756082
vertex -0.00316523481 -0.0339629762 -0.0102867959
vertex -0.00288134371 0.00178353756 -0.0080374619
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00721886847 -0.000863869151 0.000908752787
vertex 0.00980036985 -0.00276796333 -0.000782164396
vertex 0.00695778104 0.00602345867 -0.00204476621
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00721886847 -0.000863869151 0.000908752787
vertex 0.00695778104 0.00602345867 -0.00204476621
vertex 0.00451644277 0.00780560076 -0.00196253788
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00721886847 -0.000863869151 0.000908752787
vertex 0.00451644277 0.00780560076 -0.00196253788
vertex 0.00408238173 -0.00187340903 0.00130375288
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00721886847 -0.000863869151 0.000908752787
vertex 0.00736499764 -0.024230402 -0.00135727332
vertex 0.00980036985 -0.00276796333 -0.000782164396
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00999800581 -0.00285271578 -0.00896661635
vertex 0.00695778104 0.00602345867 -0.00795523357
vertex 0.0109147215 -0.00338476407 -0.00599905197
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00999800581 -0.00285271578 -0.00896661635
vertex 0.0109147215 -0.00338476407 -0.00599905197
vertex 0.00736499764 -0.024230402 -0.00864272658
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00999800581 -0.00285271578 -0.00896661635
vertex 0.00736499764 -0.024230402 -0.00864272658
vertex 0.00914153177 -0.00528662559 -0.00953828637
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00999800581 -0.00285271578 -0.00896661635
vertex 0.00914153177 -0.00528662559 -0.00953828637
vertex 0.00562954973 -0.00067555462 -0.0112180943
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00999800581 -0.00285271578 -0.00896661635
vertex 0.00562954973 -0.00067555462 -0.0112180943
vertex 0.00695778104 0.00602345867 -0.00795523357
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0044548288 -0.0388166755 -0.00850371644
vertex -0.00316523481 -0.0339629762 -0.0102867959
vertex -0.00262691779 -0.0428678356 -0.00908724591
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0044548288 -0.0388166755 -0.00850371644
vertex -0.00262691779 -0.0428678356 -0.00908724591
vertex -0.00515188929 -0.0396574326 -0.00500000501
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0044548288 -0.0388166755 -0.00850371644
vertex -0.00515188929 -0.0396574326 -0.00500000501
vertex -0.00288134371 0.00178353756 -0.0080374619
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0044548288 -0.0388166755 -0.00850371644
vertex -0.00288134371 0.00178353756 -0.0080374619
vertex -0.00316523481 -0.0339629762 -0.0102867959
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00119875174 -0.0344842672 -0.0101832282
vertex -0.00316523481 -0.0339629762 -0.0102867959
vertex 0.00562954973 -0.00067555462 -0.0112180943
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00562954973 -0.00067555462 -0.0112180943
vertex 0.00914153177 -0.00528662559 -0.00953828637
vertex 0.00736499764 -0.024230402 -0.00864272658
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00562954973 -0.00067555462 -0.0112180943
vertex 0.00736499764 -0.024230402 -0.00864272658
vertex 0.00119875174 -0.0344842672 -0.0101832282
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00119875174 -0.0344842672 -0.0101832282
vertex 0.00736499764 -0.024230402 -0.00864272658
vertex 0.00209764228 -0.0416203551 -0.0084653087
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00119875174 -0.0344842672 -0.0101832282
vertex 0.00209764228 -0.0416203551 -0.0084653087
vertex -0.00262691779 -0.0428678356 -0.00908724591
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00119875174 -0.0344842672 -0.0101832282
vertex -0.00262691779 -0.0428678356 -0.00908724591
vertex -0.00316523481 -0.0339629762 -0.0102867959
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000147928309 -0.00439034216 0.000526889577
vertex -0.00264506438 -0.0350661203 0.000425216655
vertex 0.00408238173 -0.00187340903 0.00130375288
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000147928309 -0.00439034216 0.000526889577
vertex 0.00408238173 -0.00187340903 0.00130375288
vertex -0.000307882641 0.00586847169 -0.00204476621
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000147928309 -0.00439034216 0.000526889577
vertex -0.000307882641 0.00586847169 -0.00204476621
vertex -0.00310910842 0.000835592044 -0.00196253788
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000147928309 -0.00439034216 0.000526889577
vertex -0.00310910842 0.000835592044 -0.00196253788
vertex -0.00264506438 -0.0350661203 0.000425216655
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00120392232 -0.0344835073 0.000181889976
vertex 0.0019755722 -0.0424995646 -0.00173989905
vertex 0.00736499764 -0.024230402 -0.00135727332
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00120392232 -0.0344835073 0.000181889976
vertex 0.00736499764 -0.024230402 -0.00135727332
vertex 0.00721886847 -0.000863869151 0.000908752787
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00120392232 -0.0344835073 0.000181889976
vertex 0.00721886847 -0.000863869151 0.000908752787
vertex 0.00408238173 -0.00187340903 0.00130375288
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00120392232 -0.0344835073 0.000181889976
vertex 0.00408238173 -0.00187340903 0.00130375288
vertex -0.00264506438 -0.0350661203 0.000425216655
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00120392232 -0.0344835073 0.000181889976
vertex -0.00264506438 -0.0350661203 0.000425216655
vertex -0.00293275737 -0.0429493263 -0.00113914383
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00120392232 -0.0344835073 0.000181889976
vertex -0.00293275737 -0.0429493263 -0.00113914383
vertex 0.0019755722 -0.0424995646 -0.00173989905
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00175187166 -0.0442894101 -0.00325343711
vertex 0.000105201041 -0.0445730276 -0.00216108374
vertex -0.00045522087 -0.0452524722 -0.00501047261
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00175187166 -0.0442894101 -0.00325343711
vertex -0.00045522087 -0.0452524722 -0.00501047261
vertex 0.000478150789 -0.0445214137 -0.0078114639
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00175187166 -0.0442894101 -0.00325343711
vertex 0.000478150789 -0.0445214137 -0.0078114639
vertex 0.00246403739 -0.0434137695 -0.00601525279
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00175187166 -0.0442894101 -0.00325343711
vertex 0.00246403739 -0.0434137695 -0.00601525279
vertex 0.00793468021 -0.0254673474 -0.00501046702
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00175187166 -0.0442894101 -0.00325343711
vertex 0.0019755722 -0.0424995646 -0.00173989905
vertex 0.000105201041 -0.0445730276 -0.00216108374
endloop
endfacet
endsolid AssimpScene

BIN
assets/inspire_hand/meshes/Link16_R.STL

578
assets/inspire_hand/meshes/Link16_R.STL.convex.stl

@ -0,0 +1,578 @@
solid AssimpScene
facet normal 0 0 0
outer loop
vertex 0.000533694401 -0.00646588905 -0.00795523357
vertex 0.00461455388 -0.0078816954 -0.00655000005
vertex 0.0045981491 -0.00775775034 -0.00196253764
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000533694401 -0.00646588905 -0.00795523357
vertex 0.0045981491 -0.00775775034 -0.00196253764
vertex -0.000246249343 -0.00587138068 -0.00204476598
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00556799024 0.0396011546 -0.00500000501
vertex -0.00286245858 -0.00181369204 -0.0080374619
vertex -0.00310016423 -0.000868190255 -0.00196253764
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000246249343 -0.00587138068 -0.00204476598
vertex 0.0045981491 -0.00775775034 -0.00196253764
vertex 0.00413053343 0.00183538313 0.00130476139
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000246249343 -0.00587138068 -0.00204476598
vertex -0.00310016423 -0.000868190255 -0.00196253764
vertex -0.00286245858 -0.00181369204 -0.0080374619
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000533694401 -0.00646588905 -0.00795523357
vertex -0.000246249343 -0.00587138068 -0.00204476598
vertex -0.00286245858 -0.00181369204 -0.0080374619
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00711019058 0.024306396 -0.00135728763
vertex 0.00766667956 0.0255492143 -0.00501046749
vertex 0.00128678093 0.0443053357 -0.00325343665
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00711019058 0.024306396 -0.00135728763
vertex 0.00128678093 0.0443053357 -0.00325343665
vertex 0.00152923691 0.0425179712 -0.00173989905
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00977063458 0.00287061604 -0.000782011193
vertex 0.0108776335 0.00349663245 -0.0059987749
vertex 0.00766667956 0.0255492143 -0.00501046749
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00977063458 0.00287061604 -0.000782011193
vertex 0.00766667956 0.0255492143 -0.00501046749
vertex 0.00711019058 0.024306396 -0.00135728763
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 1.06695788e-05 0.0445239805 -0.00781146344
vertex 0.00166053197 0.0416400842 -0.00846530776
vertex -0.00307686627 0.0428378917 -0.00908724498
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00711019058 0.024306396 -0.00864271168
vertex 0.00766667956 0.0255492143 -0.00501046749
vertex 0.0108776335 0.00349663245 -0.0059987749
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00702064112 -0.00595007278 -0.00204476598
vertex 0.0045981491 -0.00775775034 -0.00196253764
vertex 0.00461455388 -0.0078816954 -0.00655000005
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00702064112 -0.00595007278 -0.00204476598
vertex 0.00461455388 -0.0078816954 -0.00655000005
vertex 0.00702064112 -0.00595007278 -0.00795523357
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00702064112 -0.00595007278 -0.00204476598
vertex 0.00702064112 -0.00595007278 -0.00795523357
vertex 0.0108776335 0.00349663245 -0.0059987749
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00702064112 -0.00595007278 -0.00204476598
vertex 0.0108776335 0.00349663245 -0.0059987749
vertex 0.00977063458 0.00287061604 -0.000782011193
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000362801569 0.0445716791 -0.00216108351
vertex -0.00338354497 0.042916175 -0.00113914383
vertex 0.00152923691 0.0425179712 -0.00173989905
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00200807629 0.0434372537 -0.00601525279
vertex 0.00166053197 0.0416400842 -0.00846530776
vertex 1.06695788e-05 0.0445239805 -0.00781146344
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00200807629 0.0434372537 -0.00601525279
vertex 0.00766667956 0.0255492143 -0.00501046749
vertex 0.00711019058 0.024306396 -0.00864271168
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00200807629 0.0434372537 -0.00601525279
vertex 0.00711019058 0.024306396 -0.00864271168
vertex 0.00166053197 0.0416400842 -0.00846530776
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0045981491 -0.00775775034 -0.0080374619
vertex 0.00461455388 -0.0078816954 -0.00655000005
vertex 0.000533694401 -0.00646588905 -0.00795523357
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0045981491 -0.00775775034 -0.0080374619
vertex 0.000533694401 -0.00646588905 -0.00795523357
vertex 0.00562526798 0.000733521942 -0.0112177758
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0045981491 -0.00775775034 -0.0080374619
vertex 0.00562526798 0.000733521942 -0.0112177758
vertex 0.00702064112 -0.00595007278 -0.00795523357
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0045981491 -0.00775775034 -0.0080374619
vertex 0.00702064112 -0.00595007278 -0.00795523357
vertex 0.00461455388 -0.0078816954 -0.00655000005
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00498324633 0.0355757214 -0.00131695799
vertex -0.00301309722 0.0350364186 0.000425216625
vertex -0.00338354497 0.042916175 -0.00113914383
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00498324633 0.0355757214 -0.00131695799
vertex -0.00338354497 0.042916175 -0.00113914383
vertex -0.00556799024 0.0396011546 -0.00500000501
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00498324633 0.0355757214 -0.00131695799
vertex -0.00556799024 0.0396011546 -0.00500000501
vertex -0.00310016423 -0.000868190255 -0.00196253764
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00498324633 0.0355757214 -0.00131695799
vertex -0.00310016423 -0.000868190255 -0.00196253764
vertex -0.00301309722 0.0350364186 0.000425216625
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00330580538 0.0443420075 -0.00500000501
vertex -0.00307686627 0.0428378917 -0.00908724498
vertex -0.00556799024 0.0396011546 -0.00500000501
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00330580538 0.0443420075 -0.00500000501
vertex -0.00556799024 0.0396011546 -0.00500000501
vertex -0.00338354497 0.042916175 -0.00113914383
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00330580538 0.0443420075 -0.00500000501
vertex -0.00338354497 0.042916175 -0.00113914383
vertex -0.000362801569 0.0445716791 -0.00216108351
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00330580538 0.0443420075 -0.00500000501
vertex -0.000362801569 0.0445716791 -0.00216108351
vertex -0.000930326583 0.0452452041 -0.00501047214
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00330580538 0.0443420075 -0.00500000501
vertex -0.000930326583 0.0452452041 -0.00501047214
vertex 1.06695788e-05 0.0445239805 -0.00781146344
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00330580538 0.0443420075 -0.00500000501
vertex 1.06695788e-05 0.0445239805 -0.00781146344
vertex -0.00307686627 0.0428378917 -0.00908724498
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000191967585 0.00439150631 -0.0106755998
vertex -0.00352165638 0.0339278691 -0.010286795
vertex 0.00562526798 0.000733521942 -0.0112177758
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000191967585 0.00439150631 -0.0106755998
vertex 0.00562526798 0.000733521942 -0.0112177758
vertex 0.000533694401 -0.00646588905 -0.00795523357
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000191967585 0.00439150631 -0.0106755998
vertex 0.000533694401 -0.00646588905 -0.00795523357
vertex -0.00286245858 -0.00181369204 -0.0080374619
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000191967585 0.00439150631 -0.0106755998
vertex -0.00286245858 -0.00181369204 -0.0080374619
vertex -0.00352165638 0.0339278691 -0.010286795
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00720940065 0.00093961641 0.000908746268
vertex 0.00413053343 0.00183538313 0.00130476139
vertex 0.0045981491 -0.00775775034 -0.00196253764
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00720940065 0.00093961641 0.000908746268
vertex 0.0045981491 -0.00775775034 -0.00196253764
vertex 0.00702064112 -0.00595007278 -0.00204476598
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00720940065 0.00093961641 0.000908746268
vertex 0.00702064112 -0.00595007278 -0.00204476598
vertex 0.00977063458 0.00287061604 -0.000782011193
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00720940065 0.00093961641 0.000908746268
vertex 0.00977063458 0.00287061604 -0.000782011193
vertex 0.00711019058 0.024306396 -0.00135728763
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00996286701 0.00295509654 -0.00897325575
vertex 0.00908555463 0.00538199767 -0.00953829568
vertex 0.00711019058 0.024306396 -0.00864271168
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00996286701 0.00295509654 -0.00897325575
vertex 0.00711019058 0.024306396 -0.00864271168
vertex 0.0108776335 0.00349663245 -0.0059987749
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00996286701 0.00295509654 -0.00897325575
vertex 0.0108776335 0.00349663245 -0.0059987749
vertex 0.00702064112 -0.00595007278 -0.00795523357
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00996286701 0.00295509654 -0.00897325575
vertex 0.00702064112 -0.00595007278 -0.00795523357
vertex 0.00562526798 0.000733521942 -0.0112177758
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00996286701 0.00295509654 -0.00897325575
vertex 0.00562526798 0.000733521942 -0.0112177758
vertex 0.00908555463 0.00538199767 -0.00953829568
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00486271596 0.0387601182 -0.00850408617
vertex -0.00556799024 0.0396011546 -0.00500000501
vertex -0.00307686627 0.0428378917 -0.00908724498
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00486271596 0.0387601182 -0.00850408617
vertex -0.00307686627 0.0428378917 -0.00908724498
vertex -0.00352165638 0.0339278691 -0.010286795
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00486271596 0.0387601182 -0.00850408617
vertex -0.00352165638 0.0339278691 -0.010286795
vertex -0.00286245858 -0.00181369204 -0.0080374619
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00486271596 0.0387601182 -0.00850408617
vertex -0.00286245858 -0.00181369204 -0.0080374619
vertex -0.00556799024 0.0396011546 -0.00500000501
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000836616324 0.0344949514 -0.0101832282
vertex 0.00166053197 0.0416400842 -0.00846530776
vertex 0.00711019058 0.024306396 -0.00864271168
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000836616324 0.0344949514 -0.0101832282
vertex 0.00711019058 0.024306396 -0.00864271168
vertex 0.00908555463 0.00538199767 -0.00953829568
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000836616324 0.0344949514 -0.0101832282
vertex 0.00908555463 0.00538199767 -0.00953829568
vertex 0.00562526798 0.000733521942 -0.0112177758
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000836616324 0.0344949514 -0.0101832282
vertex 0.00562526798 0.000733521942 -0.0112177758
vertex -0.00352165638 0.0339278691 -0.010286795
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000836616324 0.0344949514 -0.0101832282
vertex -0.00352165638 0.0339278691 -0.010286795
vertex -0.00307686627 0.0428378917 -0.00908724498
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000836616324 0.0344949514 -0.0101832282
vertex -0.00307686627 0.0428378917 -0.00908724498
vertex 0.00166053197 0.0416400842 -0.00846530776
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000552989659 0.00435586227 0.000362147897
vertex -0.00310016423 -0.000868190255 -0.00196253764
vertex -0.000246249343 -0.00587138068 -0.00204476598
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000552989659 0.00435586227 0.000362147897
vertex -0.000246249343 -0.00587138068 -0.00204476598
vertex 0.00413053343 0.00183538313 0.00130476139
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000552989659 0.00435586227 0.000362147897
vertex 0.00413053343 0.00183538313 0.00130476139
vertex -0.00301309722 0.0350364186 0.000425216625
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000552989659 0.00435586227 0.000362147897
vertex -0.00301309722 0.0350364186 0.000425216625
vertex -0.00310016423 -0.000868190255 -0.00196253764
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000841794594 0.034494251 0.000181889976
vertex -0.00301309722 0.0350364186 0.000425216625
vertex 0.00413053343 0.00183538313 0.00130476139
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000841794594 0.034494251 0.000181889976
vertex 0.00413053343 0.00183538313 0.00130476139
vertex 0.00720940065 0.00093961641 0.000908746268
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000841794594 0.034494251 0.000181889976
vertex 0.00720940065 0.00093961641 0.000908746268
vertex 0.00711019058 0.024306396 -0.00135728763
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000841794594 0.034494251 0.000181889976
vertex 0.00711019058 0.024306396 -0.00135728763
vertex 0.00152923691 0.0425179712 -0.00173989905
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00152923691 0.0425179712 -0.00173989905
vertex -0.00338354497 0.042916175 -0.00113914383
vertex -0.00301309722 0.0350364186 0.000425216625
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00152923691 0.0425179712 -0.00173989905
vertex -0.00301309722 0.0350364186 0.000425216625
vertex 0.000841794594 0.034494251 0.000181889976
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00128678093 0.0443053357 -0.00325343665
vertex 0.00766667956 0.0255492143 -0.00501046749
vertex 0.00200807629 0.0434372537 -0.00601525279
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00128678093 0.0443053357 -0.00325343665
vertex 0.00200807629 0.0434372537 -0.00601525279
vertex 1.06695788e-05 0.0445239805 -0.00781146344
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00128678093 0.0443053357 -0.00325343665
vertex 1.06695788e-05 0.0445239805 -0.00781146344
vertex -0.000930326583 0.0452452041 -0.00501047214
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00128678093 0.0443053357 -0.00325343665
vertex -0.000930326583 0.0452452041 -0.00501047214
vertex -0.000362801569 0.0445716791 -0.00216108351
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00128678093 0.0443053357 -0.00325343665
vertex -0.000362801569 0.0445716791 -0.00216108351
vertex 0.00152923691 0.0425179712 -0.00173989905
endloop
endfacet
endsolid AssimpScene

BIN
assets/inspire_hand/meshes/Link17_L.STL

578
assets/inspire_hand/meshes/Link17_L.STL.convex.stl

@ -0,0 +1,578 @@
solid AssimpScene
facet normal 0 0 0
outer loop
vertex 0.00870714523 0.00640626019 -0.00598953292
vertex 0.00950312894 0.00461286493 -0.00238404726
vertex 0.0110836849 0.000444926991 -0.00464487588
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00870714523 0.00640626019 -0.00598953292
vertex 0.0110836849 0.000444926991 -0.00464487588
vertex 0.0108619863 0.000361838116 -0.0082310643
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00870714523 0.00640626019 -0.00598953292
vertex 0.0108619863 0.000361838116 -0.0082310643
vertex 0.00948811043 0.0037748625 -0.0100879287
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00168019475 -0.0353947729 -0.0117649594
vertex 0.00867131725 -0.0342117175 -0.00454189023
vertex -0.00298846234 -0.0356077217 -0.00239999988
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0110836849 0.000444926991 -0.00464487588
vertex 0.00979297794 -0.000237770757 -0.0017522797
vertex 0.00732633192 -0.0312311966 -0.000836168358
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0110836849 0.000444926991 -0.00464487588
vertex 0.00732633192 -0.0312311966 -0.000836168358
vertex 0.00867131725 -0.0342117175 -0.00454189023
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00867131725 -0.0342117175 -0.00454189023
vertex 0.00859882869 -0.0320471004 -0.00950245839
vertex 0.0108619863 0.000361838116 -0.0082310643
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00867131725 -0.0342117175 -0.00454189023
vertex 0.0108619863 0.000361838116 -0.0082310643
vertex 0.0110836849 0.000444926991 -0.00464487588
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00245324406 0.00911482889 -0.0130123673
vertex -8.95772246e-05 0.00956364814 -0.010644556
vertex 0.0052414448 0.00945578981 -0.010652706
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00245324406 0.00911482889 -0.0130123673
vertex -0.000471164734 0.00943676289 0.00084743608
vertex -8.95772246e-05 0.00956364814 -0.010644556
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00469024293 -0.0258794762 -0.0128043657
vertex -0.00168019475 -0.0353947729 -0.0117649594
vertex -0.00554241985 -0.0329650044 -0.0119373091
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0052414448 0.00945578981 -0.0013472935
vertex 0.0052414448 0.00945578981 -0.010652706
vertex -8.95772246e-05 0.00956364814 -0.010644556
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0052414448 0.00945578981 -0.0013472935
vertex -8.95772246e-05 0.00956364814 -0.010644556
vertex -0.000471164734 0.00943676289 0.00084743608
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00118642545 -0.0351593159 -0.000115798735
vertex -0.00298846234 -0.0356077217 -0.00239999988
vertex 0.00867131725 -0.0342117175 -0.00454189023
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0037693365 -0.026172813 0.000955631083
vertex -0.00479577668 -0.0338946246 5.2154045e-11
vertex -0.00118642545 -0.0351593159 -0.000115798735
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0037693365 -0.026172813 0.000955631083
vertex -0.00118642545 -0.0351593159 -0.000115798735
vertex 0.00732633192 -0.0312311966 -0.000836168358
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00528134033 0.00782435481 0.000980281737
vertex -0.000471164734 0.00943676289 0.00084743608
vertex -0.00245324406 0.00911482889 -0.0130123673
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00528134033 0.00782435481 0.000980281737
vertex -0.00823408179 0.00469105458 0.000259628578
vertex -0.00479577668 -0.0338946246 5.2154045e-11
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00528134033 0.00782435481 0.000980281737
vertex -0.00479577668 -0.0338946246 5.2154045e-11
vertex 0.0037693365 -0.026172813 0.000955631083
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00528134033 0.00782435481 0.000980281737
vertex 0.0037693365 -0.026172813 0.000955631083
vertex -0.000471164734 0.00943676289 0.00084743608
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00814419705 -0.0339711122 -0.00865195692
vertex 0.00867131725 -0.0342117175 -0.00454189023
vertex -0.00168019475 -0.0353947729 -0.0117649594
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00814419705 -0.0339711122 -0.00865195692
vertex 0.00859882869 -0.0320471004 -0.00950245839
vertex 0.00867131725 -0.0342117175 -0.00454189023
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619973568 0.00712514762 -0.012882188
vertex -0.00904458947 0.00293594948 -0.0116376197
vertex -0.00823408179 0.00469105458 0.000259628578
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619973568 0.00712514762 -0.012882188
vertex -0.00823408179 0.00469105458 0.000259628578
vertex -0.00528134033 0.00782435481 0.000980281737
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619973568 0.00712514762 -0.012882188
vertex -0.00528134033 0.00782435481 0.000980281737
vertex -0.00245324406 0.00911482889 -0.0130123673
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619973568 0.00712514762 -0.012882188
vertex -0.00245324406 0.00911482889 -0.0130123673
vertex 0.00469024293 -0.0258794762 -0.0128043657
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619973568 0.00712514762 -0.012882188
vertex 0.00469024293 -0.0258794762 -0.0128043657
vertex -0.00554241985 -0.0329650044 -0.0119373091
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619973568 0.00712514762 -0.012882188
vertex -0.00554241985 -0.0329650044 -0.0119373091
vertex -0.00904458947 0.00293594948 -0.0116376197
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00620628009 -0.0307127293 -0.0118967975
vertex -0.00168019475 -0.0353947729 -0.0117649594
vertex 0.00469024293 -0.0258794762 -0.0128043657
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00620628009 -0.0307127293 -0.0118967975
vertex 0.00469024293 -0.0258794762 -0.0128043657
vertex 0.00948811043 0.0037748625 -0.0100879287
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00620628009 -0.0307127293 -0.0118967975
vertex 0.00948811043 0.0037748625 -0.0100879287
vertex 0.00859882869 -0.0320471004 -0.00950245839
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00620628009 -0.0307127293 -0.0118967975
vertex 0.00859882869 -0.0320471004 -0.00950245839
vertex 0.00814419705 -0.0339711122 -0.00865195692
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00620628009 -0.0307127293 -0.0118967975
vertex 0.00814419705 -0.0339711122 -0.00865195692
vertex -0.00168019475 -0.0353947729 -0.0117649594
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00420491258 -0.0350654013 -0.0115261674
vertex -0.00554241985 -0.0329650044 -0.0119373091
vertex -0.00168019475 -0.0353947729 -0.0117649594
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00420491258 -0.0350654013 -0.0115261674
vertex -0.00168019475 -0.0353947729 -0.0117649594
vertex -0.00298846234 -0.0356077217 -0.00239999988
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00549842604 0.00772650121 -0.0118709719
vertex 0.00948811043 0.0037748625 -0.0100879287
vertex 0.00469024293 -0.0258794762 -0.0128043657
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00549842604 0.00772650121 -0.0118709719
vertex 0.00469024293 -0.0258794762 -0.0128043657
vertex -0.00245324406 0.00911482889 -0.0130123673
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00549842604 0.00772650121 -0.0118709719
vertex -0.00245324406 0.00911482889 -0.0130123673
vertex 0.0052414448 0.00945578981 -0.010652706
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00549842604 0.00772650121 -0.0118709719
vertex 0.0052414448 0.00945578981 -0.010652706
vertex 0.00948811043 0.0037748625 -0.0100879287
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00984699838 -0.00731367478 -0.00898697134
vertex -0.00904458947 0.00293594948 -0.0116376197
vertex -0.00554241985 -0.0329650044 -0.0119373091
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00870714523 0.00640626019 -0.00598953292
vertex 0.00948811043 0.0037748625 -0.0100879287
vertex 0.0052414448 0.00945578981 -0.010652706
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00870714523 0.00640626019 -0.00598953292
vertex 0.0052414448 0.00945578981 -0.010652706
vertex 0.0052414448 0.00945578981 -0.0013472935
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00979297794 -0.000237770757 -0.0017522797
vertex 0.00767573016 0.00588637171 -0.000752015447
vertex 0.0037693365 -0.026172813 0.000955631083
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00979297794 -0.000237770757 -0.0017522797
vertex 0.0037693365 -0.026172813 0.000955631083
vertex 0.00732633192 -0.0312311966 -0.000836168358
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0108619863 0.000361838116 -0.0082310643
vertex 0.00859882869 -0.0320471004 -0.00950245839
vertex 0.00948811043 0.0037748625 -0.0100879287
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00588553818 -0.0330666415 -0.00239999988
vertex -0.00554241985 -0.0329650044 -0.0119373091
vertex -0.00420491258 -0.0350654013 -0.0115261674
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00588553818 -0.0330666415 -0.00239999988
vertex -0.00479577668 -0.0338946246 5.2154045e-11
vertex -0.00923808385 -0.0071737715 -0.0015976117
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00588553818 -0.0330666415 -0.00239999988
vertex -0.00923808385 -0.0071737715 -0.0015976117
vertex -0.010015429 -0.00735280709 -0.00449603936
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00588553818 -0.0330666415 -0.00239999988
vertex -0.010015429 -0.00735280709 -0.00449603936
vertex -0.00984699838 -0.00731367478 -0.00898697134
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00588553818 -0.0330666415 -0.00239999988
vertex -0.00984699838 -0.00731367478 -0.00898697134
vertex -0.00554241985 -0.0329650044 -0.0119373091
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00950312894 0.00461286493 -0.00238404726
vertex 0.00870714523 0.00640626019 -0.00598953292
vertex 0.0052414448 0.00945578981 -0.0013472935
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00950312894 0.00461286493 -0.00238404726
vertex 0.0052414448 0.00945578981 -0.0013472935
vertex 0.00767573016 0.00588637171 -0.000752015447
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00950312894 0.00461286493 -0.00238404726
vertex 0.00767573016 0.00588637171 -0.000752015447
vertex 0.00979297794 -0.000237770757 -0.0017522797
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00950312894 0.00461286493 -0.00238404726
vertex 0.00979297794 -0.000237770757 -0.0017522797
vertex 0.0110836849 0.000444926991 -0.00464487588
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00358415442 -0.0352738127 -0.000235040148
vertex -0.00298846234 -0.0356077217 -0.00239999988
vertex -0.00118642545 -0.0351593159 -0.000115798735
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00358415442 -0.0352738127 -0.000235040148
vertex -0.00118642545 -0.0351593159 -0.000115798735
vertex -0.00479577668 -0.0338946246 5.2154045e-11
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00358415442 -0.0352738127 -0.000235040148
vertex -0.00479577668 -0.0338946246 5.2154045e-11
vertex -0.00588553818 -0.0330666415 -0.00239999988
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00358415442 -0.0352738127 -0.000235040148
vertex -0.00588553818 -0.0330666415 -0.00239999988
vertex -0.00420491258 -0.0350654013 -0.0115261674
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00358415442 -0.0352738127 -0.000235040148
vertex -0.00420491258 -0.0350654013 -0.0115261674
vertex -0.00298846234 -0.0356077217 -0.00239999988
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00749985129 -0.0333133452 -0.00187939638
vertex 0.00732633192 -0.0312311966 -0.000836168358
vertex -0.00118642545 -0.0351593159 -0.000115798735
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00749985129 -0.0333133452 -0.00187939638
vertex -0.00118642545 -0.0351593159 -0.000115798735
vertex 0.00867131725 -0.0342117175 -0.00454189023
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00749985129 -0.0333133452 -0.00187939638
vertex 0.00867131725 -0.0342117175 -0.00454189023
vertex 0.00732633192 -0.0312311966 -0.000836168358
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00411645509 0.00903278124 9.35034404e-05
vertex 0.00767573016 0.00588637171 -0.000752015447
vertex 0.0052414448 0.00945578981 -0.0013472935
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00411645509 0.00903278124 9.35034404e-05
vertex 0.0052414448 0.00945578981 -0.0013472935
vertex -0.000471164734 0.00943676289 0.00084743608
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00411645509 0.00903278124 9.35034404e-05
vertex -0.000471164734 0.00943676289 0.00084743608
vertex 0.0037693365 -0.026172813 0.000955631083
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00411645509 0.00903278124 9.35034404e-05
vertex 0.0037693365 -0.026172813 0.000955631083
vertex 0.00767573016 0.00588637171 -0.000752015447
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00954843778 0.000176081609 -0.00115589425
vertex -0.010015429 -0.00735280709 -0.00449603936
vertex -0.00923808385 -0.0071737715 -0.0015976117
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00954843778 0.000176081609 -0.00115589425
vertex -0.00923808385 -0.0071737715 -0.0015976117
vertex -0.00479577668 -0.0338946246 5.2154045e-11
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00954843778 0.000176081609 -0.00115589425
vertex -0.00479577668 -0.0338946246 5.2154045e-11
vertex -0.00823408179 0.00469105458 0.000259628578
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00954843778 0.000176081609 -0.00115589425
vertex -0.00823408179 0.00469105458 0.000259628578
vertex -0.00904458947 0.00293594948 -0.0116376197
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00954843778 0.000176081609 -0.00115589425
vertex -0.00904458947 0.00293594948 -0.0116376197
vertex -0.00984699838 -0.00731367478 -0.00898697134
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00954843778 0.000176081609 -0.00115589425
vertex -0.00984699838 -0.00731367478 -0.00898697134
vertex -0.010015429 -0.00735280709 -0.00449603936
endloop
endfacet
endsolid AssimpScene

BIN
assets/inspire_hand/meshes/Link17_R.STL

546
assets/inspire_hand/meshes/Link17_R.STL.convex.stl

@ -0,0 +1,546 @@
solid AssimpScene
facet normal 0 0 0
outer loop
vertex 0.0110836849 -0.000444926991 -0.00735513913
vertex 0.00970043056 0.000281998888 -0.0103491098
vertex 0.00733216526 0.0312348269 -0.0111587103
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0110836849 -0.000444926991 -0.00735513913
vertex 0.00733216526 0.0312348269 -0.0111587103
vertex 0.00867131911 0.0342117138 -0.00745810941
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00867131911 0.0342117138 -0.00745810941
vertex -0.00273384899 0.0356388651 -0.00959999952
vertex -0.00216788356 0.0354665518 -0.000235040148
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00867131911 0.0342117138 -0.00745810941
vertex 0.00858414825 0.0320373364 -0.00246613892
vertex 0.0108623253 -0.000362016901 -0.00376997283
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00867131911 0.0342117138 -0.00745810941
vertex 0.0108623253 -0.000362016901 -0.00376997283
vertex 0.0110836849 -0.000444926991 -0.00735513913
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00246302434 -0.00911326054 0.00101274764
vertex -9.02905376e-05 -0.00956364162 -0.00135544734
vertex 0.0052414448 -0.00945578888 -0.0013472935
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00246302434 -0.00911326054 0.00101274764
vertex -0.00137330801 -0.00934251398 -0.0129493466
vertex -9.02905376e-05 -0.00956364162 -0.00135544734
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00470032962 0.0260484722 0.000795508327
vertex -0.00216788356 0.0354665518 -0.000235040148
vertex -0.00557526108 0.0328458734 -6.26900655e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00950685237 -0.00380186713 -0.00194311794
vertex 0.00858414825 0.0320373364 -0.00246613892
vertex 0.00566976098 0.0318848938 -0.000330381503
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00950685237 -0.00380186713 -0.00194311794
vertex 0.00566976098 0.0318848938 -0.000330381503
vertex 0.00470032962 0.0260484722 0.000795508327
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0052414448 -0.00945578888 -0.010652706
vertex 0.0052414448 -0.00945578888 -0.0013472935
vertex -9.02905376e-05 -0.00956364162 -0.00135544734
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0052414448 -0.00945578888 -0.010652706
vertex -9.02905376e-05 -0.00956364162 -0.00135544734
vertex -0.00137330801 -0.00934251398 -0.0129493466
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.010015429 0.00735280709 -0.00750395935
vertex -0.00984698441 0.00731367059 -0.0030129645
vertex -0.00557526108 0.0328458734 -6.26900655e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.010015429 0.00735280709 -0.00750395935
vertex -0.00557526108 0.0328458734 -6.26900655e-05
vertex -0.0059219948 0.0329344086 -0.00959999952
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.010015429 0.00735280709 -0.00750395935
vertex -0.00859412923 -0.00402176147 -0.0120279966
vertex -0.0090445755 -0.00293598743 -0.000362366845
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00118642545 0.0351593159 -0.0118842013
vertex 0.00733216526 0.0312348269 -0.0111587103
vertex 0.0037693365 0.026172813 -0.0129556311
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00118642545 0.0351593159 -0.0118842013
vertex 0.0037693365 0.026172813 -0.0129556311
vertex -0.00450870115 0.0342126004 -0.0120000001
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00118642545 0.0351593159 -0.0118842013
vertex -0.00450870115 0.0342126004 -0.0120000001
vertex -0.00273384899 0.0356388651 -0.00959999952
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00118642545 0.0351593159 -0.0118842013
vertex -0.00273384899 0.0356388651 -0.00959999952
vertex 0.00867131911 0.0342117138 -0.00745810941
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00814419705 0.0339711122 -0.00334804319
vertex 0.00858414825 0.0320373364 -0.00246613892
vertex 0.00867131911 0.0342117138 -0.00745810941
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00814419705 0.0339711122 -0.00334804319
vertex 0.00867131911 0.0342117138 -0.00745810941
vertex -0.00216788356 0.0354665518 -0.000235040148
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00579818152 -0.00760784978 -0.0105823008
vertex -0.00137330801 -0.00934251398 -0.0129493466
vertex -0.00246302434 -0.00911326054 0.00101274764
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00611000136 -0.00720144203 -0.0128938593
vertex -0.00137330801 -0.00934251398 -0.0129493466
vertex -0.00579818152 -0.00760784978 -0.0105823008
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00611000136 -0.00720144203 -0.0128938593
vertex -0.00450870115 0.0342126004 -0.0120000001
vertex 0.0037693365 0.026172813 -0.0129556311
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00611000136 -0.00720144203 -0.0128938593
vertex 0.0037693365 0.026172813 -0.0129556311
vertex -0.00137330801 -0.00934251398 -0.0129493466
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619969796 -0.00712518021 0.000882193504
vertex -0.0090445755 -0.00293598743 -0.000362366845
vertex -0.00859412923 -0.00402176147 -0.0120279966
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619969796 -0.00712518021 0.000882193504
vertex -0.00859412923 -0.00402176147 -0.0120279966
vertex -0.00611000136 -0.00720144203 -0.0128938593
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619969796 -0.00712518021 0.000882193504
vertex -0.00611000136 -0.00720144203 -0.0128938593
vertex -0.00579818152 -0.00760784978 -0.0105823008
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619969796 -0.00712518021 0.000882193504
vertex -0.00579818152 -0.00760784978 -0.0105823008
vertex -0.00246302434 -0.00911326054 0.00101274764
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619969796 -0.00712518021 0.000882193504
vertex -0.00246302434 -0.00911326054 0.00101274764
vertex 0.00470032962 0.0260484722 0.000795508327
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619969796 -0.00712518021 0.000882193504
vertex 0.00470032962 0.0260484722 0.000795508327
vertex -0.00557526108 0.0328458734 -6.26900655e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619969796 -0.00712518021 0.000882193504
vertex -0.00557526108 0.0328458734 -6.26900655e-05
vertex -0.0090445755 -0.00293598743 -0.000362366845
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00566976098 0.0318848938 -0.000330381503
vertex -0.00216788356 0.0354665518 -0.000235040148
vertex 0.00470032962 0.0260484722 0.000795508327
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00566976098 0.0318848938 -0.000330381503
vertex 0.00858414825 0.0320373364 -0.00246613892
vertex 0.00814419705 0.0339711122 -0.00334804319
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00566976098 0.0318848938 -0.000330381503
vertex 0.00814419705 0.0339711122 -0.00334804319
vertex -0.00216788356 0.0354665518 -0.000235040148
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00458956463 -0.00775821414 0.000137225317
vertex 0.00950685237 -0.00380186713 -0.00194311794
vertex 0.00470032962 0.0260484722 0.000795508327
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00458956463 -0.00775821414 0.000137225317
vertex 0.00470032962 0.0260484722 0.000795508327
vertex -0.00246302434 -0.00911326054 0.00101274764
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00458956463 -0.00775821414 0.000137225317
vertex -0.00246302434 -0.00911326054 0.00101274764
vertex 0.0052414448 -0.00945578888 -0.0013472935
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00458956463 -0.00775821414 0.000137225317
vertex 0.0052414448 -0.00945578888 -0.0013472935
vertex 0.00950685237 -0.00380186713 -0.00194311794
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00984698441 0.00731367059 -0.0030129645
vertex -0.010015429 0.00735280709 -0.00750395935
vertex -0.0090445755 -0.00293598743 -0.000362366845
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00984698441 0.00731367059 -0.0030129645
vertex -0.0090445755 -0.00293598743 -0.000362366845
vertex -0.00557526108 0.0328458734 -6.26900655e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00915175769 -0.00541536883 -0.00935241766
vertex 0.0110836849 -0.000444926991 -0.00735513913
vertex 0.0108623253 -0.000362016901 -0.00376997283
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00915175769 -0.00541536883 -0.00935241766
vertex 0.0108623253 -0.000362016901 -0.00376997283
vertex 0.00950685237 -0.00380186713 -0.00194311794
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00915175769 -0.00541536883 -0.00935241766
vertex 0.00950685237 -0.00380186713 -0.00194311794
vertex 0.0052414448 -0.00945578888 -0.0013472935
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00915175769 -0.00541536883 -0.00935241766
vertex 0.0052414448 -0.00945578888 -0.0013472935
vertex 0.0052414448 -0.00945578888 -0.010652706
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00915175769 -0.00541536883 -0.00935241766
vertex 0.0052414448 -0.00945578888 -0.010652706
vertex 0.00762665784 -0.00583287515 -0.0112889735
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00970043056 0.000281998888 -0.0103491098
vertex 0.0110836849 -0.000444926991 -0.00735513913
vertex 0.00915175769 -0.00541536883 -0.00935241766
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00970043056 0.000281998888 -0.0103491098
vertex 0.00915175769 -0.00541536883 -0.00935241766
vertex 0.00762665784 -0.00583287515 -0.0112889735
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00970043056 0.000281998888 -0.0103491098
vertex 0.00762665784 -0.00583287515 -0.0112889735
vertex 0.0037693365 0.026172813 -0.0129556311
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00970043056 0.000281998888 -0.0103491098
vertex 0.0037693365 0.026172813 -0.0129556311
vertex 0.00733216526 0.0312348269 -0.0111587103
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00439190213 0.0349471308 -0.000473832159
vertex -0.00557526108 0.0328458734 -6.26900655e-05
vertex -0.00216788356 0.0354665518 -0.000235040148
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00439190213 0.0349471308 -0.000473832159
vertex -0.00216788356 0.0354665518 -0.000235040148
vertex -0.00273384899 0.0356388651 -0.00959999952
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00439190213 0.0349471308 -0.000473832159
vertex -0.00273384899 0.0356388651 -0.00959999952
vertex -0.00450870115 0.0342126004 -0.0120000001
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00439190213 0.0349471308 -0.000473832159
vertex -0.00450870115 0.0342126004 -0.0120000001
vertex -0.0059219948 0.0329344086 -0.00959999952
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00439190213 0.0349471308 -0.000473832159
vertex -0.0059219948 0.0329344086 -0.00959999952
vertex -0.00557526108 0.0328458734 -6.26900655e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00583793502 0.0324119031 -0.0117649594
vertex -0.00450870115 0.0342126004 -0.0120000001
vertex -0.00611000136 -0.00720144203 -0.0128938593
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00583793502 0.0324119031 -0.0117649594
vertex -0.00611000136 -0.00720144203 -0.0128938593
vertex -0.00859412923 -0.00402176147 -0.0120279966
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00583793502 0.0324119031 -0.0117649594
vertex -0.00859412923 -0.00402176147 -0.0120279966
vertex -0.010015429 0.00735280709 -0.00750395935
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00583793502 0.0324119031 -0.0117649594
vertex -0.010015429 0.00735280709 -0.00750395935
vertex -0.0059219948 0.0329344086 -0.00959999952
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00583793502 0.0324119031 -0.0117649594
vertex -0.0059219948 0.0329344086 -0.00959999952
vertex -0.00450870115 0.0342126004 -0.0120000001
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0108623253 -0.000362016901 -0.00376997283
vertex 0.00858414825 0.0320373364 -0.00246613892
vertex 0.00950685237 -0.00380186713 -0.00194311794
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00411645509 -0.0090327803 -0.0120935012
vertex 0.00762665784 -0.00583287515 -0.0112889735
vertex 0.0052414448 -0.00945578888 -0.010652706
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00411645509 -0.0090327803 -0.0120935012
vertex 0.0052414448 -0.00945578888 -0.010652706
vertex -0.00137330801 -0.00934251398 -0.0129493466
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00411645509 -0.0090327803 -0.0120935012
vertex -0.00137330801 -0.00934251398 -0.0129493466
vertex 0.0037693365 0.026172813 -0.0129556311
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00411645509 -0.0090327803 -0.0120935012
vertex 0.0037693365 0.026172813 -0.0129556311
vertex 0.00762665784 -0.00583287515 -0.0112889735
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00749682449 0.0333158225 -0.0101199131
vertex 0.00733216526 0.0312348269 -0.0111587103
vertex -0.00118642545 0.0351593159 -0.0118842013
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00749682449 0.0333158225 -0.0101199131
vertex -0.00118642545 0.0351593159 -0.0118842013
vertex 0.00867131911 0.0342117138 -0.00745810941
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00749682449 0.0333158225 -0.0101199131
vertex 0.00867131911 0.0342117138 -0.00745810941
vertex 0.00733216526 0.0312348269 -0.0111587103
endloop
endfacet
endsolid AssimpScene

BIN
assets/inspire_hand/meshes/Link18_L.STL

562
assets/inspire_hand/meshes/Link18_L.STL.convex.stl

@ -0,0 +1,562 @@
solid AssimpScene
facet normal 0 0 0
outer loop
vertex 0.00785195176 -0.00114718347 0.000622928434
vertex 0.00684994413 0.00625092397 -0.00194999995
vertex 0.00352098979 0.00781226018 -0.00194999995
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00785195176 -0.00114718347 0.000622928434
vertex 0.00352098979 0.00781226018 -0.00194999995
vertex 0.00425272947 -0.00136824825 0.0012896586
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00348394318 -0.0464657098 -0.00866564829
vertex -0.0032280439 -0.0374012291 -0.0104252258
vertex 0.000945500098 -0.045971062 -0.00847050827
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00684994413 0.00625092397 -0.00194999995
vertex 0.00482661044 0.00780385919 -0.0080500003
vertex 0.00352098979 0.00781226018 -0.00194999995
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00179568853 0.00400286447 -0.0080500003
vertex -0.00329021341 -0.000294465688 -0.0080500003
vertex -0.00297910022 0.00163070788 -0.00194999995
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0108309751 -0.00338516408 -0.00382230268
vertex 0.00741339987 -0.0274300165 -0.00640348811
vertex 0.00956390705 -0.0024317808 -0.009397652
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0071618217 -0.0260333885 -0.00165918644
vertex 0.00741339987 -0.0274300165 -0.00640348811
vertex 0.0108309751 -0.00338516408 -0.00382230268
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00170417153 -0.0470251665 -0.00432559848
vertex 0.000945500098 -0.045971062 -0.00847050827
vertex 0.00741339987 -0.0274300165 -0.00640348811
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00170417153 -0.0470251665 -0.00432559848
vertex 0.00741339987 -0.0274300165 -0.00640348811
vertex 0.0071618217 -0.0260333885 -0.00165918644
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00170417153 -0.0470251665 -0.00432559848
vertex 0.0071618217 -0.0260333885 -0.00165918644
vertex 0.000803421717 -0.0448982716 -0.0011340176
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00785195176 -0.00114718347 0.000622928434
vertex 0.0071618217 -0.0260333885 -0.00165918644
vertex 0.00945101306 -0.00639001559 -0.000988014159
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000231103302 -0.0479141213 -0.00217640051
vertex 0.000803421717 -0.0448982716 -0.0011340176
vertex -0.00362309464 -0.0460432917 -0.00114539859
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000231103302 -0.0479141213 -0.00217640051
vertex -0.00106206862 -0.0486834012 -0.00498936092
vertex 0.00170417153 -0.0470251665 -0.00432559848
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000231103302 -0.0479141213 -0.00217640051
vertex 0.00170417153 -0.0470251665 -0.00432559848
vertex 0.000803421717 -0.0448982716 -0.0011340176
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00660658581 -0.0260562394 -0.00903558172
vertex 0.00741339987 -0.0274300165 -0.00640348811
vertex 0.000945500098 -0.045971062 -0.00847050827
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00660658581 -0.0260562394 -0.00903558172
vertex 0.000945500098 -0.045971062 -0.00847050827
vertex -0.0032280439 -0.0374012291 -0.0104252258
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00660658581 -0.0260562394 -0.00903558172
vertex 0.00956390705 -0.0024317808 -0.009397652
vertex 0.00741339987 -0.0274300165 -0.00640348811
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00601075171 -0.0379645266 -0.00386957778
vertex -0.00297910022 0.00163070788 -0.00194999995
vertex -0.00329021341 -0.000294465688 -0.0080500003
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00601075171 -0.0379645266 -0.00386957778
vertex -0.00537315896 -0.0438657291 -0.00609957427
vertex -0.00362309464 -0.0460432917 -0.00114539859
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00601075171 -0.0379645266 -0.00386957778
vertex -0.00362309464 -0.0460432917 -0.00114539859
vertex -0.00429608254 -0.0362734646 -8.88538707e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00601075171 -0.0379645266 -0.00386957778
vertex -0.00429608254 -0.0362734646 -8.88538707e-05
vertex -0.00297910022 0.00163070788 -0.00194999995
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00684994413 0.00625092397 -0.0080500003
vertex 0.00482661044 0.00780385919 -0.0080500003
vertex 0.00684994413 0.00625092397 -0.00194999995
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00684994413 0.00625092397 -0.0080500003
vertex 0.00684994413 0.00625092397 -0.00194999995
vertex 0.0108309751 -0.00338516408 -0.00382230268
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00684994413 0.00625092397 -0.0080500003
vertex 0.0108309751 -0.00338516408 -0.00382230268
vertex 0.00956390705 -0.0024317808 -0.009397652
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00019712052 -0.0482121818 -0.00742312986
vertex -0.00106206862 -0.0486834012 -0.00498936092
vertex -0.00346547272 -0.0476887561 -0.00498895114
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00019712052 -0.0482121818 -0.00742312986
vertex -0.00346547272 -0.0476887561 -0.00498895114
vertex -0.00348394318 -0.0464657098 -0.00866564829
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00019712052 -0.0482121818 -0.00742312986
vertex -0.00348394318 -0.0464657098 -0.00866564829
vertex 0.000945500098 -0.045971062 -0.00847050827
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00019712052 -0.0482121818 -0.00742312986
vertex 0.000945500098 -0.045971062 -0.00847050827
vertex 0.00170417153 -0.0470251665 -0.00432559848
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00019712052 -0.0482121818 -0.00742312986
vertex 0.00170417153 -0.0470251665 -0.00432559848
vertex -0.00106206862 -0.0486834012 -0.00498936092
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00520672044 -0.0379122607 -0.00868305005
vertex -0.0032280439 -0.0374012291 -0.0104252258
vertex -0.00348394318 -0.0464657098 -0.00866564829
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00520672044 -0.0379122607 -0.00868305005
vertex -0.00348394318 -0.0464657098 -0.00866564829
vertex -0.00537315896 -0.0438657291 -0.00609957427
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00520672044 -0.0379122607 -0.00868305005
vertex -0.00537315896 -0.0438657291 -0.00609957427
vertex -0.00601075171 -0.0379645266 -0.00386957778
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00520672044 -0.0379122607 -0.00868305005
vertex -0.00601075171 -0.0379645266 -0.00386957778
vertex -0.00329021341 -0.000294465688 -0.0080500003
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00520672044 -0.0379122607 -0.00868305005
vertex -0.00329021341 -0.000294465688 -0.0080500003
vertex -0.0032280439 -0.0374012291 -0.0104252258
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00346547272 -0.0476887561 -0.00498895114
vertex -0.00362309464 -0.0460432917 -0.00114539859
vertex -0.00537315896 -0.0438657291 -0.00609957427
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00346547272 -0.0476887561 -0.00498895114
vertex -0.00537315896 -0.0438657291 -0.00609957427
vertex -0.00348394318 -0.0464657098 -0.00866564829
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00346547272 -0.0476887561 -0.00498895114
vertex -0.00106206862 -0.0486834012 -0.00498936092
vertex -0.000231103302 -0.0479141213 -0.00217640051
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00346547272 -0.0476887561 -0.00498895114
vertex -0.000231103302 -0.0479141213 -0.00217640051
vertex -0.00362309464 -0.0460432917 -0.00114539859
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00694435043 -0.000579302781 -0.0109616714
vertex 0.00425273553 -0.00136823952 -0.011289659
vertex 0.00482661044 0.00780385919 -0.0080500003
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00694435043 -0.000579302781 -0.0109616714
vertex 0.00482661044 0.00780385919 -0.0080500003
vertex 0.00684994413 0.00625092397 -0.0080500003
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00694435043 -0.000579302781 -0.0109616714
vertex 0.00684994413 0.00625092397 -0.0080500003
vertex 0.00956390705 -0.0024317808 -0.009397652
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00694435043 -0.000579302781 -0.0109616714
vertex 0.00956390705 -0.0024317808 -0.009397652
vertex 0.00660658581 -0.0260562394 -0.00903558172
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00694435043 -0.000579302781 -0.0109616714
vertex 0.00660658581 -0.0260562394 -0.00903558172
vertex -0.0032280439 -0.0374012291 -0.0104252258
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00694435043 -0.000579302781 -0.0109616714
vertex -0.0032280439 -0.0374012291 -0.0104252258
vertex 0.00425273553 -0.00136823952 -0.011289659
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00179568853 0.00400286447 -0.00194999995
vertex -0.00179568853 0.00400286447 -0.0080500003
vertex -0.00297910022 0.00163070788 -0.00194999995
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00179568853 0.00400286447 -0.00194999995
vertex 0.00425272947 -0.00136824825 0.0012896586
vertex 0.00352098979 0.00781226018 -0.00194999995
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000332680356 -0.00416069012 0.00049520086
vertex 0.00425272947 -0.00136824825 0.0012896586
vertex -0.00179568853 0.00400286447 -0.00194999995
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000332680356 -0.00416069012 0.00049520086
vertex -0.00179568853 0.00400286447 -0.00194999995
vertex -0.00297910022 0.00163070788 -0.00194999995
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000332680356 -0.00416069012 0.00049520086
vertex -0.00297910022 0.00163070788 -0.00194999995
vertex -0.00429608254 -0.0362734646 -8.88538707e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00135887298 -0.0371798053 0.000454035471
vertex 0.000803421717 -0.0448982716 -0.0011340176
vertex 0.0071618217 -0.0260333885 -0.00165918644
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00135887298 -0.0371798053 0.000454035471
vertex 0.0071618217 -0.0260333885 -0.00165918644
vertex 0.00785195176 -0.00114718347 0.000622928434
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00135887298 -0.0371798053 0.000454035471
vertex 0.00785195176 -0.00114718347 0.000622928434
vertex 0.00425272947 -0.00136824825 0.0012896586
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00425272947 -0.00136824825 0.0012896586
vertex -0.000332680356 -0.00416069012 0.00049520086
vertex -0.00429608254 -0.0362734646 -8.88538707e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00425272947 -0.00136824825 0.0012896586
vertex -0.00429608254 -0.0362734646 -8.88538707e-05
vertex -0.00135887298 -0.0371798053 0.000454035471
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00135887298 -0.0371798053 0.000454035471
vertex -0.00429608254 -0.0362734646 -8.88538707e-05
vertex -0.00362309464 -0.0460432917 -0.00114539859
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00135887298 -0.0371798053 0.000454035471
vertex -0.00362309464 -0.0460432917 -0.00114539859
vertex 0.000803421717 -0.0448982716 -0.0011340176
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000594260986 -0.00412405981 -0.0103763435
vertex -0.00329021341 -0.000294465688 -0.0080500003
vertex -0.00179568853 0.00400286447 -0.0080500003
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000594260986 -0.00412405981 -0.0103763435
vertex -0.00179568853 0.00400286447 -0.0080500003
vertex 0.00425273553 -0.00136823952 -0.011289659
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000594260986 -0.00412405981 -0.0103763435
vertex 0.00425273553 -0.00136823952 -0.011289659
vertex -0.0032280439 -0.0374012291 -0.0104252258
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000594260986 -0.00412405981 -0.0103763435
vertex -0.0032280439 -0.0374012291 -0.0104252258
vertex -0.00329021341 -0.000294465688 -0.0080500003
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0100857047 -0.00282484386 -0.00126572093
vertex 0.0108309751 -0.00338516408 -0.00382230268
vertex 0.00684994413 0.00625092397 -0.00194999995
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0100857047 -0.00282484386 -0.00126572093
vertex 0.00684994413 0.00625092397 -0.00194999995
vertex 0.00785195176 -0.00114718347 0.000622928434
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0100857047 -0.00282484386 -0.00126572093
vertex 0.00785195176 -0.00114718347 0.000622928434
vertex 0.00945101306 -0.00639001559 -0.000988014159
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0100857047 -0.00282484386 -0.00126572093
vertex 0.00945101306 -0.00639001559 -0.000988014159
vertex 0.0071618217 -0.0260333885 -0.00165918644
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0100857047 -0.00282484386 -0.00126572093
vertex 0.0071618217 -0.0260333885 -0.00165918644
vertex 0.0108309751 -0.00338516408 -0.00382230268
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00284345518 0.00753048901 -0.0080500003
vertex 0.00482661044 0.00780385919 -0.0080500003
vertex 0.00425273553 -0.00136823952 -0.011289659
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00284345518 0.00753048901 -0.0080500003
vertex 0.00425273553 -0.00136823952 -0.011289659
vertex -0.00179568853 0.00400286447 -0.0080500003
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00284345518 0.00753048901 -0.0080500003
vertex -0.00179568853 0.00400286447 -0.0080500003
vertex -0.00179568853 0.00400286447 -0.00194999995
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00284345518 0.00753048901 -0.0080500003
vertex -0.00179568853 0.00400286447 -0.00194999995
vertex 0.00352098979 0.00781226018 -0.00194999995
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00284345518 0.00753048901 -0.0080500003
vertex 0.00352098979 0.00781226018 -0.00194999995
vertex 0.00482661044 0.00780385919 -0.0080500003
endloop
endfacet
endsolid AssimpScene

BIN
assets/inspire_hand/meshes/Link18_R.STL

562
assets/inspire_hand/meshes/Link18_R.STL.convex.stl

@ -0,0 +1,562 @@
solid AssimpScene
facet normal 0 0 0
outer loop
vertex 0.00425203284 0.00136753358 0.00128968828
vertex 0.00352098979 -0.00781226018 -0.00195000006
vertex 0.00684994413 -0.00625092397 -0.00195000006
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00425203284 0.00136753358 0.00128968828
vertex 0.00684994413 -0.00625092397 -0.00195000006
vertex 0.00789308175 0.00117731874 0.000602744869
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00348394318 0.0464657098 -0.00866564829
vertex 0.000945500156 0.045971062 -0.0084705092
vertex -0.00322804367 0.0374012291 -0.0104252258
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00684994413 -0.00625092397 -0.00195000006
vertex 0.00352098979 -0.00781226018 -0.00195000006
vertex 0.00482660998 -0.00780385919 -0.0080500003
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00179568853 -0.00400286447 -0.0080500003
vertex -0.00297909998 -0.00163070788 -0.00195000006
vertex -0.00329021341 0.000294465688 -0.0080500003
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.010830109 0.00338448002 -0.00381393521
vertex 0.00954072271 0.00241398718 -0.00942106359
vertex 0.00741339941 0.0274300165 -0.00640348811
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00716182869 0.0260333885 -0.00165920611
vertex 0.010830109 0.00338448002 -0.00381393521
vertex 0.00741339941 0.0274300165 -0.00640348811
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00170418224 0.0470251404 -0.00432557892
vertex 0.000803428993 0.0448982716 -0.00113402226
vertex 0.00716182869 0.0260333885 -0.00165920611
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00170418224 0.0470251404 -0.00432557892
vertex 0.00716182869 0.0260333885 -0.00165920611
vertex 0.00741339941 0.0274300165 -0.00640348811
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00170418224 0.0470251404 -0.00432557892
vertex 0.00741339941 0.0274300165 -0.00640348811
vertex 0.000945500156 0.045971062 -0.0084705092
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00789308175 0.00117731874 0.000602744869
vertex 0.00945102237 0.00639002165 -0.000988031388
vertex 0.00716182869 0.0260333885 -0.00165920611
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000229901198 0.0479248092 -0.00218855543
vertex -0.00362309464 0.0460432917 -0.00114539848
vertex 0.000803428993 0.0448982716 -0.00113402226
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000229901198 0.0479248092 -0.00218855543
vertex 0.000803428993 0.0448982716 -0.00113402226
vertex 0.00170418224 0.0470251404 -0.00432557892
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000229901198 0.0479248092 -0.00218855543
vertex 0.00170418224 0.0470251404 -0.00432557892
vertex -0.00106206862 0.0486834012 -0.00498936092
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00660658581 0.0260562394 -0.00903558079
vertex 0.000945500156 0.045971062 -0.0084705092
vertex 0.00741339941 0.0274300165 -0.00640348811
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00660658581 0.0260562394 -0.00903558079
vertex 0.00741339941 0.0274300165 -0.00640348811
vertex 0.00954072271 0.00241398718 -0.00942106359
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00601075124 0.0379645266 -0.00386957778
vertex -0.00429608254 0.0362734646 -8.88538707e-05
vertex -0.00362309464 0.0460432917 -0.00114539848
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00601075124 0.0379645266 -0.00386957778
vertex -0.00362309464 0.0460432917 -0.00114539848
vertex -0.00537315477 0.0438657515 -0.00609957427
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00601075124 0.0379645266 -0.00386957778
vertex -0.00329021341 0.000294465688 -0.0080500003
vertex -0.00297909998 -0.00163070788 -0.00195000006
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00601075124 0.0379645266 -0.00386957778
vertex -0.00297909998 -0.00163070788 -0.00195000006
vertex -0.00429608254 0.0362734646 -8.88538707e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00684994413 -0.00625092397 -0.0080500003
vertex 0.00954072271 0.00241398718 -0.00942106359
vertex 0.010830109 0.00338448002 -0.00381393521
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00684994413 -0.00625092397 -0.0080500003
vertex 0.010830109 0.00338448002 -0.00381393521
vertex 0.00684994413 -0.00625092397 -0.00195000006
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00684994413 -0.00625092397 -0.0080500003
vertex 0.00684994413 -0.00625092397 -0.00195000006
vertex 0.00482660998 -0.00780385919 -0.0080500003
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00019711908 0.0482121892 -0.00742312474
vertex 0.000945500156 0.045971062 -0.0084705092
vertex -0.00348394318 0.0464657098 -0.00866564829
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00019711908 0.0482121892 -0.00742312474
vertex -0.00348394318 0.0464657098 -0.00866564829
vertex -0.00346547249 0.0476887561 -0.00498895068
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00019711908 0.0482121892 -0.00742312474
vertex -0.00346547249 0.0476887561 -0.00498895068
vertex -0.00106206862 0.0486834012 -0.00498936092
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00019711908 0.0482121892 -0.00742312474
vertex -0.00106206862 0.0486834012 -0.00498936092
vertex 0.00170418224 0.0470251404 -0.00432557892
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00019711908 0.0482121892 -0.00742312474
vertex 0.00170418224 0.0470251404 -0.00432557892
vertex 0.000945500156 0.045971062 -0.0084705092
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00520672044 0.0379122607 -0.00868305098
vertex -0.00329021341 0.000294465688 -0.0080500003
vertex -0.00601075124 0.0379645266 -0.00386957778
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00520672044 0.0379122607 -0.00868305098
vertex -0.00601075124 0.0379645266 -0.00386957778
vertex -0.00537315477 0.0438657515 -0.00609957427
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00520672044 0.0379122607 -0.00868305098
vertex -0.00537315477 0.0438657515 -0.00609957427
vertex -0.00348394318 0.0464657098 -0.00866564829
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00520672044 0.0379122607 -0.00868305098
vertex -0.00348394318 0.0464657098 -0.00866564829
vertex -0.00322804367 0.0374012291 -0.0104252258
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00520672044 0.0379122607 -0.00868305098
vertex -0.00322804367 0.0374012291 -0.0104252258
vertex -0.00329021341 0.000294465688 -0.0080500003
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0069610551 0.000587038114 -0.0109570958
vertex 0.00954072271 0.00241398718 -0.00942106359
vertex 0.00684994413 -0.00625092397 -0.0080500003
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0069610551 0.000587038114 -0.0109570958
vertex 0.00684994413 -0.00625092397 -0.0080500003
vertex 0.00482660998 -0.00780385919 -0.0080500003
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0069610551 0.000587038114 -0.0109570958
vertex 0.00482660998 -0.00780385919 -0.0080500003
vertex 0.00284345518 -0.00753048901 -0.0080500003
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0069610551 0.000587038114 -0.0109570958
vertex 0.00284345518 -0.00753048901 -0.0080500003
vertex 0.00384663767 0.00182680297 -0.011280518
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0069610551 0.000587038114 -0.0109570958
vertex 0.00384663767 0.00182680297 -0.011280518
vertex -0.00322804367 0.0374012291 -0.0104252258
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0069610551 0.000587038114 -0.0109570958
vertex -0.00322804367 0.0374012291 -0.0104252258
vertex 0.000945500156 0.045971062 -0.0084705092
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0069610551 0.000587038114 -0.0109570958
vertex 0.000945500156 0.045971062 -0.0084705092
vertex 0.00660658581 0.0260562394 -0.00903558079
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0069610551 0.000587038114 -0.0109570958
vertex 0.00660658581 0.0260562394 -0.00903558079
vertex 0.00954072271 0.00241398718 -0.00942106359
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00346547249 0.0476887561 -0.00498895068
vertex -0.00348394318 0.0464657098 -0.00866564829
vertex -0.00537315477 0.0438657515 -0.00609957427
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00346547249 0.0476887561 -0.00498895068
vertex -0.00537315477 0.0438657515 -0.00609957427
vertex -0.00362309464 0.0460432917 -0.00114539848
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00362309464 0.0460432917 -0.00114539848
vertex -0.000229901198 0.0479248092 -0.00218855543
vertex -0.00106206862 0.0486834012 -0.00498936092
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00362309464 0.0460432917 -0.00114539848
vertex -0.00106206862 0.0486834012 -0.00498936092
vertex -0.00346547249 0.0476887561 -0.00498895068
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00179568853 -0.00400286447 -0.00195000006
vertex -0.00297909998 -0.00163070788 -0.00195000006
vertex -0.00179568853 -0.00400286447 -0.0080500003
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00179568853 -0.00400286447 -0.00195000006
vertex 0.00352098979 -0.00781226018 -0.00195000006
vertex 0.00425203284 0.00136753358 0.00128968828
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000328785944 0.00416125171 0.000496497261
vertex -0.00297909998 -0.00163070788 -0.00195000006
vertex -0.00179568853 -0.00400286447 -0.00195000006
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000328785944 0.00416125171 0.000496497261
vertex -0.00179568853 -0.00400286447 -0.00195000006
vertex 0.00425203284 0.00136753358 0.00128968828
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000328785944 0.00416125171 0.000496497261
vertex -0.00429608254 0.0362734646 -8.88538707e-05
vertex -0.00297909998 -0.00163070788 -0.00195000006
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00135887286 0.0371798053 0.000454035471
vertex -0.00429608254 0.0362734646 -8.88538707e-05
vertex -0.000328785944 0.00416125171 0.000496497261
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00135887286 0.0371798053 0.000454035471
vertex -0.000328785944 0.00416125171 0.000496497261
vertex 0.00425203284 0.00136753358 0.00128968828
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00135887286 0.0371798053 0.000454035471
vertex 0.00425203284 0.00136753358 0.00128968828
vertex 0.00789308175 0.00117731874 0.000602744869
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00135887286 0.0371798053 0.000454035471
vertex 0.00789308175 0.00117731874 0.000602744869
vertex 0.00716182869 0.0260333885 -0.00165920611
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00135887286 0.0371798053 0.000454035471
vertex 0.00716182869 0.0260333885 -0.00165920611
vertex 0.000803428993 0.0448982716 -0.00113402226
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00135887286 0.0371798053 0.000454035471
vertex 0.000803428993 0.0448982716 -0.00113402226
vertex -0.00362309464 0.0460432917 -0.00114539848
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00135887286 0.0371798053 0.000454035471
vertex -0.00362309464 0.0460432917 -0.00114539848
vertex -0.00429608254 0.0362734646 -8.88538707e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000704927836 0.00410383474 -0.0103216479
vertex -0.00322804367 0.0374012291 -0.0104252258
vertex 0.00384663767 0.00182680297 -0.011280518
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000704927836 0.00410383474 -0.0103216479
vertex 0.00384663767 0.00182680297 -0.011280518
vertex -0.00179568853 -0.00400286447 -0.0080500003
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000704927836 0.00410383474 -0.0103216479
vertex -0.00179568853 -0.00400286447 -0.0080500003
vertex -0.00329021341 0.000294465688 -0.0080500003
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000704927836 0.00410383474 -0.0103216479
vertex -0.00329021341 0.000294465688 -0.0080500003
vertex -0.00322804367 0.0374012291 -0.0104252258
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00352098979 -0.00781226018 -0.00195000006
vertex -0.00179568853 -0.00400286447 -0.00195000006
vertex -0.00179568853 -0.00400286447 -0.0080500003
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00352098979 -0.00781226018 -0.00195000006
vertex -0.00179568853 -0.00400286447 -0.0080500003
vertex 0.00284345518 -0.00753048901 -0.0080500003
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00284345518 -0.00753048901 -0.0080500003
vertex -0.00179568853 -0.00400286447 -0.0080500003
vertex 0.00384663767 0.00182680297 -0.011280518
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00284345518 -0.00753048901 -0.0080500003
vertex 0.00482660998 -0.00780385919 -0.0080500003
vertex 0.00352098979 -0.00781226018 -0.00195000006
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0100740874 0.00281593273 -0.00124576711
vertex 0.00945102237 0.00639002165 -0.000988031388
vertex 0.00789308175 0.00117731874 0.000602744869
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0100740874 0.00281593273 -0.00124576711
vertex 0.00789308175 0.00117731874 0.000602744869
vertex 0.00684994413 -0.00625092397 -0.00195000006
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0100740874 0.00281593273 -0.00124576711
vertex 0.00684994413 -0.00625092397 -0.00195000006
vertex 0.010830109 0.00338448002 -0.00381393521
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0100740874 0.00281593273 -0.00124576711
vertex 0.010830109 0.00338448002 -0.00381393521
vertex 0.00716182869 0.0260333885 -0.00165920611
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0100740874 0.00281593273 -0.00124576711
vertex 0.00716182869 0.0260333885 -0.00165920611
vertex 0.00945102237 0.00639002165 -0.000988031388
endloop
endfacet
endsolid AssimpScene

BIN
assets/inspire_hand/meshes/Link19_L.STL

578
assets/inspire_hand/meshes/Link19_L.STL.convex.stl

@ -0,0 +1,578 @@
solid AssimpScene
facet normal 0 0 0
outer loop
vertex 0.00870714523 0.00640626019 -0.00598953292
vertex 0.00950312894 0.00461286493 -0.00238404726
vertex 0.0110836849 0.000444926991 -0.00464487588
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00870714523 0.00640626019 -0.00598953292
vertex 0.0110836849 0.000444926991 -0.00464487588
vertex 0.0108619863 0.000361838116 -0.0082310643
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00870714523 0.00640626019 -0.00598953292
vertex 0.0108619863 0.000361838116 -0.0082310643
vertex 0.00948811043 0.0037748625 -0.0100879287
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00168019475 -0.0353947729 -0.0117649594
vertex 0.00867131725 -0.0342117175 -0.00454189023
vertex -0.00298846234 -0.0356077217 -0.00239999988
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0110836849 0.000444926991 -0.00464487588
vertex 0.00979297794 -0.000237770757 -0.0017522797
vertex 0.00732633192 -0.0312311966 -0.000836168358
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0110836849 0.000444926991 -0.00464487588
vertex 0.00732633192 -0.0312311966 -0.000836168358
vertex 0.00867131725 -0.0342117175 -0.00454189023
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00867131725 -0.0342117175 -0.00454189023
vertex 0.00859882869 -0.0320471004 -0.00950245839
vertex 0.0108619863 0.000361838116 -0.0082310643
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00867131725 -0.0342117175 -0.00454189023
vertex 0.0108619863 0.000361838116 -0.0082310643
vertex 0.0110836849 0.000444926991 -0.00464487588
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00245324406 0.00911482889 -0.0130123673
vertex -8.95772246e-05 0.00956364814 -0.010644556
vertex 0.0052414448 0.00945578981 -0.010652706
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00245324406 0.00911482889 -0.0130123673
vertex -0.000471164734 0.00943676289 0.00084743608
vertex -8.95772246e-05 0.00956364814 -0.010644556
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00469024293 -0.0258794762 -0.0128043657
vertex -0.00168019475 -0.0353947729 -0.0117649594
vertex -0.00554241985 -0.0329650044 -0.0119373091
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0052414448 0.00945578981 -0.0013472935
vertex 0.0052414448 0.00945578981 -0.010652706
vertex -8.95772246e-05 0.00956364814 -0.010644556
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0052414448 0.00945578981 -0.0013472935
vertex -8.95772246e-05 0.00956364814 -0.010644556
vertex -0.000471164734 0.00943676289 0.00084743608
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00118642545 -0.0351593159 -0.000115798735
vertex -0.00298846234 -0.0356077217 -0.00239999988
vertex 0.00867131725 -0.0342117175 -0.00454189023
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0037693365 -0.026172813 0.000955631083
vertex -0.00479577668 -0.0338946246 5.21540693e-11
vertex -0.00118642545 -0.0351593159 -0.000115798735
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0037693365 -0.026172813 0.000955631083
vertex -0.00118642545 -0.0351593159 -0.000115798735
vertex 0.00732633192 -0.0312311966 -0.000836168358
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00528134033 0.00782435481 0.000980281737
vertex -0.000471164734 0.00943676289 0.00084743608
vertex -0.00245324406 0.00911482889 -0.0130123673
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00528134033 0.00782435481 0.000980281737
vertex -0.00823408179 0.00469105458 0.000259628578
vertex -0.00479577668 -0.0338946246 5.21540693e-11
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00528134033 0.00782435481 0.000980281737
vertex -0.00479577668 -0.0338946246 5.21540693e-11
vertex 0.0037693365 -0.026172813 0.000955631083
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00528134033 0.00782435481 0.000980281737
vertex 0.0037693365 -0.026172813 0.000955631083
vertex -0.000471164734 0.00943676289 0.00084743608
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00814419705 -0.0339711122 -0.00865195692
vertex 0.00867131725 -0.0342117175 -0.00454189023
vertex -0.00168019475 -0.0353947729 -0.0117649594
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00814419705 -0.0339711122 -0.00865195692
vertex 0.00859882869 -0.0320471004 -0.00950245839
vertex 0.00867131725 -0.0342117175 -0.00454189023
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619973568 0.00712514762 -0.012882188
vertex -0.00904458947 0.00293594948 -0.0116376197
vertex -0.00823408179 0.00469105458 0.000259628578
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619973568 0.00712514762 -0.012882188
vertex -0.00823408179 0.00469105458 0.000259628578
vertex -0.00528134033 0.00782435481 0.000980281737
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619973568 0.00712514762 -0.012882188
vertex -0.00528134033 0.00782435481 0.000980281737
vertex -0.00245324406 0.00911482889 -0.0130123673
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619973568 0.00712514762 -0.012882188
vertex -0.00245324406 0.00911482889 -0.0130123673
vertex 0.00469024293 -0.0258794762 -0.0128043657
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619973568 0.00712514762 -0.012882188
vertex 0.00469024293 -0.0258794762 -0.0128043657
vertex -0.00554241985 -0.0329650044 -0.0119373091
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619973568 0.00712514762 -0.012882188
vertex -0.00554241985 -0.0329650044 -0.0119373091
vertex -0.00904458947 0.00293594948 -0.0116376197
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00620628009 -0.0307127293 -0.0118967975
vertex -0.00168019475 -0.0353947729 -0.0117649594
vertex 0.00469024293 -0.0258794762 -0.0128043657
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00620628009 -0.0307127293 -0.0118967975
vertex 0.00469024293 -0.0258794762 -0.0128043657
vertex 0.00948811043 0.0037748625 -0.0100879287
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00620628009 -0.0307127293 -0.0118967975
vertex 0.00948811043 0.0037748625 -0.0100879287
vertex 0.00859882869 -0.0320471004 -0.00950245839
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00620628009 -0.0307127293 -0.0118967975
vertex 0.00859882869 -0.0320471004 -0.00950245839
vertex 0.00814419705 -0.0339711122 -0.00865195692
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00620628009 -0.0307127293 -0.0118967975
vertex 0.00814419705 -0.0339711122 -0.00865195692
vertex -0.00168019475 -0.0353947729 -0.0117649594
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00420491258 -0.0350654013 -0.0115261674
vertex -0.00554241985 -0.0329650044 -0.0119373091
vertex -0.00168019475 -0.0353947729 -0.0117649594
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00420491258 -0.0350654013 -0.0115261674
vertex -0.00168019475 -0.0353947729 -0.0117649594
vertex -0.00298846234 -0.0356077217 -0.00239999988
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00549842604 0.00772650121 -0.0118709719
vertex 0.00948811043 0.0037748625 -0.0100879287
vertex 0.00469024293 -0.0258794762 -0.0128043657
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00549842604 0.00772650121 -0.0118709719
vertex 0.00469024293 -0.0258794762 -0.0128043657
vertex -0.00245324406 0.00911482889 -0.0130123673
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00549842604 0.00772650121 -0.0118709719
vertex -0.00245324406 0.00911482889 -0.0130123673
vertex 0.0052414448 0.00945578981 -0.010652706
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00549842604 0.00772650121 -0.0118709719
vertex 0.0052414448 0.00945578981 -0.010652706
vertex 0.00948811043 0.0037748625 -0.0100879287
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00984699838 -0.00731367478 -0.00898697134
vertex -0.00904458947 0.00293594948 -0.0116376197
vertex -0.00554241985 -0.0329650044 -0.0119373091
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00870714523 0.00640626019 -0.00598953292
vertex 0.00948811043 0.0037748625 -0.0100879287
vertex 0.0052414448 0.00945578981 -0.010652706
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00870714523 0.00640626019 -0.00598953292
vertex 0.0052414448 0.00945578981 -0.010652706
vertex 0.0052414448 0.00945578981 -0.0013472935
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00979297794 -0.000237770757 -0.0017522797
vertex 0.00767573016 0.00588637171 -0.000752015447
vertex 0.0037693365 -0.026172813 0.000955631083
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00979297794 -0.000237770757 -0.0017522797
vertex 0.0037693365 -0.026172813 0.000955631083
vertex 0.00732633192 -0.0312311966 -0.000836168358
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0108619863 0.000361838116 -0.0082310643
vertex 0.00859882869 -0.0320471004 -0.00950245839
vertex 0.00948811043 0.0037748625 -0.0100879287
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00588553818 -0.0330666415 -0.00239999988
vertex -0.00554241985 -0.0329650044 -0.0119373091
vertex -0.00420491258 -0.0350654013 -0.0115261674
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00588553818 -0.0330666415 -0.00239999988
vertex -0.00479577668 -0.0338946246 5.21540693e-11
vertex -0.00923808385 -0.0071737715 -0.0015976117
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00588553818 -0.0330666415 -0.00239999988
vertex -0.00923808385 -0.0071737715 -0.0015976117
vertex -0.010015429 -0.00735280709 -0.00449603936
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00588553818 -0.0330666415 -0.00239999988
vertex -0.010015429 -0.00735280709 -0.00449603936
vertex -0.00984699838 -0.00731367478 -0.00898697134
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00588553818 -0.0330666415 -0.00239999988
vertex -0.00984699838 -0.00731367478 -0.00898697134
vertex -0.00554241985 -0.0329650044 -0.0119373091
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00950312894 0.00461286493 -0.00238404726
vertex 0.00870714523 0.00640626019 -0.00598953292
vertex 0.0052414448 0.00945578981 -0.0013472935
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00950312894 0.00461286493 -0.00238404726
vertex 0.0052414448 0.00945578981 -0.0013472935
vertex 0.00767573016 0.00588637171 -0.000752015447
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00950312894 0.00461286493 -0.00238404726
vertex 0.00767573016 0.00588637171 -0.000752015447
vertex 0.00979297794 -0.000237770757 -0.0017522797
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00950312894 0.00461286493 -0.00238404726
vertex 0.00979297794 -0.000237770757 -0.0017522797
vertex 0.0110836849 0.000444926991 -0.00464487588
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00358415442 -0.0352738127 -0.000235040148
vertex -0.00298846234 -0.0356077217 -0.00239999988
vertex -0.00118642545 -0.0351593159 -0.000115798735
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00358415442 -0.0352738127 -0.000235040148
vertex -0.00118642545 -0.0351593159 -0.000115798735
vertex -0.00479577668 -0.0338946246 5.21540693e-11
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00358415442 -0.0352738127 -0.000235040148
vertex -0.00479577668 -0.0338946246 5.21540693e-11
vertex -0.00588553818 -0.0330666415 -0.00239999988
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00358415442 -0.0352738127 -0.000235040148
vertex -0.00588553818 -0.0330666415 -0.00239999988
vertex -0.00420491258 -0.0350654013 -0.0115261674
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00358415442 -0.0352738127 -0.000235040148
vertex -0.00420491258 -0.0350654013 -0.0115261674
vertex -0.00298846234 -0.0356077217 -0.00239999988
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00749985129 -0.0333133452 -0.00187939638
vertex 0.00732633192 -0.0312311966 -0.000836168358
vertex -0.00118642545 -0.0351593159 -0.000115798735
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00749985129 -0.0333133452 -0.00187939638
vertex -0.00118642545 -0.0351593159 -0.000115798735
vertex 0.00867131725 -0.0342117175 -0.00454189023
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00749985129 -0.0333133452 -0.00187939638
vertex 0.00867131725 -0.0342117175 -0.00454189023
vertex 0.00732633192 -0.0312311966 -0.000836168358
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00411645509 0.00903278124 9.35034404e-05
vertex 0.00767573016 0.00588637171 -0.000752015447
vertex 0.0052414448 0.00945578981 -0.0013472935
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00411645509 0.00903278124 9.35034404e-05
vertex 0.0052414448 0.00945578981 -0.0013472935
vertex -0.000471164734 0.00943676289 0.00084743608
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00411645509 0.00903278124 9.35034404e-05
vertex -0.000471164734 0.00943676289 0.00084743608
vertex 0.0037693365 -0.026172813 0.000955631083
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00411645509 0.00903278124 9.35034404e-05
vertex 0.0037693365 -0.026172813 0.000955631083
vertex 0.00767573016 0.00588637171 -0.000752015447
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00954843778 0.000176081609 -0.00115589425
vertex -0.010015429 -0.00735280709 -0.00449603936
vertex -0.00923808385 -0.0071737715 -0.0015976117
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00954843778 0.000176081609 -0.00115589425
vertex -0.00923808385 -0.0071737715 -0.0015976117
vertex -0.00479577668 -0.0338946246 5.21540693e-11
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00954843778 0.000176081609 -0.00115589425
vertex -0.00479577668 -0.0338946246 5.21540693e-11
vertex -0.00823408179 0.00469105458 0.000259628578
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00954843778 0.000176081609 -0.00115589425
vertex -0.00823408179 0.00469105458 0.000259628578
vertex -0.00904458947 0.00293594948 -0.0116376197
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00954843778 0.000176081609 -0.00115589425
vertex -0.00904458947 0.00293594948 -0.0116376197
vertex -0.00984699838 -0.00731367478 -0.00898697134
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00954843778 0.000176081609 -0.00115589425
vertex -0.00984699838 -0.00731367478 -0.00898697134
vertex -0.010015429 -0.00735280709 -0.00449603936
endloop
endfacet
endsolid AssimpScene

BIN
assets/inspire_hand/meshes/Link19_R.STL

546
assets/inspire_hand/meshes/Link19_R.STL.convex.stl

@ -0,0 +1,546 @@
solid AssimpScene
facet normal 0 0 0
outer loop
vertex 0.0110836849 -0.000444926991 -0.00735513913
vertex 0.00970043056 0.000281998888 -0.0103491098
vertex 0.00733216526 0.0312348269 -0.0111587103
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0110836849 -0.000444926991 -0.00735513913
vertex 0.00733216526 0.0312348269 -0.0111587103
vertex 0.00867131911 0.0342117138 -0.00745810941
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00867131911 0.0342117138 -0.00745810941
vertex -0.00273384899 0.0356388651 -0.00959999952
vertex -0.00216788356 0.0354665518 -0.000235040148
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00867131911 0.0342117138 -0.00745810941
vertex 0.00858414825 0.0320373364 -0.00246613892
vertex 0.0108623253 -0.000362016901 -0.00376997283
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00867131911 0.0342117138 -0.00745810941
vertex 0.0108623253 -0.000362016901 -0.00376997283
vertex 0.0110836849 -0.000444926991 -0.00735513913
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00246302434 -0.00911326054 0.00101274764
vertex -9.02905376e-05 -0.00956364162 -0.00135544734
vertex 0.0052414448 -0.00945578888 -0.0013472935
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00246302434 -0.00911326054 0.00101274764
vertex -0.00137330801 -0.00934251398 -0.0129493466
vertex -9.02905376e-05 -0.00956364162 -0.00135544734
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00470032962 0.0260484722 0.000795508327
vertex -0.00216788356 0.0354665518 -0.000235040148
vertex -0.00557526108 0.0328458734 -6.26900655e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00950685237 -0.00380186713 -0.00194311794
vertex 0.00858414825 0.0320373364 -0.00246613892
vertex 0.00566976098 0.0318848938 -0.000330381503
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00950685237 -0.00380186713 -0.00194311794
vertex 0.00566976098 0.0318848938 -0.000330381503
vertex 0.00470032962 0.0260484722 0.000795508327
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0052414448 -0.00945578888 -0.010652706
vertex 0.0052414448 -0.00945578888 -0.0013472935
vertex -9.02905376e-05 -0.00956364162 -0.00135544734
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0052414448 -0.00945578888 -0.010652706
vertex -9.02905376e-05 -0.00956364162 -0.00135544734
vertex -0.00137330801 -0.00934251398 -0.0129493466
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.010015429 0.00735280709 -0.00750395935
vertex -0.00984698441 0.00731367059 -0.0030129645
vertex -0.00557526108 0.0328458734 -6.26900655e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.010015429 0.00735280709 -0.00750395935
vertex -0.00557526108 0.0328458734 -6.26900655e-05
vertex -0.0059219948 0.0329344086 -0.00959999952
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.010015429 0.00735280709 -0.00750395935
vertex -0.00859412923 -0.00402176147 -0.0120279966
vertex -0.0090445755 -0.00293598743 -0.000362366845
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00118642545 0.0351593159 -0.0118842013
vertex 0.00733216526 0.0312348269 -0.0111587103
vertex 0.0037693365 0.026172813 -0.0129556311
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00118642545 0.0351593159 -0.0118842013
vertex 0.0037693365 0.026172813 -0.0129556311
vertex -0.00450870115 0.0342126004 -0.0120000001
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00118642545 0.0351593159 -0.0118842013
vertex -0.00450870115 0.0342126004 -0.0120000001
vertex -0.00273384899 0.0356388651 -0.00959999952
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00118642545 0.0351593159 -0.0118842013
vertex -0.00273384899 0.0356388651 -0.00959999952
vertex 0.00867131911 0.0342117138 -0.00745810941
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00814419705 0.0339711122 -0.00334804319
vertex 0.00858414825 0.0320373364 -0.00246613892
vertex 0.00867131911 0.0342117138 -0.00745810941
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00814419705 0.0339711122 -0.00334804319
vertex 0.00867131911 0.0342117138 -0.00745810941
vertex -0.00216788356 0.0354665518 -0.000235040148
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00579818152 -0.00760784978 -0.0105823008
vertex -0.00137330801 -0.00934251398 -0.0129493466
vertex -0.00246302434 -0.00911326054 0.00101274764
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00611000136 -0.00720144203 -0.0128938593
vertex -0.00137330801 -0.00934251398 -0.0129493466
vertex -0.00579818152 -0.00760784978 -0.0105823008
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00611000136 -0.00720144203 -0.0128938593
vertex -0.00450870115 0.0342126004 -0.0120000001
vertex 0.0037693365 0.026172813 -0.0129556311
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00611000136 -0.00720144203 -0.0128938593
vertex 0.0037693365 0.026172813 -0.0129556311
vertex -0.00137330801 -0.00934251398 -0.0129493466
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619969796 -0.00712518021 0.000882193504
vertex -0.0090445755 -0.00293598743 -0.000362366845
vertex -0.00859412923 -0.00402176147 -0.0120279966
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619969796 -0.00712518021 0.000882193504
vertex -0.00859412923 -0.00402176147 -0.0120279966
vertex -0.00611000136 -0.00720144203 -0.0128938593
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619969796 -0.00712518021 0.000882193504
vertex -0.00611000136 -0.00720144203 -0.0128938593
vertex -0.00579818152 -0.00760784978 -0.0105823008
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619969796 -0.00712518021 0.000882193504
vertex -0.00579818152 -0.00760784978 -0.0105823008
vertex -0.00246302434 -0.00911326054 0.00101274764
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619969796 -0.00712518021 0.000882193504
vertex -0.00246302434 -0.00911326054 0.00101274764
vertex 0.00470032962 0.0260484722 0.000795508327
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619969796 -0.00712518021 0.000882193504
vertex 0.00470032962 0.0260484722 0.000795508327
vertex -0.00557526108 0.0328458734 -6.26900655e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619969796 -0.00712518021 0.000882193504
vertex -0.00557526108 0.0328458734 -6.26900655e-05
vertex -0.0090445755 -0.00293598743 -0.000362366845
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00566976098 0.0318848938 -0.000330381503
vertex -0.00216788356 0.0354665518 -0.000235040148
vertex 0.00470032962 0.0260484722 0.000795508327
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00566976098 0.0318848938 -0.000330381503
vertex 0.00858414825 0.0320373364 -0.00246613892
vertex 0.00814419705 0.0339711122 -0.00334804319
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00566976098 0.0318848938 -0.000330381503
vertex 0.00814419705 0.0339711122 -0.00334804319
vertex -0.00216788356 0.0354665518 -0.000235040148
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00458956463 -0.00775821414 0.000137225317
vertex 0.00950685237 -0.00380186713 -0.00194311794
vertex 0.00470032962 0.0260484722 0.000795508327
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00458956463 -0.00775821414 0.000137225317
vertex 0.00470032962 0.0260484722 0.000795508327
vertex -0.00246302434 -0.00911326054 0.00101274764
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00458956463 -0.00775821414 0.000137225317
vertex -0.00246302434 -0.00911326054 0.00101274764
vertex 0.0052414448 -0.00945578888 -0.0013472935
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00458956463 -0.00775821414 0.000137225317
vertex 0.0052414448 -0.00945578888 -0.0013472935
vertex 0.00950685237 -0.00380186713 -0.00194311794
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00984698441 0.00731367059 -0.0030129645
vertex -0.010015429 0.00735280709 -0.00750395935
vertex -0.0090445755 -0.00293598743 -0.000362366845
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00984698441 0.00731367059 -0.0030129645
vertex -0.0090445755 -0.00293598743 -0.000362366845
vertex -0.00557526108 0.0328458734 -6.26900655e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00915175769 -0.00541536883 -0.00935241766
vertex 0.0110836849 -0.000444926991 -0.00735513913
vertex 0.0108623253 -0.000362016901 -0.00376997283
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00915175769 -0.00541536883 -0.00935241766
vertex 0.0108623253 -0.000362016901 -0.00376997283
vertex 0.00950685237 -0.00380186713 -0.00194311794
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00915175769 -0.00541536883 -0.00935241766
vertex 0.00950685237 -0.00380186713 -0.00194311794
vertex 0.0052414448 -0.00945578888 -0.0013472935
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00915175769 -0.00541536883 -0.00935241766
vertex 0.0052414448 -0.00945578888 -0.0013472935
vertex 0.0052414448 -0.00945578888 -0.010652706
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00915175769 -0.00541536883 -0.00935241766
vertex 0.0052414448 -0.00945578888 -0.010652706
vertex 0.00762665784 -0.00583287515 -0.0112889735
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00970043056 0.000281998888 -0.0103491098
vertex 0.0110836849 -0.000444926991 -0.00735513913
vertex 0.00915175769 -0.00541536883 -0.00935241766
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00970043056 0.000281998888 -0.0103491098
vertex 0.00915175769 -0.00541536883 -0.00935241766
vertex 0.00762665784 -0.00583287515 -0.0112889735
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00970043056 0.000281998888 -0.0103491098
vertex 0.00762665784 -0.00583287515 -0.0112889735
vertex 0.0037693365 0.026172813 -0.0129556311
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00970043056 0.000281998888 -0.0103491098
vertex 0.0037693365 0.026172813 -0.0129556311
vertex 0.00733216526 0.0312348269 -0.0111587103
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00439190213 0.0349471308 -0.000473832159
vertex -0.00557526108 0.0328458734 -6.26900655e-05
vertex -0.00216788356 0.0354665518 -0.000235040148
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00439190213 0.0349471308 -0.000473832159
vertex -0.00216788356 0.0354665518 -0.000235040148
vertex -0.00273384899 0.0356388651 -0.00959999952
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00439190213 0.0349471308 -0.000473832159
vertex -0.00273384899 0.0356388651 -0.00959999952
vertex -0.00450870115 0.0342126004 -0.0120000001
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00439190213 0.0349471308 -0.000473832159
vertex -0.00450870115 0.0342126004 -0.0120000001
vertex -0.0059219948 0.0329344086 -0.00959999952
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00439190213 0.0349471308 -0.000473832159
vertex -0.0059219948 0.0329344086 -0.00959999952
vertex -0.00557526108 0.0328458734 -6.26900655e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00583793502 0.0324119031 -0.0117649594
vertex -0.00450870115 0.0342126004 -0.0120000001
vertex -0.00611000136 -0.00720144203 -0.0128938593
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00583793502 0.0324119031 -0.0117649594
vertex -0.00611000136 -0.00720144203 -0.0128938593
vertex -0.00859412923 -0.00402176147 -0.0120279966
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00583793502 0.0324119031 -0.0117649594
vertex -0.00859412923 -0.00402176147 -0.0120279966
vertex -0.010015429 0.00735280709 -0.00750395935
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00583793502 0.0324119031 -0.0117649594
vertex -0.010015429 0.00735280709 -0.00750395935
vertex -0.0059219948 0.0329344086 -0.00959999952
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00583793502 0.0324119031 -0.0117649594
vertex -0.0059219948 0.0329344086 -0.00959999952
vertex -0.00450870115 0.0342126004 -0.0120000001
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0108623253 -0.000362016901 -0.00376997283
vertex 0.00858414825 0.0320373364 -0.00246613892
vertex 0.00950685237 -0.00380186713 -0.00194311794
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00411645509 -0.0090327803 -0.0120935012
vertex 0.00762665784 -0.00583287515 -0.0112889735
vertex 0.0052414448 -0.00945578888 -0.010652706
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00411645509 -0.0090327803 -0.0120935012
vertex 0.0052414448 -0.00945578888 -0.010652706
vertex -0.00137330801 -0.00934251398 -0.0129493466
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00411645509 -0.0090327803 -0.0120935012
vertex -0.00137330801 -0.00934251398 -0.0129493466
vertex 0.0037693365 0.026172813 -0.0129556311
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00411645509 -0.0090327803 -0.0120935012
vertex 0.0037693365 0.026172813 -0.0129556311
vertex 0.00762665784 -0.00583287515 -0.0112889735
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00749682449 0.0333158225 -0.0101199131
vertex 0.00733216526 0.0312348269 -0.0111587103
vertex -0.00118642545 0.0351593159 -0.0118842013
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00749682449 0.0333158225 -0.0101199131
vertex -0.00118642545 0.0351593159 -0.0118842013
vertex 0.00867131911 0.0342117138 -0.00745810941
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00749682449 0.0333158225 -0.0101199131
vertex 0.00867131911 0.0342117138 -0.00745810941
vertex 0.00733216526 0.0312348269 -0.0111587103
endloop
endfacet
endsolid AssimpScene

BIN
assets/inspire_hand/meshes/Link20_L.STL

578
assets/inspire_hand/meshes/Link20_L.STL.convex.stl

@ -0,0 +1,578 @@
solid AssimpScene
facet normal 0 0 0
outer loop
vertex -0.000307882641 0.00586847169 -0.00204476621
vertex 0.00451644277 0.00780560076 -0.00196253788
vertex 0.0045315451 0.00792971067 -0.00655000005
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000307882641 0.00586847169 -0.00204476621
vertex 0.0045315451 0.00792971067 -0.00655000005
vertex 0.000465776073 0.00647113612 -0.00795523357
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00515188929 -0.0396574326 -0.00500000035
vertex -0.00310910842 0.000835592044 -0.00196253788
vertex -0.00288134371 0.00178353756 -0.0080374619
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000307882641 0.00586847169 -0.00204476621
vertex 0.00408238173 -0.00187340903 0.00130375288
vertex 0.00451644277 0.00780560076 -0.00196253788
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000307882641 0.00586847169 -0.00204476621
vertex -0.00288134371 0.00178353756 -0.0080374619
vertex -0.00310910842 0.000835592044 -0.00196253788
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000465776073 0.00647113612 -0.00795523357
vertex -0.00288134371 0.00178353756 -0.0080374619
vertex -0.000307882641 0.00586847169 -0.00204476621
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0073649832 -0.0242304057 -0.00135725073
vertex 0.0019755722 -0.0424995646 -0.00173989416
vertex 0.00175182836 -0.0442894548 -0.00325343222
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0073649832 -0.0242304057 -0.00135725073
vertex 0.00175182836 -0.0442894548 -0.00325343222
vertex 0.00793468021 -0.0254673474 -0.00501046702
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0073649832 -0.0242304057 -0.00135725073
vertex 0.00793468021 -0.0254673474 -0.00501046702
vertex 0.0109100407 -0.00338321831 -0.00604098616
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0073649832 -0.0242304057 -0.00135725073
vertex 0.0109100407 -0.00338321831 -0.00604098616
vertex 0.00980036985 -0.00276796333 -0.000782165327
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000478150701 -0.0445214137 -0.00781145925
vertex -0.00262691779 -0.0428678356 -0.00908724219
vertex 0.00209764205 -0.0416203551 -0.00846530404
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0073649832 -0.0242304057 -0.00864274986
vertex 0.0109100407 -0.00338321831 -0.00604098616
vertex 0.00793468021 -0.0254673474 -0.00501046702
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00695778104 0.00602345867 -0.00204476621
vertex 0.00980036985 -0.00276796333 -0.000782165327
vertex 0.0109100407 -0.00338321831 -0.00604098616
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00695778104 0.00602345867 -0.00204476621
vertex 0.0109100407 -0.00338321831 -0.00604098616
vertex 0.00695778104 0.00602345867 -0.00795523357
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00695778104 0.00602345867 -0.00795523357
vertex 0.0045315451 0.00792971067 -0.00655000005
vertex 0.00451644277 0.00780560076 -0.00196253788
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00695778104 0.00602345867 -0.00795523357
vertex 0.00451644277 0.00780560076 -0.00196253788
vertex 0.00695778104 0.00602345867 -0.00204476621
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000105200954 -0.0445730276 -0.00216107885
vertex 0.0019755722 -0.0424995646 -0.00173989416
vertex -0.0029327576 -0.0429493263 -0.00113913917
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00245129457 -0.0434379876 -0.00601699995
vertex 0.000478150701 -0.0445214137 -0.00781145925
vertex 0.00209764205 -0.0416203551 -0.00846530404
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00245129457 -0.0434379876 -0.00601699995
vertex 0.00209764205 -0.0416203551 -0.00846530404
vertex 0.0073649832 -0.0242304057 -0.00864274986
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00245129457 -0.0434379876 -0.00601699995
vertex 0.0073649832 -0.0242304057 -0.00864274986
vertex 0.00793468021 -0.0254673474 -0.00501046702
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00451644277 0.00780560076 -0.0080374619
vertex 0.00695778104 0.00602345867 -0.00795523357
vertex 0.00562954973 -0.00067555462 -0.0112180943
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00451644277 0.00780560076 -0.0080374619
vertex 0.00562954973 -0.00067555462 -0.0112180943
vertex 0.000465776073 0.00647113612 -0.00795523357
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00451644277 0.00780560076 -0.0080374619
vertex 0.000465776073 0.00647113612 -0.00795523357
vertex 0.0045315451 0.00792971067 -0.00655000005
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00451644277 0.00780560076 -0.0080374619
vertex 0.0045315451 0.00792971067 -0.00655000005
vertex 0.00695778104 0.00602345867 -0.00795523357
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00460944278 -0.0356260799 -0.00131695333
vertex -0.00310910842 0.000835592044 -0.00196253788
vertex -0.00515188929 -0.0396574326 -0.00500000035
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00460944278 -0.0356260799 -0.00131695333
vertex -0.00515188929 -0.0396574326 -0.00500000035
vertex -0.0029327576 -0.0429493263 -0.00113913917
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00460944278 -0.0356260799 -0.00131695333
vertex -0.0029327576 -0.0429493263 -0.00113913917
vertex -0.00264506438 -0.0350661203 0.000425221282
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00460944278 -0.0356260799 -0.00131695333
vertex -0.00264506438 -0.0350661203 0.000425221282
vertex -0.00310910842 0.000835592044 -0.00196253788
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00283985701 -0.0443740748 -0.00501046795
vertex -0.000455220958 -0.0452524722 -0.00501046749
vertex 0.000105200954 -0.0445730276 -0.00216107885
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00283985701 -0.0443740748 -0.00501046795
vertex 0.000105200954 -0.0445730276 -0.00216107885
vertex -0.0029327576 -0.0429493263 -0.00113913917
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00283985701 -0.0443740748 -0.00501046795
vertex -0.0029327576 -0.0429493263 -0.00113913917
vertex -0.00515188929 -0.0396574326 -0.00500000035
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00283985701 -0.0443740748 -0.00501046795
vertex -0.00515188929 -0.0396574326 -0.00500000035
vertex -0.00262691779 -0.0428678356 -0.00908724219
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00262691779 -0.0428678356 -0.00908724219
vertex 0.000478150701 -0.0445214137 -0.00781145925
vertex -0.000455220958 -0.0452524722 -0.00501046749
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00262691779 -0.0428678356 -0.00908724219
vertex -0.000455220958 -0.0452524722 -0.00501046749
vertex -0.00283985701 -0.0443740748 -0.00501046795
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000238119916 -0.00438925205 -0.0106756203
vertex -0.00288134371 0.00178353756 -0.0080374619
vertex 0.000465776073 0.00647113612 -0.00795523357
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000238119916 -0.00438925205 -0.0106756203
vertex 0.000465776073 0.00647113612 -0.00795523357
vertex 0.00562954973 -0.00067555462 -0.0112180943
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000238119916 -0.00438925205 -0.0106756203
vertex 0.00562954973 -0.00067555462 -0.0112180943
vertex -0.00316523481 -0.0339629762 -0.0102867903
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000238119916 -0.00438925205 -0.0106756203
vertex -0.00316523481 -0.0339629762 -0.0102867903
vertex -0.00288134371 0.00178353756 -0.0080374619
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00721886847 -0.000863869151 0.000908752787
vertex 0.00980036985 -0.00276796333 -0.000782165327
vertex 0.00695778104 0.00602345867 -0.00204476621
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00721886847 -0.000863869151 0.000908752787
vertex 0.00695778104 0.00602345867 -0.00204476621
vertex 0.00451644277 0.00780560076 -0.00196253788
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00721886847 -0.000863869151 0.000908752787
vertex 0.00451644277 0.00780560076 -0.00196253788
vertex 0.00408238173 -0.00187340903 0.00130375288
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00721886847 -0.000863869151 0.000908752787
vertex 0.0073649832 -0.0242304057 -0.00135725073
vertex 0.00980036985 -0.00276796333 -0.000782165327
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00999800581 -0.00285271578 -0.00896661635
vertex 0.00695778104 0.00602345867 -0.00795523357
vertex 0.0109100407 -0.00338321831 -0.00604098616
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00999800581 -0.00285271578 -0.00896661635
vertex 0.0109100407 -0.00338321831 -0.00604098616
vertex 0.0073649832 -0.0242304057 -0.00864274986
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00999800581 -0.00285271578 -0.00896661635
vertex 0.0073649832 -0.0242304057 -0.00864274986
vertex 0.00914153084 -0.00528662559 -0.00953828637
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00999800581 -0.00285271578 -0.00896661635
vertex 0.00914153084 -0.00528662559 -0.00953828637
vertex 0.00562954973 -0.00067555462 -0.0112180943
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00999800581 -0.00285271578 -0.00896661635
vertex 0.00562954973 -0.00067555462 -0.0112180943
vertex 0.00695778104 0.00602345867 -0.00795523357
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0044548288 -0.0388166755 -0.00850371271
vertex -0.00316523481 -0.0339629762 -0.0102867903
vertex -0.00262691779 -0.0428678356 -0.00908724219
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0044548288 -0.0388166755 -0.00850371271
vertex -0.00262691779 -0.0428678356 -0.00908724219
vertex -0.00515188929 -0.0396574326 -0.00500000035
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0044548288 -0.0388166755 -0.00850371271
vertex -0.00515188929 -0.0396574326 -0.00500000035
vertex -0.00288134371 0.00178353756 -0.0080374619
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0044548288 -0.0388166755 -0.00850371271
vertex -0.00288134371 0.00178353756 -0.0080374619
vertex -0.00316523481 -0.0339629762 -0.0102867903
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00119875174 -0.0344842672 -0.0101832235
vertex -0.00316523481 -0.0339629762 -0.0102867903
vertex 0.00562954973 -0.00067555462 -0.0112180943
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00562954973 -0.00067555462 -0.0112180943
vertex 0.00914153084 -0.00528662559 -0.00953828637
vertex 0.0073649832 -0.0242304057 -0.00864274986
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00562954973 -0.00067555462 -0.0112180943
vertex 0.0073649832 -0.0242304057 -0.00864274986
vertex 0.00119875174 -0.0344842672 -0.0101832235
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00119875174 -0.0344842672 -0.0101832235
vertex 0.0073649832 -0.0242304057 -0.00864274986
vertex 0.00209764205 -0.0416203551 -0.00846530404
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00119875174 -0.0344842672 -0.0101832235
vertex 0.00209764205 -0.0416203551 -0.00846530404
vertex -0.00262691779 -0.0428678356 -0.00908724219
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00119875174 -0.0344842672 -0.0101832235
vertex -0.00262691779 -0.0428678356 -0.00908724219
vertex -0.00316523481 -0.0339629762 -0.0102867903
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000138802352 -0.0043906956 0.000530735939
vertex -0.00264506438 -0.0350661203 0.000425221282
vertex 0.00408238173 -0.00187340903 0.00130375288
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000138802352 -0.0043906956 0.000530735939
vertex 0.00408238173 -0.00187340903 0.00130375288
vertex -0.000307882641 0.00586847169 -0.00204476621
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000138802352 -0.0043906956 0.000530735939
vertex -0.000307882641 0.00586847169 -0.00204476621
vertex -0.00310910842 0.000835592044 -0.00196253788
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000138802352 -0.0043906956 0.000530735939
vertex -0.00310910842 0.000835592044 -0.00196253788
vertex -0.00264506438 -0.0350661203 0.000425221282
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00120392221 -0.0344835073 0.000181894633
vertex 0.0019755722 -0.0424995646 -0.00173989416
vertex 0.0073649832 -0.0242304057 -0.00135725073
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00120392221 -0.0344835073 0.000181894633
vertex 0.0073649832 -0.0242304057 -0.00135725073
vertex 0.00721886847 -0.000863869151 0.000908752787
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00120392221 -0.0344835073 0.000181894633
vertex 0.00721886847 -0.000863869151 0.000908752787
vertex 0.00408238173 -0.00187340903 0.00130375288
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00120392221 -0.0344835073 0.000181894633
vertex 0.00408238173 -0.00187340903 0.00130375288
vertex -0.00264506438 -0.0350661203 0.000425221282
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00120392221 -0.0344835073 0.000181894633
vertex -0.00264506438 -0.0350661203 0.000425221282
vertex -0.0029327576 -0.0429493263 -0.00113913917
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00120392221 -0.0344835073 0.000181894633
vertex -0.0029327576 -0.0429493263 -0.00113913917
vertex 0.0019755722 -0.0424995646 -0.00173989416
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00175182836 -0.0442894548 -0.00325343222
vertex 0.000105200954 -0.0445730276 -0.00216107885
vertex -0.000455220958 -0.0452524722 -0.00501046749
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00175182836 -0.0442894548 -0.00325343222
vertex -0.000455220958 -0.0452524722 -0.00501046749
vertex 0.000478150701 -0.0445214137 -0.00781145925
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00175182836 -0.0442894548 -0.00325343222
vertex 0.000478150701 -0.0445214137 -0.00781145925
vertex 0.00245129457 -0.0434379876 -0.00601699995
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00175182836 -0.0442894548 -0.00325343222
vertex 0.00245129457 -0.0434379876 -0.00601699995
vertex 0.00793468021 -0.0254673474 -0.00501046702
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00175182836 -0.0442894548 -0.00325343222
vertex 0.0019755722 -0.0424995646 -0.00173989416
vertex 0.000105200954 -0.0445730276 -0.00216107885
endloop
endfacet
endsolid AssimpScene

BIN
assets/inspire_hand/meshes/Link20_R.STL

578
assets/inspire_hand/meshes/Link20_R.STL.convex.stl

@ -0,0 +1,578 @@
solid AssimpScene
facet normal 0 0 0
outer loop
vertex 0.000465776073 -0.00647113612 -0.00795523357
vertex 0.00453154556 -0.00792971067 -0.00655000005
vertex 0.00451644277 -0.00780560076 -0.00196253764
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000465776073 -0.00647113612 -0.00795523357
vertex 0.00451644277 -0.00780560076 -0.00196253764
vertex -0.000307882641 -0.00586847169 -0.00204476598
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00515188929 0.0396574326 -0.00500000035
vertex -0.00288134371 -0.00178353756 -0.0080374619
vertex -0.00310910866 -0.000835592044 -0.00196253764
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000307882641 -0.00586847169 -0.00204476598
vertex 0.00451644277 -0.00780560076 -0.00196253764
vertex 0.00414960086 0.00179188512 0.00130476186
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000307882641 -0.00586847169 -0.00204476598
vertex -0.00310910866 -0.000835592044 -0.00196253764
vertex -0.00288134371 -0.00178353756 -0.0080374619
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000465776073 -0.00647113612 -0.00795523357
vertex -0.000307882641 -0.00586847169 -0.00204476598
vertex -0.00288134371 -0.00178353756 -0.0080374619
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00736499019 0.0242304038 -0.00135726656
vertex 0.00793451164 0.0254673064 -0.00501046749
vertex 0.00175186014 0.0442894287 -0.00325343176
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00736499019 0.0242304038 -0.00135726656
vertex 0.00175186014 0.0442894287 -0.00325343176
vertex 0.0019755722 0.0424995646 -0.00173989416
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00980023574 0.0027678702 -0.000782012125
vertex 0.0109102502 0.00338376779 -0.00604102202
vertex 0.00793451164 0.0254673064 -0.00501046749
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00980023574 0.0027678702 -0.000782012125
vertex 0.00793451164 0.0254673064 -0.00501046749
vertex 0.00736499019 0.0242304038 -0.00135726656
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000478150789 0.0445214137 -0.00781145878
vertex 0.00209764251 0.0416203551 -0.00846530404
vertex -0.00263238722 0.0428635553 -0.00908712484
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00736499019 0.0242304038 -0.00864273403
vertex 0.00793451164 0.0254673064 -0.00501046749
vertex 0.0109102502 0.00338376779 -0.00604102202
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00695778104 -0.00602345867 -0.00204476598
vertex 0.00451644277 -0.00780560076 -0.00196253764
vertex 0.00453154556 -0.00792971067 -0.00655000005
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00695778104 -0.00602345867 -0.00204476598
vertex 0.00453154556 -0.00792971067 -0.00655000005
vertex 0.00695778104 -0.00602345867 -0.00795523357
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00695778104 -0.00602345867 -0.00204476598
vertex 0.00695778104 -0.00602345867 -0.00795523357
vertex 0.0109102502 0.00338376779 -0.00604102202
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00695778104 -0.00602345867 -0.00204476598
vertex 0.0109102502 0.00338376779 -0.00604102202
vertex 0.00980023574 0.0027678702 -0.000782012125
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000105201041 0.0445730276 -0.00216107885
vertex -0.0029327576 0.0429493263 -0.00113913917
vertex 0.0019755722 0.0424995646 -0.00173989416
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00245129503 0.0434379876 -0.00601699995
vertex 0.00209764251 0.0416203551 -0.00846530404
vertex 0.000478150789 0.0445214137 -0.00781145878
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00245129503 0.0434379876 -0.00601699995
vertex 0.00793451164 0.0254673064 -0.00501046749
vertex 0.00736499019 0.0242304038 -0.00864273403
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00245129503 0.0434379876 -0.00601699995
vertex 0.00736499019 0.0242304038 -0.00864273403
vertex 0.00209764251 0.0416203551 -0.00846530404
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00451644277 -0.00780560076 -0.0080374619
vertex 0.00453154556 -0.00792971067 -0.00655000005
vertex 0.000465776073 -0.00647113612 -0.00795523357
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00451644277 -0.00780560076 -0.0080374619
vertex 0.000465776073 -0.00647113612 -0.00795523357
vertex 0.00563265942 0.000674418698 -0.0112177758
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00451644277 -0.00780560076 -0.0080374619
vertex 0.00563265942 0.000674418698 -0.0112177758
vertex 0.00695778104 -0.00602345867 -0.00795523357
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00451644277 -0.00780560076 -0.0080374619
vertex 0.00695778104 -0.00602345867 -0.00795523357
vertex 0.00453154556 -0.00792971067 -0.00655000005
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00460944278 0.0356260799 -0.00131695333
vertex -0.00264506461 0.0350661203 0.000425221253
vertex -0.0029327576 0.0429493263 -0.00113913917
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00460944278 0.0356260799 -0.00131695333
vertex -0.0029327576 0.0429493263 -0.00113913917
vertex -0.00515188929 0.0396574326 -0.00500000035
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00460944278 0.0356260799 -0.00131695333
vertex -0.00515188929 0.0396574326 -0.00500000035
vertex -0.00310910866 -0.000835592044 -0.00196253764
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00460944278 0.0356260799 -0.00131695333
vertex -0.00310910866 -0.000835592044 -0.00196253764
vertex -0.00264506461 0.0350661203 0.000425221253
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00284005166 0.0443742685 -0.00500000035
vertex -0.00263238722 0.0428635553 -0.00908712484
vertex -0.00515188929 0.0396574326 -0.00500000035
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00284005166 0.0443742685 -0.00500000035
vertex -0.00515188929 0.0396574326 -0.00500000035
vertex -0.0029327576 0.0429493263 -0.00113913917
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00284005166 0.0443742685 -0.00500000035
vertex -0.0029327576 0.0429493263 -0.00113913917
vertex 0.000105201041 0.0445730276 -0.00216107885
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00284005166 0.0443742685 -0.00500000035
vertex 0.000105201041 0.0445730276 -0.00216107885
vertex -0.000455220899 0.0452524722 -0.00501046795
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00284005166 0.0443742685 -0.00500000035
vertex -0.000455220899 0.0452524722 -0.00501046795
vertex 0.000478150789 0.0445214137 -0.00781145878
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00284005166 0.0443742685 -0.00500000035
vertex 0.000478150789 0.0445214137 -0.00781145878
vertex -0.00263238722 0.0428635553 -0.00908712484
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000238096531 0.00438924972 -0.010675611
vertex -0.00316523504 0.0339629762 -0.0102867903
vertex 0.00563265942 0.000674418698 -0.0112177758
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000238096531 0.00438924972 -0.010675611
vertex 0.00563265942 0.000674418698 -0.0112177758
vertex 0.000465776073 -0.00647113612 -0.00795523357
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000238096531 0.00438924972 -0.010675611
vertex 0.000465776073 -0.00647113612 -0.00795523357
vertex -0.00288134371 -0.00178353756 -0.0080374619
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000238096531 0.00438924972 -0.010675611
vertex -0.00288134371 -0.00178353756 -0.0080374619
vertex -0.00316523504 0.0339629762 -0.0102867903
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00721886847 0.000863869151 0.000908746268
vertex 0.00414960086 0.00179188512 0.00130476186
vertex 0.00451644277 -0.00780560076 -0.00196253764
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00721886847 0.000863869151 0.000908746268
vertex 0.00451644277 -0.00780560076 -0.00196253764
vertex 0.00695778104 -0.00602345867 -0.00204476598
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00721886847 0.000863869151 0.000908746268
vertex 0.00695778104 -0.00602345867 -0.00204476598
vertex 0.00980023574 0.0027678702 -0.000782012125
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00721886847 0.000863869151 0.000908746268
vertex 0.00980023574 0.0027678702 -0.000782012125
vertex 0.00736499019 0.0242304038 -0.00135726656
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00999334455 0.00285032811 -0.00897325575
vertex 0.00914156251 0.00528630661 -0.00953829568
vertex 0.00736499019 0.0242304038 -0.00864273403
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00999334455 0.00285032811 -0.00897325575
vertex 0.00736499019 0.0242304038 -0.00864273403
vertex 0.0109102502 0.00338376779 -0.00604102202
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00999334455 0.00285032811 -0.00897325575
vertex 0.0109102502 0.00338376779 -0.00604102202
vertex 0.00695778104 -0.00602345867 -0.00795523357
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00999334455 0.00285032811 -0.00897325575
vertex 0.00695778104 -0.00602345867 -0.00795523357
vertex 0.00563265942 0.000674418698 -0.0112177758
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00999334455 0.00285032811 -0.00897325575
vertex 0.00563265942 0.000674418698 -0.0112177758
vertex 0.00914156251 0.00528630661 -0.00953829568
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00445548398 0.0388090387 -0.00850408152
vertex -0.00515188929 0.0396574326 -0.00500000035
vertex -0.00263238722 0.0428635553 -0.00908712484
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00445548398 0.0388090387 -0.00850408152
vertex -0.00263238722 0.0428635553 -0.00908712484
vertex -0.00316523504 0.0339629762 -0.0102867903
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00445548398 0.0388090387 -0.00850408152
vertex -0.00316523504 0.0339629762 -0.0102867903
vertex -0.00288134371 -0.00178353756 -0.0080374619
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00445548398 0.0388090387 -0.00850408152
vertex -0.00288134371 -0.00178353756 -0.0080374619
vertex -0.00515188929 0.0396574326 -0.00500000035
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00119875174 0.0344842672 -0.0101832235
vertex 0.00209764251 0.0416203551 -0.00846530404
vertex 0.00736499019 0.0242304038 -0.00864273403
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00119875174 0.0344842672 -0.0101832235
vertex 0.00736499019 0.0242304038 -0.00864273403
vertex 0.00914156251 0.00528630661 -0.00953829568
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00119875174 0.0344842672 -0.0101832235
vertex 0.00914156251 0.00528630661 -0.00953829568
vertex 0.00563265942 0.000674418698 -0.0112177758
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00119875174 0.0344842672 -0.0101832235
vertex 0.00563265942 0.000674418698 -0.0112177758
vertex -0.00316523504 0.0339629762 -0.0102867903
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00119875174 0.0344842672 -0.0101832235
vertex -0.00316523504 0.0339629762 -0.0102867903
vertex -0.00263238722 0.0428635553 -0.00908712484
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00119875174 0.0344842672 -0.0101832235
vertex -0.00263238722 0.0428635553 -0.00908712484
vertex 0.00209764251 0.0416203551 -0.00846530404
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000507224584 0.00436142832 0.000362147897
vertex -0.00310910866 -0.000835592044 -0.00196253764
vertex -0.000307882641 -0.00586847169 -0.00204476598
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000507224584 0.00436142832 0.000362147897
vertex -0.000307882641 -0.00586847169 -0.00204476598
vertex 0.00414960086 0.00179188512 0.00130476186
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000507224584 0.00436142832 0.000362147897
vertex 0.00414960086 0.00179188512 0.00130476186
vertex -0.00264506461 0.0350661203 0.000425221253
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000507224584 0.00436142832 0.000362147897
vertex -0.00264506461 0.0350661203 0.000425221253
vertex -0.00310910866 -0.000835592044 -0.00196253764
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00120392232 0.0344835073 0.000181894618
vertex -0.00264506461 0.0350661203 0.000425221253
vertex 0.00414960086 0.00179188512 0.00130476186
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00120392232 0.0344835073 0.000181894618
vertex 0.00414960086 0.00179188512 0.00130476186
vertex 0.00721886847 0.000863869151 0.000908746268
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00120392232 0.0344835073 0.000181894618
vertex 0.00721886847 0.000863869151 0.000908746268
vertex 0.00736499019 0.0242304038 -0.00135726656
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00120392232 0.0344835073 0.000181894618
vertex 0.00736499019 0.0242304038 -0.00135726656
vertex 0.0019755722 0.0424995646 -0.00173989416
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0019755722 0.0424995646 -0.00173989416
vertex -0.0029327576 0.0429493263 -0.00113913917
vertex -0.00264506461 0.0350661203 0.000425221253
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0019755722 0.0424995646 -0.00173989416
vertex -0.00264506461 0.0350661203 0.000425221253
vertex 0.00120392232 0.0344835073 0.000181894618
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00175186014 0.0442894287 -0.00325343176
vertex 0.00793451164 0.0254673064 -0.00501046749
vertex 0.00245129503 0.0434379876 -0.00601699995
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00175186014 0.0442894287 -0.00325343176
vertex 0.00245129503 0.0434379876 -0.00601699995
vertex 0.000478150789 0.0445214137 -0.00781145878
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00175186014 0.0442894287 -0.00325343176
vertex 0.000478150789 0.0445214137 -0.00781145878
vertex -0.000455220899 0.0452524722 -0.00501046795
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00175186014 0.0442894287 -0.00325343176
vertex -0.000455220899 0.0452524722 -0.00501046795
vertex 0.000105201041 0.0445730276 -0.00216107885
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00175186014 0.0442894287 -0.00325343176
vertex 0.000105201041 0.0445730276 -0.00216107885
vertex 0.0019755722 0.0424995646 -0.00173989416
endloop
endfacet
endsolid AssimpScene

BIN
assets/inspire_hand/meshes/Link21_L.STL

578
assets/inspire_hand/meshes/Link21_L.STL.convex.stl

@ -0,0 +1,578 @@
solid AssimpScene
facet normal 0 0 0
outer loop
vertex 0.00870714523 0.00640626019 -0.00598953292
vertex 0.00950312894 0.00461286493 -0.00238404726
vertex 0.0110836849 0.000444926991 -0.00464487588
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00870714523 0.00640626019 -0.00598953292
vertex 0.0110836849 0.000444926991 -0.00464487588
vertex 0.0108619863 0.000361838116 -0.0082310643
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00870714523 0.00640626019 -0.00598953292
vertex 0.0108619863 0.000361838116 -0.0082310643
vertex 0.00948811043 0.0037748625 -0.0100879287
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00168019475 -0.0353947729 -0.0117649594
vertex 0.00867131725 -0.0342117175 -0.00454189023
vertex -0.00298846234 -0.0356077217 -0.00239999988
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0110836849 0.000444926991 -0.00464487588
vertex 0.00979297794 -0.000237770757 -0.0017522797
vertex 0.00732633192 -0.0312311966 -0.000836168358
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0110836849 0.000444926991 -0.00464487588
vertex 0.00732633192 -0.0312311966 -0.000836168358
vertex 0.00867131725 -0.0342117175 -0.00454189023
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00867131725 -0.0342117175 -0.00454189023
vertex 0.00859882869 -0.0320471004 -0.00950245839
vertex 0.0108619863 0.000361838116 -0.0082310643
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00867131725 -0.0342117175 -0.00454189023
vertex 0.0108619863 0.000361838116 -0.0082310643
vertex 0.0110836849 0.000444926991 -0.00464487588
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00245324406 0.00911482889 -0.0130123673
vertex -8.95772246e-05 0.00956364814 -0.010644556
vertex 0.0052414448 0.00945578981 -0.010652706
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00245324406 0.00911482889 -0.0130123673
vertex -0.000471164734 0.00943676289 0.00084743608
vertex -8.95772246e-05 0.00956364814 -0.010644556
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00469024293 -0.0258794762 -0.0128043657
vertex -0.00168019475 -0.0353947729 -0.0117649594
vertex -0.00554241985 -0.0329650044 -0.0119373091
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0052414448 0.00945578981 -0.0013472935
vertex 0.0052414448 0.00945578981 -0.010652706
vertex -8.95772246e-05 0.00956364814 -0.010644556
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0052414448 0.00945578981 -0.0013472935
vertex -8.95772246e-05 0.00956364814 -0.010644556
vertex -0.000471164734 0.00943676289 0.00084743608
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00118642545 -0.0351593159 -0.000115798735
vertex -0.00298846234 -0.0356077217 -0.00239999988
vertex 0.00867131725 -0.0342117175 -0.00454189023
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0037693365 -0.026172813 0.000955631083
vertex -0.00479577668 -0.0338946246 5.21540588e-11
vertex -0.00118642545 -0.0351593159 -0.000115798735
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0037693365 -0.026172813 0.000955631083
vertex -0.00118642545 -0.0351593159 -0.000115798735
vertex 0.00732633192 -0.0312311966 -0.000836168358
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00528134033 0.00782435481 0.000980281737
vertex -0.000471164734 0.00943676289 0.00084743608
vertex -0.00245324406 0.00911482889 -0.0130123673
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00528134033 0.00782435481 0.000980281737
vertex -0.00823408179 0.00469105458 0.000259628578
vertex -0.00479577668 -0.0338946246 5.21540588e-11
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00528134033 0.00782435481 0.000980281737
vertex -0.00479577668 -0.0338946246 5.21540588e-11
vertex 0.0037693365 -0.026172813 0.000955631083
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00528134033 0.00782435481 0.000980281737
vertex 0.0037693365 -0.026172813 0.000955631083
vertex -0.000471164734 0.00943676289 0.00084743608
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00814419705 -0.0339711122 -0.00865195692
vertex 0.00867131725 -0.0342117175 -0.00454189023
vertex -0.00168019475 -0.0353947729 -0.0117649594
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00814419705 -0.0339711122 -0.00865195692
vertex 0.00859882869 -0.0320471004 -0.00950245839
vertex 0.00867131725 -0.0342117175 -0.00454189023
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619973568 0.00712514762 -0.012882188
vertex -0.00904458947 0.00293594948 -0.0116376197
vertex -0.00823408179 0.00469105458 0.000259628578
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619973568 0.00712514762 -0.012882188
vertex -0.00823408179 0.00469105458 0.000259628578
vertex -0.00528134033 0.00782435481 0.000980281737
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619973568 0.00712514762 -0.012882188
vertex -0.00528134033 0.00782435481 0.000980281737
vertex -0.00245324406 0.00911482889 -0.0130123673
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619973568 0.00712514762 -0.012882188
vertex -0.00245324406 0.00911482889 -0.0130123673
vertex 0.00469024293 -0.0258794762 -0.0128043657
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619973568 0.00712514762 -0.012882188
vertex 0.00469024293 -0.0258794762 -0.0128043657
vertex -0.00554241985 -0.0329650044 -0.0119373091
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619973568 0.00712514762 -0.012882188
vertex -0.00554241985 -0.0329650044 -0.0119373091
vertex -0.00904458947 0.00293594948 -0.0116376197
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00620628009 -0.0307127293 -0.0118967975
vertex -0.00168019475 -0.0353947729 -0.0117649594
vertex 0.00469024293 -0.0258794762 -0.0128043657
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00620628009 -0.0307127293 -0.0118967975
vertex 0.00469024293 -0.0258794762 -0.0128043657
vertex 0.00948811043 0.0037748625 -0.0100879287
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00620628009 -0.0307127293 -0.0118967975
vertex 0.00948811043 0.0037748625 -0.0100879287
vertex 0.00859882869 -0.0320471004 -0.00950245839
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00620628009 -0.0307127293 -0.0118967975
vertex 0.00859882869 -0.0320471004 -0.00950245839
vertex 0.00814419705 -0.0339711122 -0.00865195692
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00620628009 -0.0307127293 -0.0118967975
vertex 0.00814419705 -0.0339711122 -0.00865195692
vertex -0.00168019475 -0.0353947729 -0.0117649594
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00420491258 -0.0350654013 -0.0115261674
vertex -0.00554241985 -0.0329650044 -0.0119373091
vertex -0.00168019475 -0.0353947729 -0.0117649594
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00420491258 -0.0350654013 -0.0115261674
vertex -0.00168019475 -0.0353947729 -0.0117649594
vertex -0.00298846234 -0.0356077217 -0.00239999988
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00549842604 0.00772650121 -0.0118709719
vertex 0.00948811043 0.0037748625 -0.0100879287
vertex 0.00469024293 -0.0258794762 -0.0128043657
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00549842604 0.00772650121 -0.0118709719
vertex 0.00469024293 -0.0258794762 -0.0128043657
vertex -0.00245324406 0.00911482889 -0.0130123673
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00549842604 0.00772650121 -0.0118709719
vertex -0.00245324406 0.00911482889 -0.0130123673
vertex 0.0052414448 0.00945578981 -0.010652706
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00549842604 0.00772650121 -0.0118709719
vertex 0.0052414448 0.00945578981 -0.010652706
vertex 0.00948811043 0.0037748625 -0.0100879287
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00984699838 -0.00731367478 -0.00898697134
vertex -0.00904458947 0.00293594948 -0.0116376197
vertex -0.00554241985 -0.0329650044 -0.0119373091
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00870714523 0.00640626019 -0.00598953292
vertex 0.00948811043 0.0037748625 -0.0100879287
vertex 0.0052414448 0.00945578981 -0.010652706
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00870714523 0.00640626019 -0.00598953292
vertex 0.0052414448 0.00945578981 -0.010652706
vertex 0.0052414448 0.00945578981 -0.0013472935
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00979297794 -0.000237770757 -0.0017522797
vertex 0.00767573016 0.00588637171 -0.000752015447
vertex 0.0037693365 -0.026172813 0.000955631083
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00979297794 -0.000237770757 -0.0017522797
vertex 0.0037693365 -0.026172813 0.000955631083
vertex 0.00732633192 -0.0312311966 -0.000836168358
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0108619863 0.000361838116 -0.0082310643
vertex 0.00859882869 -0.0320471004 -0.00950245839
vertex 0.00948811043 0.0037748625 -0.0100879287
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00588553818 -0.0330666415 -0.00239999988
vertex -0.00554241985 -0.0329650044 -0.0119373091
vertex -0.00420491258 -0.0350654013 -0.0115261674
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00588553818 -0.0330666415 -0.00239999988
vertex -0.00479577668 -0.0338946246 5.21540588e-11
vertex -0.00923808385 -0.0071737715 -0.0015976117
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00588553818 -0.0330666415 -0.00239999988
vertex -0.00923808385 -0.0071737715 -0.0015976117
vertex -0.010015429 -0.00735280709 -0.00449603936
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00588553818 -0.0330666415 -0.00239999988
vertex -0.010015429 -0.00735280709 -0.00449603936
vertex -0.00984699838 -0.00731367478 -0.00898697134
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00588553818 -0.0330666415 -0.00239999988
vertex -0.00984699838 -0.00731367478 -0.00898697134
vertex -0.00554241985 -0.0329650044 -0.0119373091
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00950312894 0.00461286493 -0.00238404726
vertex 0.00870714523 0.00640626019 -0.00598953292
vertex 0.0052414448 0.00945578981 -0.0013472935
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00950312894 0.00461286493 -0.00238404726
vertex 0.0052414448 0.00945578981 -0.0013472935
vertex 0.00767573016 0.00588637171 -0.000752015447
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00950312894 0.00461286493 -0.00238404726
vertex 0.00767573016 0.00588637171 -0.000752015447
vertex 0.00979297794 -0.000237770757 -0.0017522797
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00950312894 0.00461286493 -0.00238404726
vertex 0.00979297794 -0.000237770757 -0.0017522797
vertex 0.0110836849 0.000444926991 -0.00464487588
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00358415442 -0.0352738127 -0.000235040148
vertex -0.00298846234 -0.0356077217 -0.00239999988
vertex -0.00118642545 -0.0351593159 -0.000115798735
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00358415442 -0.0352738127 -0.000235040148
vertex -0.00118642545 -0.0351593159 -0.000115798735
vertex -0.00479577668 -0.0338946246 5.21540588e-11
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00358415442 -0.0352738127 -0.000235040148
vertex -0.00479577668 -0.0338946246 5.21540588e-11
vertex -0.00588553818 -0.0330666415 -0.00239999988
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00358415442 -0.0352738127 -0.000235040148
vertex -0.00588553818 -0.0330666415 -0.00239999988
vertex -0.00420491258 -0.0350654013 -0.0115261674
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00358415442 -0.0352738127 -0.000235040148
vertex -0.00420491258 -0.0350654013 -0.0115261674
vertex -0.00298846234 -0.0356077217 -0.00239999988
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00749985129 -0.0333133452 -0.00187939638
vertex 0.00732633192 -0.0312311966 -0.000836168358
vertex -0.00118642545 -0.0351593159 -0.000115798735
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00749985129 -0.0333133452 -0.00187939638
vertex -0.00118642545 -0.0351593159 -0.000115798735
vertex 0.00867131725 -0.0342117175 -0.00454189023
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00749985129 -0.0333133452 -0.00187939638
vertex 0.00867131725 -0.0342117175 -0.00454189023
vertex 0.00732633192 -0.0312311966 -0.000836168358
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00411645509 0.00903278124 9.35034404e-05
vertex 0.00767573016 0.00588637171 -0.000752015447
vertex 0.0052414448 0.00945578981 -0.0013472935
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00411645509 0.00903278124 9.35034404e-05
vertex 0.0052414448 0.00945578981 -0.0013472935
vertex -0.000471164734 0.00943676289 0.00084743608
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00411645509 0.00903278124 9.35034404e-05
vertex -0.000471164734 0.00943676289 0.00084743608
vertex 0.0037693365 -0.026172813 0.000955631083
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00411645509 0.00903278124 9.35034404e-05
vertex 0.0037693365 -0.026172813 0.000955631083
vertex 0.00767573016 0.00588637171 -0.000752015447
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00954843778 0.000176081609 -0.00115589425
vertex -0.010015429 -0.00735280709 -0.00449603936
vertex -0.00923808385 -0.0071737715 -0.0015976117
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00954843778 0.000176081609 -0.00115589425
vertex -0.00923808385 -0.0071737715 -0.0015976117
vertex -0.00479577668 -0.0338946246 5.21540588e-11
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00954843778 0.000176081609 -0.00115589425
vertex -0.00479577668 -0.0338946246 5.21540588e-11
vertex -0.00823408179 0.00469105458 0.000259628578
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00954843778 0.000176081609 -0.00115589425
vertex -0.00823408179 0.00469105458 0.000259628578
vertex -0.00904458947 0.00293594948 -0.0116376197
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00954843778 0.000176081609 -0.00115589425
vertex -0.00904458947 0.00293594948 -0.0116376197
vertex -0.00984699838 -0.00731367478 -0.00898697134
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00954843778 0.000176081609 -0.00115589425
vertex -0.00984699838 -0.00731367478 -0.00898697134
vertex -0.010015429 -0.00735280709 -0.00449603936
endloop
endfacet
endsolid AssimpScene

BIN
assets/inspire_hand/meshes/Link21_R.STL

546
assets/inspire_hand/meshes/Link21_R.STL.convex.stl

@ -0,0 +1,546 @@
solid AssimpScene
facet normal 0 0 0
outer loop
vertex 0.0110836849 -0.000444926991 -0.00735513913
vertex 0.00970043056 0.000281998888 -0.0103491098
vertex 0.00733216526 0.0312348269 -0.0111587103
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0110836849 -0.000444926991 -0.00735513913
vertex 0.00733216526 0.0312348269 -0.0111587103
vertex 0.00867131911 0.0342117138 -0.00745810941
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00867131911 0.0342117138 -0.00745810941
vertex -0.00273384899 0.0356388651 -0.00959999952
vertex -0.00216788356 0.0354665518 -0.000235040148
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00867131911 0.0342117138 -0.00745810941
vertex 0.00858414825 0.0320373364 -0.00246613892
vertex 0.0108623253 -0.000362016901 -0.00376997283
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00867131911 0.0342117138 -0.00745810941
vertex 0.0108623253 -0.000362016901 -0.00376997283
vertex 0.0110836849 -0.000444926991 -0.00735513913
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00246302434 -0.00911326054 0.00101274764
vertex -9.02905376e-05 -0.00956364162 -0.00135544734
vertex 0.0052414448 -0.00945578888 -0.0013472935
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00246302434 -0.00911326054 0.00101274764
vertex -0.00137330801 -0.00934251398 -0.0129493466
vertex -9.02905376e-05 -0.00956364162 -0.00135544734
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00470032962 0.0260484722 0.000795508327
vertex -0.00216788356 0.0354665518 -0.000235040148
vertex -0.00557526108 0.0328458734 -6.26900655e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00950685237 -0.00380186713 -0.00194311794
vertex 0.00858414825 0.0320373364 -0.00246613892
vertex 0.00566976098 0.0318848938 -0.000330381503
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00950685237 -0.00380186713 -0.00194311794
vertex 0.00566976098 0.0318848938 -0.000330381503
vertex 0.00470032962 0.0260484722 0.000795508327
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0052414448 -0.00945578888 -0.010652706
vertex 0.0052414448 -0.00945578888 -0.0013472935
vertex -9.02905376e-05 -0.00956364162 -0.00135544734
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0052414448 -0.00945578888 -0.010652706
vertex -9.02905376e-05 -0.00956364162 -0.00135544734
vertex -0.00137330801 -0.00934251398 -0.0129493466
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.010015429 0.00735280709 -0.00750395935
vertex -0.00984698441 0.00731367059 -0.0030129645
vertex -0.00557526108 0.0328458734 -6.26900655e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.010015429 0.00735280709 -0.00750395935
vertex -0.00557526108 0.0328458734 -6.26900655e-05
vertex -0.0059219948 0.0329344086 -0.00959999952
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.010015429 0.00735280709 -0.00750395935
vertex -0.00859412923 -0.00402176147 -0.0120279966
vertex -0.0090445755 -0.00293598743 -0.000362366845
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00118642545 0.0351593159 -0.0118842013
vertex 0.00733216526 0.0312348269 -0.0111587103
vertex 0.0037693365 0.026172813 -0.0129556311
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00118642545 0.0351593159 -0.0118842013
vertex 0.0037693365 0.026172813 -0.0129556311
vertex -0.00450870115 0.0342126004 -0.0120000001
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00118642545 0.0351593159 -0.0118842013
vertex -0.00450870115 0.0342126004 -0.0120000001
vertex -0.00273384899 0.0356388651 -0.00959999952
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00118642545 0.0351593159 -0.0118842013
vertex -0.00273384899 0.0356388651 -0.00959999952
vertex 0.00867131911 0.0342117138 -0.00745810941
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00814419705 0.0339711122 -0.00334804319
vertex 0.00858414825 0.0320373364 -0.00246613892
vertex 0.00867131911 0.0342117138 -0.00745810941
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00814419705 0.0339711122 -0.00334804319
vertex 0.00867131911 0.0342117138 -0.00745810941
vertex -0.00216788356 0.0354665518 -0.000235040148
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00579818152 -0.00760784978 -0.0105823008
vertex -0.00137330801 -0.00934251398 -0.0129493466
vertex -0.00246302434 -0.00911326054 0.00101274764
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00611000136 -0.00720144203 -0.0128938593
vertex -0.00137330801 -0.00934251398 -0.0129493466
vertex -0.00579818152 -0.00760784978 -0.0105823008
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00611000136 -0.00720144203 -0.0128938593
vertex -0.00450870115 0.0342126004 -0.0120000001
vertex 0.0037693365 0.026172813 -0.0129556311
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00611000136 -0.00720144203 -0.0128938593
vertex 0.0037693365 0.026172813 -0.0129556311
vertex -0.00137330801 -0.00934251398 -0.0129493466
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619969796 -0.00712518021 0.000882193504
vertex -0.0090445755 -0.00293598743 -0.000362366845
vertex -0.00859412923 -0.00402176147 -0.0120279966
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619969796 -0.00712518021 0.000882193504
vertex -0.00859412923 -0.00402176147 -0.0120279966
vertex -0.00611000136 -0.00720144203 -0.0128938593
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619969796 -0.00712518021 0.000882193504
vertex -0.00611000136 -0.00720144203 -0.0128938593
vertex -0.00579818152 -0.00760784978 -0.0105823008
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619969796 -0.00712518021 0.000882193504
vertex -0.00579818152 -0.00760784978 -0.0105823008
vertex -0.00246302434 -0.00911326054 0.00101274764
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619969796 -0.00712518021 0.000882193504
vertex -0.00246302434 -0.00911326054 0.00101274764
vertex 0.00470032962 0.0260484722 0.000795508327
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619969796 -0.00712518021 0.000882193504
vertex 0.00470032962 0.0260484722 0.000795508327
vertex -0.00557526108 0.0328458734 -6.26900655e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00619969796 -0.00712518021 0.000882193504
vertex -0.00557526108 0.0328458734 -6.26900655e-05
vertex -0.0090445755 -0.00293598743 -0.000362366845
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00566976098 0.0318848938 -0.000330381503
vertex -0.00216788356 0.0354665518 -0.000235040148
vertex 0.00470032962 0.0260484722 0.000795508327
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00566976098 0.0318848938 -0.000330381503
vertex 0.00858414825 0.0320373364 -0.00246613892
vertex 0.00814419705 0.0339711122 -0.00334804319
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00566976098 0.0318848938 -0.000330381503
vertex 0.00814419705 0.0339711122 -0.00334804319
vertex -0.00216788356 0.0354665518 -0.000235040148
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00458956463 -0.00775821414 0.000137225317
vertex 0.00950685237 -0.00380186713 -0.00194311794
vertex 0.00470032962 0.0260484722 0.000795508327
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00458956463 -0.00775821414 0.000137225317
vertex 0.00470032962 0.0260484722 0.000795508327
vertex -0.00246302434 -0.00911326054 0.00101274764
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00458956463 -0.00775821414 0.000137225317
vertex -0.00246302434 -0.00911326054 0.00101274764
vertex 0.0052414448 -0.00945578888 -0.0013472935
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00458956463 -0.00775821414 0.000137225317
vertex 0.0052414448 -0.00945578888 -0.0013472935
vertex 0.00950685237 -0.00380186713 -0.00194311794
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00984698441 0.00731367059 -0.0030129645
vertex -0.010015429 0.00735280709 -0.00750395935
vertex -0.0090445755 -0.00293598743 -0.000362366845
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00984698441 0.00731367059 -0.0030129645
vertex -0.0090445755 -0.00293598743 -0.000362366845
vertex -0.00557526108 0.0328458734 -6.26900655e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00915175769 -0.00541536883 -0.00935241766
vertex 0.0110836849 -0.000444926991 -0.00735513913
vertex 0.0108623253 -0.000362016901 -0.00376997283
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00915175769 -0.00541536883 -0.00935241766
vertex 0.0108623253 -0.000362016901 -0.00376997283
vertex 0.00950685237 -0.00380186713 -0.00194311794
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00915175769 -0.00541536883 -0.00935241766
vertex 0.00950685237 -0.00380186713 -0.00194311794
vertex 0.0052414448 -0.00945578888 -0.0013472935
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00915175769 -0.00541536883 -0.00935241766
vertex 0.0052414448 -0.00945578888 -0.0013472935
vertex 0.0052414448 -0.00945578888 -0.010652706
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00915175769 -0.00541536883 -0.00935241766
vertex 0.0052414448 -0.00945578888 -0.010652706
vertex 0.00762665784 -0.00583287515 -0.0112889735
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00970043056 0.000281998888 -0.0103491098
vertex 0.0110836849 -0.000444926991 -0.00735513913
vertex 0.00915175769 -0.00541536883 -0.00935241766
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00970043056 0.000281998888 -0.0103491098
vertex 0.00915175769 -0.00541536883 -0.00935241766
vertex 0.00762665784 -0.00583287515 -0.0112889735
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00970043056 0.000281998888 -0.0103491098
vertex 0.00762665784 -0.00583287515 -0.0112889735
vertex 0.0037693365 0.026172813 -0.0129556311
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00970043056 0.000281998888 -0.0103491098
vertex 0.0037693365 0.026172813 -0.0129556311
vertex 0.00733216526 0.0312348269 -0.0111587103
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00439190213 0.0349471308 -0.000473832159
vertex -0.00557526108 0.0328458734 -6.26900655e-05
vertex -0.00216788356 0.0354665518 -0.000235040148
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00439190213 0.0349471308 -0.000473832159
vertex -0.00216788356 0.0354665518 -0.000235040148
vertex -0.00273384899 0.0356388651 -0.00959999952
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00439190213 0.0349471308 -0.000473832159
vertex -0.00273384899 0.0356388651 -0.00959999952
vertex -0.00450870115 0.0342126004 -0.0120000001
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00439190213 0.0349471308 -0.000473832159
vertex -0.00450870115 0.0342126004 -0.0120000001
vertex -0.0059219948 0.0329344086 -0.00959999952
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00439190213 0.0349471308 -0.000473832159
vertex -0.0059219948 0.0329344086 -0.00959999952
vertex -0.00557526108 0.0328458734 -6.26900655e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00583793502 0.0324119031 -0.0117649594
vertex -0.00450870115 0.0342126004 -0.0120000001
vertex -0.00611000136 -0.00720144203 -0.0128938593
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00583793502 0.0324119031 -0.0117649594
vertex -0.00611000136 -0.00720144203 -0.0128938593
vertex -0.00859412923 -0.00402176147 -0.0120279966
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00583793502 0.0324119031 -0.0117649594
vertex -0.00859412923 -0.00402176147 -0.0120279966
vertex -0.010015429 0.00735280709 -0.00750395935
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00583793502 0.0324119031 -0.0117649594
vertex -0.010015429 0.00735280709 -0.00750395935
vertex -0.0059219948 0.0329344086 -0.00959999952
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00583793502 0.0324119031 -0.0117649594
vertex -0.0059219948 0.0329344086 -0.00959999952
vertex -0.00450870115 0.0342126004 -0.0120000001
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0108623253 -0.000362016901 -0.00376997283
vertex 0.00858414825 0.0320373364 -0.00246613892
vertex 0.00950685237 -0.00380186713 -0.00194311794
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00411645509 -0.0090327803 -0.0120935012
vertex 0.00762665784 -0.00583287515 -0.0112889735
vertex 0.0052414448 -0.00945578888 -0.010652706
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00411645509 -0.0090327803 -0.0120935012
vertex 0.0052414448 -0.00945578888 -0.010652706
vertex -0.00137330801 -0.00934251398 -0.0129493466
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00411645509 -0.0090327803 -0.0120935012
vertex -0.00137330801 -0.00934251398 -0.0129493466
vertex 0.0037693365 0.026172813 -0.0129556311
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00411645509 -0.0090327803 -0.0120935012
vertex 0.0037693365 0.026172813 -0.0129556311
vertex 0.00762665784 -0.00583287515 -0.0112889735
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00749682449 0.0333158225 -0.0101199131
vertex 0.00733216526 0.0312348269 -0.0111587103
vertex -0.00118642545 0.0351593159 -0.0118842013
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00749682449 0.0333158225 -0.0101199131
vertex -0.00118642545 0.0351593159 -0.0118842013
vertex 0.00867131911 0.0342117138 -0.00745810941
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00749682449 0.0333158225 -0.0101199131
vertex 0.00867131911 0.0342117138 -0.00745810941
vertex 0.00733216526 0.0312348269 -0.0111587103
endloop
endfacet
endsolid AssimpScene

BIN
assets/inspire_hand/meshes/Link22_L.STL

626
assets/inspire_hand/meshes/Link22_L.STL.convex.stl

@ -0,0 +1,626 @@
solid AssimpScene
facet normal 0 0 0
outer loop
vertex -0.000620731618 0.00541405519 -0.00214476418
vertex 0.00449590292 0.00763689075 -0.00197592867
vertex 0.00399954524 0.00772637874 -0.00795300771
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000620731618 0.00541405519 -0.00214476418
vertex 0.00399954524 0.00772637874 -0.00795300771
vertex 0.000424946018 0.00627886783 -0.00792301539
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.0044268351 -0.0322108492 -0.00499999989
vertex -0.00301018823 0.00065022608 -0.00200673961
vertex -0.0026906007 0.0019602722 -0.0079932604
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000620731618 0.00541405519 -0.00214476418
vertex 0.00399830472 -0.00144497002 0.00133481983
vertex 0.00449590292 0.00763689075 -0.00197592867
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000620731618 0.00541405519 -0.00214476418
vertex -0.0026906007 0.0019602722 -0.0079932604
vertex -0.00301018823 0.00065022608 -0.00200673961
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000424946018 0.00627886783 -0.00792301539
vertex -0.0026906007 0.0019602722 -0.0079932604
vertex -0.000620731618 0.00541405519 -0.00214476418
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000424946018 0.00627886783 -0.00792301539
vertex 0.00399830472 -0.00144497002 -0.0113348197
vertex -0.000313410972 -0.00404750742 -0.0104054036
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000424946018 0.00627886783 -0.00792301539
vertex -0.000313410972 -0.00404750742 -0.0104054036
vertex -0.0026906007 0.0019602722 -0.0079932604
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00621925993 0.00676024007 -0.00802407134
vertex 0.00451228907 0.00777152041 -0.00655000005
vertex 0.00449590292 0.00763689075 -0.00197592867
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00684741791 0.00597661454 -0.00214476418
vertex 0.00621925993 0.00676024007 -0.00802407134
vertex 0.00449590292 0.00763689075 -0.00197592867
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00716874702 -0.000724797661 0.000906558998
vertex 0.00983401109 -0.00297323661 -0.00100598682
vertex 0.00684741791 0.00597661454 -0.00214476418
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00716874702 -0.000724797661 0.000906558998
vertex 0.00684741791 0.00597661454 -0.00214476418
vertex 0.00449590292 0.00763689075 -0.00197592867
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00716874702 -0.000724797661 0.000906558998
vertex 0.00449590292 0.00763689075 -0.00197592867
vertex 0.00399830472 -0.00144497002 0.00133481983
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00716874702 -0.000724797661 0.000906558998
vertex 0.00578834303 -0.0208070129 -0.000150235006
vertex 0.00784449745 -0.0195092522 -0.00136756524
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00716874702 -0.000724797661 0.000906558998
vertex 0.00784449745 -0.0195092522 -0.00136756524
vertex 0.00983401109 -0.00297323661 -0.00100598682
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00716874702 -0.000724797661 -0.0109065594
vertex 0.00621925993 0.00676024007 -0.00802407134
vertex 0.0098417215 -0.00292899809 -0.00896925386
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00716874702 -0.000724797661 -0.0109065594
vertex 0.0098417215 -0.00292899809 -0.00896925386
vertex 0.00765117025 -0.0167496912 -0.00928046182
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00154150021 -0.0369406752 -0.00257229945
vertex -0.00159868796 -0.0357633345 -0.000914852193
vertex -0.000420921337 -0.0374701358 -0.00501046702
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00154150021 -0.0369406752 -0.00257229945
vertex -0.000420921337 -0.0374701358 -0.00501046702
vertex 0.00257614674 -0.0367346704 -0.00501046702
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00154150021 -0.0369406752 -0.00257229945
vertex 0.00257614674 -0.0367346704 -0.00501046702
vertex 0.00322755706 -0.0347205065 -0.00198169984
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00154150021 -0.0369406752 -0.00257229945
vertex 0.00322755706 -0.0347205065 -0.00198169984
vertex -0.00159868796 -0.0357633345 -0.000914852193
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00302059087 -0.0357560329 -0.00498953229
vertex -0.00202913512 -0.0355549455 -0.0089844279
vertex -0.000420921337 -0.0374701358 -0.00501046702
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00302059087 -0.0357560329 -0.00498953229
vertex -0.000420921337 -0.0374701358 -0.00501046702
vertex -0.00159868796 -0.0357633345 -0.000914852193
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00302059087 -0.0357560329 -0.00498953229
vertex -0.0044268351 -0.0322108492 -0.00499999989
vertex -0.00202913512 -0.0355549455 -0.0089844279
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0107919974 -0.00369101367 -0.00499996869
vertex 0.00983401109 -0.00297323661 -0.00100598682
vertex 0.00784449745 -0.0195092522 -0.00136756524
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0107919974 -0.00369101367 -0.00499996869
vertex 0.00784449745 -0.0195092522 -0.00136756524
vertex 0.00864904933 -0.0192879438 -0.00395921897
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0107919974 -0.00369101367 -0.00499996869
vertex 0.0098417215 -0.00292899809 -0.00896925386
vertex 0.00621925993 0.00676024007 -0.00802407134
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0107919974 -0.00369101367 -0.00499996869
vertex 0.00621925993 0.00676024007 -0.00802407134
vertex 0.00684741791 0.00597661454 -0.00214476418
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0107919974 -0.00369101367 -0.00499996869
vertex 0.00684741791 0.00597661454 -0.00214476418
vertex 0.00983401109 -0.00297323661 -0.00100598682
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00369461509 -0.0290614646 -0.00127628434
vertex -0.00301018823 0.00065022608 -0.00200673961
vertex -0.0044268351 -0.0322108492 -0.00499999989
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000572681369 -0.0369183198 -0.00782407355
vertex -0.000420921337 -0.0374701358 -0.00501046702
vertex -0.00202913512 -0.0355549455 -0.0089844279
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000572681369 -0.0369183198 -0.00782407355
vertex -0.00202913512 -0.0355549455 -0.0089844279
vertex 0.00217980309 -0.0353009887 -0.00865814555
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000572681369 -0.0369183198 -0.00782407355
vertex 0.00217980309 -0.0353009887 -0.00865814555
vertex 0.00358761172 -0.0350559726 -0.00674667163
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000572681369 -0.0369183198 -0.00782407355
vertex 0.00358761172 -0.0350559726 -0.00674667163
vertex 0.00257614674 -0.0367346704 -0.00501046702
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000572681369 -0.0369183198 -0.00782407355
vertex 0.00257614674 -0.0367346704 -0.00501046702
vertex -0.000420921337 -0.0374701358 -0.00501046702
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00794922467 -0.0206090417 -0.00777530856
vertex 0.00765117025 -0.0167496912 -0.00928046182
vertex 0.0098417215 -0.00292899809 -0.00896925386
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00794922467 -0.0206090417 -0.00777530856
vertex 0.0098417215 -0.00292899809 -0.00896925386
vertex 0.0107919974 -0.00369101367 -0.00499996869
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00794922467 -0.0206090417 -0.00777530856
vertex 0.0107919974 -0.00369101367 -0.00499996869
vertex 0.00864904933 -0.0192879438 -0.00395921897
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00794922467 -0.0206090417 -0.00777530856
vertex 0.00217980309 -0.0353009887 -0.00865814555
vertex 0.00765117025 -0.0167496912 -0.00928046182
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00399954524 0.00772637874 -0.00795300771
vertex 0.00451228907 0.00777152041 -0.00655000005
vertex 0.00621925993 0.00676024007 -0.00802407134
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00399954524 0.00772637874 -0.00795300771
vertex 0.00621925993 0.00676024007 -0.00802407134
vertex 0.00716874702 -0.000724797661 -0.0109065594
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00399954524 0.00772637874 -0.00795300771
vertex 0.00716874702 -0.000724797661 -0.0109065594
vertex 0.00399830472 -0.00144497002 -0.0113348197
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00399954524 0.00772637874 -0.00795300771
vertex 0.00399830472 -0.00144497002 -0.0113348197
vertex 0.000424946018 0.00627886783 -0.00792301539
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00399954524 0.00772637874 -0.00795300771
vertex 0.00449590292 0.00763689075 -0.00197592867
vertex 0.00451228907 0.00777152041 -0.00655000005
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00370620866 -0.0301329885 -0.00868304726
vertex -0.00220466289 -0.0275486708 -0.0103293415
vertex -0.00202913512 -0.0355549455 -0.0089844279
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00370620866 -0.0301329885 -0.00868304726
vertex -0.00202913512 -0.0355549455 -0.0089844279
vertex -0.0044268351 -0.0322108492 -0.00499999989
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00370620866 -0.0301329885 -0.00868304726
vertex -0.0044268351 -0.0322108492 -0.00499999989
vertex -0.0026906007 0.0019602722 -0.0079932604
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00370620866 -0.0301329885 -0.00868304726
vertex -0.0026906007 0.0019602722 -0.0079932604
vertex -0.00220466289 -0.0275486708 -0.0103293415
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00111844286 -0.0287368521 -0.0103536993
vertex 0.00765117025 -0.0167496912 -0.00928046182
vertex 0.00217980309 -0.0353009887 -0.00865814555
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00111844286 -0.0287368521 -0.0103536993
vertex 0.00217980309 -0.0353009887 -0.00865814555
vertex -0.00202913512 -0.0355549455 -0.0089844279
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00111844286 -0.0287368521 -0.0103536993
vertex -0.00202913512 -0.0355549455 -0.0089844279
vertex -0.00220466289 -0.0275486708 -0.0103293415
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00111844286 -0.0287368521 -0.0103536993
vertex -0.00220466289 -0.0275486708 -0.0103293415
vertex 0.00399830472 -0.00144497002 -0.0113348197
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00111844286 -0.0287368521 -0.0103536993
vertex 0.00399830472 -0.00144497002 -0.0113348197
vertex 0.00716874702 -0.000724797661 -0.0109065594
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00111844286 -0.0287368521 -0.0103536993
vertex 0.00716874702 -0.000724797661 -0.0109065594
vertex 0.00765117025 -0.0167496912 -0.00928046182
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00784449745 -0.0195092522 -0.00136756524
vertex 0.00578834303 -0.0208070129 -0.000150235006
vertex 0.00322755706 -0.0347205065 -0.00198169984
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00784449745 -0.0195092522 -0.00136756524
vertex 0.00322755706 -0.0347205065 -0.00198169984
vertex 0.00864904933 -0.0192879438 -0.00395921897
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000313410972 -0.00404750742 0.000405404135
vertex -0.00178322627 -0.0294491332 0.000425221719
vertex 0.00399830472 -0.00144497002 0.00133481983
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000313410972 -0.00404750742 0.000405404135
vertex 0.00399830472 -0.00144497002 0.00133481983
vertex -0.000620731618 0.00541405519 -0.00214476418
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000313410972 -0.00404750742 0.000405404135
vertex -0.000620731618 0.00541405519 -0.00214476418
vertex -0.00301018823 0.00065022608 -0.00200673961
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000313410972 -0.00404750742 0.000405404135
vertex -0.00301018823 0.00065022608 -0.00200673961
vertex -0.00369461509 -0.0290614646 -0.00127628434
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000313410972 -0.00404750742 0.000405404135
vertex -0.00369461509 -0.0290614646 -0.00127628434
vertex -0.00178322627 -0.0294491332 0.000425221719
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000313410972 -0.00404750742 -0.0104054036
vertex 0.00399830472 -0.00144497002 -0.0113348197
vertex -0.00220466289 -0.0275486708 -0.0103293415
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000313410972 -0.00404750742 -0.0104054036
vertex -0.00220466289 -0.0275486708 -0.0103293415
vertex -0.0026906007 0.0019602722 -0.0079932604
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00358761172 -0.0350559726 -0.00674667163
vertex 0.00217980309 -0.0353009887 -0.00865814555
vertex 0.00794922467 -0.0206090417 -0.00777530856
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00358761172 -0.0350559726 -0.00674667163
vertex 0.00794922467 -0.0206090417 -0.00777530856
vertex 0.00864904933 -0.0192879438 -0.00395921897
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00358761172 -0.0350559726 -0.00674667163
vertex 0.00864904933 -0.0192879438 -0.00395921897
vertex 0.00322755706 -0.0347205065 -0.00198169984
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00358761172 -0.0350559726 -0.00674667163
vertex 0.00322755706 -0.0347205065 -0.00198169984
vertex 0.00257614674 -0.0367346704 -0.00501046702
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00159868796 -0.0357633345 -0.000914852193
vertex -0.00178322627 -0.0294491332 0.000425221719
vertex -0.00369461509 -0.0290614646 -0.00127628434
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00159868796 -0.0357633345 -0.000914852193
vertex -0.00369461509 -0.0290614646 -0.00127628434
vertex -0.00350565487 -0.0339018703 -0.0021057087
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00350565487 -0.0339018703 -0.0021057087
vertex -0.00369461509 -0.0290614646 -0.00127628434
vertex -0.0044268351 -0.0322108492 -0.00499999989
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00350565487 -0.0339018703 -0.0021057087
vertex -0.0044268351 -0.0322108492 -0.00499999989
vertex -0.00302059087 -0.0357560329 -0.00498953229
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00350565487 -0.0339018703 -0.0021057087
vertex -0.00302059087 -0.0357560329 -0.00498953229
vertex -0.00159868796 -0.0357633345 -0.000914852193
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00179571763 -0.0305631813 -3.98206721e-05
vertex 0.00322755706 -0.0347205065 -0.00198169984
vertex 0.00578834303 -0.0208070129 -0.000150235006
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00179571763 -0.0305631813 -3.98206721e-05
vertex 0.00578834303 -0.0208070129 -0.000150235006
vertex 0.00716874702 -0.000724797661 0.000906558998
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00179571763 -0.0305631813 -3.98206721e-05
vertex 0.00716874702 -0.000724797661 0.000906558998
vertex 0.00399830472 -0.00144497002 0.00133481983
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00179571763 -0.0305631813 -3.98206721e-05
vertex 0.00399830472 -0.00144497002 0.00133481983
vertex -0.00178322627 -0.0294491332 0.000425221719
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00179571763 -0.0305631813 -3.98206721e-05
vertex -0.00178322627 -0.0294491332 0.000425221719
vertex -0.00159868796 -0.0357633345 -0.000914852193
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00179571763 -0.0305631813 -3.98206721e-05
vertex -0.00159868796 -0.0357633345 -0.000914852193
vertex 0.00322755706 -0.0347205065 -0.00198169984
endloop
endfacet
endsolid AssimpScene

BIN
assets/inspire_hand/meshes/Link22_R.STL

626
assets/inspire_hand/meshes/Link22_R.STL.convex.stl

@ -0,0 +1,626 @@
solid AssimpScene
facet normal 0 0 0
outer loop
vertex -0.00178322615 0.0294491332 0.000425221719
vertex 0.00399830472 0.00144497002 0.00133481983
vertex 0.00716874655 0.000724797661 0.000906558998
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00178322615 0.0294491332 0.000425221719
vertex 0.00716874655 0.000724797661 0.000906558998
vertex 0.00572999008 0.020759929 -0.000123515827
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00178322615 0.0294491332 0.000425221719
vertex 0.00572999008 0.020759929 -0.000123515827
vertex 0.00179571763 0.0305631813 -3.98206721e-05
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00442683464 0.0322108492 -0.00499999989
vertex -0.00269060046 -0.0019602722 -0.0079932604
vertex -0.003010188 -0.00065022608 -0.00200673961
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000620731618 -0.00541405519 -0.00214476418
vertex 0.00449590292 -0.00763689075 -0.00197592867
vertex 0.00399830472 0.00144497002 0.00133481983
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000620731618 -0.00541405519 -0.00214476418
vertex -0.003010188 -0.00065022608 -0.00200673961
vertex -0.00269060046 -0.0019602722 -0.0079932604
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00042494596 -0.00627886783 -0.00792301539
vertex 0.00399954524 -0.00772637874 -0.00795300771
vertex 0.00449590292 -0.00763689075 -0.00197592867
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00042494596 -0.00627886783 -0.00792301539
vertex 0.00449590292 -0.00763689075 -0.00197592867
vertex -0.000620731618 -0.00541405519 -0.00214476418
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00042494596 -0.00627886783 -0.00792301539
vertex -0.000620731618 -0.00541405519 -0.00214476418
vertex -0.00269060046 -0.0019602722 -0.0079932604
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00042494596 -0.00627886783 -0.00792301539
vertex -0.00269060046 -0.0019602722 -0.0079932604
vertex -0.000313784782 0.00404747901 -0.0104052192
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00042494596 -0.00627886783 -0.00792301539
vertex -0.000313784782 0.00404747901 -0.0104052192
vertex 0.00399830472 0.00144497002 -0.0113348197
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00621925946 -0.00676024007 -0.00802407134
vertex 0.00449590292 -0.00763689075 -0.00197592867
vertex 0.00451228861 -0.00777152041 -0.00655000005
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00684741745 -0.00597661454 -0.00214476418
vertex 0.00449590292 -0.00763689075 -0.00197592867
vertex 0.00621925946 -0.00676024007 -0.00802407134
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00716874655 0.000724797661 0.000906558998
vertex 0.00399830472 0.00144497002 0.00133481983
vertex 0.00449590292 -0.00763689075 -0.00197592867
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00716874655 0.000724797661 0.000906558998
vertex 0.00449590292 -0.00763689075 -0.00197592867
vertex 0.00684741745 -0.00597661454 -0.00214476418
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00716874655 0.000724797661 0.000906558998
vertex 0.00684741745 -0.00597661454 -0.00214476418
vertex 0.00982958917 0.00296913739 -0.000999847078
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00716874655 0.000724797661 0.000906558998
vertex 0.00982958917 0.00296913739 -0.000999847078
vertex 0.00784468744 0.0195092093 -0.00136782846
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00716874655 0.000724797661 0.000906558998
vertex 0.00784468744 0.0195092093 -0.00136782846
vertex 0.00572999008 0.020759929 -0.000123515827
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00716874655 0.000724797661 -0.0109065594
vertex 0.00983742345 0.00292518805 -0.00897551514
vertex 0.00621925946 -0.00676024007 -0.00802407134
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00716874655 0.000724797661 -0.0109065594
vertex 0.00764033338 0.0167477541 -0.00928799529
vertex 0.00983742345 0.00292518805 -0.00897551514
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00154150021 0.0369406752 -0.00257229945
vertex 0.00322755682 0.0347205065 -0.00198169984
vertex 0.00254756794 0.0367584564 -0.00501046702
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00154150021 0.0369406752 -0.00257229945
vertex 0.00254756794 0.0367584564 -0.00501046702
vertex -0.000420921278 0.0374701358 -0.00501046702
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00154150021 0.0369406752 -0.00257229945
vertex -0.000420921278 0.0374701358 -0.00501046702
vertex -0.00159872253 0.0357632451 -0.000914807082
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00154150021 0.0369406752 -0.00257229945
vertex -0.00159872253 0.0357632451 -0.000914807082
vertex 0.00322755682 0.0347205065 -0.00198169984
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00301370677 0.0357657261 -0.00498953229
vertex -0.00159872253 0.0357632451 -0.000914807082
vertex -0.000420921278 0.0374701358 -0.00501046702
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00301370677 0.0357657261 -0.00498953229
vertex -0.000420921278 0.0374701358 -0.00501046702
vertex -0.00202873861 0.0355547331 -0.00898484141
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00301370677 0.0357657261 -0.00498953229
vertex -0.00202873861 0.0355547331 -0.00898484141
vertex -0.00442683464 0.0322108492 -0.00499999989
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0107918605 0.00369099947 -0.00499476632
vertex 0.00864649843 0.0192871764 -0.00393117871
vertex 0.00784468744 0.0195092093 -0.00136782846
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0107918605 0.00369099947 -0.00499476632
vertex 0.00784468744 0.0195092093 -0.00136782846
vertex 0.00982958917 0.00296913739 -0.000999847078
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0107918605 0.00369099947 -0.00499476632
vertex 0.00982958917 0.00296913739 -0.000999847078
vertex 0.00684741745 -0.00597661454 -0.00214476418
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0107918605 0.00369099947 -0.00499476632
vertex 0.00684741745 -0.00597661454 -0.00214476418
vertex 0.00621925946 -0.00676024007 -0.00802407134
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.0107918605 0.00369099947 -0.00499476632
vertex 0.00621925946 -0.00676024007 -0.00802407134
vertex 0.00983742345 0.00292518805 -0.00897551514
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00369461486 0.0290614646 -0.00127628434
vertex -0.00442683464 0.0322108492 -0.00499999989
vertex -0.003010188 -0.00065022608 -0.00200673961
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000572681427 0.0369183198 -0.00782407355
vertex 0.00217980286 0.0353009887 -0.00865814555
vertex -0.00202873861 0.0355547331 -0.00898484141
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000572681427 0.0369183198 -0.00782407355
vertex -0.00202873861 0.0355547331 -0.00898484141
vertex -0.000420921278 0.0374701358 -0.00501046702
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000572681427 0.0369183198 -0.00782407355
vertex -0.000420921278 0.0374701358 -0.00501046702
vertex 0.00254756794 0.0367584564 -0.00501046702
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000572681427 0.0369183198 -0.00782407355
vertex 0.00254756794 0.0367584564 -0.00501046702
vertex 0.00358808646 0.0350547694 -0.00674667116
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.000572681427 0.0369183198 -0.00782407355
vertex 0.00358808646 0.0350547694 -0.00674667116
vertex 0.00217980286 0.0353009887 -0.00865814555
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00794922467 0.0206090417 -0.00777530856
vertex 0.00864649843 0.0192871764 -0.00393117871
vertex 0.0107918605 0.00369099947 -0.00499476632
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00794922467 0.0206090417 -0.00777530856
vertex 0.0107918605 0.00369099947 -0.00499476632
vertex 0.00983742345 0.00292518805 -0.00897551514
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00794922467 0.0206090417 -0.00777530856
vertex 0.00983742345 0.00292518805 -0.00897551514
vertex 0.00764033338 0.0167477541 -0.00928799529
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00794922467 0.0206090417 -0.00777530856
vertex 0.00764033338 0.0167477541 -0.00928799529
vertex 0.00217980286 0.0353009887 -0.00865814555
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00399954524 -0.00772637874 -0.00795300771
vertex 0.00042494596 -0.00627886783 -0.00792301539
vertex 0.00399830472 0.00144497002 -0.0113348197
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00399954524 -0.00772637874 -0.00795300771
vertex 0.00399830472 0.00144497002 -0.0113348197
vertex 0.00716874655 0.000724797661 -0.0109065594
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00399954524 -0.00772637874 -0.00795300771
vertex 0.00716874655 0.000724797661 -0.0109065594
vertex 0.00621925946 -0.00676024007 -0.00802407134
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00399954524 -0.00772637874 -0.00795300771
vertex 0.00621925946 -0.00676024007 -0.00802407134
vertex 0.00451228861 -0.00777152041 -0.00655000005
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00399954524 -0.00772637874 -0.00795300771
vertex 0.00451228861 -0.00777152041 -0.00655000005
vertex 0.00449590292 -0.00763689075 -0.00197592867
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00370620866 0.0301329885 -0.00868304726
vertex -0.00442683464 0.0322108492 -0.00499999989
vertex -0.00202873861 0.0355547331 -0.00898484141
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00370620866 0.0301329885 -0.00868304726
vertex -0.00202873861 0.0355547331 -0.00898484141
vertex -0.00220466265 0.0275486708 -0.0103293415
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00370620866 0.0301329885 -0.00868304726
vertex -0.00220466265 0.0275486708 -0.0103293415
vertex -0.00269060046 -0.0019602722 -0.0079932604
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00370620866 0.0301329885 -0.00868304726
vertex -0.00269060046 -0.0019602722 -0.0079932604
vertex -0.00442683464 0.0322108492 -0.00499999989
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00784468744 0.0195092093 -0.00136782846
vertex 0.00864649843 0.0192871764 -0.00393117871
vertex 0.00322755682 0.0347205065 -0.00198169984
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00784468744 0.0195092093 -0.00136782846
vertex 0.00322755682 0.0347205065 -0.00198169984
vertex 0.00572999008 0.020759929 -0.000123515827
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00111844286 0.0287368521 -0.0103536993
vertex -0.00220466265 0.0275486708 -0.0103293415
vertex -0.00202873861 0.0355547331 -0.00898484141
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00111844286 0.0287368521 -0.0103536993
vertex -0.00202873861 0.0355547331 -0.00898484141
vertex 0.00217980286 0.0353009887 -0.00865814555
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00111844286 0.0287368521 -0.0103536993
vertex 0.00217980286 0.0353009887 -0.00865814555
vertex 0.00764033338 0.0167477541 -0.00928799529
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00111844286 0.0287368521 -0.0103536993
vertex 0.00764033338 0.0167477541 -0.00928799529
vertex 0.00716874655 0.000724797661 -0.0109065594
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00111844286 0.0287368521 -0.0103536993
vertex 0.00716874655 0.000724797661 -0.0109065594
vertex 0.00399830472 0.00144497002 -0.0113348197
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00111844286 0.0287368521 -0.0103536993
vertex 0.00399830472 0.00144497002 -0.0113348197
vertex -0.00220466265 0.0275486708 -0.0103293415
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000313784782 0.00404747901 0.000405219267
vertex -0.003010188 -0.00065022608 -0.00200673961
vertex -0.000620731618 -0.00541405519 -0.00214476418
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000313784782 0.00404747901 0.000405219267
vertex -0.000620731618 -0.00541405519 -0.00214476418
vertex 0.00399830472 0.00144497002 0.00133481983
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000313784782 0.00404747901 0.000405219267
vertex 0.00399830472 0.00144497002 0.00133481983
vertex -0.00178322615 0.0294491332 0.000425221719
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000313784782 0.00404747901 0.000405219267
vertex -0.00178322615 0.0294491332 0.000425221719
vertex -0.00369461486 0.0290614646 -0.00127628434
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000313784782 0.00404747901 0.000405219267
vertex -0.00369461486 0.0290614646 -0.00127628434
vertex -0.003010188 -0.00065022608 -0.00200673961
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000313784782 0.00404747901 -0.0104052192
vertex -0.00220466265 0.0275486708 -0.0103293415
vertex 0.00399830472 0.00144497002 -0.0113348197
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.000313784782 0.00404747901 -0.0104052192
vertex -0.00269060046 -0.0019602722 -0.0079932604
vertex -0.00220466265 0.0275486708 -0.0103293415
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00358808646 0.0350547694 -0.00674667116
vertex 0.00254756794 0.0367584564 -0.00501046702
vertex 0.00322755682 0.0347205065 -0.00198169984
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00358808646 0.0350547694 -0.00674667116
vertex 0.00322755682 0.0347205065 -0.00198169984
vertex 0.00864649843 0.0192871764 -0.00393117871
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00358808646 0.0350547694 -0.00674667116
vertex 0.00864649843 0.0192871764 -0.00393117871
vertex 0.00794922467 0.0206090417 -0.00777530856
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00358808646 0.0350547694 -0.00674667116
vertex 0.00794922467 0.0206090417 -0.00777530856
vertex 0.00217980286 0.0353009887 -0.00865814555
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00350565673 0.0339018591 -0.00210570847
vertex -0.00442683464 0.0322108492 -0.00499999989
vertex -0.00369461486 0.0290614646 -0.00127628434
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00350565673 0.0339018591 -0.00210570847
vertex -0.00369461486 0.0290614646 -0.00127628434
vertex -0.00178322615 0.0294491332 0.000425221719
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00350565673 0.0339018591 -0.00210570847
vertex -0.00178322615 0.0294491332 0.000425221719
vertex -0.00159872253 0.0357632451 -0.000914807082
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00350565673 0.0339018591 -0.00210570847
vertex -0.00159872253 0.0357632451 -0.000914807082
vertex -0.00301370677 0.0357657261 -0.00498953229
endloop
endfacet
facet normal 0 0 0
outer loop
vertex -0.00350565673 0.0339018591 -0.00210570847
vertex -0.00301370677 0.0357657261 -0.00498953229
vertex -0.00442683464 0.0322108492 -0.00499999989
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00179571763 0.0305631813 -3.98206721e-05
vertex 0.00572999008 0.020759929 -0.000123515827
vertex 0.00322755682 0.0347205065 -0.00198169984
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00179571763 0.0305631813 -3.98206721e-05
vertex 0.00322755682 0.0347205065 -0.00198169984
vertex -0.00159872253 0.0357632451 -0.000914807082
endloop
endfacet
facet normal 0 0 0
outer loop
vertex 0.00179571763 0.0305631813 -3.98206721e-05
vertex -0.00159872253 0.0357632451 -0.000914807082
vertex -0.00178322615 0.0294491332 0.000425221719
endloop
endfacet
endsolid AssimpScene

BIN
assets/inspire_hand/meshes/R_hand_base_link.STL

1554
assets/inspire_hand/meshes/R_hand_base_link.STL.convex.stl
File diff suppressed because it is too large
View File

BIN
assets/inspire_hand/meshes/left_ankle_pitch_link.STL

BIN
assets/inspire_hand/meshes/left_ankle_roll_link.STL

BIN
assets/inspire_hand/meshes/left_elbow_pitch_link.STL

BIN
assets/inspire_hand/meshes/left_elbow_roll_link.STL

BIN
assets/inspire_hand/meshes/left_hand_link.STL

BIN
assets/inspire_hand/meshes/left_hip_pitch_link.STL

BIN
assets/inspire_hand/meshes/left_hip_roll_link.STL

BIN
assets/inspire_hand/meshes/left_hip_yaw_link.STL

BIN
assets/inspire_hand/meshes/left_knee_link.STL

BIN
assets/inspire_hand/meshes/left_shoulder_pitch_link.STL

BIN
assets/inspire_hand/meshes/left_shoulder_roll_link.STL

BIN
assets/inspire_hand/meshes/left_shoulder_yaw_link.STL

BIN
assets/inspire_hand/meshes/left_wrist_pitch_link.STL

BIN
assets/inspire_hand/meshes/logo_link.STL

BIN
assets/inspire_hand/meshes/pelvis.STL

BIN
assets/inspire_hand/meshes/right_ankle_pitch_link.STL

BIN
assets/inspire_hand/meshes/right_ankle_roll_link.STL

BIN
assets/inspire_hand/meshes/right_elbow_pitch_link.STL

BIN
assets/inspire_hand/meshes/right_elbow_roll_link.STL

BIN
assets/inspire_hand/meshes/right_hand_link.STL

BIN
assets/inspire_hand/meshes/right_hip_pitch_link.STL

BIN
assets/inspire_hand/meshes/right_hip_roll_link.STL

BIN
assets/inspire_hand/meshes/right_hip_yaw_link.STL

BIN
assets/inspire_hand/meshes/right_knee_link.STL

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save