├── .gitignore
├── demos
├── demo_display_bolt_gepetto.py
├── demo_display_bolt_humanoid_gepetto.py
├── demo_display_bolt_humanoid_meshcat.py
├── demo_display_bolt_meshcat.py
├── demo_simulate_bolt.py
└── demo_simulate_bolt_humanoid.py
├── license.txt
├── package.xml
├── readme.md
├── setup.cfg
├── setup.py
└── src
└── robot_properties_bolt
├── __init__.py
├── bolt_humanoid_wrapper.py
├── bolt_wrapper.py
├── config.py
├── gepetto_gui_loader.py
├── resources.py
└── resources
├── __init__.py
├── dynamic_graph_manager
├── dgm_parameters_bolt.yaml
└── dgm_parameters_bolt_humanoid.yaml
├── impedance_ctrl.yaml
├── meshes
├── checker_blue.png
├── obj
│ ├── bolt_body.obj
│ ├── bolt_foot.obj
│ ├── bolt_hip_fe_left_side.obj
│ ├── bolt_hip_fe_right_side.obj
│ ├── bolt_lower_leg_left_side.obj
│ ├── bolt_lower_leg_right_side.obj
│ ├── bolt_shoulder_fe_left_side.obj
│ ├── bolt_shoulder_fe_right_side.obj
│ ├── bolt_trunk.obj
│ ├── bolt_upper_leg_left_side.obj
│ └── bolt_upper_leg_right_side.obj
├── plane.mtl
├── plane.obj
└── stl
│ ├── bolt_body.stl
│ ├── bolt_foot.stl
│ ├── bolt_hip_fe_left_side.stl
│ ├── bolt_hip_fe_right_side.stl
│ ├── bolt_lower_leg_left_side.stl
│ ├── bolt_lower_leg_right_side.stl
│ ├── bolt_shoulder_fe_left_side.stl
│ ├── bolt_shoulder_fe_right_side.stl
│ ├── bolt_trunk.stl
│ ├── bolt_upper_leg_left_side.stl
│ ├── bolt_upper_leg_right_side.stl
│ ├── lower_leg_200mm_left_side.stl
│ ├── lower_leg_200mm_right_side.stl
│ ├── upper_leg_200mm_left_side.stl
│ └── upper_leg_200mm_right_side.stl
├── odri_control_interface
├── bolt_driver.yaml
└── bolt_humanoid_driver.yaml
├── robot_properties_bolt
└── xacro
├── arm.xacro
├── bolt.urdf.xacro
├── bolt.xacro
├── bolt_humanoid.urdf.xacro
├── bolt_humanoid.xacro
├── bolt_passive_ankle.urdf.xacro
├── leg.xacro
├── plane_with_restitution.urdf.xacro
└── upper_body.xacro
/.gitignore:
--------------------------------------------------------------------------------
1 | # urdfs
2 | *.urdf
3 |
4 | # Mac
5 | .DS_Store
6 |
7 | # plots
8 | *.eps
9 |
10 | # mujoco
11 | mjkey.txt
12 | MUJOCO_LOG.TXT
13 |
14 | # Byte-compiled / optimized / DLL files
15 | __pycache__/
16 | *.py[cod]
17 | *$py.class
18 |
19 | # C extensions
20 | *.so
21 |
22 | # Distribution / packaging
23 | .Python
24 | build/
25 | develop-eggs/
26 | dist/
27 | downloads/
28 | eggs/
29 | .eggs/
30 | lib/
31 | lib64/
32 | parts/
33 | sdist/
34 | var/
35 | wheels/
36 | *.egg-info/
37 | .installed.cfg
38 | *.egg
39 | MANIFEST
40 |
41 | # PyInstaller
42 | # Usually these files are written by a python script from a template
43 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
44 | *.manifest
45 | *.spec
46 |
47 | # Installer logs
48 | pip-log.txt
49 | pip-delete-this-directory.txt
50 |
51 | # Unit test / coverage reports
52 | htmlcov/
53 | .tox/
54 | .nox/
55 | .coverage
56 | .coverage.*
57 | .cache
58 | nosetests.xml
59 | coverage.xml
60 | *.cover
61 | .hypothesis/
62 | .pytest_cache/
63 |
64 | # Translations
65 | *.mo
66 | *.pot
67 |
68 | # Django stuff:
69 | *.log
70 | local_settings.py
71 | db.sqlite3
72 |
73 | # Flask stuff:
74 | instance/
75 | .webassets-cache
76 |
77 | # Scrapy stuff:
78 | .scrapy
79 |
80 | # Sphinx documentation
81 | docs/_build/
82 |
83 | # PyBuilder
84 | target/
85 |
86 | # Jupyter Notebook
87 | .ipynb_checkpoints
88 |
89 | # IPython
90 | profile_default/
91 | ipython_config.py
92 |
93 | # pyenv
94 | .python-version
95 |
96 | # celery beat schedule file
97 | celerybeat-schedule
98 |
99 | # SageMath parsed files
100 | *.sage.py
101 |
102 | # Environments
103 | .env
104 | .venv
105 | env/
106 | venv/
107 | ENV/
108 | env.bak/
109 | venv.bak/
110 |
111 | # Spyder project settings
112 | .spyderproject
113 | .spyproject
114 |
115 | # Rope project settings
116 | .ropeproject
117 |
118 | # mkdocs documentation
119 | /site
120 |
121 | # mypy
122 | .mypy_cache/
123 | .dmypy.json
124 | dmypy.json
--------------------------------------------------------------------------------
/demos/demo_display_bolt_gepetto.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | """ @namespace Basic loading and visualization for the Bolt robot using gepetto viewer.
3 | @file demo_display_bolt.py
4 | @copyright Copyright (c) 2021,
5 | New York University and Max Planck Gesellschaft,
6 | License BSD-3-Clause
7 | @example demo_display_bolt.py
8 | """
9 |
10 | import time
11 | from robot_properties_bolt.config import BoltConfig
12 |
13 |
14 | if __name__ == "__main__":
15 | # Load the robot urdf.
16 | robot = BoltConfig.buildRobotWrapper()
17 |
18 | # Setup the display (connection to gepetto viewer) and load the robot model.
19 | robot.initViewer(loadModel=True)
20 |
21 | # Create a first initial position for the robot. Both legs are bent inwards.
22 | q = BoltConfig.initial_configuration
23 |
24 | # q[[4]] = 0.6
25 | # Turn the legs outside
26 | q[10] = -0.5 # Right leg
27 | q[7] = 0.5 # Left leg
28 |
29 | # Display the configuration in the viewer.
30 | robot.display(q)
31 |
32 | # Example of moving the robot forward and updating the display every time.
33 | for i in range(10):
34 | q[0] += 0.05
35 | robot.display(q)
36 | time.sleep(0.2)
37 |
--------------------------------------------------------------------------------
/demos/demo_display_bolt_humanoid_gepetto.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | """ @namespace Basic loading and visualization for the Bolt robot using gepetto viewer.
3 | @file demo_display_bolt.py
4 | @copyright Copyright (c) 2021,
5 | New York University and Max Planck Gesellschaft,
6 | License BSD-3-Clause
7 | @example demo_display_bolt.py
8 | """
9 |
10 | import time
11 | from robot_properties_bolt.config import BoltHumanoidConfig
12 |
13 |
14 | if __name__ == "__main__":
15 | # Load the robot urdf.
16 | robot = BoltHumanoidConfig.buildRobotWrapper()
17 |
18 | # Setup the display (connection to gepetto viewer) and load the robot model.
19 | robot.initViewer(loadModel=True)
20 |
21 | # Create a first initial position for the robot. Both legs are bent inwards.
22 | q = BoltHumanoidConfig.initial_configuration
23 |
24 | # q[[4]] = 0.6
25 | # Turn the legs outside
26 | q[10] = -0.5 # Right leg
27 | q[7] = 0.5 # Left leg
28 |
29 | # Display the configuration in the viewer.
30 | robot.display(q)
31 |
32 | # Example of moving the robot forward and updating the display every time.
33 | for i in range(10):
34 | q[0] += 0.05
35 | robot.display(q)
36 | time.sleep(0.2)
37 |
--------------------------------------------------------------------------------
/demos/demo_display_bolt_humanoid_meshcat.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | """ @namespace Basic loading and visualization for the Bolt robot using meshcat.
3 | @file demo_display_bolt_meshcat.py
4 | @copyright Copyright (c) 2021,
5 | New York University and Max Planck Gesellschaft,
6 | License BSD-3-Clause
7 | @example demo_display_bolt_meshcat.py
8 | """
9 |
10 | import sys
11 | import pinocchio as pin
12 | import time
13 | from robot_properties_bolt.config import BoltHumanoidConfig
14 |
15 | if __name__ == "__main__":
16 |
17 | # Load the robot urdf.
18 | robot = BoltHumanoidConfig.buildRobotWrapper()
19 |
20 | viz = pin.visualize.MeshcatVisualizer(
21 | robot.model, robot.collision_model, robot.visual_model
22 | )
23 |
24 | try:
25 | viz.initViewer(open=True)
26 | except ImportError as err:
27 | print(
28 | "Error while initializing the viewer. ",
29 | "It seems you should install Python meshcat"
30 | )
31 | print(err)
32 | sys.exit(0)
33 |
34 | viz.loadViewerModel()
35 | # Create a first initial position for the robot. Both legs are bent inwards.
36 | q = BoltHumanoidConfig.initial_configuration
37 |
38 | # q[[4]] = 0.6
39 | # Turn the legs outside
40 | q[10] = -0.1 # Right leg
41 | q[7] = 0.1 # Left leg
42 |
43 | viz.display(q)
44 |
45 | # Example of moving the robot forward and updating the display every time.
46 | for i in range(500):
47 | q[0] += 0.002
48 | viz.display(q)
49 | time.sleep(0.01)
50 |
--------------------------------------------------------------------------------
/demos/demo_display_bolt_meshcat.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | """ @namespace Basic loading and visualization for the Bolt robot using meshcat.
3 | @file demo_display_bolt_meshcat.py
4 | @copyright Copyright (c) 2021,
5 | New York University and Max Planck Gesellschaft,
6 | License BSD-3-Clause
7 | @example demo_display_bolt_meshcat.py
8 | """
9 |
10 | import sys
11 | import pinocchio as pin
12 | import time
13 | from robot_properties_bolt.config import BoltConfig
14 |
15 | if __name__ == "__main__":
16 |
17 | # Load the robot urdf.
18 | robot = BoltConfig.buildRobotWrapper()
19 |
20 | viz = pin.visualize.MeshcatVisualizer(
21 | robot.model, robot.collision_model, robot.visual_model
22 | )
23 |
24 | try:
25 | viz.initViewer(open=True)
26 | except ImportError as err:
27 | print(
28 | "Error while initializing the viewer. ",
29 | "It seems you should install Python meshcat"
30 | )
31 | print(err)
32 | sys.exit(0)
33 |
34 | viz.loadViewerModel()
35 | # Create a first initial position for the robot. Both legs are bent inwards.
36 | q = BoltConfig.initial_configuration
37 |
38 | # q[[4]] = 0.6
39 | # Turn the legs outside
40 | q[10] = -0.5 # Right leg
41 | q[7] = 0.5 # Left leg
42 |
43 | viz.display(q)
44 |
45 | # Example of moving the robot forward and updating the display every time.
46 | for i in range(500):
47 | q[0] += 0.002
48 | viz.display(q)
49 | time.sleep(0.01)
50 |
--------------------------------------------------------------------------------
/demos/demo_simulate_bolt.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | """demo_simulate_bolt
3 |
4 | Basic Simulation for the Bolt robot in Pybullet.
5 |
6 | License: BSD 3-Clause License
7 | Copyright (C) 2018-2021, New York University , Max Planck Gesellschaft
8 | Copyright note valid unless otherwise stated in individual files.
9 | All rights reserved.
10 |
11 | - 1. Building the workspace by executing `colcon build` in the workspace.
12 | - 2. "source ./install/setup.bash" is called from the root of the catkin
13 | workspace.
14 | - 3. Run the demo
15 |
16 | """
17 |
18 | from math import sin
19 | import numpy as np
20 | from bullet_utils.env import BulletEnvWithGround
21 | from robot_properties_bolt.bolt_wrapper import BoltRobot, BoltConfig
22 |
23 |
24 | if __name__ == "__main__":
25 | # Create a robot instance. This initializes the simulator as well.
26 | env = BulletEnvWithGround()
27 | robot = BoltRobot(use_fixed_base=True)
28 | env.add_robot(robot)
29 |
30 | # Initialize the control torques.
31 | tau = np.zeros(robot.nb_dof)
32 |
33 | # Reset the robot to some initial state.
34 | q0 = BoltConfig.initial_configuration
35 | q0.fill(0.0)
36 | q0[2] = 0.5
37 | q0[6] = 1.0
38 | dq0 = BoltConfig.initial_velocity
39 | robot.reset_state(q0, dq0)
40 |
41 | # Run the simulator for 100 steps
42 | for i in range(50000):
43 | q, dq = robot.get_state()
44 |
45 | t = float(i) * 0.001
46 | kp = 5.0
47 | kd = 0.2
48 |
49 | q_target = np.array(BoltConfig.initial_configuration[7:]) + 0.5 * sin(
50 | t * np.pi
51 | )
52 |
53 | tau = kp * (q_target - q[7:]) - kd * dq[6:]
54 |
55 | robot.send_joint_command(tau)
56 |
57 | # Step the simulator.
58 | # You can use sleep here if you want to slow down the replay
59 | env.step(sleep=True)
60 |
61 | # Read the final state and forces after the stepping.
62 | q, dq = robot.get_state()
63 | active_eff, forces = robot.get_force()
64 | print("q", q)
65 | print("dq", dq)
66 | print("active eff", active_eff)
67 | print("forces", forces)
68 |
--------------------------------------------------------------------------------
/demos/demo_simulate_bolt_humanoid.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | """demo_simulate_bolt
3 |
4 | Basic Simulation for the BoltHumanoid robot in Pysbullet.
5 |
6 | License: BSD 3-Clause License
7 | Copyright (C) 2018-2021, New York University , Max Planck Gesellschaft
8 | Copyright note valid unless otherwise stated in individual files.
9 | All rights reserved.
10 |
11 | - 1. Building the workspace by executing `colcon build` in the workspace.
12 | - 2. "source ./install/setup.bash" is called from the root of the catkin
13 | workspace.
14 | - 3. Run the demo
15 |
16 | """
17 |
18 | from math import sin
19 | import numpy as np
20 | from bullet_utils.env import BulletEnvWithGround
21 | from robot_properties_bolt.bolt_humanoid_wrapper import BoltHumanoidRobot, BoltHumanoidConfig
22 |
23 |
24 | if __name__ == "__main__":
25 | # Create a robot instance. This initializes the simulator as well.
26 | env = BulletEnvWithGround()
27 | robot = BoltHumanoidRobot(use_fixed_base=True)
28 | env.add_robot(robot)
29 |
30 | # Initialize the control torques.
31 | tau = np.zeros(robot.nb_dof)
32 |
33 | # Reset the robot to some initial state.
34 | q0 = BoltHumanoidConfig.initial_configuration
35 | q0.fill(0.0)
36 | q0[2] = 0.5
37 | q0[6] = 1.0
38 | dq0 = BoltHumanoidConfig.initial_velocity
39 | robot.reset_state(q0, dq0)
40 |
41 | # Run the simulator for 100 steps
42 | for i in range(50000):
43 | q, dq = robot.get_state()
44 |
45 | t = float(i) * 0.001
46 | kp = 5.0
47 | kd = 0.2
48 |
49 | q_target = np.array(BoltHumanoidConfig.initial_configuration[7:]) + 0.5 * sin(
50 | t * np.pi
51 | )
52 |
53 | tau = kp * (q_target - q[7:]) - kd * dq[6:]
54 |
55 | robot.send_joint_command(tau)
56 |
57 | # Step the simulator.
58 | # You can use sleep here if you want to slow down the replay
59 | env.step(sleep=True)
60 |
61 | # Read the final state and forces after the stepping.
62 | q, dq = robot.get_state()
63 | active_eff, forces = robot.get_force()
64 | print("q", q)
65 | print("dq", dq)
66 | print("active eff", active_eff)
67 | print("forces", forces)
68 |
--------------------------------------------------------------------------------
/license.txt:
--------------------------------------------------------------------------------
1 | BSD 3-Clause License
2 |
3 | Copyright (c) 2020, New York University and Max Planck Gesellshaft.
4 | All rights reserved.
5 |
6 | Redistribution and use in source and binary forms, with or without
7 | modification, are permitted provided that the following conditions are met:
8 |
9 | 1. Redistributions of source code must retain the above copyright notice, this
10 | list of conditions and the following disclaimer.
11 |
12 | 2. Redistributions in binary form must reproduce the above copyright notice,
13 | this list of conditions and the following disclaimer in the documentation
14 | and/or other materials provided with the distribution.
15 |
16 | 3. Neither the name of the copyright holder nor the names of its
17 | contributors may be used to endorse or promote products derived from
18 | this software without specific prior written permission.
19 |
20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 |
--------------------------------------------------------------------------------
/package.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | robot_properties_bolt
6 |
7 | 1.0.0
8 |
9 |
10 | URDFs of the Bolt robot and configurations files of different
11 | application like controllers, planners and so forth.
12 |
13 |
14 | Elham Daneshmand
15 | Elham Daneshmand
16 | Maximilien Naveau
17 |
18 | BSD-3-clause
19 |
20 | ament_python
21 |
22 | pybullet
23 | bullet_utils
24 | pinocchio
25 | xacro
26 |
27 | ament_copyright
28 | ament_flake8
29 | ament_pep257
30 | python3-pytest
31 |
32 |
33 | ament_python
34 |
35 |
36 |
--------------------------------------------------------------------------------
/readme.md:
--------------------------------------------------------------------------------
1 | Robot Properties Bolt
2 | ---------------------
3 |
4 | URDF and Pinocchio integration of the Bolt robot.
5 |
6 | ### Installation
7 |
8 | #### Standard dependencies
9 |
10 | This package is based on [ROS2](https://docs.ros.org/) based on dashing release and [Pinocchio](https://stack-of-tasks.github.io/pinocchio/).
11 |
12 | To install Pinocchio, the simplest way is using [Conda](https://docs.conda.io/en/latest/):
13 |
14 | ```
15 | conda install -c conda-forge pinocchio
16 | ```
17 |
18 | Alternatively you can use any of the ways listed [here](https://stack-of-tasks.github.io/pinocchio/download.html).
19 |
20 | #### Download the package
21 |
22 | Use the [treep_machines_in_motion](https://github.com/machines-in-motion/treep_machines_in_motion) configuration.
23 |
24 | Do not forget to **register your ssh public key in your settings**:
25 |
26 | In short:
27 | ```
28 | mkdir -p ~/devel
29 | pip install treep
30 | cd ~/devel
31 | git clone git@github.com:machines-in-motion/treep_machines_in_motion.git
32 | treep --clone ROBOT_PROPERTIES_BOLT
33 | ```
34 |
35 |
36 | ### Usage
37 |
38 | #### Demos/Examples
39 |
40 | Below are some examples.
41 |
42 | **Loading Bolt in PyBullet**
43 |
44 | ```
45 | import pybullet as p
46 | from bullet_utils.env import BulletEnvWithGround
47 | from robot_properties_bolt.bolt_wrapper import BoltRobot
48 |
49 | env = BulletEnvWithGround(p.GUI)
50 | robot = env.add_robot(BoltRobot)
51 | ```
52 |
53 | **Run simulation on Max-Planck Institute cluster**
54 |
55 | ```
56 | conda create -n bolt python=3.7
57 | source activate bolt
58 | conda install -c conda-forge pinocchio
59 |
60 | git clone git@github.com:machines-in-motion/bullet_utils.git
61 | cd bullet_utils
62 | pip3 install .
63 |
64 | git clone git@github.com:open-dynamic-robot-initiative/robot_properties_bolt.git
65 | cd robot_properties_bolt
66 | pip3 install .
67 | ```
68 | You find demos of Bolt on [gepetto-viewer](https://github.com/Gepetto/gepetto-viewer), [Meshcat](https://github.com/rdeits/meshcat-python) and [PyBullet](https://pybullet.org/wordpress/) in the`demos/` folder.
69 |
70 |
71 | ### License and Copyrights
72 |
73 | License BSD-3-Clause
74 | Copyright (c) 2019, New York University and Max Planck Gesellschaft.
75 |
76 |
77 |
--------------------------------------------------------------------------------
/setup.cfg:
--------------------------------------------------------------------------------
1 | [develop]
2 | script-dir=$base/lib/robot_properties_bolt
3 | [install]
4 | install-scripts=$base/lib/robot_properties_bolt
5 |
--------------------------------------------------------------------------------
/setup.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | """setup.py
3 | License BSD-3-Clause
4 | Copyright (c) 2021, New York University and Max Planck Gesellschaft.
5 | """
6 |
7 | import sys
8 | from os import path, walk
9 | from shutil import rmtree
10 | from pathlib import Path
11 | from setuptools import setup
12 | from setuptools.command.build_py import build_py
13 |
14 |
15 | # Defines the paramters of this package:
16 | package_name = "robot_properties_bolt"
17 | package_version = "1.0.0"
18 |
19 |
20 | def print_error(*args, **kwargs):
21 | """ Print in stderr. """
22 | print(*args, file=sys.stderr, **kwargs)
23 |
24 |
25 | def find_resources(package_name):
26 | """ Find the relative path of files under the resource folder. """
27 | resources = []
28 | package_dir = path.join("src", package_name)
29 | resources_dir = path.join(package_dir, "resources")
30 |
31 | for (root, _, files) in walk(resources_dir):
32 | for afile in files:
33 | if (
34 | afile != package_name
35 | and not afile.endswith(".DS_Store")
36 | and not afile.endswith(".py")
37 | ):
38 | rel_dir = path.relpath(root, package_dir)
39 | src = path.join(rel_dir, afile)
40 | resources.append(src)
41 | return resources
42 |
43 |
44 | # Long description from the readme.
45 | with open(
46 | path.join(path.dirname(path.realpath(__file__)), "readme.md"), "r"
47 | ) as fh:
48 | long_description = fh.read()
49 |
50 | # Find the resource files.
51 | resources = find_resources(package_name)
52 | print_error("resources = ", resources)
53 |
54 | # Install the package.xml.
55 | data_files_to_install = [(path.join("share", package_name), ["package.xml"])]
56 | data_files_to_install += [
57 | (
58 | "share/ament_index/resource_index/packages",
59 | [path.join("src", package_name, "resources", package_name)],
60 | )
61 | ]
62 |
63 | # Install nodes and demos.
64 | scripts_list = []
65 | for (root, _, files) in walk(path.join("demos")):
66 | for demo_file in files:
67 | scripts_list.append(path.join(root, demo_file))
68 |
69 |
70 | class custom_build_py(build_py):
71 | def _build_doc(self):
72 | """Build the documentation if the mpi_cmake_module is installed."""
73 | # Try to build the doc and install it.
74 | try:
75 | # Get the mpi_cmake_module build doc method
76 | from mpi_cmake_modules.documentation_builder import (
77 | build_documentation,
78 | )
79 |
80 | build_documentation(
81 | str((Path(self.build_lib) / package_name / "doc").absolute()),
82 | str(Path(__file__).parent.absolute()),
83 | package_version,
84 | )
85 | except ImportError as e:
86 | print_error()
87 |
88 | def _build_xacro(self):
89 | """ Look for the xacro files and build them in the build folder. """
90 | resources_dir = str(
91 | Path(__file__).parent.absolute()
92 | / "src"
93 | / package_name
94 | / "resources"
95 | )
96 | build_folder = str(
97 | (
98 | Path(self.build_lib) / package_name / "resources" / "urdf"
99 | ).absolute()
100 | )
101 | xacro_files = []
102 | for (root, _, files) in walk(str(Path(resources_dir) / "xacro")):
103 | for afile in files:
104 | if afile.endswith(".urdf.xacro"):
105 | xacro_files.append(str(Path(root) / afile))
106 |
107 | # rebuild all urdfs.
108 | rmtree(build_folder, ignore_errors=True)
109 | Path(build_folder).mkdir(parents=True, exist_ok=True)
110 |
111 | for xacro_file in xacro_files:
112 | for xacro_file in xacro_files:
113 | # Generated file name
114 | generated_urdf_path = str(
115 | Path(build_folder) / Path(xacro_file).stem
116 | )
117 | self._build_single_xacro_file(xacro_file, generated_urdf_path)
118 |
119 | def _build_single_xacro_file(self, input_path, output_path):
120 | from xacro import process_file, open_output
121 | from xacro.xmlutils import xml
122 |
123 | unicode = str
124 | encoding = {}
125 | print_error(
126 | "building xacro file (", input_path, ") into (", output_path, ")"
127 | )
128 | try:
129 | # open and process file
130 | doc = process_file(input_path)
131 | # open the output file
132 | out = open_output(output_path)
133 |
134 | except xml.parsers.expat.ExpatError as e:
135 | print_error("XML parsing error: %s" % unicode(e), alt_text=None)
136 |
137 | except Exception as e:
138 | msg = unicode(e)
139 | if not msg:
140 | msg = repr(e)
141 | print_error(msg)
142 |
143 | # write output
144 | out.write(doc.toprettyxml(indent=" ", **encoding))
145 | # only close output file, but not stdout
146 | out.close()
147 |
148 | def run(self):
149 | """Build the package. """
150 | # build documentation.
151 | self._build_doc()
152 | # build the xacro files into urdf files.
153 | self._build_xacro()
154 | # distutils uses old-style classes, so no super()
155 | build_py.run(self)
156 |
157 |
158 | # Final setup.
159 | setup(
160 | name=package_name,
161 | version=package_version,
162 | package_dir={package_name: path.join("src", package_name)},
163 | packages=[package_name],
164 | package_data={package_name: resources},
165 | data_files=data_files_to_install,
166 | scripts=scripts_list,
167 | install_requires=[
168 | "setuptools",
169 | "xacro",
170 | "pybullet",
171 | "importlib_resources",
172 | "meshcat",
173 | ],
174 | zip_safe=True,
175 | maintainer="mnaveau",
176 | maintainer_email="mnaveau@tuebingen.mpg.de",
177 | long_description=long_description,
178 | long_description_content_type="text/markdown",
179 | url="https://github.com/open-dynamic-robot-initiative/robot_properties_bolt",
180 | description="Wrapper around the pybullet interface using pinocchio.",
181 | license="BSD-3-clause",
182 | tests_require=["pytest"],
183 | entry_points={
184 | "console_scripts": [],
185 | },
186 | classifiers=[
187 | "Programming Language :: Python :: 3",
188 | "License :: OSI Approved :: BSD-3-clause",
189 | "Operating System :: OS Independent",
190 | ],
191 | python_requires=">=3.6",
192 | cmdclass={"build_py": custom_build_py},
193 | )
194 |
--------------------------------------------------------------------------------
/src/robot_properties_bolt/__init__.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | """@package ci_example_python Contains an example of a python package.
4 | @file __init__.py
5 | """
6 |
7 | __copyright__ = (
8 | "Copyright (c) 2020, New York University and Max Planck Gesellschaft."
9 | )
10 | __license__ = "BSD 3-Clause"
11 | __version__ = "0.0.0"
12 | __status__ = "Done"
13 |
--------------------------------------------------------------------------------
/src/robot_properties_bolt/bolt_humanoid_wrapper.py:
--------------------------------------------------------------------------------
1 | # @namespace robot_properties_bolt.bolt_wrapper
2 | """ This module define the Bolt robot instance. This initializes
3 | the simulator as well.
4 |
5 | @copyright Copyright (c) 2020,
6 | New York University and Max Planck Gesellschaft,
7 | License BSD-3-Clause
8 | """
9 |
10 | import numpy as np
11 | import pybullet
12 | from bullet_utils.wrapper import PinBulletWrapper
13 | from robot_properties_bolt.config import BoltHumanoidConfig
14 |
15 |
16 | class BoltHumanoidRobot(PinBulletWrapper):
17 | def __init__(
18 | self,
19 | pos=None,
20 | orn=None,
21 | init_sliders_pose=4 * [0],
22 | use_fixed_base=False,
23 | is_passive=False
24 | ):
25 | self.is_passive=is_passive
26 |
27 | # Load the robot
28 | if pos is None:
29 | pos = [0.0, 0, 0.40]
30 | if orn is None:
31 | orn = pybullet.getQuaternionFromEuler([0, 0, 0])
32 |
33 | pybullet.setAdditionalSearchPath(BoltHumanoidConfig.resources.package_path)
34 | self.urdf_path = BoltHumanoidConfig.urdf_path
35 | self.simu_urdf_path = BoltHumanoidConfig.simu_urdf_path
36 | if self.is_passive:
37 | self.robotId = pybullet.loadURDF(
38 | self.simu_urdf_path,
39 | pos,
40 | orn,
41 | flags=pybullet.URDF_USE_INERTIA_FROM_FILE,
42 | useFixedBase=use_fixed_base,
43 | )
44 | else:
45 | self.robotId = pybullet.loadURDF(
46 | self.urdf_path,
47 | pos,
48 | orn,
49 | flags=pybullet.URDF_USE_INERTIA_FROM_FILE,
50 | useFixedBase=use_fixed_base,
51 | )
52 |
53 | self.pin_robot = BoltHumanoidConfig.buildRobotWrapper()
54 | if self.is_passive:
55 | self.simu_pin_robot = BoltHumanoidConfig.buildSimuRobotWrapper()
56 |
57 | # Query all the joints.
58 | num_joints = pybullet.getNumJoints(self.robotId)
59 |
60 | for ji in range(num_joints):
61 | pybullet.changeDynamics(
62 | self.robotId,
63 | ji,
64 | linearDamping=0.04,
65 | angularDamping=0.04,
66 | restitution=0.0,
67 | lateralFriction=0.5,
68 | )
69 |
70 | self.slider_a = pybullet.addUserDebugParameter(
71 | "a", 0, 1, init_sliders_pose[0]
72 | )
73 | self.slider_b = pybullet.addUserDebugParameter(
74 | "b", 0, 1, init_sliders_pose[1]
75 | )
76 | self.slider_c = pybullet.addUserDebugParameter(
77 | "c", 0, 1, init_sliders_pose[2]
78 | )
79 | self.slider_d = pybullet.addUserDebugParameter(
80 | "d", 0, 1, init_sliders_pose[3]
81 | )
82 |
83 | self.base_link_name = "base_link"
84 | self.end_eff_ids = []
85 | self.end_effector_names = []
86 | controlled_joints = []
87 | for leg in ["FL", "FR"]:
88 | if self.is_passive:
89 | controlled_joints += [
90 | leg + "_HAA",
91 | leg + "_HFE",
92 | leg + "_KFE",
93 | leg + "_ANKLE",
94 | ]
95 | else:
96 | controlled_joints += [
97 | leg + "_HAA",
98 | leg + "_HFE",
99 | leg + "_KFE",
100 | ]
101 | self.end_eff_ids.append(
102 | self.pin_robot.model.getFrameId(leg + "_ANKLE")
103 | )
104 | self.end_effector_names.append(leg + "_ANKLE")
105 |
106 | # Add trunk rotation joint
107 | controlled_joints += ["TR"]
108 | for arm in ["L", "R"]:
109 | controlled_joints += [
110 | arm + "_SFE",
111 | ]
112 | self.end_eff_ids.append(
113 | self.pin_robot.model.getFrameId(arm + "_WRIST")
114 | )
115 | self.end_effector_names.append(arm + "_WRIST")
116 | self.joint_names = controlled_joints
117 | self.nb_ee = len(self.end_effector_names)
118 |
119 | # Creates the wrapper by calling the super.__init__.
120 | super(BoltHumanoidRobot, self).__init__(
121 | self.robotId,
122 | self.pin_robot,
123 | controlled_joints,
124 | self.end_effector_names,
125 | )
126 |
127 | def get_state(self):
128 | # Returns a pinocchio like representation of the q, dq matrixes
129 |
130 | if self.is_passive:
131 | q_simu, dq_simu = super(BoltHumanoidRobot, self).get_state()
132 | q = np.concatenate([q_simu[0:10], q_simu[11:14]])
133 | dq = np.concatenate([dq_simu[0:9], dq_simu[10:13]])
134 | return q, dq
135 | else:
136 | q, dq = super(BoltHumanoidRobot, self).get_state()
137 | return q, dq
138 |
139 | def _get_state_passive_ankle(self):
140 | # Returns a pinocchio like representation of the q, dq matrixes
141 | return super(BoltHumanoidRobot, self).get_state()
142 |
143 | def reset_state(self, q, dq):
144 | if self.is_passive:
145 | q_simu = np.concatenate([q[0:10], [0.0], q[10:13], [0.0]])
146 | dq_simu = np.concatenate([dq[0:9], [0.0], dq[9:12], [0.0]])
147 | super(BoltHumanoidRobot, self).reset_state(q_simu, dq_simu)
148 | else:
149 | super(BoltHumanoidRobot, self).reset_state(q, dq)
150 |
151 | def reset_to_initial_state(self) -> None:
152 | """Reset state to the initial configuration (based on BoltHumanoidConfig)."""
153 | q0 = np.matrix(BoltHumanoidConfig.initial_configuration).T
154 | dq0 = np.matrix(BoltHumanoidConfig.initial_velocity).T
155 | self.reset_state(q0, dq0)
156 |
157 | def send_joint_command(self, tau):
158 | if self.is_passive:
159 | tau_simu = np.concatenate([tau[0:3], [0.0], tau[3:6], [0.0]])
160 | super(BoltHumanoidRobot, self).send_joint_command(tau_simu)
161 | else:
162 | super(BoltHumanoidRobot, self).send_joint_command(tau)
163 |
164 | def get_slider_position(self, letter):
165 | if letter == "a":
166 | return pybullet.readUserDebugParameter(self.slider_a)
167 | if letter == "b":
168 | return pybullet.readUserDebugParameter(self.slider_b)
169 | if letter == "c":
170 | return pybullet.readUserDebugParameter(self.slider_c)
171 | if letter == "d":
172 | return pybullet.readUserDebugParameter(self.slider_d)
173 |
174 | def forward_robot(self, q=None, dq=None):
175 | if q is None and dq is None:
176 | q, dq = self.get_state()
177 | q_simu, dq_simu = self._get_state_passive_ankle()
178 | elif q is not None or dq is not None:
179 | raise ValueError("Need to provide q and dq or none of them.")
180 | else:
181 | q_simu = np.concatenate([q[0:10], [0.0], q[10:13], [0.0]])
182 | dq_simu = np.concatenate([dq[0:9], [0.0], dq[9:12], [0.0]])
183 |
184 | self.pin_robot.forwardKinematics(q, dq)
185 | self.pin_robot.computeJointJacobians(q)
186 | self.pin_robot.framesForwardKinematics(q)
187 | self.pin_robot.centroidalMomentum(q, dq)
188 |
189 | self.simu_pin_robot.forwardKinematics(q_simu, dq_simu)
190 | self.simu_pin_robot.computeJointJacobians(q)
191 | self.simu_pin_robot.framesForwardKinematics(q)
192 | self.simu_pin_robot.centroidalMomentum(q, dq)
193 |
--------------------------------------------------------------------------------
/src/robot_properties_bolt/bolt_wrapper.py:
--------------------------------------------------------------------------------
1 | # @namespace robot_properties_bolt.bolt_wrapper
2 | """ This module define the Bolt robot instance. This initializes
3 | the simulator as well.
4 |
5 | @copyright Copyright (c) 2020,
6 | New York University and Max Planck Gesellschaft,
7 | License BSD-3-Clause
8 | """
9 |
10 | import numpy as np
11 | import pybullet
12 | from bullet_utils.wrapper import PinBulletWrapper
13 | from robot_properties_bolt.config import BoltConfig
14 |
15 |
16 | class BoltRobot(PinBulletWrapper):
17 | def __init__(
18 | self,
19 | pos=None,
20 | orn=None,
21 | init_sliders_pose=4 * [0],
22 | use_fixed_base=False,
23 | is_passive=False
24 | ):
25 | self.is_passive=is_passive
26 |
27 | # Load the robot
28 | if pos is None:
29 | pos = [0.0, 0, 0.40]
30 | if orn is None:
31 | orn = pybullet.getQuaternionFromEuler([0, 0, 0])
32 |
33 | pybullet.setAdditionalSearchPath(BoltConfig.resources.package_path)
34 | self.urdf_path = BoltConfig.urdf_path
35 | self.simu_urdf_path = BoltConfig.simu_urdf_path
36 | if self.is_passive:
37 | self.robotId = pybullet.loadURDF(
38 | self.simu_urdf_path,
39 | pos,
40 | orn,
41 | flags=pybullet.URDF_USE_INERTIA_FROM_FILE,
42 | useFixedBase=use_fixed_base,
43 | )
44 | else:
45 | self.robotId = pybullet.loadURDF(
46 | self.urdf_path,
47 | pos,
48 | orn,
49 | flags=pybullet.URDF_USE_INERTIA_FROM_FILE,
50 | useFixedBase=use_fixed_base,
51 | )
52 |
53 | self.pin_robot = BoltConfig.buildRobotWrapper()
54 | if self.is_passive:
55 | self.simu_pin_robot = BoltConfig.buildSimuRobotWrapper()
56 |
57 | # Query all the joints.
58 | num_joints = pybullet.getNumJoints(self.robotId)
59 |
60 | for ji in range(num_joints):
61 | pybullet.changeDynamics(
62 | self.robotId,
63 | ji,
64 | linearDamping=0.04,
65 | angularDamping=0.04,
66 | restitution=0.0,
67 | lateralFriction=0.5,
68 | )
69 |
70 | self.slider_a = pybullet.addUserDebugParameter(
71 | "a", 0, 1, init_sliders_pose[0]
72 | )
73 | self.slider_b = pybullet.addUserDebugParameter(
74 | "b", 0, 1, init_sliders_pose[1]
75 | )
76 | self.slider_c = pybullet.addUserDebugParameter(
77 | "c", 0, 1, init_sliders_pose[2]
78 | )
79 | self.slider_d = pybullet.addUserDebugParameter(
80 | "d", 0, 1, init_sliders_pose[3]
81 | )
82 |
83 | self.base_link_name = "base_link"
84 | self.end_eff_ids = []
85 | self.end_effector_names = []
86 | controlled_joints = []
87 | for leg in ["FL", "FR"]:
88 | if self.is_passive:
89 | controlled_joints += [
90 | leg + "_HAA",
91 | leg + "_HFE",
92 | leg + "_KFE",
93 | leg + "_ANKLE",
94 | ]
95 | else:
96 | controlled_joints += [
97 | leg + "_HAA",
98 | leg + "_HFE",
99 | leg + "_KFE",
100 | ]
101 | self.end_eff_ids.append(
102 | self.pin_robot.model.getFrameId(leg + "_ANKLE")
103 | )
104 | self.end_effector_names.append(leg + "_ANKLE")
105 |
106 | self.joint_names = controlled_joints
107 | self.nb_ee = len(self.end_effector_names)
108 |
109 | # Creates the wrapper by calling the super.__init__.
110 | super(BoltRobot, self).__init__(
111 | self.robotId,
112 | self.pin_robot,
113 | controlled_joints,
114 | self.end_effector_names,
115 | )
116 |
117 | def get_state(self):
118 | # Returns a pinocchio like representation of the q, dq matrixes
119 |
120 | if self.is_passive:
121 | q_simu, dq_simu = super(BoltRobot, self).get_state()
122 | q = np.concatenate([q_simu[0:10], q_simu[11:14]])
123 | dq = np.concatenate([dq_simu[0:9], dq_simu[10:13]])
124 | return q, dq
125 | else:
126 | q, dq = super(BoltRobot, self).get_state()
127 | return q, dq
128 |
129 | def _get_state_passive_ankle(self):
130 | # Returns a pinocchio like representation of the q, dq matrixes
131 | return super(BoltRobot, self).get_state()
132 |
133 | def reset_state(self, q, dq):
134 | if self.is_passive:
135 | q_simu = np.concatenate([q[0:10], [0.0], q[10:13], [0.0]])
136 | dq_simu = np.concatenate([dq[0:9], [0.0], dq[9:12], [0.0]])
137 | super(BoltRobot, self).reset_state(q_simu, dq_simu)
138 | else:
139 | super(BoltRobot, self).reset_state(q, dq)
140 |
141 |
142 | def send_joint_command(self, tau):
143 | if self.is_passive:
144 | tau_simu = np.concatenate([tau[0:3], [0.0], tau[3:6], [0.0]])
145 | super(BoltRobot, self).send_joint_command(tau_simu)
146 | else:
147 | super(BoltRobot, self).send_joint_command(tau)
148 |
149 | def get_slider_position(self, letter):
150 | if letter == "a":
151 | return pybullet.readUserDebugParameter(self.slider_a)
152 | if letter == "b":
153 | return pybullet.readUserDebugParameter(self.slider_b)
154 | if letter == "c":
155 | return pybullet.readUserDebugParameter(self.slider_c)
156 | if letter == "d":
157 | return pybullet.readUserDebugParameter(self.slider_d)
158 |
159 | def forward_robot(self, q=None, dq=None):
160 | if q is None and dq is None:
161 | q, dq = self.get_state()
162 | q_simu, dq_simu = self._get_state_passive_ankle()
163 | elif q is not None or dq is not None:
164 | raise ValueError("Need to provide q and dq or none of them.")
165 | else:
166 | q_simu = np.concatenate([q[0:10], [0.0], q[10:13], [0.0]])
167 | dq_simu = np.concatenate([dq[0:9], [0.0], dq[9:12], [0.0]])
168 |
169 | self.pin_robot.forwardKinematics(q, dq)
170 | self.pin_robot.computeJointJacobians(q)
171 | self.pin_robot.framesForwardKinematics(q)
172 | self.pin_robot.centroidalMomentum(q, dq)
173 |
174 | self.simu_pin_robot.forwardKinematics(q_simu, dq_simu)
175 | self.simu_pin_robot.computeJointJacobians(q)
176 | self.simu_pin_robot.framesForwardKinematics(q)
177 | self.simu_pin_robot.centroidalMomentum(q, dq)
178 |
--------------------------------------------------------------------------------
/src/robot_properties_bolt/config.py:
--------------------------------------------------------------------------------
1 | # @namespace robot_properties_bolt.config
2 | """ This module includes configuration for the Bolt.
3 |
4 | @file config.py
5 | @copyright Copyright (c) 2020,
6 | New York University and Max Planck Gesellschaft,
7 | License BSD-3-Clause
8 | """
9 |
10 | import numpy as np
11 | from math import pi
12 | import pinocchio as se3
13 | from pinocchio.robot_wrapper import RobotWrapper
14 | from robot_properties_bolt.resources import Resources
15 |
16 |
17 | class BoltAbstract(object):
18 | """ Abstract class used for all Bolt robots. """
19 |
20 | # PID gains
21 | kp = 5.0
22 | kd = 0.1
23 | ki = 0.0
24 |
25 | # The Kt constant of the motor [Nm/A]: tau = I * Kt.
26 | motor_torque_constant = 0.025
27 |
28 | # Control time period.
29 | control_period = 0.001
30 | dt = control_period
31 |
32 | # MaxCurrent = 12 # Ampers
33 | max_current = 2
34 |
35 | # Maximum torques.
36 | max_torque = motor_torque_constant * max_current
37 |
38 | # Maximum control one can send, here the control is the current.
39 | max_control = max_current
40 |
41 | # ctrl_manager_current_to_control_gain I am not sure what it does so 1.0.
42 | ctrl_manager_current_to_control_gain = 1.0
43 |
44 | max_qref = pi
45 |
46 | base_link_name = "base_link"
47 | end_effector_names = ["FL_ANKLE", "FR_ANKLE"]
48 |
49 | @classmethod
50 | def buildRobotWrapper(cls):
51 | # Rebuild the robot wrapper instead of using the existing model to
52 | # also load the visuals.
53 | robot = RobotWrapper.BuildFromURDF(
54 | cls.urdf_path, cls.meshes_path, se3.JointModelFreeFlyer()
55 | )
56 | robot.model.rotorInertia[6:] = cls.motor_inertia
57 | robot.model.rotorGearRatio[6:] = cls.motor_gear_ration
58 | return robot
59 |
60 | @classmethod
61 | def buildSimuRobotWrapper(cls):
62 | # Rebuild the robot wrapper instead of using the existing model to
63 | # also load the visuals.
64 | robot = RobotWrapper.BuildFromURDF(
65 | cls.simu_urdf_path, cls.meshes_path, se3.JointModelFreeFlyer()
66 | )
67 | robot.model.rotorInertia[6:] = cls.motor_inertia
68 | robot.model.rotorGearRatio[6:] = cls.motor_gear_ration
69 | return robot
70 |
71 | def joint_name_in_single_string(self):
72 | joint_names = ""
73 | for name in self.robot_model.names[2:]:
74 | joint_names += name + " "
75 | return joint_names
76 |
77 |
78 | class BoltConfig(BoltAbstract):
79 | robot_family = "bolt"
80 | robot_name = "bolt"
81 |
82 | # Here we use the same urdf as for the quadruped but without the freeflyer.
83 | resources = Resources(robot_name)
84 | meshes_path = resources.meshes_path
85 | dgm_yaml_path = resources.dgm_yaml_path
86 | simu_urdf_path = resources.simu_urdf_path
87 | urdf_path = resources.urdf_path
88 | ctrl_path = resources.imp_ctrl_yaml_path
89 |
90 | # The inertia of a single blmc_motor.
91 | motor_inertia = 0.0000045
92 |
93 | # The motor gear ratio.
94 | motor_gear_ration = 9.0
95 |
96 | # pinocchio model.
97 | robot_model = se3.buildModelFromUrdf(urdf_path, se3.JointModelFreeFlyer())
98 | robot_model.rotorInertia[6:] = motor_inertia
99 | robot_model.rotorGearRatio[6:] = motor_gear_ration
100 |
101 | mass = np.sum([i.mass for i in robot_model.inertias])
102 |
103 | base_name = robot_model.frames[2].name
104 |
105 | # The number of motors, here they are the same as there are only revolute
106 | # joints.
107 | nb_joints = robot_model.nv - 6
108 |
109 | # pinocchio model.
110 | pin_robot_wrapper = RobotWrapper.BuildFromURDF(
111 | urdf_path, meshes_path, se3.JointModelFreeFlyer()
112 | )
113 | # End effectors informations
114 | robot_model = pin_robot_wrapper.model
115 | end_eff_ids = []
116 | for leg in ["FL", "FR"]:
117 | end_eff_ids.append(robot_model.getFrameId(leg + "_ANKLE"))
118 | nb_ee = len(end_eff_ids)
119 |
120 | joint_names = ["FL_HAA", "FL_HFE", "FL_KFE", "FR_HAA", "FR_HFE", "FR_KFE"]
121 |
122 | # Mapping between the ctrl vector in the device and the urdf indexes.
123 | urdf_to_dgm = tuple(range(6))
124 |
125 | map_joint_name_to_id = {}
126 | map_joint_limits = {}
127 | for i, (name, lb, ub) in enumerate(
128 | zip(
129 | robot_model.names[1:],
130 | robot_model.lowerPositionLimit,
131 | robot_model.upperPositionLimit,
132 | )
133 | ):
134 | map_joint_name_to_id[name] = i
135 | map_joint_limits[i] = [float(lb), float(ub)]
136 |
137 | # Define the initial state.
138 | initial_configuration = np.array(
139 | [
140 | 0.0,
141 | 0.0,
142 | 0.35487417,
143 | 0.0,
144 | 0.0,
145 | 0.0,
146 | 1.0,
147 | -0.3,
148 | 0.78539816,
149 | -1.57079633,
150 | 0.3,
151 | 0.78539816,
152 | -1.57079633,
153 | ]
154 | )
155 |
156 | initial_velocity = (6 + 6) * [
157 | 0,
158 | ]
159 |
160 | q0 = np.zeros(robot_model.nq)
161 | q0[:] = initial_configuration
162 | v0 = np.zeros(robot_model.nv)
163 | v0[:] = initial_velocity
164 | a0 = np.zeros(robot_model.nv)
165 |
166 | class BoltHumanoidConfig(BoltAbstract):
167 | robot_family = "bolt"
168 | robot_name = "bolt_humanoid"
169 |
170 | resources = Resources(robot_name)
171 | meshes_path = resources.meshes_path
172 | dgm_yaml_path = resources.dgm_yaml_path
173 | simu_urdf_path = resources.simu_urdf_path
174 | urdf_path = resources.urdf_path
175 | ctrl_path = resources.imp_ctrl_yaml_path
176 | print(urdf_path)
177 |
178 | # The inertia of a single blmc_motor.
179 | motor_inertia = 0.0000045
180 |
181 | # The motor gear ratio.
182 | motor_gear_ration = 9.0
183 |
184 | # pinocchio model.
185 | robot_model = se3.buildModelFromUrdf(urdf_path, se3.JointModelFreeFlyer())
186 | robot_model.rotorInertia[6:] = motor_inertia
187 | robot_model.rotorGearRatio[6:] = motor_gear_ration
188 |
189 | mass = np.sum([i.mass for i in robot_model.inertias])
190 |
191 | base_name = robot_model.frames[2].name
192 |
193 | # The number of motors, here they are the same as there are only revolute
194 | # joints.
195 | nb_joints = robot_model.nv - 6
196 |
197 | # pinocchio model.
198 | pin_robot_wrapper = RobotWrapper.BuildFromURDF(
199 | urdf_path, meshes_path, se3.JointModelFreeFlyer()
200 | )
201 | # End effectors informations
202 | robot_model = pin_robot_wrapper.model
203 | end_eff_ids = []
204 | for leg in ["FL", "FR"]:
205 | end_eff_ids.append(robot_model.getFrameId(leg + "_ANKLE"))
206 | nb_ee = len(end_eff_ids)
207 |
208 | joint_names = ["FL_HAA", "FL_HFE", "FL_KFE", "FR_HAA", "FR_HFE", "FR_KFE", "TR", "L_SFE", "R_SFE"]
209 |
210 | # Mapping between the ctrl vector in the device and the urdf indexes.
211 | urdf_to_dgm = tuple(range(9))
212 |
213 | map_joint_name_to_id = {}
214 | map_joint_limits = {}
215 | for i, (name, lb, ub) in enumerate(
216 | zip(
217 | robot_model.names[1:],
218 | robot_model.lowerPositionLimit,
219 | robot_model.upperPositionLimit,
220 | )
221 | ):
222 | map_joint_name_to_id[name] = i
223 | map_joint_limits[i] = [float(lb), float(ub)]
224 |
225 | # Define the initial state.
226 | initial_configuration = np.array(
227 | [
228 | 0.0,
229 | 0.0,
230 | 0.35487417,
231 | 0.0,
232 | 0.0,
233 | 0.0,
234 | 1.0,
235 | 0.,
236 | 0.78539816,
237 | -1.57079633,
238 | 0.,
239 | 0.78539816,
240 | -1.57079633,
241 | 0.0,
242 | -.75,
243 | -.75
244 | ]
245 | )
246 |
247 | initial_velocity = (6 + 9) * [
248 | 0,
249 | ]
250 |
251 | q0 = np.zeros(robot_model.nq)
252 | q0[:] = initial_configuration
253 | v0 = np.zeros(robot_model.nv)
254 | v0[:] = initial_velocity
255 | a0 = np.zeros(robot_model.nv)
256 |
--------------------------------------------------------------------------------
/src/robot_properties_bolt/gepetto_gui_loader.py:
--------------------------------------------------------------------------------
1 | ## @namespace robot_properties_bolt.gepetto_gui_loader
2 | """ This module shows Bolt in gepetto_gui.
3 |
4 | @file gepetto_gui_loader.py
5 | @copyright Copyright (c) 2020,
6 | New York University and Max Planck Gesellschaft,
7 | License BSD-3-Clause
8 | """
9 |
10 |
11 | import eigenpy
12 |
13 | eigenpy.switchToNumpyMatrix()
14 | import time
15 | from config import BoltConfig
16 | from py_gepetto_gui_helper.gepetto_gui_scene import GepettoGuiScene
17 | from py_gepetto_gui_helper.robot_visual import RobotVisual
18 | from py_gepetto_gui_helper.frame import Frame
19 |
20 |
21 | def create_scene():
22 | """
23 | Just create a scene for the bolt to be in
24 | """
25 | return GepettoGuiScene("bolt_scene", "bolt_window")
26 |
27 |
28 | def load_bolt_in_gepetto_gui(gepetto_scene, robot_name):
29 | """
30 | Load the bolt meshes in the scene
31 | """
32 | config = BoltConfig()
33 | return RobotVisual(
34 | gepetto_scene, robot_name, config.urdf_path, config.meshes_path
35 | )
36 |
37 |
38 | def display_bolt_in_gepetto_gui(launch_gepetto_gui_exec=False):
39 | """
40 | Uses the function above to load the urdf model of bolt in gepetto gui
41 | and load it in the initial configuration
42 | """
43 |
44 | if launch_gepetto_gui_exec:
45 | # create a new window
46 | gepetto_gui_process = GepettoGuiScene.open_gepetto_gui()
47 |
48 | # create a scene in it
49 | gui_scene = create_scene()
50 | # load the robot
51 | bolt_visual = load_bolt_in_gepetto_gui(gui_scene, "bolt")
52 | # place the robot in initial configuration
53 | config = BoltConfig()
54 | bolt_visual.display(config.q0)
55 | # place the world frame
56 | world_frame = Frame(gui_scene)
57 |
58 | if launch_gepetto_gui_exec:
59 | # close the window after little while
60 | time.sleep(5)
61 | GepettoGuiScene.close_gepetto_gui(gepetto_gui_process)
62 |
63 | return gui_scene, bolt_visual, world_frame
64 |
65 |
66 | if __name__ == "__main__":
67 | display_bolt_in_gepetto_gui()
68 |
--------------------------------------------------------------------------------
/src/robot_properties_bolt/resources.py:
--------------------------------------------------------------------------------
1 | """resources
2 |
3 | Define the resource files present in this package.
4 |
5 | License: BSD 3-Clause License
6 | Copyright (C) 2018-2021, New York University , Max Planck Gesellschaft
7 | Copyright note valid unless otherwise stated in individual files.
8 | All rights reserved.
9 | """
10 |
11 | from pathlib import Path
12 |
13 |
14 | class Resources(object):
15 | def __init__(self, robot_name, robot_family="bolt") -> None:
16 | super().__init__()
17 |
18 | self.package_path = str(Path(__file__).resolve().parent.absolute())
19 |
20 | self.robot_name = str(robot_name)
21 | self.robot_family = str(robot_family)
22 |
23 | self.resources_dir = Path(self.package_path) / "resources"
24 |
25 | self.dgm_yaml_path = str(
26 | self.resources_dir
27 | / "dynamic_graph_manager"
28 | / ("dgm_parameters_" + self.robot_name + ".yaml")
29 | )
30 |
31 | self.urdf_path = str(
32 | self.resources_dir / "urdf" / (self.robot_name + ".urdf")
33 | )
34 | self.simu_urdf_path = str(
35 | self.resources_dir / "urdf" / "bolt_passive_ankle.urdf"
36 | )
37 | self.srdf_path = str(
38 | self.resources_dir / "srdf" / (self.robot_family + ".srdf")
39 | )
40 | self.meshes_path = str(Path(self.package_path).parent)
41 |
42 | self.imp_ctrl_yaml_path = str(
43 | self.resources_dir / "impedance_ctrl.yaml"
44 | )
45 |
46 | self.resources_dir = str(self.resources_dir)
47 |
--------------------------------------------------------------------------------
/src/robot_properties_bolt/resources/__init__.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | """@package ci_example_python Contains an example of a python package.
4 | @file __init__.py
5 | """
6 |
7 | __copyright__ = (
8 | "Copyright (c) 2020, New York University and Max Planck Gesellschaft."
9 | )
10 | __license__ = "BSD 3-Clause"
11 | __version__ = "0.0.0"
12 | __status__ = "Done"
13 |
--------------------------------------------------------------------------------
/src/robot_properties_bolt/resources/dynamic_graph_manager/dgm_parameters_bolt.yaml:
--------------------------------------------------------------------------------
1 | #
2 | # @file dgm_parameters_bolt.yaml
3 | # @author Elham Daneshmand (exledh@gmail.com)
4 | # @license License BSD-3-Clause
5 | # @copyright Copyright (c) 2019, New York University and Max Planck Gesellschaft.
6 | #
7 | # @brief Define the interface between the control and the hardware
8 | #
9 |
10 | device:
11 | name: "bolt"
12 | sensors:
13 | # joints data
14 | joint_positions:
15 | size: 6
16 | joint_velocities:
17 | size: 6
18 | joint_torques:
19 | size: 6
20 | joint_target_torques:
21 | size: 6
22 | # additional data
23 | slider_positions:
24 | size: 4
25 | # robot status
26 | motor_enabled:
27 | size: 6
28 | motor_ready:
29 | size: 6
30 | motor_board_enabled:
31 | size: 3
32 | motor_board_errors:
33 | size: 3
34 | base_accelerometer:
35 | size: 3
36 | base_gyroscope:
37 | size: 3
38 | base_attitude:
39 | size: 4
40 | base_linear_acceleration:
41 | size: 3
42 | controls:
43 | ctrl_joint_torques:
44 | size: 6
45 | ctrl_heart_beat:
46 | size: 1
47 | hardware_communication:
48 | max_missed_control: 10000
49 | control_period: 1000000 # in nano second this means 1ms <=> 1kz
50 | maximum_time_for_user_cmd: 100000
51 | # Angle between the next index and the home position(joint_positions=12*[0.,])
52 | calibration:
53 | # 'FL_HAA', 'FL_HFE', 'FL_KFE', 'FR_HAA', 'FR_HFE', 'FR_KFE'
54 | index_to_zero_angle: [0.039, -0.290, -0.465, -0.766, -0.435, -0.449, ]
55 | network_id: "ens4"
56 |
57 | ros_node_name: "bolt"
58 | shared_memory_name: "DGM_ShM"
59 | cpu_id: 0
60 |
61 | debug_timer_history_length: 100000
62 |
--------------------------------------------------------------------------------
/src/robot_properties_bolt/resources/dynamic_graph_manager/dgm_parameters_bolt_humanoid.yaml:
--------------------------------------------------------------------------------
1 | #
2 | # @file dgm_parameters_bolt.yaml
3 | # @author Elham Daneshmand (exledh@gmail.com)
4 | # @license License BSD-3-Clause
5 | # @copyright Copyright (c) 2019, New York University and Max Planck Gesellschaft.
6 | #
7 | # @brief Define the interface between the control and the hardware
8 | #
9 |
10 | device:
11 | name: "bolt_humanoid"
12 | sensors:
13 | # joints data
14 | joint_positions:
15 | size: 9
16 | joint_velocities:
17 | size: 9
18 | joint_torques:
19 | size: 9
20 | joint_target_torques:
21 | size: 9
22 | # additional data
23 | slider_positions:
24 | size: 4
25 | # robot status
26 | motor_enabled:
27 | size: 9
28 | motor_ready:
29 | size: 9
30 | motor_board_enabled:
31 | size: 5
32 | motor_board_errors:
33 | size: 5
34 | imu_accelerometer:
35 | size: 3
36 | imu_gyroscope:
37 | size: 3
38 | imu_attitude:
39 | size: 4
40 | imu_linear_acceleration:
41 | size: 3
42 | controls:
43 | ctrl_joint_torques:
44 | size: 9
45 | ctrl_heart_beat:
46 | size: 1
47 | hardware_communication:
48 | max_missed_control: 10000
49 | control_period: 1000000 # in nano second this means 1ms <=> 1kz
50 | maximum_time_for_user_cmd: 100000
51 | # Angle between the next index and the home position(joint_positions=12*[0.,])
52 | calibration:
53 | # 'FL_HAA', 'FL_HFE', 'FL_KFE', 'FR_HAA', 'FR_HFE', 'FR_KFE', 'TR', 'L_SFE', 'R_SFE'
54 | index_to_zero_angle: [0.039, -0.290, -0.465, -0.766, -0.435, -0.449, 0., 0., 0.]
55 | network_id: "ens4"
56 |
57 | ros_node_name: "bolt_humanoid"
58 | shared_memory_name: "DGM_ShM"
59 | cpu_id: 0
60 |
61 | debug_timer_history_length: 100000
62 |
--------------------------------------------------------------------------------
/src/robot_properties_bolt/resources/impedance_ctrl.yaml:
--------------------------------------------------------------------------------
1 | # contains information about the frames between which impedance controllers must be created
2 |
3 | impedance_controllers:
4 | FL_imp:
5 | frame_root_name: FL_HFE
6 | frame_end_name: FL_FOOT
7 | is_eeff: 1.0 #Whether or not an impdance controller is associated with a specific end-effector
8 | start_column: 6 #Start column of jacobian in pinocchio. In the future this should be found when setting up the controllers instead of hardcoded
9 | active_joints: [True, True, True]
10 | FR_imp:
11 | frame_root_name: FR_HFE
12 | frame_end_name: FR_FOOT
13 | is_eeff: 1.0
14 | start_column: 9
15 | active_joints: [True, True, True]
16 |
17 |
--------------------------------------------------------------------------------
/src/robot_properties_bolt/resources/meshes/checker_blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-dynamic-robot-initiative/robot_properties_bolt/57cf293cfcd25234eb922de6238932ed7f6cb42b/src/robot_properties_bolt/resources/meshes/checker_blue.png
--------------------------------------------------------------------------------
/src/robot_properties_bolt/resources/meshes/obj/bolt_shoulder_fe_left_side.obj:
--------------------------------------------------------------------------------
1 | # Blender v2.90.1 OBJ File: ''
2 | # www.blender.org
3 | mtllib arm_left_side.mtl
4 | o Arm_Left_Side_Arm_Left_Side.001
5 | v -0.020149 0.016960 -0.000914
6 | v -0.019925 0.016928 0.001735
7 | v -0.019925 0.023000 0.001735
8 | v -0.015425 0.023000 -0.140133
9 | v -0.015425 0.017000 -0.140133
10 | v -0.019016 0.023000 -0.111909
11 | v -0.018906 0.017000 -0.112966
12 | v -0.019704 0.023000 -0.104829
13 | v -0.019704 0.017000 -0.104829
14 | v -0.021265 0.023000 -0.083546
15 | v -0.021144 0.017000 -0.085669
16 | v -0.021885 0.023000 -0.069333
17 | v -0.021885 0.017000 -0.069333
18 | v -0.022167 0.023000 -0.055109
19 | v -0.022133 0.017000 -0.058298
20 | v -0.021958 0.023000 -0.033770
21 | v -0.021958 0.017000 -0.033770
22 | v -0.021720 0.023000 -0.026660
23 | v -0.021872 0.017000 -0.030910
24 | v -0.020362 0.017000 -0.003563
25 | v 0.116242 0.023000 -0.221456
26 | v 0.116242 0.017000 -0.221456
27 | v 0.093456 0.023000 -0.210936
28 | v 0.093456 0.017000 -0.210936
29 | v 0.082233 0.023000 -0.205321
30 | v 0.082233 0.017000 -0.205321
31 | v 0.071129 0.023000 -0.199472
32 | v 0.071129 0.017000 -0.199472
33 | v 0.049302 0.023000 -0.187084
34 | v 0.049302 0.017000 -0.187084
35 | v 0.028011 0.023000 -0.173795
36 | v 0.028011 0.017000 -0.173795
37 | v 0.017579 0.023000 -0.166819
38 | v 0.017579 0.017000 -0.166819
39 | v 0.007295 0.023000 -0.159626
40 | v 0.007295 0.017000 -0.159626
41 | v -0.012810 0.023000 -0.144604
42 | v -0.012810 0.017000 -0.144604
43 | v 0.129074 0.023000 -0.200257
44 | v 0.129074 0.017000 -0.200257
45 | v 0.131739 0.023000 -0.203210
46 | v 0.131739 0.017000 -0.203210
47 | v 0.132314 0.023000 -0.204196
48 | v 0.132314 0.017000 -0.204196
49 | v 0.133341 0.023000 -0.206852
50 | v 0.133341 0.017000 -0.206852
51 | v 0.133711 0.023000 -0.209101
52 | v 0.133711 0.017000 -0.209101
53 | v 0.133717 0.023000 -0.210811
54 | v 0.133717 0.017000 -0.210811
55 | v 0.133033 0.023000 -0.214155
56 | v 0.133033 0.017000 -0.214155
57 | v 0.132831 0.023000 -0.214689
58 | v 0.132831 0.017000 -0.214689
59 | v 0.130771 0.023000 -0.218092
60 | v 0.130771 0.017000 -0.218092
61 | v 0.130392 0.023000 -0.218518
62 | v 0.130392 0.017000 -0.218518
63 | v 0.127746 0.023000 -0.220675
64 | v 0.127746 0.017000 -0.220675
65 | v 0.126228 0.023000 -0.221463
66 | v 0.126228 0.017000 -0.221463
67 | v 0.124063 0.023000 -0.222178
68 | v 0.124063 0.017000 -0.222178
69 | v 0.121234 0.023000 -0.222500
70 | v 0.121234 0.017000 -0.222500
71 | v 0.120095 0.023000 -0.222447
72 | v 0.120095 0.017000 -0.222447
73 | v 0.021448 0.023000 -0.131231
74 | v 0.021448 0.017000 -0.131231
75 | v 0.044114 0.023000 -0.143171
76 | v 0.044114 0.017000 -0.143171
77 | v 0.049699 0.023000 -0.146307
78 | v 0.049699 0.017000 -0.146307
79 | v 0.066249 0.023000 -0.156069
80 | v 0.066249 0.017000 -0.156069
81 | v 0.077105 0.023000 -0.162869
82 | v 0.077105 0.017000 -0.162869
83 | v 0.087814 0.023000 -0.169899
84 | v 0.087814 0.017000 -0.169899
85 | v 0.103589 0.023000 -0.180869
86 | v 0.103589 0.017000 -0.180869
87 | v 0.108768 0.023000 -0.184637
88 | v 0.108768 0.017000 -0.184637
89 | v 0.019925 0.016928 0.001735
90 | v 0.020149 0.016960 -0.000914
91 | v 0.019925 0.023000 0.001735
92 | v 0.020362 0.017000 -0.003563
93 | v 0.021584 0.023000 -0.023428
94 | v 0.021759 0.017000 -0.027677
95 | v 0.017631 0.017000 -0.124108
96 | v 0.017631 0.023000 -0.124108
97 | v 0.020118 0.017000 -0.100082
98 | v 0.020206 0.023000 -0.099023
99 | v 0.020685 0.017000 -0.092736
100 | v 0.020685 0.023000 -0.092736
101 | v 0.021637 0.017000 -0.075976
102 | v 0.021724 0.023000 -0.073851
103 | v 0.022087 0.017000 -0.061247
104 | v 0.022087 0.023000 -0.061247
105 | v 0.022184 0.017000 -0.051828
106 | v 0.022184 0.023000 -0.048638
107 | v 0.021833 0.023000 -0.029728
108 | v -0.018894 0.023000 0.006560
109 | v -0.019263 0.016928 0.005380
110 | v -0.017940 0.023000 0.008840
111 | v -0.017940 0.016928 0.008840
112 | v -0.016713 0.023000 0.010986
113 | v -0.016002 0.016928 0.011997
114 | v -0.013515 0.023000 0.014743
115 | v -0.013515 0.016928 0.014743
116 | v -0.009494 0.023000 0.017603
117 | v -0.010564 0.016928 0.016982
118 | v -0.007251 0.023000 0.018639
119 | v -0.007251 0.016928 0.018639
120 | v -0.004896 0.023000 0.019391
121 | v -0.003689 0.016928 0.019657
122 | v 0.000000 0.023000 0.020000
123 | v 0.000000 0.016928 0.020000
124 | v 0.004896 0.023000 0.019391
125 | v 0.003689 0.016928 0.019657
126 | v 0.007251 0.023000 0.018639
127 | v 0.007251 0.016928 0.018639
128 | v 0.009494 0.023000 0.017603
129 | v 0.010564 0.016928 0.016982
130 | v 0.013515 0.023000 0.014743
131 | v 0.013515 0.016928 0.014743
132 | v 0.016713 0.023000 0.010986
133 | v 0.016002 0.016928 0.011997
134 | v 0.017940 0.023000 0.008840
135 | v 0.017940 0.016928 0.008840
136 | v 0.018894 0.023000 0.006560
137 | v 0.019263 0.016928 0.005380
138 | v 0.011367 0.030000 -0.153932
139 | v -0.008504 0.030000 -0.139085
140 | v 0.012238 0.030000 -0.131582
141 | v 0.122484 0.030000 -0.215358
142 | v 0.120738 0.030000 -0.215477
143 | v 0.119043 0.030000 -0.215041
144 | v -0.015167 0.030000 -0.055053
145 | v 0.014730 0.030000 -0.073577
146 | v -0.014276 0.030000 -0.083158
147 | v 0.013229 0.030000 -0.098454
148 | v -0.012053 0.030000 -0.111190
149 | v 0.010684 0.030000 -0.123247
150 | v 0.010815 0.030000 -0.127535
151 | v -0.012951 0.030000 0.001128
152 | v 0.012951 0.030000 0.001128
153 | v -0.014725 0.030000 -0.026936
154 | v 0.014591 0.030000 -0.023741
155 | v 0.015184 0.030000 -0.048658
156 | v 0.124689 0.030000 -0.205713
157 | v 0.125436 0.030000 -0.213560
158 | v 0.124105 0.030000 -0.214697
159 | v 0.126342 0.030000 -0.212063
160 | v 0.126732 0.030000 -0.210357
161 | v 0.126566 0.030000 -0.208615
162 | v 0.125862 0.030000 -0.207013
163 | v 0.104620 0.030000 -0.190276
164 | v 0.096522 0.030000 -0.204643
165 | v 0.083910 0.030000 -0.175709
166 | v 0.074456 0.030000 -0.193313
167 | v 0.062597 0.030000 -0.162040
168 | v 0.052883 0.030000 -0.181070
169 | v 0.040719 0.030000 -0.149293
170 | v 0.031841 0.030000 -0.167935
171 | v 0.018318 0.030000 -0.137492
172 | v 0.014820 0.030000 -0.135009
173 | v 0.006171 0.030000 0.011442
174 | v 0.008785 0.030000 0.009583
175 | v -0.003183 0.030000 0.012604
176 | v 0.000000 0.030000 0.013000
177 | v 0.003183 0.030000 0.012604
178 | v 0.010863 0.030000 0.007141
179 | v 0.012281 0.030000 0.004264
180 | v -0.006171 0.030000 0.011442
181 | v -0.012281 0.030000 0.004264
182 | v -0.010863 0.030000 0.007141
183 | v -0.008785 0.030000 0.009583
184 | v 0.018318 0.010000 -0.137492
185 | v 0.014820 0.010000 -0.135009
186 | v 0.011367 0.010000 -0.153932
187 | v -0.008504 0.010000 -0.139085
188 | v 0.012238 0.010000 -0.131582
189 | v 0.010815 0.010000 -0.127535
190 | v 0.122484 0.010000 -0.215358
191 | v 0.124105 0.010000 -0.214697
192 | v 0.125436 0.010000 -0.213560
193 | v 0.040719 0.010000 -0.149293
194 | v 0.031841 0.010000 -0.167935
195 | v 0.062597 0.010000 -0.162040
196 | v 0.052883 0.010000 -0.181070
197 | v 0.083910 0.010000 -0.175709
198 | v 0.074456 0.010000 -0.193313
199 | v 0.104620 0.010000 -0.190276
200 | v 0.096522 0.010000 -0.204643
201 | v 0.124689 0.010000 -0.205713
202 | v 0.119043 0.010000 -0.215041
203 | v 0.120738 0.010000 -0.215477
204 | v -0.014156 0.010000 -0.085257
205 | v -0.011944 0.010000 -0.112236
206 | v 0.000000 0.010000 -0.021000
207 | v 0.126342 0.010000 -0.212063
208 | v 0.126732 0.010000 -0.210357
209 | v 0.125862 0.010000 -0.207013
210 | v 0.126566 0.010000 -0.208615
211 | v 0.010684 0.010000 -0.123247
212 | v 0.013143 0.010000 -0.099502
213 | v 0.014644 0.010000 -0.075676
214 | v -0.015134 0.010000 -0.058205
215 | v -0.005129 0.010000 -0.020364
216 | v -0.014876 0.010000 -0.031137
217 | v -0.009948 0.010000 -0.018494
218 | v -0.014164 0.010000 -0.015504
219 | v 0.005129 0.010000 -0.020364
220 | v 0.015184 0.010000 -0.051810
221 | v 0.009948 0.010000 -0.018494
222 | v 0.014764 0.010000 -0.027941
223 | v 0.014164 0.010000 -0.015504
224 | v -0.011740 0.003495 -0.007627
225 | v -0.011329 0.003329 -0.008226
226 | v -0.011326 0.000000 -0.008229
227 | v 0.013555 0.005439 0.003503
228 | v 0.012790 0.000000 0.005694
229 | v 0.013947 0.005439 0.001214
230 | v 0.014000 0.000000 0.000000
231 | v 0.013800 0.005078 -0.002358
232 | v 0.013988 0.005355 -0.000587
233 | v 0.014000 0.005401 -0.000001
234 | v 0.009368 0.000000 -0.010404
235 | v 0.010182 0.003049 -0.009609
236 | v 0.012790 0.000000 -0.005694
237 | v 0.011299 0.003318 -0.008267
238 | v 0.012265 0.003765 -0.006750
239 | v 0.012612 0.003982 -0.006078
240 | v 0.012790 0.004108 -0.005694
241 | v 0.013339 0.004566 -0.004252
242 | v 0.003420 0.003000 -0.013576
243 | v 0.004326 0.003000 -0.013315
244 | v 0.004326 0.000000 -0.013315
245 | v 0.006632 0.003000 -0.012330
246 | v 0.009443 0.003000 -0.010336
247 | v 0.000000 0.003000 -0.014000
248 | v -0.001463 0.000000 -0.013923
249 | v -0.001463 0.003000 -0.013923
250 | v -0.007000 0.000000 -0.012124
251 | v -0.006632 0.003000 -0.012330
252 | v -0.003420 0.003000 -0.013576
253 | v -0.010657 0.003134 -0.009078
254 | v -0.009443 0.003000 -0.010336
255 | v -0.007000 0.003000 -0.012124
256 | v -0.012348 0.003814 -0.006598
257 | v -0.013694 0.000000 -0.002911
258 | v -0.013146 0.004391 -0.004816
259 | v -0.014000 0.000000 -0.000000
260 | v -0.013800 0.005078 -0.002358
261 | v -0.013684 0.004931 -0.002960
262 | v -0.013694 0.000000 0.002911
263 | v -0.013947 0.005439 0.001214
264 | v -0.013986 0.005352 -0.000619
265 | v 0.012790 0.005439 0.005694
266 | v 0.011326 0.005439 0.008229
267 | v 0.009368 0.000000 0.010404
268 | v 0.009368 0.005439 0.010404
269 | v 0.007000 0.005439 0.012124
270 | v 0.004326 0.000000 0.013315
271 | v 0.004326 0.005439 0.013315
272 | v 0.001463 0.005439 0.013923
273 | v -0.001463 0.000000 0.013923
274 | v -0.001463 0.005439 0.013923
275 | v -0.004326 0.005439 0.013315
276 | v -0.007000 0.000000 0.012124
277 | v -0.007000 0.005439 0.012124
278 | v -0.009368 0.005439 0.010404
279 | v -0.011326 0.000000 0.008229
280 | v -0.011326 0.005439 0.008229
281 | v -0.012790 0.005439 0.005694
282 | v -0.013694 0.005439 0.002911
283 | v -0.014000 0.000000 -0.000000
284 | v 0.000000 0.000000 0.000000
285 | v 0.014000 0.000000 0.000000
286 | v 0.017069 0.011156 -0.001087
287 | v 0.017042 0.011039 -0.003823
288 | v 0.018678 0.012652 -0.001125
289 | v 0.018674 0.012435 -0.003695
290 | v 0.019773 0.014682 -0.000992
291 | v 0.019927 0.014566 -0.003597
292 | v 0.016936 0.011184 0.001475
293 | v 0.018521 0.012717 0.001613
294 | v 0.019564 0.014708 0.001704
295 | v -0.019564 0.014708 0.001704
296 | v -0.018521 0.012717 0.001613
297 | v -0.017922 0.012738 0.005005
298 | v -0.018919 0.014721 0.005284
299 | v 0.001777 0.011184 0.016907
300 | v 0.003432 0.012738 0.018288
301 | v 0.000000 0.011184 0.017000
302 | v 0.000000 0.012738 0.018608
303 | v -0.001777 0.011184 0.016907
304 | v -0.003432 0.012738 0.018288
305 | v -0.003135 0.011184 0.016708
306 | v -0.006746 0.012738 0.017342
307 | v -0.006163 0.011184 0.015843
308 | v -0.009828 0.012738 0.015800
309 | v -0.008979 0.011184 0.014435
310 | v -0.012574 0.012738 0.013716
311 | v -0.011488 0.011184 0.012531
312 | v -0.014888 0.012738 0.011162
313 | v -0.013602 0.011184 0.010198
314 | v -0.016691 0.012738 0.008225
315 | v -0.015249 0.011184 0.007514
316 | v -0.016373 0.011184 0.004573
317 | v -0.016936 0.011184 0.001475
318 | v 0.003135 0.011184 0.016708
319 | v 0.006163 0.011184 0.015843
320 | v 0.006746 0.012738 0.017342
321 | v 0.008979 0.011184 0.014435
322 | v 0.009828 0.012738 0.015800
323 | v 0.011488 0.011184 0.012531
324 | v 0.012574 0.012738 0.013716
325 | v 0.013602 0.011184 0.010198
326 | v 0.014888 0.012738 0.011162
327 | v 0.015249 0.011184 0.007514
328 | v 0.016691 0.012738 0.008225
329 | v 0.016373 0.011184 0.004573
330 | v 0.017922 0.012738 0.005005
331 | v -0.017620 0.014721 0.008682
332 | v -0.015716 0.014721 0.011783
333 | v -0.013273 0.014721 0.014479
334 | v -0.010375 0.014721 0.016679
335 | v -0.007121 0.014721 0.018306
336 | v -0.003623 0.014721 0.019306
337 | v 0.000000 0.014721 0.019643
338 | v 0.003623 0.014721 0.019306
339 | v 0.007121 0.014721 0.018306
340 | v 0.010375 0.014721 0.016679
341 | v 0.013273 0.014721 0.014479
342 | v 0.015716 0.014721 0.011783
343 | v 0.017620 0.014721 0.008682
344 | v 0.018919 0.014721 0.005284
345 | v 0.017102 0.014321 -0.124043
346 | v 0.014688 0.010025 -0.014448
347 | v 0.016348 0.010491 -0.009295
348 | v 0.016121 0.010383 -0.010278
349 | v 0.017441 0.010533 -0.027840
350 | v 0.015467 0.010159 -0.012495
351 | v 0.016800 0.010783 -0.006614
352 | v 0.021651 0.014321 -0.051826
353 | v 0.021105 0.014321 -0.075953
354 | v 0.019587 0.014321 -0.100038
355 | v 0.021227 0.014321 -0.027697
356 | v 0.019710 0.012050 -0.027754
357 | v 0.020134 0.012050 -0.051822
358 | v 0.019589 0.012050 -0.075888
359 | v 0.018075 0.012050 -0.099912
360 | v 0.015596 0.012050 -0.123856
361 | v 0.017863 0.010533 -0.051817
362 | v 0.017320 0.010533 -0.075791
363 | v 0.015812 0.010533 -0.099724
364 | v 0.013342 0.010533 -0.123577
365 | v 0.126367 0.010533 -0.203625
366 | v 0.106207 0.010533 -0.188118
367 | v 0.127790 0.012050 -0.201855
368 | v 0.107553 0.012050 -0.186289
369 | v 0.128741 0.014321 -0.200672
370 | v 0.108452 0.014321 -0.185067
371 | v 0.087516 0.014321 -0.170341
372 | v 0.065971 0.014321 -0.156523
373 | v 0.043855 0.014321 -0.143637
374 | v 0.021210 0.014321 -0.131707
375 | v 0.086670 0.012050 -0.171601
376 | v 0.065179 0.012050 -0.157818
377 | v 0.043120 0.012050 -0.144964
378 | v 0.020531 0.012050 -0.133065
379 | v 0.085404 0.010533 -0.173486
380 | v 0.063994 0.010533 -0.159755
381 | v 0.042018 0.010533 -0.146951
382 | v 0.019516 0.010533 -0.135096
383 | v 0.117971 0.010533 -0.217496
384 | v 0.120492 0.010533 -0.218144
385 | v 0.117063 0.012050 -0.219577
386 | v 0.120283 0.012050 -0.220406
387 | v 0.116456 0.014321 -0.220968
388 | v 0.120144 0.014321 -0.221917
389 | v 0.123943 0.014321 -0.221659
390 | v 0.127469 0.014321 -0.220220
391 | v 0.130365 0.014321 -0.217747
392 | v 0.132337 0.014321 -0.214489
393 | v 0.133185 0.014321 -0.210777
394 | v 0.132825 0.014321 -0.206986
395 | v 0.131292 0.014321 -0.203500
396 | v 0.123601 0.012050 -0.220180
397 | v 0.126680 0.012050 -0.218924
398 | v 0.129208 0.012050 -0.216765
399 | v 0.130930 0.012050 -0.213920
400 | v 0.131671 0.012050 -0.210678
401 | v 0.131356 0.012050 -0.207368
402 | v 0.130017 0.012050 -0.204324
403 | v 0.123089 0.010533 -0.217968
404 | v 0.125498 0.010533 -0.216985
405 | v 0.127477 0.010533 -0.215295
406 | v 0.128825 0.010533 -0.213068
407 | v 0.129405 0.010533 -0.210531
408 | v 0.129159 0.010533 -0.207940
409 | v 0.128111 0.010533 -0.205558
410 | v -0.019773 0.014682 -0.000992
411 | v -0.019927 0.014566 -0.003597
412 | v -0.018678 0.012652 -0.001125
413 | v -0.018674 0.012435 -0.003695
414 | v -0.017070 0.011154 -0.001134
415 | v -0.017042 0.011039 -0.003823
416 | v 0.019211 0.017000 -0.129463
417 | v 0.018408 0.017000 -0.128276
418 | v 0.017938 0.014321 -0.128528
419 | v 0.013448 0.010533 -0.127044
420 | v 0.014599 0.010533 -0.130317
421 | v 0.015681 0.012050 -0.126628
422 | v 0.016601 0.012050 -0.129244
423 | v 0.017172 0.014321 -0.126350
424 | v 0.017696 0.017000 -0.126252
425 | v 0.017864 0.017000 -0.126950
426 | v 0.019699 0.017000 -0.129989
427 | v 0.019327 0.014321 -0.130371
428 | v 0.018270 0.012050 -0.131459
429 | v 0.016687 0.010533 -0.133088
430 | v -0.010152 0.010533 -0.141197
431 | v 0.009809 0.010533 -0.156111
432 | v -0.011549 0.012050 -0.142988
433 | v 0.008488 0.012050 -0.157959
434 | v -0.012482 0.014321 -0.144184
435 | v 0.007605 0.014321 -0.159193
436 | v 0.028303 0.014321 -0.173349
437 | v 0.049574 0.014321 -0.186626
438 | v 0.071383 0.014321 -0.199003
439 | v 0.093689 0.014321 -0.210457
440 | v 0.029133 0.012050 -0.172079
441 | v 0.050351 0.012050 -0.185323
442 | v 0.072104 0.012050 -0.197668
443 | v 0.094354 0.012050 -0.209093
444 | v 0.030376 0.010533 -0.170178
445 | v 0.051513 0.010533 -0.183372
446 | v 0.073183 0.010533 -0.195670
447 | v 0.095349 0.010533 -0.207051
448 | v -0.016988 0.010965 -0.004711
449 | v -0.015022 0.010067 -0.013677
450 | v -0.017554 0.010533 -0.031050
451 | v -0.015768 0.010248 -0.011561
452 | v -0.016175 0.010407 -0.010055
453 | v -0.016684 0.010695 -0.007443
454 | v -0.021340 0.014321 -0.030928
455 | v -0.021600 0.014321 -0.058291
456 | v -0.020612 0.014321 -0.085638
457 | v -0.018376 0.014321 -0.112911
458 | v -0.015396 0.016364 -0.140129
459 | v -0.015245 0.015413 -0.140106
460 | v -0.014934 0.014411 -0.140059
461 | v -0.014898 0.014321 -0.140054
462 | v -0.019823 0.012050 -0.030977
463 | v -0.020083 0.012050 -0.058271
464 | v -0.019097 0.012050 -0.085548
465 | v -0.016867 0.012050 -0.112752
466 | v -0.013398 0.012050 -0.139826
467 | v -0.017812 0.010533 -0.058241
468 | v -0.016830 0.010533 -0.085414
469 | v -0.014608 0.010533 -0.112515
470 | v -0.011152 0.010533 -0.139486
471 | v 0.021651 0.025679 -0.048639
472 | v 0.021192 0.025679 -0.073830
473 | v 0.015899 0.029467 -0.098672
474 | v 0.017406 0.029467 -0.073682
475 | v 0.018162 0.027950 -0.098856
476 | v 0.019676 0.027950 -0.073771
477 | v 0.019675 0.025679 -0.098979
478 | v 0.013342 0.029467 -0.123577
479 | v 0.015596 0.027950 -0.123856
480 | v 0.017102 0.025679 -0.124043
481 | v 0.017863 0.029467 -0.048650
482 | v 0.020134 0.027950 -0.048644
483 | v 0.021051 0.025679 -0.023452
484 | v 0.019535 0.027950 -0.023520
485 | v 0.017267 0.029467 -0.023621
486 | v 0.015620 0.029467 0.001360
487 | v 0.017882 0.027950 0.001557
488 | v 0.019394 0.025679 0.001689
489 | v 0.019699 0.023000 -0.129989
490 | v 0.019211 0.023000 -0.129463
491 | v 0.018408 0.023000 -0.128276
492 | v 0.017864 0.023000 -0.126950
493 | v 0.017696 0.023000 -0.126252
494 | v -0.010910 0.010909 -0.141558
495 | v -0.013068 0.014957 -0.143984
496 | v -0.013068 0.017000 -0.144393
497 | v -0.014643 0.013884 -0.140350
498 | v -0.014643 0.014611 -0.141452
499 | v -0.014643 0.015706 -0.142189
500 | v -0.013068 0.012082 -0.141082
501 | v -0.013068 0.013230 -0.142820
502 | v -0.014643 0.017000 -0.142448
503 | v -0.014546 0.017000 -0.142619
504 | v 0.014811 0.029467 0.005143
505 | v 0.016957 0.027950 0.005887
506 | v 0.018390 0.025679 0.006385
507 | v 0.013102 0.029467 0.008612
508 | v 0.010595 0.029467 0.011557
509 | v 0.015000 0.027950 0.009859
510 | v 0.012129 0.027950 0.013231
511 | v 0.016268 0.025679 0.010693
512 | v 0.013155 0.025679 0.014350
513 | v 0.007443 0.029467 0.013799
514 | v 0.008521 0.027950 0.015798
515 | v 0.009241 0.025679 0.017134
516 | v -0.000000 0.030000 0.013000
517 | v 0.003838 0.029467 0.015202
518 | v -0.000000 0.029467 0.015679
519 | v 0.004394 0.027950 0.017404
520 | v -0.000000 0.027950 0.017950
521 | v 0.004766 0.025679 0.018875
522 | v -0.000000 0.025679 0.019467
523 | v -0.003838 0.029467 0.015202
524 | v -0.004394 0.027950 0.017404
525 | v -0.004766 0.025679 0.018875
526 | v -0.007443 0.029467 0.013799
527 | v -0.010595 0.029467 0.011557
528 | v -0.008521 0.027950 0.015798
529 | v -0.012129 0.027950 0.013231
530 | v -0.009241 0.025679 0.017134
531 | v -0.013155 0.025679 0.014350
532 | v -0.013102 0.029467 0.008612
533 | v -0.015000 0.027950 0.009859
534 | v -0.016268 0.025679 0.010693
535 | v -0.014811 0.029467 0.005143
536 | v -0.015620 0.029467 0.001360
537 | v -0.016957 0.027950 0.005887
538 | v -0.017882 0.027950 0.001557
539 | v -0.018390 0.025679 0.006385
540 | v -0.019394 0.025679 0.001689
541 | v -0.000000 0.023000 0.020000
542 | v 0.019327 0.025679 -0.130371
543 | v 0.017172 0.025679 -0.126350
544 | v 0.015681 0.027950 -0.126628
545 | v 0.013448 0.029467 -0.127044
546 | v 0.017938 0.025679 -0.128528
547 | v 0.016601 0.027950 -0.129244
548 | v 0.014599 0.029467 -0.130317
549 | v 0.018270 0.027950 -0.131459
550 | v 0.016687 0.029467 -0.133088
551 | v 0.021210 0.025679 -0.131707
552 | v 0.020531 0.027950 -0.133065
553 | v 0.019516 0.029467 -0.135096
554 | v -0.013068 0.023000 -0.144393
555 | v -0.014546 0.023000 -0.142619
556 | v -0.014643 0.023000 -0.142448
557 | v -0.015397 0.023631 -0.140129
558 | v -0.021634 0.025679 -0.055104
559 | v -0.014718 0.029467 -0.111465
560 | v -0.011152 0.029467 -0.139486
561 | v -0.016977 0.027950 -0.111698
562 | v -0.013398 0.027950 -0.139826
563 | v -0.018486 0.025679 -0.111854
564 | v -0.017402 0.029467 -0.026831
565 | v -0.017846 0.029467 -0.055074
566 | v -0.019671 0.027950 -0.026741
567 | v -0.020117 0.027950 -0.055092
568 | v -0.021187 0.025679 -0.026681
569 | v -0.016951 0.029467 -0.083307
570 | v -0.019218 0.027950 -0.083433
571 | v -0.020733 0.025679 -0.083517
572 | v -0.014898 0.025679 -0.140054
573 | v -0.014941 0.025572 -0.140060
574 | v -0.015248 0.024574 -0.140106
575 | v 0.065971 0.025679 -0.156523
576 | v 0.087516 0.025679 -0.170341
577 | v 0.106207 0.029467 -0.188118
578 | v 0.085404 0.029467 -0.173486
579 | v 0.107553 0.027950 -0.186289
580 | v 0.086670 0.027950 -0.171601
581 | v 0.108452 0.025679 -0.185067
582 | v 0.126367 0.029467 -0.203625
583 | v 0.127790 0.027950 -0.201855
584 | v 0.128741 0.025679 -0.200672
585 | v 0.063994 0.029467 -0.159755
586 | v 0.065179 0.027950 -0.157818
587 | v 0.043855 0.025679 -0.143637
588 | v 0.043120 0.027950 -0.144964
589 | v 0.042018 0.029467 -0.146951
590 | v -0.013068 0.025031 -0.143989
591 | v -0.012482 0.025679 -0.144184
592 | v -0.014643 0.026107 -0.140372
593 | v -0.013068 0.027903 -0.141116
594 | v -0.010910 0.029073 -0.141601
595 | v -0.014643 0.024287 -0.142192
596 | v -0.014643 0.025378 -0.141463
597 | v -0.013068 0.026753 -0.142838
598 | v -0.011549 0.027950 -0.142988
599 | v -0.010152 0.029467 -0.141197
600 | v 0.132825 0.025679 -0.206986
601 | v 0.133185 0.025679 -0.210777
602 | v 0.132337 0.025679 -0.214489
603 | v 0.127469 0.025679 -0.220220
604 | v 0.123943 0.025679 -0.221659
605 | v 0.120144 0.025679 -0.221917
606 | v 0.117971 0.029467 -0.217496
607 | v 0.120492 0.029467 -0.218144
608 | v 0.117063 0.027950 -0.219577
609 | v 0.120283 0.027950 -0.220406
610 | v 0.116456 0.025679 -0.220968
611 | v 0.123601 0.027950 -0.220180
612 | v 0.123089 0.029467 -0.217968
613 | v 0.126680 0.027950 -0.218924
614 | v 0.125498 0.029467 -0.216985
615 | v 0.130365 0.025679 -0.217747
616 | v 0.129208 0.027950 -0.216765
617 | v 0.127477 0.029467 -0.215295
618 | v 0.128825 0.029467 -0.213068
619 | v 0.130930 0.027950 -0.213920
620 | v 0.131671 0.027950 -0.210678
621 | v 0.129405 0.029467 -0.210531
622 | v 0.131356 0.027950 -0.207368
623 | v 0.129159 0.029467 -0.207940
624 | v 0.131292 0.025679 -0.203500
625 | v 0.130017 0.027950 -0.204324
626 | v 0.128111 0.029467 -0.205558
627 | v 0.007605 0.025679 -0.159193
628 | v 0.008488 0.027950 -0.157959
629 | v 0.009809 0.029467 -0.156111
630 | v 0.030376 0.029467 -0.170178
631 | v 0.051513 0.029467 -0.183372
632 | v 0.073183 0.029467 -0.195670
633 | v 0.029133 0.027950 -0.172079
634 | v 0.050351 0.027950 -0.185323
635 | v 0.072104 0.027950 -0.197668
636 | v 0.028303 0.025679 -0.173349
637 | v 0.049574 0.025679 -0.186626
638 | v 0.071383 0.025679 -0.199003
639 | v 0.093689 0.025679 -0.210457
640 | v 0.094354 0.027950 -0.209093
641 | v 0.095349 0.029467 -0.207051
642 | v -0.014024 0.007328 -0.003445
643 | v -0.013457 0.006988 -0.005478
644 | v -0.012649 0.006664 -0.007369
645 | v -0.012062 0.006517 -0.008426
646 | v -0.012658 0.008924 -0.011519
647 | v -0.011080 0.006416 -0.009855
648 | v -0.013501 0.008929 -0.009831
649 | v -0.014006 0.009002 -0.008595
650 | v -0.014698 0.009198 -0.006399
651 | v -0.015173 0.009426 -0.004054
652 | v -0.014621 0.008510 -0.003023
653 | v -0.011803 0.009062 -0.012920
654 | v -0.010825 0.007950 -0.011850
655 | v -0.010075 0.006500 -0.011029
656 | v -0.009802 0.005679 -0.010730
657 | v -0.015334 0.009629 0.001335
658 | v -0.014800 0.008640 -0.000869
659 | v -0.014739 0.008679 0.001283
660 | v -0.014303 0.007647 0.001245
661 | v 0.006884 0.005679 -0.012799
662 | v 0.009802 0.005679 -0.010730
663 | v -0.003550 0.005679 -0.014093
664 | v 0.008679 0.009467 -0.016135
665 | v 0.011803 0.009062 -0.012920
666 | v 0.010825 0.007950 -0.011850
667 | v -0.008679 0.009467 -0.016135
668 | v -0.007603 0.007950 -0.014135
669 | v -0.000000 0.010000 -0.021000
670 | v -0.000000 0.009467 -0.018321
671 | v 0.004475 0.009467 -0.017766
672 | v 0.003920 0.007950 -0.015564
673 | v 0.007603 0.007950 -0.014135
674 | v -0.006884 0.005679 -0.012799
675 | v -0.004475 0.009467 -0.017766
676 | v -0.003920 0.007950 -0.015564
677 | v -0.000000 0.007950 -0.016050
678 | v -0.000000 0.005679 -0.014533
679 | v 0.003550 0.005679 -0.014093
680 | v 0.010075 0.006500 -0.011029
681 | v -0.000000 0.003000 -0.014000
682 | v -0.014043 0.007647 0.002985
683 | v 0.014739 0.008679 0.001283
684 | v 0.015334 0.009629 0.001335
685 | v 0.014903 0.009629 0.003851
686 | v 0.014303 0.007647 0.001245
687 | v 0.014062 0.009629 0.006261
688 | v 0.012453 0.009629 0.009047
689 | v 0.010300 0.009629 0.011439
690 | v 0.007696 0.009629 0.013330
691 | v 0.004757 0.009629 0.014639
692 | v 0.001609 0.009629 0.015308
693 | v -0.001609 0.009629 0.015308
694 | v -0.004757 0.009629 0.014639
695 | v -0.007696 0.009629 0.013330
696 | v -0.010300 0.009629 0.011439
697 | v -0.012453 0.009629 0.009047
698 | v -0.014062 0.009629 0.006261
699 | v -0.015056 0.009629 0.003200
700 | v -0.013116 0.007647 0.005840
701 | v -0.011615 0.007647 0.008439
702 | v -0.009607 0.007647 0.010669
703 | v -0.007179 0.007647 0.012434
704 | v -0.004437 0.007647 0.013655
705 | v -0.001501 0.007647 0.014279
706 | v 0.001501 0.007647 0.014279
707 | v 0.004437 0.007647 0.013655
708 | v 0.007179 0.007647 0.012434
709 | v 0.009607 0.007647 0.010669
710 | v 0.011615 0.007647 0.008439
711 | v 0.013116 0.007647 0.005840
712 | v 0.013901 0.007647 0.003592
713 | v 0.012312 0.008962 -0.012117
714 | v 0.013149 0.008910 -0.010584
715 | v 0.013937 0.008989 -0.008780
716 | v 0.010674 0.006426 -0.010357
717 | v 0.011652 0.006453 -0.009065
718 | v 0.012568 0.006640 -0.007527
719 | v 0.012912 0.006753 -0.006826
720 | v 0.014868 0.009269 -0.005692
721 | v 0.015274 0.009493 -0.003284
722 | v 0.014621 0.008510 -0.003023
723 | v 0.014232 0.009053 -0.007962
724 | v 0.013658 0.007095 -0.004866
725 | v 0.014149 0.007424 -0.002776
726 | v 0.014802 0.008642 -0.000831
727 | vn -0.9964 0.0000 0.0845
728 | vn -0.9920 0.0000 -0.1262
729 | vn -0.9919 0.0042 -0.1271
730 | vn -0.9953 -0.0012 -0.0968
731 | vn -0.9952 0.0000 -0.0976
732 | vn -0.9973 0.0000 -0.0731
733 | vn -0.9972 0.0063 -0.0749
734 | vn -0.9990 -0.0048 -0.0435
735 | vn -0.9990 0.0000 -0.0453
736 | vn -0.9998 0.0000 -0.0198
737 | vn -0.9997 0.0063 -0.0225
738 | vn -0.9999 -0.0109 0.0098
739 | vn -1.0000 0.0000 0.0071
740 | vn -0.9994 0.0000 0.0335
741 | vn -0.9995 0.0042 0.0300
742 | vn -0.9978 -0.0193 0.0631
743 | vn -0.9982 0.0241 0.0551
744 | vn -0.9968 0.0019 0.0802
745 | vn -0.4192 0.0000 -0.9079
746 | vn -0.4474 0.0000 -0.8943
747 | vn -0.4660 0.0000 -0.8848
748 | vn -0.4936 0.0000 -0.8697
749 | vn -0.5295 0.0000 -0.8483
750 | vn -0.5559 0.0000 -0.8313
751 | vn -0.5731 0.0000 -0.8195
752 | vn -0.5986 0.0000 -0.8011
753 | vn 0.7425 0.0000 0.6698
754 | vn 0.8635 0.0000 0.5043
755 | vn 0.9328 0.0000 0.3605
756 | vn 0.9867 0.0000 0.1626
757 | vn 1.0000 0.0000 0.0035
758 | vn 0.9797 0.0000 -0.2005
759 | vn 0.9353 0.0000 -0.3539
760 | vn 0.8555 0.0000 -0.5178
761 | vn 0.7472 0.0000 -0.6646
762 | vn 0.6320 0.0000 -0.7750
763 | vn 0.4606 0.0000 -0.8876
764 | vn 0.3135 0.0000 -0.9496
765 | vn 0.1132 0.0000 -0.9936
766 | vn -0.0464 0.0000 -0.9989
767 | vn -0.2492 0.0000 -0.9685
768 | vn 0.4661 0.0000 0.8847
769 | vn 0.4895 0.0000 0.8720
770 | vn 0.5080 0.0000 0.8613
771 | vn 0.5308 0.0000 0.8475
772 | vn 0.5488 0.0000 0.8359
773 | vn 0.5709 0.0000 0.8210
774 | vn 0.5883 0.0000 0.8086
775 | vn 0.6097 0.0000 0.7926
776 | vn 0.9964 0.0000 0.0845
777 | vn 0.9968 0.0019 0.0802
778 | vn 0.9977 0.0147 0.0658
779 | vn 0.9983 -0.0118 0.0578
780 | vn 0.9947 0.0000 -0.1030
781 | vn 0.9948 0.0036 -0.1021
782 | vn 0.9970 -0.0009 -0.0768
783 | vn 0.9971 0.0000 -0.0759
784 | vn 0.9984 0.0000 -0.0567
785 | vn 0.9985 0.0050 -0.0550
786 | vn 0.9995 -0.0037 -0.0305
787 | vn 0.9996 0.0000 -0.0287
788 | vn 0.9999 0.0000 -0.0104
789 | vn 1.0000 0.0042 -0.0077
790 | vn 0.9998 -0.0093 0.0176
791 | vn 0.9998 -0.0060 0.0186
792 | vn 0.9992 0.0012 0.0396
793 | vn -0.9779 0.0000 0.2090
794 | vn -0.9836 0.0251 0.1786
795 | vn -0.9224 -0.0189 0.3857
796 | vn -0.9341 0.0000 0.3570
797 | vn -0.8680 0.0000 0.4966
798 | vn -0.8522 -0.0126 0.5231
799 | vn -0.7614 0.0189 0.6480
800 | vn -0.7411 0.0000 0.6714
801 | vn -0.5797 0.0000 0.8149
802 | vn -0.6044 0.0251 0.7963
803 | vn -0.4194 -0.0189 0.9076
804 | vn -0.4473 0.0000 0.8944
805 | vn -0.3043 0.0000 0.9526
806 | vn -0.2746 -0.0126 0.9615
807 | vn -0.1233 0.0189 0.9922
808 | vn -0.0926 0.0000 0.9957
809 | vn 0.1233 0.0000 0.9924
810 | vn 0.0926 0.0251 0.9954
811 | vn 0.3042 -0.0189 0.9524
812 | vn 0.2747 0.0000 0.9615
813 | vn 0.4194 0.0000 0.9078
814 | vn 0.4473 -0.0126 0.8943
815 | vn 0.5796 0.0189 0.8147
816 | vn 0.6046 0.0000 0.7966
817 | vn 0.7615 0.0000 0.6482
818 | vn 0.7409 0.0251 0.6712
819 | vn 0.8678 -0.0189 0.4965
820 | vn 0.8522 0.0000 0.5232
821 | vn 0.9226 0.0000 0.3857
822 | vn 0.9340 -0.0126 0.3570
823 | vn 0.9777 0.0189 0.2089
824 | vn 0.9839 0.0000 0.1786
825 | vn 0.0000 1.0000 0.0000
826 | vn 0.0000 -1.0000 0.0000
827 | vn -0.8242 -0.0000 -0.5664
828 | vn 0.9832 -0.0704 0.1686
829 | vn 0.9775 -0.0369 0.2078
830 | vn 0.9945 -0.0091 -0.1040
831 | vn 0.9998 -0.0000 -0.0210
832 | vn 0.9991 0.0000 0.0434
833 | vn 0.8074 -0.0626 -0.5866
834 | vn 0.7748 -0.1313 -0.6184
835 | vn 0.8470 -0.0308 -0.5307
836 | vn 0.8894 -0.0043 -0.4572
837 | vn 0.9073 0.0000 -0.4205
838 | vn 0.9781 -0.0000 -0.2079
839 | vn 0.9388 -0.1519 -0.3091
840 | vn 0.9734 -0.0638 -0.2199
841 | vn 0.2768 0.0000 -0.9609
842 | vn 0.3929 0.0000 -0.9196
843 | vn 0.4975 -0.0994 -0.8617
844 | vn 0.5785 0.0040 -0.8157
845 | vn 0.7014 -0.0014 -0.7128
846 | vn 0.1229 -0.0491 -0.9912
847 | vn 0.1042 -0.0762 -0.9916
848 | vn -0.0523 0.0000 -0.9986
849 | vn -0.3089 -0.0271 -0.9507
850 | vn -0.3588 -0.1269 -0.9247
851 | vn -0.1748 0.0000 -0.9846
852 | vn -0.7858 0.0000 -0.6185
853 | vn -0.7207 -0.0339 -0.6925
854 | vn -0.6657 -0.1013 -0.7393
855 | vn -0.5907 0.0000 -0.8069
856 | vn -0.4869 0.0000 -0.8735
857 | vn -0.8630 -0.0152 -0.5049
858 | vn -0.9113 -0.0706 -0.4057
859 | vn -0.9179 -0.0558 -0.3929
860 | vn -0.9945 -0.0094 -0.1045
861 | vn -0.9818 0.0002 -0.1900
862 | vn -0.9605 -0.0007 -0.2782
863 | vn -0.9944 -0.0137 0.1045
864 | vn -0.9998 0.0050 0.0211
865 | vn -0.9944 -0.0096 -0.1050
866 | vn 0.9441 0.0000 0.3296
867 | vn 0.8660 0.0000 0.5000
868 | vn 0.8077 -0.0562 0.5869
869 | vn 0.7431 0.0000 0.6691
870 | vn 0.5878 0.0000 0.8090
871 | vn 0.4992 -0.0562 0.8647
872 | vn 0.4067 0.0000 0.9135
873 | vn 0.2079 0.0000 0.9781
874 | vn 0.1044 -0.0562 0.9930
875 | vn 0.0000 0.0000 1.0000
876 | vn -0.2079 0.0000 0.9781
877 | vn -0.3085 -0.0562 0.9496
878 | vn -0.4067 0.0000 0.9135
879 | vn -0.5878 0.0000 0.8090
880 | vn -0.6681 -0.0562 0.7420
881 | vn -0.7431 0.0000 0.6691
882 | vn -0.8660 0.0000 0.5000
883 | vn -0.9121 -0.0562 0.4061
884 | vn -0.9511 0.0000 0.3090
885 | vn -0.9890 0.0000 0.1476
886 | vn 0.6812 -0.7317 0.0244
887 | vn 0.6459 -0.7608 0.0632
888 | vn 0.8784 -0.4764 0.0389
889 | vn 0.8583 -0.5079 0.0733
890 | vn 0.9842 -0.1647 0.0654
891 | vn 0.9813 -0.1767 0.0762
892 | vn 0.6925 -0.7201 0.0439
893 | vn 0.6807 -0.7304 0.0562
894 | vn 0.8830 -0.4654 0.0615
895 | vn 0.8758 -0.4772 0.0724
896 | vn 0.9839 -0.1607 0.0777
897 | vn 0.9829 -0.1651 0.0814
898 | vn -0.8718 -0.4639 0.1570
899 | vn -0.9713 -0.1600 0.1758
900 | vn 0.0381 -0.6861 0.7265
901 | vn 0.0645 -0.7173 0.6937
902 | vn -0.0364 -0.7184 0.6947
903 | vn -0.0660 -0.7012 0.7099
904 | vn -0.1006 -0.7186 0.6882
905 | vn -0.1914 -0.7173 0.6699
906 | vn -0.3116 -0.7173 0.6231
907 | vn -0.4212 -0.7173 0.5550
908 | vn -0.5163 -0.7173 0.4678
909 | vn -0.5938 -0.7173 0.3645
910 | vn -0.6508 -0.7173 0.2488
911 | vn -0.6852 -0.7174 0.1257
912 | vn -0.6842 -0.7187 0.1242
913 | vn 0.1006 -0.7186 0.6882
914 | vn 0.1914 -0.7173 0.6699
915 | vn 0.3116 -0.7173 0.6231
916 | vn 0.4212 -0.7173 0.5550
917 | vn 0.5163 -0.7173 0.4678
918 | vn 0.5938 -0.7173 0.3645
919 | vn 0.6508 -0.7173 0.2488
920 | vn 0.6855 -0.7173 0.1245
921 | vn 0.6840 -0.7186 0.1255
922 | vn -0.8728 -0.4614 0.1591
923 | vn -0.8287 -0.4613 0.3168
924 | vn -0.7561 -0.4613 0.4642
925 | vn -0.6575 -0.4613 0.5957
926 | vn -0.5364 -0.4613 0.7067
927 | vn -0.3968 -0.4613 0.7935
928 | vn -0.2437 -0.4613 0.8531
929 | vn -0.0822 -0.4613 0.8834
930 | vn 0.0822 -0.4613 0.8834
931 | vn 0.2437 -0.4613 0.8531
932 | vn 0.3968 -0.4613 0.7935
933 | vn 0.5364 -0.4613 0.7067
934 | vn 0.6575 -0.4613 0.5957
935 | vn 0.7561 -0.4613 0.4642
936 | vn 0.8287 -0.4613 0.3168
937 | vn 0.8732 -0.4613 0.1573
938 | vn 0.8715 -0.4639 0.1588
939 | vn -0.9714 -0.1591 0.1764
940 | vn -0.9222 -0.1591 0.3525
941 | vn -0.8414 -0.1591 0.5165
942 | vn -0.7317 -0.1591 0.6628
943 | vn -0.5969 -0.1591 0.7864
944 | vn -0.4416 -0.1591 0.8830
945 | vn -0.2712 -0.1591 0.9493
946 | vn -0.0914 -0.1591 0.9830
947 | vn 0.0914 -0.1591 0.9830
948 | vn 0.2712 -0.1591 0.9493
949 | vn 0.4416 -0.1591 0.8830
950 | vn 0.5969 -0.1591 0.7864
951 | vn 0.7317 -0.1591 0.6628
952 | vn 0.8414 -0.1591 0.5165
953 | vn 0.9222 -0.1591 0.3525
954 | vn 0.9715 -0.1591 0.1758
955 | vn 0.9712 -0.1600 0.1763
956 | vn 0.9826 -0.1766 0.0569
957 | vn 0.9756 -0.1951 -0.1010
958 | vn 0.0427 -0.9991 0.0021
959 | vn 0.3623 -0.9319 0.0193
960 | vn 0.2831 -0.9590 0.0131
961 | vn 0.1742 -0.9847 -0.0016
962 | vn 0.6494 -0.7604 0.0134
963 | vn 0.9717 -0.2353 -0.0220
964 | vn 0.9779 -0.1951 -0.0754
965 | vn 0.9710 -0.2309 -0.0612
966 | vn 0.9792 -0.1951 -0.0557
967 | vn 0.9803 -0.1951 -0.0299
968 | vn 0.9807 -0.1951 -0.0102
969 | vn 0.9806 -0.1951 0.0173
970 | vn 0.9793 -0.1951 0.0548
971 | vn 0.8599 -0.5079 0.0515
972 | vn 0.6939 -0.7190 -0.0387
973 | vn 0.5851 -0.8101 0.0382
974 | vn 0.8303 -0.5555 0.0446
975 | vn 0.8314 -0.5555 0.0146
976 | vn 0.8313 -0.5555 -0.0188
977 | vn 0.8299 -0.5555 -0.0523
978 | vn 0.8271 -0.5555 -0.0856
979 | vn 0.5548 -0.8314 0.0308
980 | vn 0.5556 -0.8314 0.0098
981 | vn 0.5555 -0.8314 -0.0126
982 | vn 0.5545 -0.8314 -0.0349
983 | vn 0.5527 -0.8314 -0.0572
984 | vn 0.1951 -0.9808 0.0029
985 | vn 0.1951 -0.9808 0.0034
986 | vn 0.1951 -0.9808 -0.0044
987 | vn 0.1947 -0.9808 -0.0123
988 | vn 0.1941 -0.9808 -0.0201
989 | vn 0.1190 -0.9808 0.1547
990 | vn 0.3388 -0.8314 0.4404
991 | vn 0.5070 -0.5555 0.6591
992 | vn 0.5980 -0.1950 0.7774
993 | vn 0.5980 -0.1951 0.7774
994 | vn 0.5770 -0.1951 0.7931
995 | vn 0.5598 -0.2308 0.7959
996 | vn 0.5600 -0.1951 0.8052
997 | vn 0.5383 -0.1951 0.8199
998 | vn 0.5238 -0.2425 0.8166
999 | vn 0.5206 -0.1951 0.8312
1000 | vn 0.4938 -0.1951 0.8474
1001 | vn 0.4929 -0.2424 0.8356
1002 | vn 0.4801 -0.1951 0.8552
1003 | vn 0.4571 -0.1950 0.8677
1004 | vn 0.4784 -0.5555 0.6801
1005 | vn 0.4489 -0.5555 0.6999
1006 | vn 0.4186 -0.5555 0.7185
1007 | vn 0.3876 -0.5555 0.7357
1008 | vn 0.3197 -0.8314 0.4545
1009 | vn 0.3000 -0.8314 0.4677
1010 | vn 0.2797 -0.8314 0.4801
1011 | vn 0.2590 -0.8314 0.4916
1012 | vn 0.1123 -0.9808 0.1596
1013 | vn 0.1053 -0.9808 0.1643
1014 | vn 0.0982 -0.9808 0.1686
1015 | vn 0.0910 -0.9808 0.1726
1016 | vn 0.0909 -0.9808 0.1726
1017 | vn -0.0492 -0.9803 -0.1913
1018 | vn -0.1397 -0.8282 -0.5428
1019 | vn -0.2080 -0.5506 -0.8084
1020 | vn -0.2445 -0.1927 -0.9503
1021 | vn -0.0455 -0.1949 -0.9798
1022 | vn 0.0658 -0.2379 -0.9691
1023 | vn 0.1110 -0.1939 -0.9747
1024 | vn 0.3075 -0.1943 -0.9315
1025 | vn 0.3660 -0.2467 -0.8973
1026 | vn 0.4517 -0.1947 -0.8707
1027 | vn 0.6200 -0.1933 -0.7604
1028 | vn 0.6336 -0.2199 -0.7418
1029 | vn 0.7329 -0.1950 -0.6518
1030 | vn 0.8395 -0.1927 -0.5081
1031 | vn 0.8394 -0.1927 -0.5081
1032 | vn 0.9173 -0.1950 -0.3471
1033 | vn 0.9510 -0.2199 -0.2174
1034 | vn 0.9612 -0.1933 -0.1968
1035 | vn 0.9809 -0.1947 0.0035
1036 | vn 0.9647 -0.2467 0.0918
1037 | vn 0.9679 -0.1943 0.1595
1038 | vn 0.9151 -0.1939 0.3536
1039 | vn 0.8891 -0.2379 0.3911
1040 | vn 0.8470 -0.1949 0.4946
1041 | vn 0.7286 -0.1927 0.6573
1042 | vn -0.2080 -0.5507 -0.8084
1043 | vn 0.0565 -0.5506 -0.8328
1044 | vn 0.3153 -0.5506 -0.7729
1045 | vn 0.5421 -0.5507 -0.6347
1046 | vn 0.7141 -0.5507 -0.4323
1047 | vn 0.8137 -0.5506 -0.1860
1048 | vn 0.8310 -0.5506 0.0790
1049 | vn 0.7641 -0.5506 0.3361
1050 | vn 0.7641 -0.5507 0.3361
1051 | vn 0.6198 -0.5507 0.5591
1052 | vn 0.6198 -0.5506 0.5591
1053 | vn 0.0379 -0.8282 -0.5592
1054 | vn 0.2117 -0.8282 -0.5190
1055 | vn 0.3640 -0.8282 -0.4262
1056 | vn 0.4795 -0.8282 -0.2902
1057 | vn 0.5464 -0.8282 -0.1249
1058 | vn 0.5580 -0.8282 0.0531
1059 | vn 0.5131 -0.8282 0.2257
1060 | vn 0.4162 -0.8282 0.3754
1061 | vn 0.0134 -0.9803 -0.1971
1062 | vn 0.0746 -0.9803 -0.1829
1063 | vn 0.1283 -0.9803 -0.1502
1064 | vn 0.1690 -0.9803 -0.1023
1065 | vn 0.1925 -0.9803 -0.0440
1066 | vn 0.1966 -0.9803 0.0187
1067 | vn 0.1808 -0.9803 0.0795
1068 | vn 0.1467 -0.9803 0.1323
1069 | vn -0.9833 -0.1650 0.0766
1070 | vn -0.9821 -0.1767 0.0658
1071 | vn -0.8757 -0.4772 0.0729
1072 | vn -0.8605 -0.5078 0.0416
1073 | vn -0.6801 -0.7306 0.0606
1074 | vn -0.6486 -0.7607 0.0259
1075 | vn -0.9836 -0.1607 0.0815
1076 | vn -0.9832 -0.1650 0.0777
1077 | vn -0.8821 -0.4655 0.0727
1078 | vn -0.8767 -0.4770 0.0614
1079 | vn -0.6915 -0.7202 0.0566
1080 | vn -0.6808 -0.7312 0.0432
1081 | vn 0.8127 -0.1941 0.5495
1082 | vn 0.1862 -0.9803 0.0655
1083 | vn 0.5284 -0.8284 0.1858
1084 | vn 0.7872 -0.5510 0.2769
1085 | vn 0.7872 -0.5510 0.2768
1086 | vn 0.1972 -0.9803 0.0060
1087 | vn 0.5599 -0.8284 0.0171
1088 | vn 0.8341 -0.5510 0.0255
1089 | vn 0.9808 -0.1929 0.0299
1090 | vn 0.9257 -0.1929 0.3255
1091 | vn 0.9144 -0.1519 0.3753
1092 | vn 0.9537 -0.1948 0.2290
1093 | vn 0.7188 -0.1948 0.6674
1094 | vn 0.7874 -0.1668 0.5934
1095 | vn 0.6664 -0.5510 0.5022
1096 | vn 0.4473 -0.8284 0.3371
1097 | vn 0.1576 -0.9803 0.1188
1098 | vn 0.1142 -0.9803 0.1609
1099 | vn 0.3242 -0.8284 0.4567
1100 | vn 0.4831 -0.5510 0.6805
1101 | vn 0.5680 -0.1929 0.8001
1102 | vn -0.1168 -0.9808 -0.1563
1103 | vn -0.3326 -0.8314 -0.4451
1104 | vn -0.4977 -0.5555 -0.6661
1105 | vn -0.5871 -0.1951 -0.7857
1106 | vn -0.5871 -0.1950 -0.7857
1107 | vn -0.5621 -0.1951 -0.8037
1108 | vn -0.5479 -0.2406 -0.8012
1109 | vn -0.5452 -0.1951 -0.8153
1110 | vn -0.5193 -0.1950 -0.8320
1111 | vn -0.4841 -0.1950 -0.8530
1112 | vn -0.4571 -0.1951 -0.8678
1113 | vn -0.4434 -0.2406 -0.8635
1114 | vn -0.4388 -0.1951 -0.8771
1115 | vn -0.4111 -0.1951 -0.8905
1116 | vn -0.4694 -0.5555 -0.6864
1117 | vn -0.4403 -0.5555 -0.7054
1118 | vn -0.4104 -0.5555 -0.7232
1119 | vn -0.3798 -0.5555 -0.7397
1120 | vn -0.3486 -0.5555 -0.7550
1121 | vn -0.3485 -0.5555 -0.7549
1122 | vn -0.3137 -0.8314 -0.4586
1123 | vn -0.2942 -0.8314 -0.4714
1124 | vn -0.2743 -0.8314 -0.4833
1125 | vn -0.2538 -0.8314 -0.4943
1126 | vn -0.2329 -0.8314 -0.5045
1127 | vn -0.1102 -0.9808 -0.1611
1128 | vn -0.1033 -0.9808 -0.1655
1129 | vn -0.0963 -0.9808 -0.1697
1130 | vn -0.0891 -0.9808 -0.1736
1131 | vn -0.0818 -0.9808 -0.1772
1132 | vn -0.6488 -0.7606 0.0237
1133 | vn -0.1026 -0.9946 -0.0117
1134 | vn -0.2195 -0.9756 0.0058
1135 | vn -0.3155 -0.9488 0.0150
1136 | vn -0.5778 -0.8155 0.0330
1137 | vn -0.7234 -0.6874 -0.0650
1138 | vn -0.6566 -0.7543 0.0015
1139 | vn -0.9829 -0.1766 0.0524
1140 | vn -0.9793 -0.1950 0.0541
1141 | vn -0.9803 -0.1951 0.0294
1142 | vn -0.9765 -0.2155 0.0093
1143 | vn -0.9808 -0.1951 0.0070
1144 | vn -0.9805 -0.1951 -0.0221
1145 | vn -0.9684 -0.2471 -0.0350
1146 | vn -0.9798 -0.1951 -0.0444
1147 | vn -0.9775 -0.1950 -0.0801
1148 | vn -0.9631 -0.2593 -0.0723
1149 | vn -0.9761 -0.1951 -0.0958
1150 | vn -0.9909 -0.0455 -0.1270
1151 | vn -0.9796 -0.1591 -0.1228
1152 | vn -0.9734 -0.1951 -0.1199
1153 | vn -0.9466 -0.2990 -0.1210
1154 | vn -0.9190 -0.3761 -0.1178
1155 | vn -0.8604 -0.5078 0.0434
1156 | vn -0.8302 -0.5554 0.0479
1157 | vn -0.8315 -0.5555 0.0079
1158 | vn -0.8310 -0.5555 -0.0300
1159 | vn -0.8288 -0.5555 -0.0679
1160 | vn -0.8248 -0.5555 -0.1057
1161 | vn -0.5546 -0.8313 0.0351
1162 | vn -0.5556 -0.8314 0.0053
1163 | vn -0.5553 -0.8314 -0.0201
1164 | vn -0.5538 -0.8314 -0.0454
1165 | vn -0.5512 -0.8314 -0.0706
1166 | vn -0.1949 -0.9808 0.0089
1167 | vn -0.1951 -0.9808 0.0019
1168 | vn -0.1950 -0.9808 -0.0071
1169 | vn -0.1945 -0.9808 -0.0159
1170 | vn -0.1936 -0.9808 -0.0248
1171 | vn 0.9806 0.1951 0.0182
1172 | vn 0.9804 0.1951 -0.0282
1173 | vn 0.1948 0.9808 -0.0118
1174 | vn 0.5546 0.8314 -0.0335
1175 | vn 0.8300 0.5555 -0.0501
1176 | vn 0.1941 0.9808 -0.0199
1177 | vn 0.5528 0.8314 -0.0567
1178 | vn 0.8272 0.5555 -0.0849
1179 | vn 0.9757 0.1950 -0.1002
1180 | vn 0.9790 0.1950 -0.0591
1181 | vn 0.9691 0.2410 -0.0534
1182 | vn 0.9780 0.1951 -0.0745
1183 | vn 0.1951 0.9808 -0.0036
1184 | vn 0.5556 0.8314 -0.0101
1185 | vn 0.8314 0.5555 -0.0152
1186 | vn 0.9704 0.2410 -0.0177
1187 | vn 0.9808 0.1951 -0.0076
1188 | vn 0.9800 0.1951 0.0388
1189 | vn 0.9730 0.2297 0.0232
1190 | vn 0.8313 0.5555 0.0198
1191 | vn 0.5555 0.8314 0.0132
1192 | vn 0.1951 0.9808 0.0046
1193 | vn 0.1947 0.9808 0.0128
1194 | vn 0.5545 0.8314 0.0366
1195 | vn 0.8297 0.5555 0.0547
1196 | vn 0.9787 0.1950 0.0645
1197 | vn 0.5789 0.0000 0.8154
1198 | vn 0.7328 0.0000 0.6804
1199 | vn 0.8284 0.0000 0.5601
1200 | vn 0.9251 0.0000 0.3797
1201 | vn 0.9724 0.0000 0.2334
1202 | vn 0.9995 0.0000 0.0305
1203 | vn -0.1189 -0.8013 -0.5864
1204 | vn -0.5052 -0.8437 0.1813
1205 | vn -0.1650 -0.9668 -0.1950
1206 | vn -0.7254 -0.5297 -0.4395
1207 | vn -0.4807 -0.1721 -0.8599
1208 | vn -0.6216 -0.1950 -0.7587
1209 | vn -0.9199 -0.3274 -0.2160
1210 | vn -0.9331 -0.1565 -0.3238
1211 | vn -0.9401 -0.1904 -0.2828
1212 | vn -0.8353 -0.5435 0.0830
1213 | vn -0.9003 -0.3749 -0.2213
1214 | vn -0.8868 -0.2916 -0.3585
1215 | vn -0.5251 -0.8244 -0.2113
1216 | vn -0.4978 -0.8538 -0.1526
1217 | vn -0.5048 -0.7705 -0.3893
1218 | vn -0.5781 -0.6811 -0.4493
1219 | vn -0.4647 -0.4945 -0.7345
1220 | vn -0.9428 -0.0447 -0.3304
1221 | vn -0.9455 -0.0639 -0.3193
1222 | vn -0.8660 -0.0981 -0.4903
1223 | vn -0.7769 -0.5902 -0.2192
1224 | vn -0.7710 -0.5316 -0.3507
1225 | vn -0.7709 -0.5316 -0.3507
1226 | vn -0.7710 -0.3557 -0.5283
1227 | vn -0.7730 -0.1472 -0.6171
1228 | vn -0.7619 -0.1271 -0.6351
1229 | vn 0.1922 0.9805 0.0411
1230 | vn 0.5462 0.8295 0.1167
1231 | vn 0.8150 0.5526 0.1742
1232 | vn 0.9594 0.1937 0.2050
1233 | vn 0.1497 0.9805 0.1274
1234 | vn 0.4253 0.8295 0.3620
1235 | vn 0.6347 0.5526 0.5402
1236 | vn 0.1139 0.9805 0.1601
1237 | vn 0.3237 0.8295 0.4551
1238 | vn 0.4831 0.5526 0.6791
1239 | vn 0.0242 0.9805 0.1950
1240 | vn 0.0689 0.8295 0.5543
1241 | vn 0.1028 0.5526 0.8271
1242 | vn -0.0242 0.9805 0.1950
1243 | vn -0.0689 0.8295 0.5543
1244 | vn -0.0689 0.8295 0.5542
1245 | vn -0.1028 0.5526 0.8271
1246 | vn -0.1139 0.9805 0.1601
1247 | vn -0.3237 0.8295 0.4551
1248 | vn -0.4831 0.5526 0.6791
1249 | vn -0.1497 0.9805 0.1274
1250 | vn -0.4253 0.8295 0.3620
1251 | vn -0.6347 0.5526 0.5402
1252 | vn -0.1922 0.9805 0.0411
1253 | vn -0.5462 0.8295 0.1167
1254 | vn -0.8150 0.5526 0.1742
1255 | vn 0.8292 0.2955 0.4744
1256 | vn 0.9049 0.1947 0.3784
1257 | vn 0.5687 0.1937 0.7994
1258 | vn 0.7471 0.1937 0.6359
1259 | vn 0.8800 0.1937 0.4336
1260 | vn 0.7476 0.5526 0.3684
1261 | vn 0.5010 0.8295 0.2469
1262 | vn 0.1763 0.9805 0.0869
1263 | vn 0.2907 0.2955 0.9101
1264 | vn 0.4114 0.1947 0.8904
1265 | vn -0.1210 0.1937 0.9736
1266 | vn 0.1210 0.1937 0.9736
1267 | vn 0.3557 0.1937 0.9143
1268 | vn 0.3021 0.5526 0.7767
1269 | vn 0.2025 0.8295 0.5205
1270 | vn 0.0713 0.9805 0.1832
1271 | vn -0.4007 0.2955 0.8673
1272 | vn -0.2984 0.1947 0.9344
1273 | vn -0.7471 0.1937 0.6359
1274 | vn -0.5687 0.1937 0.7994
1275 | vn -0.3557 0.1937 0.9143
1276 | vn -0.3021 0.5526 0.7767
1277 | vn -0.2025 0.8295 0.5205
1278 | vn -0.0713 0.9805 0.1832
1279 | vn -0.8814 0.2955 0.3685
1280 | vn -0.8514 0.1947 0.4871
1281 | vn -0.1763 0.9805 0.0869
1282 | vn -0.5010 0.8295 0.2469
1283 | vn -0.7476 0.5526 0.3684
1284 | vn -0.8800 0.1937 0.4336
1285 | vn -0.9594 0.1937 0.2050
1286 | vn 0.7188 0.1948 0.6674
1287 | vn 0.8188 0.1519 0.5536
1288 | vn 0.9808 0.1929 0.0299
1289 | vn 0.8341 0.5510 0.0255
1290 | vn 0.5599 0.8284 0.0171
1291 | vn 0.1972 0.9803 0.0060
1292 | vn 0.9537 0.1948 0.2290
1293 | vn 0.9302 0.1668 0.3271
1294 | vn 0.7872 0.5510 0.2768
1295 | vn 0.5284 0.8284 0.1858
1296 | vn 0.1862 0.9803 0.0655
1297 | vn 0.9075 0.1941 0.3724
1298 | vn 0.7836 0.1929 0.5905
1299 | vn 0.6664 0.5510 0.5022
1300 | vn 0.4473 0.8284 0.3371
1301 | vn 0.1576 0.9803 0.1188
1302 | vn 0.5680 0.1929 0.8001
1303 | vn 0.4831 0.5510 0.6805
1304 | vn 0.3242 0.8284 0.4567
1305 | vn 0.1142 0.9803 0.1609
1306 | vn -0.6338 0.0000 -0.7735
1307 | vn -0.7681 0.0000 -0.6403
1308 | vn -0.8702 0.0000 -0.4927
1309 | vn -0.9474 0.0000 -0.3200
1310 | vn -0.9910 0.0451 -0.1261
1311 | vn -0.9806 0.1951 -0.0195
1312 | vn -0.1936 0.9808 -0.0246
1313 | vn -0.5512 0.8314 -0.0701
1314 | vn -0.8249 0.5555 -0.1050
1315 | vn -0.1951 0.9808 0.0031
1316 | vn -0.5556 0.8314 0.0087
1317 | vn -0.8314 0.5555 0.0131
1318 | vn -0.1945 0.9808 -0.0154
1319 | vn -0.5539 0.8314 -0.0439
1320 | vn -0.8289 0.5555 -0.0657
1321 | vn -0.1948 0.9808 0.0123
1322 | vn -0.5546 0.8314 0.0351
1323 | vn -0.8299 0.5555 0.0525
1324 | vn -0.9788 0.1950 0.0619
1325 | vn -0.9807 0.1950 0.0154
1326 | vn -0.9674 0.2533 0.0095
1327 | vn -0.9802 0.1951 0.0329
1328 | vn -0.1950 0.9808 -0.0062
1329 | vn -0.5554 0.8314 -0.0176
1330 | vn -0.8311 0.5555 -0.0264
1331 | vn -0.9669 0.2533 -0.0307
1332 | vn -0.9799 0.1951 -0.0427
1333 | vn -0.9196 0.3750 -0.1170
1334 | vn -0.9473 0.2969 -0.1202
1335 | vn -0.9782 0.1951 -0.0717
1336 | vn -0.9680 0.2390 -0.0768
1337 | vn -0.9762 0.1951 -0.0949
1338 | vn -0.9735 0.1951 -0.1192
1339 | vn -0.9799 0.1578 -0.1221
1340 | vn 0.4983 0.1951 0.8448
1341 | vn 0.5383 0.1951 0.8199
1342 | vn 0.1123 0.9808 0.1596
1343 | vn 0.3197 0.8314 0.4545
1344 | vn 0.4784 0.5555 0.6801
1345 | vn 0.1190 0.9808 0.1547
1346 | vn 0.3388 0.8314 0.4404
1347 | vn 0.5070 0.5555 0.6591
1348 | vn 0.5980 0.1950 0.7774
1349 | vn 0.5980 0.1951 0.7774
1350 | vn 0.5643 0.1951 0.8022
1351 | vn 0.5539 0.2424 0.7965
1352 | vn 0.5770 0.1951 0.7931
1353 | vn 0.1053 0.9808 0.1643
1354 | vn 0.3000 0.8314 0.4677
1355 | vn 0.4489 0.5555 0.6999
1356 | vn 0.5237 0.2425 0.8166
1357 | vn 0.5206 0.1951 0.8312
1358 | vn 0.4801 0.1951 0.8552
1359 | vn 0.4898 0.2308 0.8407
1360 | vn 0.4186 0.5555 0.7185
1361 | vn 0.2797 0.8314 0.4801
1362 | vn 0.0982 0.9808 0.1686
1363 | vn 0.0909 0.9808 0.1726
1364 | vn 0.2590 0.8314 0.4916
1365 | vn 0.3876 0.5555 0.7357
1366 | vn 0.4571 0.1950 0.8677
1367 | vn -0.4961 0.1934 -0.8464
1368 | vn -0.9013 0.3738 -0.2189
1369 | vn -0.8356 0.5456 0.0644
1370 | vn -0.7768 0.5901 -0.2198
1371 | vn -0.5347 0.8285 -0.1665
1372 | vn -0.5022 0.8379 -0.2137
1373 | vn -0.9465 0.0444 -0.3197
1374 | vn -0.9438 0.0645 -0.3242
1375 | vn -0.8661 0.0975 -0.4903
1376 | vn -0.7731 0.1466 -0.6171
1377 | vn -0.7620 0.1263 -0.6352
1378 | vn -0.6264 0.1521 -0.7645
1379 | vn -0.9427 0.1561 -0.2947
1380 | vn -0.9336 0.1991 -0.2980
1381 | vn -0.7710 0.3538 -0.5295
1382 | vn -0.6655 0.4147 -0.6206
1383 | vn -0.5028 0.5555 -0.6622
1384 | vn -0.9254 0.2956 -0.2372
1385 | vn -0.9010 0.3607 -0.2410
1386 | vn -0.7710 0.5295 -0.3538
1387 | vn -0.5788 0.6781 -0.4531
1388 | vn -0.5049 0.7696 -0.3908
1389 | vn -0.0931 0.7942 -0.6005
1390 | vn -0.3602 0.9088 -0.2107
1391 | vn -0.1807 0.9778 -0.1057
1392 | vn 0.9151 0.1939 0.3536
1393 | vn 0.9809 0.1946 0.0035
1394 | vn 0.9173 0.1950 -0.3471
1395 | vn 0.6200 0.1933 -0.7604
1396 | vn 0.3075 0.1943 -0.9315
1397 | vn -0.0455 0.1949 -0.9798
1398 | vn -0.0492 0.9803 -0.1913
1399 | vn -0.1397 0.8282 -0.5428
1400 | vn -0.2080 0.5506 -0.8084
1401 | vn -0.2080 0.5507 -0.8084
1402 | vn -0.2445 0.1927 -0.9503
1403 | vn 0.1110 0.1939 -0.9747
1404 | vn 0.0658 0.2379 -0.9691
1405 | vn 0.0565 0.5506 -0.8328
1406 | vn 0.0565 0.5507 -0.8328
1407 | vn 0.0379 0.8282 -0.5592
1408 | vn 0.0134 0.9803 -0.1971
1409 | vn 0.4517 0.1947 -0.8707
1410 | vn 0.3660 0.2467 -0.8973
1411 | vn 0.3153 0.5506 -0.7729
1412 | vn 0.2117 0.8282 -0.5190
1413 | vn 0.0746 0.9803 -0.1829
1414 | vn 0.7329 0.1950 -0.6518
1415 | vn 0.6336 0.2199 -0.7418
1416 | vn 0.5421 0.5507 -0.6347
1417 | vn 0.3640 0.8282 -0.4262
1418 | vn 0.1283 0.9803 -0.1502
1419 | vn 0.1690 0.9803 -0.1023
1420 | vn 0.4795 0.8282 -0.2902
1421 | vn 0.7141 0.5507 -0.4323
1422 | vn 0.8394 0.1927 -0.5081
1423 | vn 0.9612 0.1933 -0.1968
1424 | vn 0.9510 0.2199 -0.2174
1425 | vn 0.8137 0.5506 -0.1860
1426 | vn 0.5464 0.8282 -0.1249
1427 | vn 0.1925 0.9803 -0.0440
1428 | vn 0.9679 0.1943 0.1595
1429 | vn 0.9647 0.2467 0.0918
1430 | vn 0.8310 0.5506 0.0790
1431 | vn 0.5580 0.8282 0.0531
1432 | vn 0.1966 0.9803 0.0187
1433 | vn 0.8470 0.1949 0.4946
1434 | vn 0.8891 0.2379 0.3911
1435 | vn 0.7641 0.5506 0.3361
1436 | vn 0.7641 0.5507 0.3361
1437 | vn 0.5131 0.8282 0.2257
1438 | vn 0.1808 0.9803 0.0795
1439 | vn 0.1467 0.9803 0.1323
1440 | vn 0.4162 0.8282 0.3754
1441 | vn 0.6198 0.5506 0.5591
1442 | vn 0.7286 0.1927 0.6573
1443 | vn -0.5871 0.1951 -0.7857
1444 | vn -0.4977 0.5555 -0.6661
1445 | vn -0.3326 0.8314 -0.4451
1446 | vn -0.1168 0.9808 -0.1563
1447 | vn -0.1102 0.9808 -0.1611
1448 | vn -0.1033 0.9808 -0.1655
1449 | vn -0.0963 0.9808 -0.1697
1450 | vn -0.3137 0.8314 -0.4586
1451 | vn -0.2942 0.8314 -0.4714
1452 | vn -0.2743 0.8314 -0.4833
1453 | vn -0.4694 0.5555 -0.6864
1454 | vn -0.4403 0.5555 -0.7054
1455 | vn -0.4104 0.5555 -0.7232
1456 | vn -0.4571 0.1951 -0.8678
1457 | vn -0.4841 0.1951 -0.8530
1458 | vn -0.4841 0.1950 -0.8530
1459 | vn -0.5193 0.1950 -0.8320
1460 | vn -0.5452 0.1951 -0.8153
1461 | vn -0.5479 0.2406 -0.8012
1462 | vn -0.5621 0.1951 -0.8037
1463 | vn -0.5871 0.1950 -0.7857
1464 | vn -0.4388 0.1951 -0.8771
1465 | vn -0.4434 0.2406 -0.8635
1466 | vn -0.3798 0.5555 -0.7397
1467 | vn -0.2538 0.8314 -0.4943
1468 | vn -0.0891 0.9808 -0.1736
1469 | vn -0.0818 0.9808 -0.1772
1470 | vn -0.2329 0.8314 -0.5045
1471 | vn -0.3486 0.5555 -0.7550
1472 | vn -0.3485 0.5555 -0.7550
1473 | vn -0.4111 0.1951 -0.8905
1474 | vn -0.9746 -0.1683 -0.1475
1475 | vn -0.9544 -0.1833 -0.2357
1476 | vn -0.9583 -0.1728 -0.2275
1477 | vn -0.9130 -0.2000 -0.3556
1478 | vn -0.9175 -0.1914 -0.3488
1479 | vn -0.8662 -0.2138 -0.4517
1480 | vn -0.8689 -0.2109 -0.4479
1481 | vn -0.6796 -0.6515 -0.3372
1482 | vn -0.6593 -0.6313 -0.4084
1483 | vn -0.7491 -0.6046 -0.2706
1484 | vn -0.7340 -0.5965 -0.3248
1485 | vn -0.7980 -0.5684 -0.2004
1486 | vn -0.7977 -0.5504 -0.2465
1487 | vn -0.8435 -0.5235 -0.1202
1488 | vn -0.8478 -0.5082 -0.1516
1489 | vn -0.8826 -0.4664 0.0583
1490 | vn -0.8629 -0.2870 -0.4161
1491 | vn -0.3377 -0.9330 -0.1244
1492 | vn -0.3133 -0.9372 -0.1534
1493 | vn -0.4524 -0.8879 -0.0838
1494 | vn -0.4276 -0.8957 -0.1222
1495 | vn -0.5190 -0.8533 -0.0501
1496 | vn -0.5027 -0.8606 -0.0813
1497 | vn -0.5926 -0.8050 -0.0265
1498 | vn -0.5876 -0.8082 -0.0407
1499 | vn -0.6475 -0.7620 0.0033
1500 | vn -0.4985 -0.7632 -0.4110
1501 | vn -0.7244 -0.6893 0.0133
1502 | vn -0.1674 -0.9659 -0.1976
1503 | vn -0.4869 -0.7888 -0.3750
1504 | vn -0.4621 -0.6736 -0.5769
1505 | vn -0.5813 -0.6075 -0.5413
1506 | vn -0.6660 -0.4407 -0.6018
1507 | vn -0.8312 -0.2231 -0.5092
1508 | vn -0.8111 -0.2206 -0.5417
1509 | vn -0.7891 -0.2358 -0.5672
1510 | vn -0.6417 -0.2538 -0.7237
1511 | vn -0.7158 -0.1945 -0.6707
1512 | vn -0.6939 -0.7187 0.0437
1513 | vn -0.7433 -0.6589 0.1155
1514 | vn -0.8461 -0.5320 0.0337
1515 | vn -0.9708 -0.2379 0.0321
1516 | vn -0.9751 -0.1594 0.1545
1517 | vn -0.9202 -0.3900 0.0332
1518 | vn -0.9676 -0.2441 -0.0652
1519 | vn -0.9674 -0.2445 -0.0658
1520 | vn -0.7194 -0.6943 -0.0179
1521 | vn -0.7432 -0.6687 0.0209
1522 | vn 0.5675 -0.1937 -0.8003
1523 | vn -0.1715 -0.1946 -0.9658
1524 | vn 0.3841 -0.7929 -0.4731
1525 | vn -0.1211 -0.9634 -0.2390
1526 | vn 0.1508 -0.9654 -0.2126
1527 | vn 0.0649 -0.9803 -0.1865
1528 | vn 0.0711 -0.9805 -0.1832
1529 | vn -0.3538 -0.7911 -0.4989
1530 | vn -0.0242 -0.9805 -0.1950
1531 | vn 0.0242 -0.9805 -0.1950
1532 | vn 0.0687 -0.8295 -0.5543
1533 | vn 0.2020 -0.8295 -0.5207
1534 | vn 0.3015 -0.5526 -0.7770
1535 | vn -0.3015 -0.5526 -0.7770
1536 | vn -0.1137 -0.9805 -0.1603
1537 | vn -0.0711 -0.9805 -0.1832
1538 | vn -0.2020 -0.8295 -0.5207
1539 | vn -0.0687 -0.8295 -0.5543
1540 | vn -0.1026 -0.5526 -0.8271
1541 | vn 0.1026 -0.5526 -0.8271
1542 | vn 0.3231 -0.8295 -0.4556
1543 | vn 0.4821 -0.5526 -0.6798
1544 | vn 0.4990 -0.6081 -0.6174
1545 | vn 0.5196 -0.4396 -0.7327
1546 | vn -0.4602 -0.6058 -0.6490
1547 | vn -0.5088 -0.5505 -0.6618
1548 | vn -0.5196 -0.4396 -0.7327
1549 | vn -0.5693 -0.1775 -0.8027
1550 | vn -0.5795 -0.1940 -0.7916
1551 | vn -0.3549 -0.1937 -0.9146
1552 | vn -0.4776 -0.1951 -0.8567
1553 | vn -0.3469 -0.8276 -0.4413
1554 | vn -0.1215 -0.1566 -0.9802
1555 | vn 0.3884 -0.1514 -0.9090
1556 | vn 0.2715 -0.1950 -0.9425
1557 | vn 0.1207 -0.1937 -0.9736
1558 | vn -0.0513 -0.1948 -0.9795
1559 | vn 0.3549 -0.1937 -0.9146
1560 | vn -0.9108 -0.3898 0.1359
1561 | vn 0.8351 -0.5311 0.1432
1562 | vn 0.9166 -0.3904 0.0860
1563 | vn 0.6932 -0.7109 0.1189
1564 | vn 0.6444 -0.7239 0.2463
1565 | vn 0.6720 -0.7024 0.2346
1566 | vn 0.5811 -0.7315 0.3567
1567 | vn 0.6093 -0.7106 0.3518
1568 | vn 0.5125 -0.7223 0.4643
1569 | vn 0.5156 -0.7202 0.4642
1570 | vn 0.4229 -0.7147 0.5571
1571 | vn 0.4033 -0.7274 0.5551
1572 | vn 0.3155 -0.7088 0.6309
1573 | vn 0.2769 -0.7324 0.6220
1574 | vn 0.1949 -0.7048 0.6822
1575 | vn 0.1409 -0.7354 0.6629
1576 | vn 0.0364 -0.7184 0.6947
1577 | vn 0.0000 -0.7363 0.6766
1578 | vn -0.1409 -0.7354 0.6629
1579 | vn -0.1949 -0.7048 0.6822
1580 | vn -0.3012 -0.7392 0.6024
1581 | vn -0.2898 -0.7017 0.6509
1582 | vn -0.4138 -0.7290 0.5452
1583 | vn -0.4120 -0.7133 0.5670
1584 | vn -0.5141 -0.7202 0.4658
1585 | vn -0.5140 -0.7223 0.4628
1586 | vn -0.5975 -0.7130 0.3668
1587 | vn -0.5929 -0.7289 0.3423
1588 | vn -0.6601 -0.7076 0.2523
1589 | vn -0.6466 -0.7334 0.2101
1590 | vn -0.6987 -0.7041 0.1269
1591 | vn -0.6882 -0.7182 0.1027
1592 | vn -0.8376 -0.5317 0.1250
1593 | vn -0.8839 -0.4604 0.0820
1594 | vn -0.8440 -0.4609 0.2742
1595 | vn -0.7685 -0.4609 0.4437
1596 | vn -0.6595 -0.4609 0.5938
1597 | vn -0.5216 -0.4609 0.7180
1598 | vn -0.3610 -0.4609 0.8107
1599 | vn -0.1845 -0.4609 0.8681
1600 | vn 0.0000 -0.4609 0.8874
1601 | vn 0.1845 -0.4609 0.8681
1602 | vn 0.3610 -0.4609 0.8107
1603 | vn 0.5216 -0.4609 0.7180
1604 | vn 0.6595 -0.4609 0.5938
1605 | vn 0.7685 -0.4609 0.4437
1606 | vn 0.8375 -0.4617 0.2924
1607 | vn 0.8743 -0.4617 0.1500
1608 | vn 0.9730 -0.1592 0.1669
1609 | vn 0.9321 -0.1592 0.3254
1610 | vn 0.8550 -0.1589 0.4936
1611 | vn 0.7337 -0.1589 0.6606
1612 | vn 0.5803 -0.1589 0.7987
1613 | vn 0.4016 -0.1589 0.9019
1614 | vn 0.2053 -0.1589 0.9657
1615 | vn 0.0000 -0.1589 0.9873
1616 | vn -0.2053 -0.1589 0.9657
1617 | vn -0.4016 -0.1589 0.9019
1618 | vn -0.5803 -0.1589 0.7987
1619 | vn -0.7337 -0.1589 0.6606
1620 | vn -0.8550 -0.1589 0.4936
1621 | vn -0.9390 -0.1589 0.3051
1622 | vn -0.9764 -0.1594 0.1457
1623 | vn 0.4675 -0.7909 -0.3949
1624 | vn 0.2626 -0.9588 -0.1080
1625 | vn 0.2489 -0.5717 -0.7818
1626 | vn 0.1907 -0.9520 -0.2395
1627 | vn 0.3462 -0.9353 -0.0735
1628 | vn 0.3251 -0.9224 -0.2087
1629 | vn 0.4470 -0.8935 -0.0419
1630 | vn 0.4514 -0.8781 -0.1588
1631 | vn 0.6446 -0.4416 -0.6241
1632 | vn 0.5022 -0.6879 -0.5240
1633 | vn 0.5904 -0.6815 -0.4325
1634 | vn 0.6639 -0.6418 -0.3839
1635 | vn 0.6963 -0.6332 -0.3380
1636 | vn 0.7460 -0.5946 -0.2999
1637 | vn 0.7589 -0.5896 -0.2765
1638 | vn 0.8919 -0.2031 -0.4039
1639 | vn 0.8508 -0.2188 -0.4778
1640 | vn 0.8498 -0.2179 -0.4800
1641 | vn 0.7696 -0.2376 -0.5927
1642 | vn 0.7763 -0.2422 -0.5820
1643 | vn 0.6873 -0.2513 -0.6815
1644 | vn 0.5196 -0.1920 -0.8325
1645 | vn 0.9375 -0.1724 -0.3021
1646 | vn 0.9126 -0.1956 -0.3591
1647 | vn 0.8954 -0.2037 -0.3959
1648 | vn 0.6222 -0.7827 0.0178
1649 | vn 0.6510 -0.7581 -0.0390
1650 | vn 0.8193 -0.5670 -0.0852
1651 | vn 0.5603 -0.8283 -0.0043
1652 | vn 0.5881 -0.8039 -0.0885
1653 | vn 0.8282 -0.5301 -0.1819
1654 | vn 0.8616 -0.5037 -0.0633
1655 | vn 0.8952 -0.4217 -0.1438
1656 | vn 0.5245 -0.8510 -0.0271
1657 | vn 0.5072 -0.8539 -0.1163
1658 | vn 0.7863 -0.5696 -0.2393
1659 | vn 0.8008 -0.5620 -0.2071
1660 | vn 0.9274 -0.1947 -0.3194
1661 | vn 0.9649 -0.1704 -0.1998
1662 | vn 0.9662 -0.1771 -0.1875
1663 | vn 0.9707 -0.2404 -0.0013
1664 | vn 0.6624 -0.7487 0.0253
1665 | vn 0.8282 -0.5594 -0.0346
1666 | vn 0.9676 -0.2443 -0.0643
1667 | vn 0.9610 -0.1803 -0.2095
1668 | vn 0.9117 -0.4077 -0.0506
1669 | vn 0.7347 -0.6721 -0.0917
1670 | vn 0.7441 -0.6665 0.0460
1671 | vn 0.6806 -0.7153 0.1586
1672 | vn 0.9860 -0.1596 0.0478
1673 | vn 0.9694 -0.2054 0.1343
1674 | vn 0.9202 -0.3900 0.0340
1675 | vn 0.8460 -0.5320 0.0344
1676 | usemtl None
1677 | s off
1678 | f 1//1 2//1 3//1
1679 | f 4//2 5//2 6//2
1680 | f 6//3 5//3 7//3
1681 | f 6//4 7//4 8//4
1682 | f 8//5 7//5 9//5
1683 | f 8//6 9//6 10//6
1684 | f 10//7 9//7 11//7
1685 | f 10//8 11//8 12//8
1686 | f 12//9 11//9 13//9
1687 | f 12//10 13//10 14//10
1688 | f 14//11 13//11 15//11
1689 | f 14//12 15//12 16//12
1690 | f 16//13 15//13 17//13
1691 | f 16//14 17//14 18//14
1692 | f 18//15 17//15 19//15
1693 | f 18//16 19//16 3//16
1694 | f 3//17 19//17 20//17
1695 | f 3//18 20//18 1//18
1696 | f 21//19 22//19 23//19
1697 | f 23//19 22//19 24//19
1698 | f 23//20 24//20 25//20
1699 | f 25//20 24//20 26//20
1700 | f 25//21 26//21 27//21
1701 | f 27//21 26//21 28//21
1702 | f 27//22 28//22 29//22
1703 | f 29//22 28//22 30//22
1704 | f 29//23 30//23 31//23
1705 | f 31//23 30//23 32//23
1706 | f 31//24 32//24 33//24
1707 | f 33//24 32//24 34//24
1708 | f 33//25 34//25 35//25
1709 | f 35//25 34//25 36//25
1710 | f 35//26 36//26 37//26
1711 | f 37//26 36//26 38//26
1712 | f 39//27 40//27 41//27
1713 | f 41//27 40//27 42//27
1714 | f 41//28 42//28 43//28
1715 | f 43//28 42//28 44//28
1716 | f 43//29 44//29 45//29
1717 | f 45//29 44//29 46//29
1718 | f 45//30 46//30 47//30
1719 | f 47//30 46//30 48//30
1720 | f 47//31 48//31 49//31
1721 | f 49//31 48//31 50//31
1722 | f 49//32 50//32 51//32
1723 | f 51//32 50//32 52//32
1724 | f 51//33 52//33 53//33
1725 | f 53//33 52//33 54//33
1726 | f 53//34 54//34 55//34
1727 | f 55//34 54//34 56//34
1728 | f 55//35 56//35 57//35
1729 | f 57//35 56//35 58//35
1730 | f 57//36 58//36 59//36
1731 | f 59//36 58//36 60//36
1732 | f 59//37 60//37 61//37
1733 | f 61//37 60//37 62//37
1734 | f 61//38 62//38 63//38
1735 | f 63//38 62//38 64//38
1736 | f 63//39 64//39 65//39
1737 | f 65//39 64//39 66//39
1738 | f 65//40 66//40 67//40
1739 | f 67//40 66//40 68//40
1740 | f 67//41 68//41 21//41
1741 | f 21//41 68//41 22//41
1742 | f 69//42 70//42 71//42
1743 | f 71//42 70//42 72//42
1744 | f 71//43 72//43 73//43
1745 | f 73//43 72//43 74//43
1746 | f 73//44 74//44 75//44
1747 | f 75//44 74//44 76//44
1748 | f 75//45 76//45 77//45
1749 | f 77//45 76//45 78//45
1750 | f 77//46 78//46 79//46
1751 | f 79//46 78//46 80//46
1752 | f 79//47 80//47 81//47
1753 | f 81//47 80//47 82//47
1754 | f 81//48 82//48 83//48
1755 | f 83//48 82//48 84//48
1756 | f 83//49 84//49 39//49
1757 | f 39//49 84//49 40//49
1758 | f 85//50 86//50 87//50
1759 | f 87//51 86//51 88//51
1760 | f 87//52 88//52 89//52
1761 | f 89//53 88//53 90//53
1762 | f 91//54 92//54 93//54
1763 | f 93//55 92//55 94//55
1764 | f 93//56 94//56 95//56
1765 | f 95//57 94//57 96//57
1766 | f 95//58 96//58 97//58
1767 | f 97//59 96//59 98//59
1768 | f 97//60 98//60 99//60
1769 | f 99//61 98//61 100//61
1770 | f 99//62 100//62 101//62
1771 | f 101//63 100//63 102//63
1772 | f 101//64 102//64 90//64
1773 | f 90//65 102//65 103//65
1774 | f 90//66 103//66 89//66
1775 | f 3//67 2//67 104//67
1776 | f 104//68 2//68 105//68
1777 | f 104//69 105//69 106//69
1778 | f 106//70 105//70 107//70
1779 | f 106//71 107//71 108//71
1780 | f 108//72 107//72 109//72
1781 | f 108//73 109//73 110//73
1782 | f 110//74 109//74 111//74
1783 | f 110//75 111//75 112//75
1784 | f 112//76 111//76 113//76
1785 | f 112//77 113//77 114//77
1786 | f 114//78 113//78 115//78
1787 | f 114//79 115//79 116//79
1788 | f 116//80 115//80 117//80
1789 | f 116//81 117//81 118//81
1790 | f 118//82 117//82 119//82
1791 | f 118//83 119//83 120//83
1792 | f 120//84 119//84 121//84
1793 | f 120//85 121//85 122//85
1794 | f 122//86 121//86 123//86
1795 | f 122//87 123//87 124//87
1796 | f 124//88 123//88 125//88
1797 | f 124//89 125//89 126//89
1798 | f 126//90 125//90 127//90
1799 | f 126//91 127//91 128//91
1800 | f 128//92 127//92 129//92
1801 | f 128//93 129//93 130//93
1802 | f 130//94 129//94 131//94
1803 | f 130//95 131//95 132//95
1804 | f 132//96 131//96 133//96
1805 | f 132//97 133//97 87//97
1806 | f 87//98 133//98 85//98
1807 | f 134//99 135//99 136//99
1808 | f 137//99 138//99 139//99
1809 | f 140//99 141//99 142//99
1810 | f 142//99 141//99 143//99
1811 | f 142//99 143//99 144//99
1812 | f 144//99 143//99 145//99
1813 | f 144//99 145//99 135//99
1814 | f 135//99 145//99 146//99
1815 | f 135//99 146//99 136//99
1816 | f 147//99 148//99 149//99
1817 | f 149//99 148//99 150//99
1818 | f 149//99 150//99 140//99
1819 | f 140//99 150//99 151//99
1820 | f 140//99 151//99 141//99
1821 | f 152//99 153//99 154//99
1822 | f 155//99 153//99 156//99
1823 | f 156//99 153//99 152//99
1824 | f 156//99 152//99 157//99
1825 | f 157//99 152//99 158//99
1826 | f 154//99 137//99 152//99
1827 | f 152//99 137//99 139//99
1828 | f 152//99 139//99 159//99
1829 | f 159//99 139//99 160//99
1830 | f 159//99 160//99 161//99
1831 | f 161//99 160//99 162//99
1832 | f 161//99 162//99 163//99
1833 | f 163//99 162//99 164//99
1834 | f 163//99 164//99 165//99
1835 | f 165//99 164//99 166//99
1836 | f 165//99 166//99 167//99
1837 | f 167//99 166//99 134//99
1838 | f 167//99 134//99 168//99
1839 | f 168//99 134//99 136//99
1840 | f 147//99 169//99 170//99
1841 | f 171//99 172//99 173//99
1842 | f 170//99 174//99 147//99
1843 | f 147//99 174//99 175//99
1844 | f 147//99 175//99 148//99
1845 | f 171//99 173//99 176//99
1846 | f 147//99 177//99 169//99
1847 | f 169//99 177//99 178//99
1848 | f 169//99 178//99 173//99
1849 | f 173//99 178//99 179//99
1850 | f 173//99 179//99 176//99
1851 | f 180//100 181//100 182//100
1852 | f 182//100 181//100 183//100
1853 | f 183//100 181//100 184//100
1854 | f 183//100 184//100 185//100
1855 | f 186//100 187//100 188//100
1856 | f 180//100 182//100 189//100
1857 | f 189//100 182//100 190//100
1858 | f 189//100 190//100 191//100
1859 | f 191//100 190//100 192//100
1860 | f 191//100 192//100 193//100
1861 | f 193//100 192//100 194//100
1862 | f 193//100 194//100 195//100
1863 | f 195//100 194//100 196//100
1864 | f 195//100 196//100 197//100
1865 | f 197//100 196//100 198//100
1866 | f 197//100 198//100 199//100
1867 | f 200//100 201//100 202//100
1868 | f 188//100 203//100 204//100
1869 | f 199//100 186//100 197//100
1870 | f 197//100 186//100 188//100
1871 | f 197//100 188//100 205//100
1872 | f 205//100 188//100 204//100
1873 | f 205//100 204//100 206//100
1874 | f 185//100 207//100 183//100
1875 | f 183//100 207//100 208//100
1876 | f 183//100 208//100 209//100
1877 | f 200//100 202//100 210//100
1878 | f 210//100 202//100 211//100
1879 | f 210//100 211//100 212//100
1880 | f 212//100 211//100 213//100
1881 | f 212//100 213//100 214//100
1882 | f 201//100 183//100 202//100
1883 | f 202//100 183//100 209//100
1884 | f 202//100 209//100 215//100
1885 | f 215//100 209//100 216//100
1886 | f 215//100 216//100 217//100
1887 | f 217//100 216//100 218//100
1888 | f 217//100 218//100 219//100
1889 | f 220//101 221//101 222//101
1890 | f 223//102 224//102 225//102
1891 | f 225//103 224//103 226//103
1892 | f 227//104 228//104 226//104
1893 | f 226//105 228//105 229//105
1894 | f 226//106 229//106 225//106
1895 | f 230//107 231//107 232//107
1896 | f 232//108 231//108 233//108
1897 | f 232//109 233//109 234//109
1898 | f 234//110 235//110 232//110
1899 | f 232//111 235//111 236//111
1900 | f 232//112 236//112 226//112
1901 | f 226//113 236//113 237//113
1902 | f 226//114 237//114 227//114
1903 | f 238//115 239//115 240//115
1904 | f 240//116 239//116 241//116
1905 | f 240//117 241//117 230//117
1906 | f 230//118 241//118 242//118
1907 | f 230//119 242//119 231//119
1908 | f 238//120 240//120 243//120
1909 | f 243//121 240//121 244//121
1910 | f 243//122 244//122 245//122
1911 | f 246//123 247//123 244//123
1912 | f 244//124 247//124 248//124
1913 | f 244//125 248//125 245//125
1914 | f 221//126 249//126 222//126
1915 | f 222//127 249//127 250//127
1916 | f 222//128 250//128 246//128
1917 | f 246//129 250//129 251//129
1918 | f 246//130 251//130 247//130
1919 | f 220//131 222//131 252//131
1920 | f 252//132 222//132 253//132
1921 | f 252//133 253//133 254//133
1922 | f 255//134 256//134 253//134
1923 | f 253//135 256//135 257//135
1924 | f 253//136 257//136 254//136
1925 | f 258//137 259//137 255//137
1926 | f 255//138 259//138 260//138
1927 | f 255//139 260//139 256//139
1928 | f 223//140 261//140 224//140
1929 | f 224//141 261//141 262//141
1930 | f 224//142 262//142 263//142
1931 | f 262//143 264//143 263//143
1932 | f 263//144 264//144 265//144
1933 | f 263//145 265//145 266//145
1934 | f 265//146 267//146 266//146
1935 | f 266//147 267//147 268//147
1936 | f 266//148 268//148 269//148
1937 | f 268//149 270//149 269//149
1938 | f 269//150 270//150 271//150
1939 | f 269//151 271//151 272//151
1940 | f 271//152 273//152 272//152
1941 | f 272//153 273//153 274//153
1942 | f 272//154 274//154 275//154
1943 | f 274//155 276//155 275//155
1944 | f 275//156 276//156 277//156
1945 | f 275//157 277//157 258//157
1946 | f 258//158 277//158 278//158
1947 | f 258//159 278//159 259//159
1948 | f 279//100 253//100 280//100
1949 | f 272//100 275//100 280//100
1950 | f 280//100 275//100 258//100
1951 | f 280//100 258//100 279//100
1952 | f 263//100 266//100 280//100
1953 | f 280//100 266//100 269//100
1954 | f 280//100 269//100 272//100
1955 | f 232//100 281//100 280//100
1956 | f 280//100 281//100 224//100
1957 | f 280//100 224//100 263//100
1958 | f 244//100 240//100 280//100
1959 | f 280//100 240//100 230//100
1960 | f 280//100 230//100 232//100
1961 | f 253//100 222//100 280//100
1962 | f 280//100 222//100 246//100
1963 | f 280//100 246//100 244//100
1964 | f 282//160 283//160 284//160
1965 | f 284//161 283//161 285//161
1966 | f 284//162 285//162 286//162
1967 | f 286//163 285//163 287//163
1968 | f 286//164 287//164 86//164
1969 | f 86//165 287//165 88//165
1970 | f 288//166 282//166 289//166
1971 | f 289//167 282//167 284//167
1972 | f 289//168 284//168 290//168
1973 | f 290//169 284//169 286//169
1974 | f 290//170 286//170 85//170
1975 | f 85//171 286//171 86//171
1976 | f 291//172 292//172 293//172
1977 | f 2//173 291//173 294//173
1978 | f 295//174 296//174 297//174
1979 | f 297//175 296//175 298//175
1980 | f 297//176 298//176 299//176
1981 | f 299//177 298//177 300//177
1982 | f 299//178 300//178 301//178
1983 | f 301//179 300//179 302//179
1984 | f 301//179 302//179 303//179
1985 | f 303//180 302//180 304//180
1986 | f 303//180 304//180 305//180
1987 | f 305//181 304//181 306//181
1988 | f 305//181 306//181 307//181
1989 | f 307//182 306//182 308//182
1990 | f 307//182 308//182 309//182
1991 | f 309//183 308//183 310//183
1992 | f 309//183 310//183 311//183
1993 | f 311//184 310//184 293//184
1994 | f 311//184 293//184 312//184
1995 | f 312//185 293//185 292//185
1996 | f 312//186 292//186 313//186
1997 | f 295//187 314//187 296//187
1998 | f 296//188 314//188 315//188
1999 | f 296//188 315//188 316//188
2000 | f 316//189 315//189 317//189
2001 | f 316//189 317//189 318//189
2002 | f 318//190 317//190 319//190
2003 | f 318//190 319//190 320//190
2004 | f 320//191 319//191 321//191
2005 | f 320//191 321//191 322//191
2006 | f 322//192 321//192 323//192
2007 | f 322//192 323//192 324//192
2008 | f 324//193 323//193 325//193
2009 | f 324//193 325//193 326//193
2010 | f 326//194 325//194 288//194
2011 | f 326//195 288//195 289//195
2012 | f 291//196 293//196 294//196
2013 | f 294//197 293//197 310//197
2014 | f 294//197 310//197 327//197
2015 | f 327//198 310//198 308//198
2016 | f 327//198 308//198 328//198
2017 | f 328//199 308//199 306//199
2018 | f 328//199 306//199 329//199
2019 | f 329//200 306//200 304//200
2020 | f 329//200 304//200 330//200
2021 | f 330//201 304//201 302//201
2022 | f 330//201 302//201 331//201
2023 | f 331//202 302//202 300//202
2024 | f 331//202 300//202 332//202
2025 | f 332//203 300//203 298//203
2026 | f 332//203 298//203 333//203
2027 | f 333//204 298//204 296//204
2028 | f 333//204 296//204 334//204
2029 | f 334//205 296//205 316//205
2030 | f 334//205 316//205 335//205
2031 | f 335//206 316//206 318//206
2032 | f 335//206 318//206 336//206
2033 | f 336//207 318//207 320//207
2034 | f 336//207 320//207 337//207
2035 | f 337//208 320//208 322//208
2036 | f 337//208 322//208 338//208
2037 | f 338//209 322//209 324//209
2038 | f 338//209 324//209 339//209
2039 | f 339//210 324//210 326//210
2040 | f 339//210 326//210 340//210
2041 | f 340//211 326//211 289//211
2042 | f 340//212 289//212 290//212
2043 | f 2//213 294//213 105//213
2044 | f 105//214 294//214 327//214
2045 | f 105//214 327//214 107//214
2046 | f 107//215 327//215 328//215
2047 | f 107//215 328//215 109//215
2048 | f 109//216 328//216 329//216
2049 | f 109//216 329//216 111//216
2050 | f 111//217 329//217 330//217
2051 | f 111//217 330//217 113//217
2052 | f 113//218 330//218 331//218
2053 | f 113//218 331//218 115//218
2054 | f 115//219 331//219 332//219
2055 | f 115//219 332//219 117//219
2056 | f 117//220 332//220 333//220
2057 | f 117//220 333//220 119//220
2058 | f 119//221 333//221 334//221
2059 | f 119//221 334//221 121//221
2060 | f 121//222 334//222 335//222
2061 | f 121//222 335//222 123//222
2062 | f 123//223 335//223 336//223
2063 | f 123//223 336//223 125//223
2064 | f 125//224 336//224 337//224
2065 | f 125//224 337//224 127//224
2066 | f 127//225 337//225 338//225
2067 | f 127//225 338//225 129//225
2068 | f 129//226 338//226 339//226
2069 | f 129//226 339//226 131//226
2070 | f 131//227 339//227 340//227
2071 | f 131//227 340//227 133//227
2072 | f 133//228 340//228 290//228
2073 | f 133//229 290//229 85//229
2074 | f 90//230 88//230 287//230
2075 | f 341//231 91//231 93//231
2076 | f 342//232 219//232 218//232
2077 | f 343//233 344//233 345//233
2078 | f 345//234 344//234 346//234
2079 | f 345//235 346//235 342//235
2080 | f 285//236 283//236 347//236
2081 | f 99//237 348//237 349//237
2082 | f 341//231 93//231 350//231
2083 | f 350//238 93//238 95//238
2084 | f 350//239 95//239 349//239
2085 | f 349//240 95//240 97//240
2086 | f 349//241 97//241 99//241
2087 | f 99//242 101//242 348//242
2088 | f 348//243 101//243 90//243
2089 | f 348//243 90//243 351//243
2090 | f 351//244 90//244 287//244
2091 | f 351//245 287//245 285//245
2092 | f 347//246 343//246 285//246
2093 | f 285//247 343//247 352//247
2094 | f 285//248 352//248 351//248
2095 | f 351//249 352//249 353//249
2096 | f 351//249 353//249 348//249
2097 | f 348//250 353//250 354//250
2098 | f 348//250 354//250 349//250
2099 | f 349//251 354//251 355//251
2100 | f 349//251 355//251 350//251
2101 | f 350//252 355//252 356//252
2102 | f 350//252 356//252 341//252
2103 | f 343//253 345//253 352//253
2104 | f 352//254 345//254 357//254
2105 | f 352//254 357//254 353//254
2106 | f 353//255 357//255 358//255
2107 | f 353//255 358//255 354//255
2108 | f 354//256 358//256 359//256
2109 | f 354//256 359//256 355//256
2110 | f 355//257 359//257 360//257
2111 | f 355//257 360//257 356//257
2112 | f 342//258 218//258 345//258
2113 | f 345//259 218//259 216//259
2114 | f 345//259 216//259 357//259
2115 | f 357//260 216//260 209//260
2116 | f 357//260 209//260 358//260
2117 | f 358//261 209//261 208//261
2118 | f 358//261 208//261 359//261
2119 | f 359//262 208//262 207//262
2120 | f 359//262 207//262 360//262
2121 | f 197//263 361//263 362//263
2122 | f 361//264 363//264 364//264
2123 | f 363//265 365//265 366//265
2124 | f 365//266 40//266 84//266
2125 | f 365//267 84//267 366//267
2126 | f 366//268 84//268 82//268
2127 | f 366//269 82//269 367//269
2128 | f 82//270 80//270 367//270
2129 | f 367//271 80//271 78//271
2130 | f 367//272 78//272 368//272
2131 | f 368//273 78//273 76//273
2132 | f 368//274 76//274 369//274
2133 | f 369//275 76//275 74//275
2134 | f 74//276 72//276 369//276
2135 | f 369//277 72//277 70//277
2136 | f 369//277 70//277 370//277
2137 | f 363//265 366//265 364//265
2138 | f 364//278 366//278 367//278
2139 | f 364//278 367//278 371//278
2140 | f 371//279 367//279 368//279
2141 | f 371//279 368//279 372//279
2142 | f 372//280 368//280 369//280
2143 | f 372//280 369//280 373//280
2144 | f 373//281 369//281 370//281
2145 | f 373//281 370//281 374//281
2146 | f 361//264 364//264 362//264
2147 | f 362//282 364//282 371//282
2148 | f 362//282 371//282 375//282
2149 | f 375//283 371//283 372//283
2150 | f 375//283 372//283 376//283
2151 | f 376//284 372//284 373//284
2152 | f 376//284 373//284 377//284
2153 | f 377//285 373//285 374//285
2154 | f 377//285 374//285 378//285
2155 | f 197//263 362//263 195//263
2156 | f 195//286 362//286 375//286
2157 | f 195//286 375//286 193//286
2158 | f 193//287 375//287 376//287
2159 | f 193//287 376//287 191//287
2160 | f 191//288 376//288 377//288
2161 | f 191//288 377//288 189//288
2162 | f 189//289 377//289 378//289
2163 | f 189//290 378//290 180//290
2164 | f 198//291 379//291 380//291
2165 | f 379//292 381//292 382//292
2166 | f 381//293 383//293 384//293
2167 | f 383//294 22//294 68//294
2168 | f 383//294 68//294 384//294
2169 | f 384//295 68//295 66//295
2170 | f 384//296 66//296 385//296
2171 | f 66//297 64//297 385//297
2172 | f 385//298 64//298 62//298
2173 | f 385//299 62//299 386//299
2174 | f 62//300 60//300 386//300
2175 | f 386//301 60//301 58//301
2176 | f 386//302 58//302 387//302
2177 | f 58//303 56//303 387//303
2178 | f 387//304 56//304 54//304
2179 | f 387//305 54//305 388//305
2180 | f 388//306 54//306 52//306
2181 | f 388//307 52//307 389//307
2182 | f 52//308 50//308 389//308
2183 | f 389//309 50//309 48//309
2184 | f 389//310 48//310 390//310
2185 | f 48//311 46//311 390//311
2186 | f 390//312 46//312 44//312
2187 | f 390//313 44//313 391//313
2188 | f 44//314 42//314 391//314
2189 | f 391//315 42//315 40//315
2190 | f 391//315 40//315 365//315
2191 | f 381//316 384//316 382//316
2192 | f 382//317 384//317 385//317
2193 | f 382//317 385//317 392//317
2194 | f 392//318 385//318 386//318
2195 | f 392//318 386//318 393//318
2196 | f 393//319 386//319 387//319
2197 | f 393//319 387//319 394//319
2198 | f 394//320 387//320 388//320
2199 | f 394//320 388//320 395//320
2200 | f 395//321 388//321 389//321
2201 | f 395//321 389//321 396//321
2202 | f 396//322 389//322 390//322
2203 | f 396//322 390//322 397//322
2204 | f 397//323 390//323 391//323
2205 | f 397//324 391//324 398//324
2206 | f 398//325 391//325 365//325
2207 | f 398//326 365//326 363//326
2208 | f 379//292 382//292 380//292
2209 | f 380//327 382//327 392//327
2210 | f 380//327 392//327 399//327
2211 | f 399//328 392//328 393//328
2212 | f 399//328 393//328 400//328
2213 | f 400//329 393//329 394//329
2214 | f 400//329 394//329 401//329
2215 | f 401//330 394//330 395//330
2216 | f 401//330 395//330 402//330
2217 | f 402//331 395//331 396//331
2218 | f 402//331 396//331 403//331
2219 | f 403//332 396//332 397//332
2220 | f 403//332 397//332 404//332
2221 | f 404//333 397//333 398//333
2222 | f 404//333 398//333 405//333
2223 | f 405//334 398//334 363//334
2224 | f 405//334 363//334 361//334
2225 | f 198//291 380//291 199//291
2226 | f 199//335 380//335 399//335
2227 | f 199//335 399//335 186//335
2228 | f 186//336 399//336 400//336
2229 | f 186//336 400//336 187//336
2230 | f 187//337 400//337 401//337
2231 | f 187//337 401//337 188//337
2232 | f 188//338 401//338 402//338
2233 | f 188//338 402//338 203//338
2234 | f 203//339 402//339 403//339
2235 | f 203//339 403//339 204//339
2236 | f 204//340 403//340 404//340
2237 | f 204//340 404//340 206//340
2238 | f 206//341 404//341 405//341
2239 | f 206//341 405//341 205//341
2240 | f 205//342 405//342 361//342
2241 | f 205//342 361//342 197//342
2242 | f 1//343 20//343 406//343
2243 | f 406//344 20//344 407//344
2244 | f 406//345 407//345 408//345
2245 | f 408//346 407//346 409//346
2246 | f 408//347 409//347 410//347
2247 | f 410//348 409//348 411//348
2248 | f 2//349 1//349 291//349
2249 | f 291//350 1//350 406//350
2250 | f 291//351 406//351 292//351
2251 | f 292//352 406//352 408//352
2252 | f 292//353 408//353 313//353
2253 | f 313//354 408//354 410//354
2254 | f 412//355 413//355 414//355
2255 | f 185//356 184//356 415//356
2256 | f 415//356 184//356 416//356
2257 | f 415//357 416//357 417//357
2258 | f 417//357 416//357 418//357
2259 | f 417//358 418//358 419//358
2260 | f 419//359 418//359 414//359
2261 | f 207//360 185//360 360//360
2262 | f 360//360 185//360 415//360
2263 | f 360//361 415//361 356//361
2264 | f 356//361 415//361 417//361
2265 | f 356//362 417//362 341//362
2266 | f 341//362 417//362 419//362
2267 | f 341//363 419//363 91//363
2268 | f 91//363 419//363 420//363
2269 | f 414//364 413//364 419//364
2270 | f 419//365 413//365 421//365
2271 | f 419//366 421//366 420//366
2272 | f 422//367 412//367 423//367
2273 | f 423//368 412//368 414//368
2274 | f 423//369 414//369 424//369
2275 | f 424//369 414//369 418//369
2276 | f 424//370 418//370 425//370
2277 | f 425//370 418//370 416//370
2278 | f 425//371 416//371 181//371
2279 | f 181//371 416//371 184//371
2280 | f 181//372 180//372 425//372
2281 | f 425//372 180//372 378//372
2282 | f 425//373 378//373 424//373
2283 | f 424//373 378//373 374//373
2284 | f 424//374 374//374 423//374
2285 | f 423//374 374//374 370//374
2286 | f 423//375 370//375 422//375
2287 | f 422//375 370//375 70//375
2288 | f 183//376 426//376 427//376
2289 | f 426//377 428//377 429//377
2290 | f 428//378 430//378 431//378
2291 | f 430//379 38//379 36//379
2292 | f 430//380 36//380 431//380
2293 | f 431//381 36//381 34//381
2294 | f 431//382 34//382 432//382
2295 | f 34//383 32//383 432//383
2296 | f 432//384 32//384 30//384
2297 | f 432//384 30//384 433//384
2298 | f 433//385 30//385 28//385
2299 | f 433//385 28//385 434//385
2300 | f 434//386 28//386 26//386
2301 | f 434//387 26//387 435//387
2302 | f 26//388 24//388 435//388
2303 | f 435//389 24//389 22//389
2304 | f 435//389 22//389 383//389
2305 | f 428//378 431//378 429//378
2306 | f 429//390 431//390 432//390
2307 | f 429//390 432//390 436//390
2308 | f 436//391 432//391 433//391
2309 | f 436//391 433//391 437//391
2310 | f 437//392 433//392 434//392
2311 | f 437//392 434//392 438//392
2312 | f 438//393 434//393 435//393
2313 | f 438//393 435//393 439//393
2314 | f 439//394 435//394 383//394
2315 | f 439//395 383//395 381//395
2316 | f 426//377 429//377 427//377
2317 | f 427//396 429//396 436//396
2318 | f 427//396 436//396 440//396
2319 | f 440//397 436//397 437//397
2320 | f 440//397 437//397 441//397
2321 | f 441//398 437//398 438//398
2322 | f 441//398 438//398 442//398
2323 | f 442//399 438//399 439//399
2324 | f 442//399 439//399 443//399
2325 | f 443//400 439//400 381//400
2326 | f 443//400 381//400 379//400
2327 | f 183//376 427//376 182//376
2328 | f 182//401 427//401 440//401
2329 | f 182//401 440//401 190//401
2330 | f 190//402 440//402 441//402
2331 | f 190//402 441//402 192//402
2332 | f 192//403 441//403 442//403
2333 | f 192//403 442//403 194//403
2334 | f 194//404 442//404 443//404
2335 | f 194//404 443//404 196//404
2336 | f 196//405 443//405 379//405
2337 | f 196//405 379//405 198//405
2338 | f 444//406 411//406 409//406
2339 | f 214//407 445//407 446//407
2340 | f 445//408 447//408 446//408
2341 | f 446//409 447//409 448//409
2342 | f 446//410 448//410 409//410
2343 | f 409//411 448//411 449//411
2344 | f 409//412 449//412 444//412
2345 | f 450//413 407//413 20//413
2346 | f 20//414 19//414 450//414
2347 | f 450//415 19//415 17//415
2348 | f 450//416 17//416 451//416
2349 | f 17//417 15//417 451//417
2350 | f 451//418 15//418 13//418
2351 | f 451//419 13//419 452//419
2352 | f 452//420 13//420 11//420
2353 | f 452//421 11//421 453//421
2354 | f 453//422 11//422 9//422
2355 | f 453//423 9//423 7//423
2356 | f 5//424 454//424 7//424
2357 | f 7//425 454//425 455//425
2358 | f 7//426 455//426 453//426
2359 | f 453//427 455//427 456//427
2360 | f 453//428 456//428 457//428
2361 | f 458//429 409//429 407//429
2362 | f 407//430 450//430 458//430
2363 | f 458//431 450//431 451//431
2364 | f 458//431 451//431 459//431
2365 | f 459//432 451//432 452//432
2366 | f 459//432 452//432 460//432
2367 | f 460//433 452//433 453//433
2368 | f 460//433 453//433 461//433
2369 | f 461//434 453//434 457//434
2370 | f 461//434 457//434 462//434
2371 | f 409//435 458//435 446//435
2372 | f 446//436 458//436 459//436
2373 | f 446//436 459//436 463//436
2374 | f 463//437 459//437 460//437
2375 | f 463//437 460//437 464//437
2376 | f 464//438 460//438 461//438
2377 | f 464//438 461//438 465//438
2378 | f 465//439 461//439 462//439
2379 | f 465//439 462//439 466//439
2380 | f 214//440 446//440 212//440
2381 | f 212//441 446//441 463//441
2382 | f 212//441 463//441 210//441
2383 | f 210//442 463//442 464//442
2384 | f 210//442 464//442 200//442
2385 | f 200//443 464//443 465//443
2386 | f 200//443 465//443 201//443
2387 | f 201//444 465//444 466//444
2388 | f 201//444 466//444 183//444
2389 | f 103//445 102//445 467//445
2390 | f 100//446 98//446 468//446
2391 | f 143//447 141//447 469//447
2392 | f 469//447 141//447 470//447
2393 | f 469//448 470//448 471//448
2394 | f 471//448 470//448 472//448
2395 | f 471//449 472//449 473//449
2396 | f 473//449 472//449 468//449
2397 | f 145//450 143//450 474//450
2398 | f 474//450 143//450 469//450
2399 | f 474//451 469//451 475//451
2400 | f 475//451 469//451 471//451
2401 | f 475//452 471//452 476//452
2402 | f 476//452 471//452 473//452
2403 | f 476//453 473//453 92//453
2404 | f 92//453 473//453 94//453
2405 | f 468//454 98//454 473//454
2406 | f 473//455 98//455 96//455
2407 | f 473//456 96//456 94//456
2408 | f 141//457 151//457 470//457
2409 | f 470//457 151//457 477//457
2410 | f 470//458 477//458 472//458
2411 | f 472//458 477//458 478//458
2412 | f 472//459 478//459 468//459
2413 | f 468//459 478//459 467//459
2414 | f 468//460 467//460 100//460
2415 | f 100//461 467//461 102//461
2416 | f 89//462 103//462 479//462
2417 | f 479//463 103//463 467//463
2418 | f 479//464 467//464 480//464
2419 | f 480//464 467//464 478//464
2420 | f 480//465 478//465 481//465
2421 | f 481//465 478//465 477//465
2422 | f 481//466 477//466 150//466
2423 | f 150//466 477//466 151//466
2424 | f 150//467 148//467 481//467
2425 | f 481//467 148//467 482//467
2426 | f 481//468 482//468 480//468
2427 | f 480//468 482//468 483//468
2428 | f 480//469 483//469 479//469
2429 | f 479//469 483//469 484//469
2430 | f 479//470 484//470 89//470
2431 | f 89//470 484//470 87//470
2432 | f 70//471 69//471 422//471
2433 | f 422//471 69//471 485//471
2434 | f 422//472 485//472 412//472
2435 | f 412//472 485//472 486//472
2436 | f 412//473 486//473 413//473
2437 | f 413//473 486//473 487//473
2438 | f 413//474 487//474 421//474
2439 | f 421//474 487//474 488//474
2440 | f 421//475 488//475 420//475
2441 | f 420//475 488//475 489//475
2442 | f 420//476 489//476 91//476
2443 | f 91//476 489//476 92//476
2444 | f 428//477 426//477 490//477
2445 | f 490//478 426//478 183//478
2446 | f 490//479 183//479 466//479
2447 | f 428//480 491//480 430//480
2448 | f 430//481 491//481 492//481
2449 | f 430//482 492//482 38//482
2450 | f 493//483 455//483 494//483
2451 | f 494//484 455//484 454//484
2452 | f 494//485 454//485 495//485
2453 | f 462//486 457//486 493//486
2454 | f 493//487 457//487 456//487
2455 | f 493//488 456//488 455//488
2456 | f 466//489 462//489 490//489
2457 | f 490//490 462//490 496//490
2458 | f 490//491 496//491 428//491
2459 | f 428//492 496//492 497//492
2460 | f 428//493 497//493 491//493
2461 | f 454//494 5//494 495//494
2462 | f 495//495 5//495 498//495
2463 | f 495//496 498//496 499//496
2464 | f 462//497 493//497 496//497
2465 | f 496//498 493//498 494//498
2466 | f 496//499 494//499 497//499
2467 | f 497//500 494//500 495//500
2468 | f 497//500 495//500 491//500
2469 | f 491//501 495//501 499//501
2470 | f 491//502 499//502 492//502
2471 | f 148//503 175//503 482//503
2472 | f 482//503 175//503 500//503
2473 | f 482//504 500//504 483//504
2474 | f 483//504 500//504 501//504
2475 | f 483//505 501//505 484//505
2476 | f 484//505 501//505 502//505
2477 | f 484//506 502//506 87//506
2478 | f 174//507 170//507 503//507
2479 | f 503//507 170//507 504//507
2480 | f 503//508 504//508 505//508
2481 | f 505//508 504//508 506//508
2482 | f 505//509 506//509 507//509
2483 | f 507//509 506//509 508//509
2484 | f 170//510 169//510 504//510
2485 | f 504//510 169//510 509//510
2486 | f 504//511 509//511 506//511
2487 | f 506//511 509//511 510//511
2488 | f 506//512 510//512 508//512
2489 | f 508//512 510//512 511//512
2490 | f 173//513 512//513 513//513
2491 | f 513//513 512//513 514//513
2492 | f 513//514 514//514 515//514
2493 | f 515//514 514//514 516//514
2494 | f 515//515 516//515 517//515
2495 | f 517//515 516//515 518//515
2496 | f 512//516 171//516 514//516
2497 | f 514//516 171//516 519//516
2498 | f 514//517 519//517 516//517
2499 | f 516//518 519//518 520//518
2500 | f 516//519 520//519 518//519
2501 | f 518//519 520//519 521//519
2502 | f 176//520 179//520 522//520
2503 | f 522//520 179//520 523//520
2504 | f 522//521 523//521 524//521
2505 | f 524//521 523//521 525//521
2506 | f 524//522 525//522 526//522
2507 | f 526//522 525//522 527//522
2508 | f 179//523 178//523 523//523
2509 | f 523//523 178//523 528//523
2510 | f 523//524 528//524 525//524
2511 | f 525//524 528//524 529//524
2512 | f 525//525 529//525 527//525
2513 | f 527//525 529//525 530//525
2514 | f 177//526 147//526 531//526
2515 | f 531//526 147//526 532//526
2516 | f 531//527 532//527 533//527
2517 | f 533//527 532//527 534//527
2518 | f 533//528 534//528 535//528
2519 | f 535//528 534//528 536//528
2520 | f 128//529 130//529 502//529
2521 | f 502//530 130//530 132//530
2522 | f 502//506 132//506 87//506
2523 | f 511//531 126//531 508//531
2524 | f 508//532 126//532 128//532
2525 | f 508//532 128//532 507//532
2526 | f 507//533 128//533 502//533
2527 | f 507//534 502//534 505//534
2528 | f 505//534 502//534 501//534
2529 | f 505//535 501//535 503//535
2530 | f 503//535 501//535 500//535
2531 | f 503//536 500//536 174//536
2532 | f 174//536 500//536 175//536
2533 | f 120//537 122//537 511//537
2534 | f 511//538 122//538 124//538
2535 | f 511//531 124//531 126//531
2536 | f 521//539 537//539 518//539
2537 | f 518//540 537//540 120//540
2538 | f 518//540 120//540 517//540
2539 | f 517//541 120//541 511//541
2540 | f 517//542 511//542 515//542
2541 | f 515//542 511//542 510//542
2542 | f 515//543 510//543 513//543
2543 | f 513//543 510//543 509//543
2544 | f 513//544 509//544 173//544
2545 | f 173//544 509//544 169//544
2546 | f 112//545 114//545 521//545
2547 | f 521//546 114//546 116//546
2548 | f 521//539 116//539 537//539
2549 | f 530//547 110//547 527//547
2550 | f 527//548 110//548 112//548
2551 | f 527//548 112//548 526//548
2552 | f 526//549 112//549 521//549
2553 | f 526//550 521//550 524//550
2554 | f 524//550 521//550 520//550
2555 | f 524//551 520//551 522//551
2556 | f 522//551 520//551 519//551
2557 | f 522//552 519//552 176//552
2558 | f 176//552 519//552 171//552
2559 | f 104//553 106//553 530//553
2560 | f 530//554 106//554 108//554
2561 | f 530//547 108//547 110//547
2562 | f 178//555 177//555 528//555
2563 | f 528//555 177//555 531//555
2564 | f 528//556 531//556 529//556
2565 | f 529//556 531//556 533//556
2566 | f 529//557 533//557 530//557
2567 | f 530//557 533//557 535//557
2568 | f 530//558 535//558 104//558
2569 | f 104//559 535//559 536//559
2570 | f 104//559 536//559 3//559
2571 | f 486//560 485//560 538//560
2572 | f 486//561 538//561 487//561
2573 | f 92//562 489//562 476//562
2574 | f 476//562 489//562 539//562
2575 | f 476//563 539//563 475//563
2576 | f 475//563 539//563 540//563
2577 | f 475//564 540//564 474//564
2578 | f 474//564 540//564 541//564
2579 | f 474//565 541//565 145//565
2580 | f 145//565 541//565 146//565
2581 | f 489//566 488//566 539//566
2582 | f 539//567 488//567 542//567
2583 | f 539//568 542//568 540//568
2584 | f 540//568 542//568 543//568
2585 | f 540//569 543//569 541//569
2586 | f 541//569 543//569 544//569
2587 | f 541//570 544//570 146//570
2588 | f 146//570 544//570 136//570
2589 | f 488//571 487//571 542//571
2590 | f 542//572 487//572 538//572
2591 | f 542//573 538//573 543//573
2592 | f 543//573 538//573 545//573
2593 | f 543//574 545//574 544//574
2594 | f 544//574 545//574 546//574
2595 | f 544//575 546//575 136//575
2596 | f 136//575 546//575 168//575
2597 | f 485//576 69//576 538//576
2598 | f 538//576 69//576 547//576
2599 | f 538//577 547//577 545//577
2600 | f 545//577 547//577 548//577
2601 | f 545//578 548//578 546//578
2602 | f 546//578 548//578 549//578
2603 | f 546//579 549//579 168//579
2604 | f 168//579 549//579 167//579
2605 | f 37//580 38//580 550//580
2606 | f 550//580 38//580 492//580
2607 | f 550//581 492//581 551//581
2608 | f 551//581 492//581 499//581
2609 | f 551//582 499//582 552//582
2610 | f 552//582 499//582 498//582
2611 | f 552//583 498//583 4//583
2612 | f 4//583 498//583 5//583
2613 | f 553//584 4//584 6//584
2614 | f 12//585 14//585 554//585
2615 | f 144//586 135//586 555//586
2616 | f 555//586 135//586 556//586
2617 | f 555//587 556//587 557//587
2618 | f 557//587 556//587 558//587
2619 | f 557//588 558//588 559//588
2620 | f 149//589 140//589 560//589
2621 | f 560//589 140//589 561//589
2622 | f 560//590 561//590 562//590
2623 | f 562//590 561//590 563//590
2624 | f 562//591 563//591 564//591
2625 | f 564//591 563//591 554//591
2626 | f 142//592 144//592 565//592
2627 | f 565//592 144//592 555//592
2628 | f 565//593 555//593 566//593
2629 | f 566//593 555//593 557//593
2630 | f 566//594 557//594 567//594
2631 | f 567//594 557//594 559//594
2632 | f 147//595 149//595 532//595
2633 | f 532//595 149//595 560//595
2634 | f 532//596 560//596 534//596
2635 | f 534//596 560//596 562//596
2636 | f 534//597 562//597 536//597
2637 | f 536//597 562//597 564//597
2638 | f 536//598 564//598 3//598
2639 | f 3//598 564//598 18//598
2640 | f 554//599 14//599 564//599
2641 | f 564//600 14//600 16//600
2642 | f 564//601 16//601 18//601
2643 | f 140//602 142//602 561//602
2644 | f 561//602 142//602 565//602
2645 | f 561//603 565//603 563//603
2646 | f 563//603 565//603 566//603
2647 | f 563//604 566//604 554//604
2648 | f 554//604 566//604 567//604
2649 | f 554//605 567//605 12//605
2650 | f 12//606 567//606 10//606
2651 | f 558//588 568//588 559//588
2652 | f 559//607 568//607 569//607
2653 | f 559//608 569//608 570//608
2654 | f 10//609 567//609 8//609
2655 | f 8//610 567//610 559//610
2656 | f 8//611 559//611 6//611
2657 | f 6//612 559//612 570//612
2658 | f 6//613 570//613 553//613
2659 | f 73//614 75//614 571//614
2660 | f 77//615 79//615 572//615
2661 | f 159//616 161//616 573//616
2662 | f 573//616 161//616 574//616
2663 | f 573//617 574//617 575//617
2664 | f 575//617 574//617 576//617
2665 | f 575//618 576//618 577//618
2666 | f 577//618 576//618 572//618
2667 | f 152//619 159//619 578//619
2668 | f 578//619 159//619 573//619
2669 | f 578//620 573//620 579//620
2670 | f 579//620 573//620 575//620
2671 | f 579//621 575//621 580//621
2672 | f 580//621 575//621 577//621
2673 | f 580//622 577//622 39//622
2674 | f 39//623 577//623 83//623
2675 | f 572//624 79//624 577//624
2676 | f 577//625 79//625 81//625
2677 | f 577//626 81//626 83//626
2678 | f 161//627 163//627 574//627
2679 | f 574//627 163//627 581//627
2680 | f 574//628 581//628 576//628
2681 | f 576//628 581//628 582//628
2682 | f 576//629 582//629 572//629
2683 | f 572//629 582//629 571//629
2684 | f 572//630 571//630 77//630
2685 | f 77//631 571//631 75//631
2686 | f 71//632 73//632 583//632
2687 | f 583//633 73//633 571//633
2688 | f 583//634 571//634 584//634
2689 | f 584//634 571//634 582//634
2690 | f 584//635 582//635 585//635
2691 | f 585//635 582//635 581//635
2692 | f 585//636 581//636 165//636
2693 | f 165//636 581//636 163//636
2694 | f 165//637 167//637 585//637
2695 | f 585//637 167//637 549//637
2696 | f 585//638 549//638 584//638
2697 | f 584//638 549//638 548//638
2698 | f 584//639 548//639 583//639
2699 | f 583//639 548//639 547//639
2700 | f 583//640 547//640 71//640
2701 | f 71//640 547//640 69//640
2702 | f 586//641 587//641 37//641
2703 | f 569//642 568//642 588//642
2704 | f 588//643 568//643 558//643
2705 | f 588//644 558//644 589//644
2706 | f 589//645 558//645 556//645
2707 | f 589//646 556//646 590//646
2708 | f 4//647 553//647 552//647
2709 | f 552//648 553//648 591//648
2710 | f 552//649 591//649 551//649
2711 | f 551//650 591//650 586//650
2712 | f 551//651 586//651 550//651
2713 | f 550//652 586//652 37//652
2714 | f 553//653 570//653 591//653
2715 | f 591//654 570//654 592//654
2716 | f 591//655 592//655 586//655
2717 | f 586//655 592//655 593//655
2718 | f 586//656 593//656 587//656
2719 | f 587//657 593//657 594//657
2720 | f 570//658 569//658 592//658
2721 | f 592//659 569//659 588//659
2722 | f 592//660 588//660 593//660
2723 | f 593//660 588//660 589//660
2724 | f 593//661 589//661 594//661
2725 | f 594//662 589//662 590//662
2726 | f 594//663 590//663 595//663
2727 | f 595//664 590//664 556//664
2728 | f 595//665 556//665 135//665
2729 | f 43//666 45//666 596//666
2730 | f 47//667 49//667 597//667
2731 | f 51//668 53//668 598//668
2732 | f 57//669 59//669 599//669
2733 | f 61//670 63//670 600//670
2734 | f 65//671 67//671 601//671
2735 | f 139//672 138//672 602//672
2736 | f 602//672 138//672 603//672
2737 | f 602//673 603//673 604//673
2738 | f 604//673 603//673 605//673
2739 | f 604//674 605//674 606//674
2740 | f 606//675 605//675 601//675
2741 | f 606//676 601//676 21//676
2742 | f 21//676 601//676 67//676
2743 | f 63//677 65//677 600//677
2744 | f 600//678 65//678 601//678
2745 | f 600//679 601//679 607//679
2746 | f 607//680 601//680 605//680
2747 | f 607//681 605//681 608//681
2748 | f 608//681 605//681 603//681
2749 | f 608//682 603//682 137//682
2750 | f 137//682 603//682 138//682
2751 | f 59//683 61//683 599//683
2752 | f 599//684 61//684 600//684
2753 | f 599//685 600//685 609//685
2754 | f 609//685 600//685 607//685
2755 | f 609//686 607//686 610//686
2756 | f 610//686 607//686 608//686
2757 | f 610//687 608//687 154//687
2758 | f 154//687 608//687 137//687
2759 | f 55//688 57//688 611//688
2760 | f 611//689 57//689 599//689
2761 | f 611//690 599//690 612//690
2762 | f 612//690 599//690 609//690
2763 | f 612//691 609//691 613//691
2764 | f 613//691 609//691 610//691
2765 | f 613//692 610//692 153//692
2766 | f 153//692 610//692 154//692
2767 | f 153//693 155//693 613//693
2768 | f 613//693 155//693 614//693
2769 | f 613//694 614//694 612//694
2770 | f 612//694 614//694 615//694
2771 | f 612//695 615//695 611//695
2772 | f 611//695 615//695 598//695
2773 | f 611//696 598//696 55//696
2774 | f 55//696 598//696 53//696
2775 | f 49//697 51//697 597//697
2776 | f 597//698 51//698 598//698
2777 | f 597//699 598//699 616//699
2778 | f 616//699 598//699 615//699
2779 | f 616//700 615//700 617//700
2780 | f 617//700 615//700 614//700
2781 | f 617//701 614//701 156//701
2782 | f 156//701 614//701 155//701
2783 | f 45//702 47//702 596//702
2784 | f 596//703 47//703 597//703
2785 | f 596//704 597//704 618//704
2786 | f 618//704 597//704 616//704
2787 | f 618//705 616//705 619//705
2788 | f 619//705 616//705 617//705
2789 | f 619//706 617//706 157//706
2790 | f 157//706 617//706 156//706
2791 | f 41//707 43//707 620//707
2792 | f 620//708 43//708 596//708
2793 | f 620//709 596//709 621//709
2794 | f 621//710 596//710 618//710
2795 | f 621//711 618//711 622//711
2796 | f 622//711 618//711 619//711
2797 | f 622//712 619//712 158//712
2798 | f 158//712 619//712 157//712
2799 | f 158//713 152//713 622//713
2800 | f 622//713 152//713 578//713
2801 | f 622//714 578//714 621//714
2802 | f 621//714 578//714 579//714
2803 | f 621//715 579//715 620//715
2804 | f 620//715 579//715 580//715
2805 | f 620//716 580//716 41//716
2806 | f 41//716 580//716 39//716
2807 | f 37//717 587//717 623//717
2808 | f 587//718 594//718 624//718
2809 | f 594//719 595//719 625//719
2810 | f 595//720 135//720 134//720
2811 | f 595//720 134//720 625//720
2812 | f 625//721 134//721 166//721
2813 | f 625//721 166//721 626//721
2814 | f 626//722 166//722 164//722
2815 | f 626//722 164//722 627//722
2816 | f 627//723 164//723 162//723
2817 | f 627//723 162//723 628//723
2818 | f 594//719 625//719 624//719
2819 | f 624//724 625//724 626//724
2820 | f 624//724 626//724 629//724
2821 | f 629//725 626//725 627//725
2822 | f 629//725 627//725 630//725
2823 | f 630//726 627//726 628//726
2824 | f 630//726 628//726 631//726
2825 | f 587//718 624//718 623//718
2826 | f 623//727 624//727 629//727
2827 | f 623//727 629//727 632//727
2828 | f 632//728 629//728 630//728
2829 | f 632//728 630//728 633//728
2830 | f 633//729 630//729 631//729
2831 | f 633//729 631//729 634//729
2832 | f 25//730 27//730 634//730
2833 | f 634//731 27//731 29//731
2834 | f 634//732 29//732 633//732
2835 | f 633//733 29//733 31//733
2836 | f 633//733 31//733 632//733
2837 | f 632//734 31//734 33//734
2838 | f 632//735 33//735 623//735
2839 | f 623//736 33//736 35//736
2840 | f 623//737 35//737 37//737
2841 | f 23//738 25//738 635//738
2842 | f 635//739 25//739 634//739
2843 | f 635//740 634//740 636//740
2844 | f 636//740 634//740 631//740
2845 | f 636//741 631//741 637//741
2846 | f 637//741 631//741 628//741
2847 | f 637//742 628//742 160//742
2848 | f 160//742 628//742 162//742
2849 | f 160//743 139//743 637//743
2850 | f 637//743 139//743 602//743
2851 | f 637//744 602//744 636//744
2852 | f 636//744 602//744 604//744
2853 | f 636//745 604//745 635//745
2854 | f 635//746 604//746 606//746
2855 | f 635//747 606//747 23//747
2856 | f 23//747 606//747 21//747
2857 | f 256//748 638//748 257//748
2858 | f 257//749 638//749 639//749
2859 | f 257//750 639//750 254//750
2860 | f 254//751 639//751 640//751
2861 | f 254//752 640//752 252//752
2862 | f 252//753 640//753 641//753
2863 | f 252//754 641//754 220//754
2864 | f 642//755 643//755 644//755
2865 | f 644//756 643//756 641//756
2866 | f 644//757 641//757 645//757
2867 | f 645//758 641//758 640//758
2868 | f 645//759 640//759 646//759
2869 | f 646//760 640//760 639//760
2870 | f 646//761 639//761 647//761
2871 | f 647//762 639//762 638//762
2872 | f 647//763 638//763 648//763
2873 | f 648//764 638//764 256//764
2874 | f 214//765 642//765 445//765
2875 | f 445//766 642//766 644//766
2876 | f 445//767 644//767 447//767
2877 | f 447//768 644//768 645//768
2878 | f 447//769 645//769 448//769
2879 | f 448//770 645//770 646//770
2880 | f 448//771 646//771 449//771
2881 | f 449//772 646//772 647//772
2882 | f 449//773 647//773 444//773
2883 | f 444//774 647//774 648//774
2884 | f 444//775 648//775 411//775
2885 | f 214//776 649//776 642//776
2886 | f 642//777 649//777 650//777
2887 | f 642//778 650//778 643//778
2888 | f 643//779 650//779 651//779
2889 | f 643//780 651//780 652//780
2890 | f 220//781 641//781 221//781
2891 | f 221//782 641//782 643//782
2892 | f 221//783 643//783 249//783
2893 | f 249//784 643//784 652//784
2894 | f 249//785 652//785 250//785
2895 | f 313//786 410//786 653//786
2896 | f 653//787 410//787 654//787
2897 | f 653//788 654//788 655//788
2898 | f 260//789 259//789 654//789
2899 | f 654//790 259//790 656//790
2900 | f 654//791 656//791 655//791
2901 | f 256//792 260//792 648//792
2902 | f 648//793 260//793 654//793
2903 | f 648//794 654//794 411//794
2904 | f 411//795 654//795 410//795
2905 | f 657//796 658//796 242//796
2906 | f 245//797 248//797 659//797
2907 | f 660//798 661//798 662//798
2908 | f 663//799 649//799 214//799
2909 | f 219//800 661//800 217//800
2910 | f 217//801 661//801 660//801
2911 | f 217//802 660//802 215//802
2912 | f 664//803 650//803 649//803
2913 | f 211//804 665//804 666//804
2914 | f 666//805 665//805 667//805
2915 | f 666//806 667//806 668//806
2916 | f 668//807 667//807 669//807
2917 | f 668//808 669//808 657//808
2918 | f 659//809 670//809 664//809
2919 | f 214//810 213//810 663//810
2920 | f 663//811 213//811 671//811
2921 | f 663//812 671//812 672//812
2922 | f 672//813 671//813 673//813
2923 | f 672//814 673//814 674//814
2924 | f 674//815 673//815 675//815
2925 | f 665//805 215//805 667//805
2926 | f 667//802 215//802 660//802
2927 | f 667//807 660//807 669//807
2928 | f 669//816 660//816 662//816
2929 | f 669//817 662//817 657//817
2930 | f 657//818 662//818 676//818
2931 | f 657//819 676//819 658//819
2932 | f 650//820 664//820 651//820
2933 | f 651//821 664//821 670//821
2934 | f 651//822 670//822 652//822
2935 | f 652//823 670//823 251//823
2936 | f 652//824 251//824 250//824
2937 | f 659//825 248//825 670//825
2938 | f 670//825 248//825 247//825
2939 | f 670//826 247//826 251//826
2940 | f 649//827 663//827 664//827
2941 | f 664//812 663//812 672//812
2942 | f 664//809 672//809 659//809
2943 | f 659//814 672//814 674//814
2944 | f 659//828 674//828 245//828
2945 | f 241//829 239//829 675//829
2946 | f 675//830 239//830 238//830
2947 | f 675//831 238//831 674//831
2948 | f 674//831 238//831 677//831
2949 | f 674//832 677//832 245//832
2950 | f 213//811 211//811 671//811
2951 | f 671//804 211//804 666//804
2952 | f 671//813 666//813 673//813
2953 | f 673//806 666//806 668//806
2954 | f 673//815 668//815 675//815
2955 | f 675//808 668//808 657//808
2956 | f 675//833 657//833 241//833
2957 | f 241//796 657//796 242//796
2958 | f 655//834 656//834 678//834
2959 | f 679//835 680//835 681//835
2960 | f 680//194 288//194 325//194
2961 | f 679//836 681//836 682//836
2962 | f 680//837 325//837 681//837
2963 | f 681//838 325//838 323//838
2964 | f 681//839 323//839 683//839
2965 | f 683//840 323//840 321//840
2966 | f 683//841 321//841 684//841
2967 | f 684//842 321//842 319//842
2968 | f 684//843 319//843 685//843
2969 | f 685//844 319//844 317//844
2970 | f 685//845 317//845 686//845
2971 | f 686//846 317//846 315//846
2972 | f 686//847 315//847 687//847
2973 | f 687//848 315//848 314//848
2974 | f 687//849 314//849 688//849
2975 | f 314//187 295//187 688//187
2976 | f 688//850 295//850 297//850
2977 | f 688//851 297//851 689//851
2978 | f 297//176 299//176 689//176
2979 | f 689//178 299//178 301//178
2980 | f 689//852 301//852 690//852
2981 | f 301//853 303//853 690//853
2982 | f 690//854 303//854 305//854
2983 | f 690//855 305//855 691//855
2984 | f 691//856 305//856 307//856
2985 | f 691//857 307//857 692//857
2986 | f 692//858 307//858 309//858
2987 | f 692//859 309//859 693//859
2988 | f 693//860 309//860 311//860
2989 | f 693//861 311//861 694//861
2990 | f 694//862 311//862 312//862
2991 | f 694//863 312//863 695//863
2992 | f 695//864 312//864 313//864
2993 | f 695//865 313//865 653//865
2994 | f 653//866 655//866 695//866
2995 | f 695//867 655//867 678//867
2996 | f 695//868 678//868 694//868
2997 | f 694//868 678//868 696//868
2998 | f 694//869 696//869 693//869
2999 | f 693//869 696//869 697//869
3000 | f 693//870 697//870 692//870
3001 | f 692//870 697//870 698//870
3002 | f 692//871 698//871 691//871
3003 | f 691//871 698//871 699//871
3004 | f 691//872 699//872 690//872
3005 | f 690//872 699//872 700//872
3006 | f 690//873 700//873 689//873
3007 | f 689//873 700//873 701//873
3008 | f 689//874 701//874 688//874
3009 | f 688//874 701//874 702//874
3010 | f 688//875 702//875 687//875
3011 | f 687//875 702//875 703//875
3012 | f 687//876 703//876 686//876
3013 | f 686//876 703//876 704//876
3014 | f 686//877 704//877 685//877
3015 | f 685//877 704//877 705//877
3016 | f 685//878 705//878 684//878
3017 | f 684//878 705//878 706//878
3018 | f 684//879 706//879 683//879
3019 | f 683//879 706//879 707//879
3020 | f 683//880 707//880 681//880
3021 | f 681//880 707//880 708//880
3022 | f 681//881 708//881 682//881
3023 | f 225//882 682//882 223//882
3024 | f 223//882 682//882 708//882
3025 | f 223//883 708//883 261//883
3026 | f 261//883 708//883 707//883
3027 | f 261//884 707//884 262//884
3028 | f 262//884 707//884 706//884
3029 | f 262//885 706//885 264//885
3030 | f 264//885 706//885 705//885
3031 | f 264//886 705//886 265//886
3032 | f 265//886 705//886 704//886
3033 | f 265//887 704//887 267//887
3034 | f 267//887 704//887 703//887
3035 | f 267//888 703//888 268//888
3036 | f 268//888 703//888 702//888
3037 | f 268//889 702//889 270//889
3038 | f 270//889 702//889 701//889
3039 | f 270//890 701//890 271//890
3040 | f 271//890 701//890 700//890
3041 | f 271//891 700//891 273//891
3042 | f 273//891 700//891 699//891
3043 | f 273//892 699//892 274//892
3044 | f 274//892 699//892 698//892
3045 | f 274//893 698//893 276//893
3046 | f 276//893 698//893 697//893
3047 | f 276//894 697//894 277//894
3048 | f 277//894 697//894 696//894
3049 | f 277//895 696//895 278//895
3050 | f 278//895 696//895 678//895
3051 | f 278//896 678//896 259//896
3052 | f 259//896 678//896 656//896
3053 | f 662//897 661//897 709//897
3054 | f 661//898 219//898 342//898
3055 | f 662//899 709//899 676//899
3056 | f 661//900 342//900 709//900
3057 | f 709//901 342//901 346//901
3058 | f 709//902 346//902 710//902
3059 | f 710//903 346//903 344//903
3060 | f 710//904 344//904 711//904
3061 | f 658//905 676//905 712//905
3062 | f 712//906 676//906 709//906
3063 | f 712//907 709//907 713//907
3064 | f 713//908 709//908 710//908
3065 | f 713//909 710//909 714//909
3066 | f 714//910 710//910 711//910
3067 | f 714//911 711//911 715//911
3068 | f 715//912 234//912 714//912
3069 | f 714//913 234//913 233//913
3070 | f 714//914 233//914 713//914
3071 | f 713//915 233//915 231//915
3072 | f 713//916 231//916 712//916
3073 | f 712//917 231//917 242//917
3074 | f 712//918 242//918 658//918
3075 | f 237//919 236//919 715//919
3076 | f 715//920 236//920 235//920
3077 | f 715//921 235//921 234//921
3078 | f 347//922 283//922 716//922
3079 | f 716//923 283//923 717//923
3080 | f 716//924 717//924 718//924
3081 | f 343//925 347//925 719//925
3082 | f 719//926 347//926 716//926
3083 | f 719//927 716//927 720//927
3084 | f 720//928 716//928 718//928
3085 | f 720//929 718//929 721//929
3086 | f 344//930 343//930 711//930
3087 | f 711//931 343//931 719//931
3088 | f 711//932 719//932 715//932
3089 | f 715//933 719//933 720//933
3090 | f 715//934 720//934 237//934
3091 | f 237//935 720//935 721//935
3092 | f 237//936 721//936 227//936
3093 | f 229//937 228//937 722//937
3094 | f 717//938 283//938 282//938
3095 | f 722//939 718//939 717//939
3096 | f 228//940 227//940 722//940
3097 | f 722//941 227//941 721//941
3098 | f 722//942 721//942 718//942
3099 | f 717//943 282//943 722//943
3100 | f 722//944 282//944 288//944
3101 | f 722//945 288//945 680//945
3102 | f 225//946 229//946 682//946
3103 | f 682//947 229//947 722//947
3104 | f 682//948 722//948 679//948
3105 | f 679//949 722//949 680//949
3106 |
--------------------------------------------------------------------------------
/src/robot_properties_bolt/resources/meshes/plane.mtl:
--------------------------------------------------------------------------------
1 | newmtl Material
2 | Ns 10.0000
3 | Ni 1.5000
4 | d 1.0000
5 | Tr 0.0000
6 | Tf 1.0000 1.0000 1.0000
7 | illum 2
8 | Ka 0.0000 0.0000 0.0000
9 | Kd 0.5880 0.5880 0.5880
10 | Ks 0.0000 0.0000 0.0000
11 | Ke 0.0000 0.0000 0.0000
12 | map_Ka cube.tga
13 | map_Kd checker_blue.png
14 |
15 |
16 |
--------------------------------------------------------------------------------
/src/robot_properties_bolt/resources/meshes/plane.obj:
--------------------------------------------------------------------------------
1 | # Blender v2.66 (sub 1) OBJ File: ''
2 | # www.blender.org
3 | mtllib plane.mtl
4 | o Plane
5 | v 15.000000 -15.000000 0.000000
6 | v 15.000000 15.000000 0.000000
7 | v -15.000000 15.000000 0.000000
8 | v -15.000000 -15.000000 0.000000
9 |
10 | vt 15.000000 0.000000
11 | vt 15.000000 15.000000
12 | vt 0.000000 15.000000
13 | vt 0.000000 0.000000
14 |
15 | usemtl Material
16 | s off
17 | f 1/1 2/2 3/3
18 | f 1/1 3/3 4/4
19 |
--------------------------------------------------------------------------------
/src/robot_properties_bolt/resources/meshes/stl/bolt_body.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-dynamic-robot-initiative/robot_properties_bolt/57cf293cfcd25234eb922de6238932ed7f6cb42b/src/robot_properties_bolt/resources/meshes/stl/bolt_body.stl
--------------------------------------------------------------------------------
/src/robot_properties_bolt/resources/meshes/stl/bolt_foot.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-dynamic-robot-initiative/robot_properties_bolt/57cf293cfcd25234eb922de6238932ed7f6cb42b/src/robot_properties_bolt/resources/meshes/stl/bolt_foot.stl
--------------------------------------------------------------------------------
/src/robot_properties_bolt/resources/meshes/stl/bolt_hip_fe_left_side.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-dynamic-robot-initiative/robot_properties_bolt/57cf293cfcd25234eb922de6238932ed7f6cb42b/src/robot_properties_bolt/resources/meshes/stl/bolt_hip_fe_left_side.stl
--------------------------------------------------------------------------------
/src/robot_properties_bolt/resources/meshes/stl/bolt_hip_fe_right_side.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-dynamic-robot-initiative/robot_properties_bolt/57cf293cfcd25234eb922de6238932ed7f6cb42b/src/robot_properties_bolt/resources/meshes/stl/bolt_hip_fe_right_side.stl
--------------------------------------------------------------------------------
/src/robot_properties_bolt/resources/meshes/stl/bolt_lower_leg_left_side.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-dynamic-robot-initiative/robot_properties_bolt/57cf293cfcd25234eb922de6238932ed7f6cb42b/src/robot_properties_bolt/resources/meshes/stl/bolt_lower_leg_left_side.stl
--------------------------------------------------------------------------------
/src/robot_properties_bolt/resources/meshes/stl/bolt_lower_leg_right_side.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-dynamic-robot-initiative/robot_properties_bolt/57cf293cfcd25234eb922de6238932ed7f6cb42b/src/robot_properties_bolt/resources/meshes/stl/bolt_lower_leg_right_side.stl
--------------------------------------------------------------------------------
/src/robot_properties_bolt/resources/meshes/stl/bolt_shoulder_fe_left_side.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-dynamic-robot-initiative/robot_properties_bolt/57cf293cfcd25234eb922de6238932ed7f6cb42b/src/robot_properties_bolt/resources/meshes/stl/bolt_shoulder_fe_left_side.stl
--------------------------------------------------------------------------------
/src/robot_properties_bolt/resources/meshes/stl/bolt_shoulder_fe_right_side.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-dynamic-robot-initiative/robot_properties_bolt/57cf293cfcd25234eb922de6238932ed7f6cb42b/src/robot_properties_bolt/resources/meshes/stl/bolt_shoulder_fe_right_side.stl
--------------------------------------------------------------------------------
/src/robot_properties_bolt/resources/meshes/stl/bolt_trunk.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-dynamic-robot-initiative/robot_properties_bolt/57cf293cfcd25234eb922de6238932ed7f6cb42b/src/robot_properties_bolt/resources/meshes/stl/bolt_trunk.stl
--------------------------------------------------------------------------------
/src/robot_properties_bolt/resources/meshes/stl/bolt_upper_leg_left_side.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-dynamic-robot-initiative/robot_properties_bolt/57cf293cfcd25234eb922de6238932ed7f6cb42b/src/robot_properties_bolt/resources/meshes/stl/bolt_upper_leg_left_side.stl
--------------------------------------------------------------------------------
/src/robot_properties_bolt/resources/meshes/stl/bolt_upper_leg_right_side.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-dynamic-robot-initiative/robot_properties_bolt/57cf293cfcd25234eb922de6238932ed7f6cb42b/src/robot_properties_bolt/resources/meshes/stl/bolt_upper_leg_right_side.stl
--------------------------------------------------------------------------------
/src/robot_properties_bolt/resources/meshes/stl/lower_leg_200mm_left_side.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-dynamic-robot-initiative/robot_properties_bolt/57cf293cfcd25234eb922de6238932ed7f6cb42b/src/robot_properties_bolt/resources/meshes/stl/lower_leg_200mm_left_side.stl
--------------------------------------------------------------------------------
/src/robot_properties_bolt/resources/meshes/stl/lower_leg_200mm_right_side.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-dynamic-robot-initiative/robot_properties_bolt/57cf293cfcd25234eb922de6238932ed7f6cb42b/src/robot_properties_bolt/resources/meshes/stl/lower_leg_200mm_right_side.stl
--------------------------------------------------------------------------------
/src/robot_properties_bolt/resources/meshes/stl/upper_leg_200mm_left_side.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-dynamic-robot-initiative/robot_properties_bolt/57cf293cfcd25234eb922de6238932ed7f6cb42b/src/robot_properties_bolt/resources/meshes/stl/upper_leg_200mm_left_side.stl
--------------------------------------------------------------------------------
/src/robot_properties_bolt/resources/meshes/stl/upper_leg_200mm_right_side.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-dynamic-robot-initiative/robot_properties_bolt/57cf293cfcd25234eb922de6238932ed7f6cb42b/src/robot_properties_bolt/resources/meshes/stl/upper_leg_200mm_right_side.stl
--------------------------------------------------------------------------------
/src/robot_properties_bolt/resources/odri_control_interface/bolt_driver.yaml:
--------------------------------------------------------------------------------
1 | #
2 | # Bolt driver parameterization
3 | #
4 |
5 | #
6 | # Map of the joints:
7 | #
8 | # +----------|------------|---------|------------|-------------+
9 | # + joint_id | joint_name | udriver | motor_port | motor_index +
10 | # +==========|============|=========|============|=============+
11 | # + 0 | L_HAA | 0 | 0 | 0 +
12 | # +----------|------------|---------|------------|-------------+
13 | # + 1 | L_HFE | 1 | 1 | 3 +
14 | # +----------|------------|---------|------------|-------------+
15 | # + 2 | L_KFE | 1 | 0 | 2 +
16 | # +----------|------------|---------|------------|-------------+
17 | # + 3 | R_HAA | 0 | 1 | 1 +
18 | # +----------|------------|---------|------------|-------------+
19 | # + 4 | R_HFE | 2 | 1 | 5 +
20 | # +----------|------------|---------|------------|-------------+
21 | # + 5 | R_KFE | 2 | 0 | 4 +
22 | # +----------|------------|---------|------------|-------------+
23 | #
24 |
25 | robot:
26 | interface: ens4
27 | joint_modules:
28 | motor_numbers: [0, 3, 2, 1, 5, 4]
29 | motor_constants: 0.025
30 | gear_ratios: 9.
31 | max_currents: 12.
32 | reverse_polarities: [
33 | true, true, true, true, false, false
34 | ]
35 | # Here is -2 * pi
36 | lower_joint_limits: [
37 | -6.28, -6.28, -6.28, -6.28, -6.28, -6.28
38 | ]
39 | # Here is +2 * pi
40 | upper_joint_limits: [
41 | +6.28, +6.28, +6.28, +6.28, +6.28, +6.28
42 | ]
43 | max_joint_velocities: 80.
44 | safety_damping: 0.3
45 | imu:
46 | rotate_vector: [1, 2, 3]
47 | orientation_vector: [1, 2, 3, 4]
48 |
49 | #
50 | # Joint calibrator parameters.
51 | #
52 | joint_calibrator:
53 | # Can be either POS, NEG, ALT or AUTO
54 | search_methods: [
55 | POS, NEG, POS, NEG, NEG, POS
56 | ]
57 | position_offsets: [-0.081, -0.156, +0.456, +0.049, -0.294, +0.486, ]
58 | Kp: 3.
59 | Kd: 0.05
60 | T: 2.0
61 | dt: 0.001
62 |
--------------------------------------------------------------------------------
/src/robot_properties_bolt/resources/odri_control_interface/bolt_humanoid_driver.yaml:
--------------------------------------------------------------------------------
1 | #
2 | # Bolt driver parameterization
3 | #
4 |
5 | #
6 | # Map of the joints:
7 | #
8 | # +----------|------------|---------|------------|-------------+
9 | # + joint_id | joint_name | udriver | motor_port | motor_index +
10 | # +==========|============|=========|============|=============+
11 | # + 0 | L_HAA | 0 | 0 | 0 +
12 | # +----------|------------|---------|------------|-------------+
13 | # + 1 | L_HFE | 1 | 1 | 3 +
14 | # +----------|------------|---------|------------|-------------+
15 | # + 2 | L_KFE | 1 | 0 | 2 +
16 | # +----------|------------|---------|------------|-------------+
17 | # + 3 | R_HAA | 0 | 1 | 1 +
18 | # +----------|------------|---------|------------|-------------+
19 | # + 4 | R_HFE | 2 | 1 | 5 +
20 | # +----------|------------|---------|------------|-------------+
21 | # + 5 | R_KFE | 2 | 0 | 4 +
22 | # +----------|------------|---------|------------|-------------+
23 | # + 6 | TR | 4 | 1 | 9 +
24 | # +----------|------------|---------|------------|-------------+
25 | # + 7 | L_SFE | 3 | 1 | 7 +
26 | # +----------|------------|---------|------------|-------------+
27 | # + 8 | R_SFE | 3 | 0 | 6 +
28 | # +----------|------------|---------|------------|-------------+
29 |
30 | robot:
31 | interface: ens4
32 | joint_modules:
33 | motor_numbers: [0, 3, 2, 1, 5, 4, 9, 7, 6]
34 | motor_constants: 0.025
35 | gear_ratios: 9.
36 | max_currents: 12.
37 | reverse_polarities: [
38 | true, true, true, true, false, false,
39 | # TODO: Set these values properly once robot is finished.
40 | false, false, false
41 | ]
42 | # Here is -2 * pi
43 | lower_joint_limits: [
44 | -6.28, -6.28, -6.28, -6.28, -6.28, -6.28, -6.28, -6.28, -6.28
45 | ]
46 | # Here is +2 * pi
47 | upper_joint_limits: [
48 | +6.28, +6.28, +6.28, +6.28, +6.28, +6.28, +6.28, +6.28, +6.28
49 | ]
50 | max_joint_velocities: 80.
51 | safety_damping: 0.3
52 | imu:
53 | rotate_vector: [1, 2, 3]
54 | orientation_vector: [1, 2, 3, 4]
55 |
56 | #
57 | # Joint calibrator parameters.
58 | #
59 | joint_calibrator:
60 | # Can be either POS, NEG, ALT or AUTO
61 | search_methods: [
62 | POS, NEG, POS, NEG, NEG, POS,
63 | # TODO: Set these values properly once robot is finished.
64 | NEG, NEG, NEG
65 | ]
66 | position_offsets: [
67 | -0.081, -0.156, +0.456, +0.049, -0.294, +0.486,
68 | # TODO: Set these values properly once robot is finished.
69 | 0., 0., 0.
70 | ]
71 | Kp: 3.
72 | Kd: 0.05
73 | T: 2.0
74 | dt: 0.001
75 |
--------------------------------------------------------------------------------
/src/robot_properties_bolt/resources/robot_properties_bolt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/open-dynamic-robot-initiative/robot_properties_bolt/57cf293cfcd25234eb922de6238932ed7f6cb42b/src/robot_properties_bolt/resources/robot_properties_bolt
--------------------------------------------------------------------------------
/src/robot_properties_bolt/resources/xacro/arm.xacro:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
45 |
46 |
47 |
48 |
49 |
50 | opa
51 |
52 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
--------------------------------------------------------------------------------
/src/robot_properties_bolt/resources/xacro/bolt.urdf.xacro:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
26 |
27 |
--------------------------------------------------------------------------------
/src/robot_properties_bolt/resources/xacro/bolt.xacro:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
65 |
66 |
67 |
78 |
79 |
80 |
81 |
--------------------------------------------------------------------------------
/src/robot_properties_bolt/resources/xacro/bolt_humanoid.urdf.xacro:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/src/robot_properties_bolt/resources/xacro/bolt_humanoid.xacro:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
58 |
59 |
60 |
61 |
62 |
63 |
74 |
75 |
76 |
87 |
88 |
89 |
90 |
--------------------------------------------------------------------------------
/src/robot_properties_bolt/resources/xacro/bolt_passive_ankle.urdf.xacro:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
26 |
27 |
--------------------------------------------------------------------------------
/src/robot_properties_bolt/resources/xacro/leg.xacro:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
72 |
73 |
74 |
75 |
76 |
77 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
242 |
243 |
244 |
245 |
246 |
247 |
248 |
249 |
255 |
256 |
257 |
258 |
259 |
260 |
261 |
262 |
268 |
269 |
270 |
271 |
272 |
273 |
274 |
275 |
276 |
277 |
278 |
279 |
280 |
281 |
282 |
283 |
284 |
285 |
286 |
287 |
288 |
289 |
290 |
291 |
292 |
293 |
294 |
295 |
296 |
297 |
298 |
299 |
300 |
301 |
302 |
303 |
304 |
305 |
306 |
307 |
308 |
309 |
310 |
311 |
312 |
313 |
314 |
315 |
316 |
317 |
318 |
319 |
320 |
321 |
322 |
323 |
324 |
325 |
326 |
327 |
328 |
329 |
330 |
331 |
332 |
333 |
334 |
335 |
336 |
337 |
338 |
339 |
340 |
341 |
342 |
343 |
344 |
345 |
346 |
347 |
348 |
349 |
350 |
351 |
352 |
353 |
359 |
360 |
361 |
362 |
363 |
364 |
365 |
366 |
367 |
368 |
369 |
370 |
371 |
372 |
373 |
374 |
375 |
376 |
377 |
378 |
379 |
380 |
381 |
382 |
383 |
384 |
385 |
386 |
387 |
388 |
389 |
390 |
391 |
392 |
393 |
394 |
395 |
396 |
397 |
398 |
399 |
400 |
--------------------------------------------------------------------------------
/src/robot_properties_bolt/resources/xacro/plane_with_restitution.urdf.xacro:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/src/robot_properties_bolt/resources/xacro/upper_body.xacro:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
70 |
71 |
72 |
79 |
80 |
81 |
82 |
--------------------------------------------------------------------------------