├── .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 | --------------------------------------------------------------------------------