├── .github └── workflows │ └── industrial_ci.yml ├── .gitignore ├── CHANGELOG.rst ├── CMakeLists.txt ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── launch ├── config │ └── urdf.rviz └── display.launch.py ├── meshes ├── dae │ ├── body │ │ ├── raspimouse_body.dae │ │ ├── raspimouse_top_plate.dae │ │ └── rt-logo.png │ ├── sensor │ │ ├── urg_bottom_origin.dae │ │ └── urg_optical_axis_center_origin.dae │ └── wheel │ │ └── raspimouse_wheel.dae └── stl │ ├── RasPiMouse_MultiLiDARMount.stl │ ├── RasPiMouse_TopPlate.stl │ ├── RasPiMouse_base-metric.stl │ ├── RasPiMouse_sensor-metric.stl │ ├── RasPiMouse_wheel-metric.stl │ ├── RasPiMouse_wheel-mm.stl │ ├── URG-04LX-UG01.stl │ ├── color │ ├── RasPiMouse_body_black.stl │ ├── RasPiMouse_body_gray.stl │ ├── RasPiMouse_body_green.stl │ ├── RasPiMouse_body_red.stl │ ├── RasPiMouse_wheel_black.stl │ └── RasPiMouse_wheel_gray.stl │ └── robotis_lds01.stl ├── model.config ├── package.xml ├── raspimouse_description ├── __init__.py └── robot_description_loader.py ├── test ├── dummy_controllers.yaml └── test_robot_description_loader.py └── urdf ├── body ├── body.gazebo.xacro ├── body.urdf.xacro └── option.urdf.xacro ├── common.xacro ├── raspimouse.urdf.xacro ├── sensors ├── lidar.gazebo.xacro ├── lidar.urdf.xacro ├── lightsens.gazebo.xacro ├── lightsens.urdf.xacro └── rgb_camera.xacro └── wheel ├── diffdrive.gazebo.xacro ├── diffdrive.gazebo_ros2_control.xacro └── wheel.urdf.xacro /.github/workflows/industrial_ci.yml: -------------------------------------------------------------------------------- 1 | name: industrial_ci 2 | 3 | on: 4 | push: 5 | paths-ignore: 6 | - 'docs/**' 7 | - '**.md' 8 | pull_request: 9 | paths-ignore: 10 | - 'docs/**' 11 | - '**.md' 12 | schedule: 13 | - cron: "0 2 * * 0" # Weekly on Sundays at 02:00 14 | 15 | jobs: 16 | industrial_ci: 17 | strategy: 18 | matrix: 19 | ROS_DISTRO: [jazzy] 20 | ROS_REPO: [ros] 21 | runs-on: ubuntu-latest 22 | steps: 23 | - uses: actions/checkout@v4 24 | - uses: "ros-industrial/industrial_ci@master" 25 | env: 26 | ROS_DISTRO: ${{ matrix.ROS_DISTRO }} 27 | ROS_REPO: ${{ matrix.ROS_REPO }} 28 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | build/ 2 | bin/ 3 | lib/ 4 | msg_gen/ 5 | srv_gen/ 6 | msg/*Action.msg 7 | msg/*ActionFeedback.msg 8 | msg/*ActionGoal.msg 9 | msg/*ActionResult.msg 10 | msg/*Feedback.msg 11 | msg/*Goal.msg 12 | msg/*Result.msg 13 | msg/_*.py 14 | 15 | # Generated by dynamic reconfigure 16 | *.cfgc 17 | /cfg/cpp/ 18 | /cfg/*.py 19 | 20 | # Ignore generated docs 21 | *.dox 22 | *.wikidoc 23 | 24 | # eclipse stuff 25 | .project 26 | .cproject 27 | 28 | # qcreator stuff 29 | CMakeLists.txt.user 30 | 31 | srv/_*.py 32 | *.pcd 33 | *.pyc 34 | qtcreator-* 35 | *.user 36 | 37 | /planning/cfg 38 | /planning/docs 39 | /planning/src 40 | 41 | *~ 42 | 43 | # Emacs 44 | .#* 45 | 46 | # Catkin custom files 47 | CATKIN_IGNORE 48 | 49 | # SketchUp backup files 50 | *~.skp 51 | 52 | # Swap files 53 | *.swp 54 | 55 | # MacOS metadata files 56 | .DS_store 57 | -------------------------------------------------------------------------------- /CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package raspimouse_description 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 2.0.0 (2024-11-08) 6 | ------------------ 7 | * Support ROS 2 Jazzy (`#55 `_) 8 | Co-authored-by: Kazushi Kurasawa 9 | * Replace `ign` to `gz` 10 | * Updated the remapping for subscription to reflect the removal of `unstamped` from `ros2_controllers `_ 11 | * Contributors: YusukeKato 12 | 13 | 1.2.0 (2024-03-05) 14 | ------------------ 15 | * シミュレータ環境でscanトピックをpublish (`#52 `_) 16 | * camera_downwardがtrueのときRGBカメラが斜め下を向くように変更 (`#50 `_) 17 | Co-authored-by: Shota Aoki 18 | * READMEにRGBカメラを表示するコマンドを追記 (`#47 `_) 19 | * Gazebo上で画像トピックを配信できるように変更 (`#46 `_) 20 | * RGBカメラのモデルを表示できるように変更 (`#45 `_) 21 | Co-authored-by: Shota Aoki 22 | * cmd_velとodomのトピック名をremapping (`#44 `_) 23 | * controller managerが起動するように変更 (`#43 `_) 24 | Co-authored-by: Shota Aoki 25 | * robot_description_loaderを実装 (`#42 `_) 26 | Co-authored-by: Daisuke Sato 27 | * Contributors: YusukeKato 28 | 29 | 1.1.0 (2023-11-07) 30 | ------------------ 31 | * READMEにRGBカメラを表示するコマンドを追記 (`#47 `_) 32 | * Gazebo上で画像トピックを配信できるように変更 (`#46 `_) 33 | * RGBカメラのモデルを表示できるように変更 (`#45 `_) 34 | Co-authored-by: Shota Aoki 35 | * cmd_velとodomのトピック名をremapping (`#44 `_) 36 | * controller managerが起動するように変更 (`#43 `_) 37 | Co-authored-by: Shota Aoki 38 | * robot_description_loaderを実装 (`#42 `_) 39 | Co-authored-by: Daisuke Sato 40 | * Contributors: YusukeKato 41 | 42 | 1.0.1 (2023-01-31) 43 | ------------------ 44 | * Updates README 45 | * Update the license year to 2022 46 | * Adds LiDAR (`#38 `_) 47 | * Update library to rviz2 (`#36 `_) 48 | * Update tread (ROS 2) (`#32 `_) 49 | * Update README for ROS 2 (`#26 `_) 50 | * Support ROS 2 Foxy (`#24 `_) 51 | * Create LICENSE 52 | * Contributors: Daisuke Sato, Shota Aoki, Shuhei Kozasa 53 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.5) 2 | project(raspimouse_description) 3 | 4 | # Default to C99 5 | if(NOT CMAKE_C_STANDARD) 6 | set(CMAKE_C_STANDARD 99) 7 | endif() 8 | 9 | # Default to C++14 10 | if(NOT CMAKE_CXX_STANDARD) 11 | set(CMAKE_CXX_STANDARD 14) 12 | endif() 13 | 14 | if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") 15 | add_compile_options(-Wall -Wextra -Wpedantic) 16 | endif() 17 | 18 | find_package(ament_cmake REQUIRED) 19 | 20 | install(DIRECTORY 21 | launch 22 | meshes 23 | urdf 24 | DESTINATION share/${PROJECT_NAME}/ 25 | ) 26 | 27 | ament_python_install_package(${PROJECT_NAME}) 28 | install(PROGRAMS 29 | ${PROJECT_NAME}/robot_description_loader.py 30 | DESTINATION lib/${PROJECT_NAME}) 31 | 32 | if(BUILD_TESTING) 33 | find_package(ament_lint_auto REQUIRED) 34 | ament_lint_auto_find_test_dependencies() 35 | 36 | find_package(ament_cmake_pytest REQUIRED) 37 | ament_add_pytest_test(test_robot_description_loader test/test_robot_description_loader.py) 38 | endif() 39 | 40 | ament_package() 41 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contribution Guide 2 | 3 | 本リポジトリへのコントリビュート方法について記載しています。 4 | 5 | ## Issues 6 | 7 | リポジトリの品質向上にご協力頂きありがとうございます。 8 | 9 | Issueの作成を簡単にするテンプレートを用意しているので活用してください。 10 | 11 | ## Pull Requests 12 | 13 | Pull Requestの作成ありがとうございます。 14 | 提出したPull Request(PR)には次のルールが適用されます。 15 | 16 | - PRの内容には本リポジトリのライセンス([LICENSE](./LICENSE)と[README.md](./README.md)に記載されています)が適用されます 17 | - PRは`rt-net`のメンバーによるレビューを経てからマージされます 18 | - すべてのPRがマージされるわけではなく、希望に添えない場合もありますのでご容赦ください 19 | - リポジトリにテストが設定されている場合はできるだけテストを通してください 20 | - 何かしらの理由(テストに間違いがある場合など)でテストを通さずPRを出す場合はその旨をPRに記載してください 21 | - マージする際にはPR内の全コミットが1つのコミットに`squash`されます 22 | - [コミットをスカッシュしてマージする | GitHub Docs](https://docs.github.com/ja/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges#squash-and-merge-your-commits) 23 | - 1つのPRでリクエストする変更はできるだけシンプルにしてください 24 | - 異なる内容の変更を含む場合はPRを分割してください 25 | - 例えば、複数の機能追加したり、機能追加とリファクタリングを同時にする場合はそれぞれ別々のPRとしてください 26 | - squashマージしても履歴を辿りやすくするためです 27 | 28 | ## LICENSE 29 | 30 | Any contribution that you make to this repository will 31 | be under the MIT license, as dictated by that 32 | [license](https://opensource.org/licenses/MIT). 33 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016-2020 RT Corporation 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # raspimouse_description 2 | 3 | [![industrial_ci](https://github.com/rt-net/raspimouse_description/actions/workflows/industrial_ci.yml/badge.svg?branch=ros2)](https://github.com/rt-net/raspimouse_description/actions/workflows/industrial_ci.yml) 4 | 5 | ROS package with URDF description macro for [Raspberry Pi Mouse](https://rt-net.jp/products/raspberrypimousev3/) 6 | 7 | ![display_launch](https://rt-net.github.io/images/raspberry-pi-mouse/display_launch.png) 8 | 9 | This ROS package was separated from [rt-net/raspimouse_sim](https://github.com/rt-net/raspimouse_sim). 10 | See details from [rt-net/raspimouse_sim#42](https://github.com/rt-net/raspimouse_sim/pull/42). 11 | 12 | The main development branch for ROS 1 is [`master`](https://github.com/rt-net/raspimouse_description/tree/master). 13 | The main development branch for ROS 2 is [`ros2`](https://github.com/rt-net/raspimouse_description/tree/ros2). 14 | 15 | ## Supported ROS distributions 16 | 17 | - Humble ([`humble`](https://github.com/rt-net/raspimouse_description/tree/humble)) 18 | - Jazzy ([`jazzy`](https://github.com/rt-net/raspimouse_description/tree/jazzy)) 19 | 20 | ## Installation 21 | 22 | ```sh 23 | # Clone raspimouse_description and install dependencies 24 | cd ~/ros2_ws/src 25 | git clone -b $ROS_DISTRO https://github.com/rt-net/raspimouse_description 26 | rosdep install -r -y -i --from-paths . 27 | 28 | # Build the package 29 | cd ~/ros2_ws 30 | colcon build --symlink-install 31 | source install/setup.bash 32 | ``` 33 | 34 | ## How to Use 35 | 36 | Display a Raspberry Pi Mouse robot model on RViz2 with the following command: 37 | 38 | ```sh 39 | ros2 launch raspimouse_description display.launch.py 40 | ``` 41 | 42 | You can also display a LiDAR mounted robot model with the following command: 43 | 44 | ```sh 45 | ros2 launch raspimouse_description display.launch.py lidar:=rplidar 46 | ``` 47 | 48 | The `lidar` option supports `urg`, `lds`, and `rplidar`. 49 | 50 | Similarly, display a RGB Camera mounted robot model with the following command: 51 | 52 | ```sh 53 | ros2 launch raspimouse_description display.launch.py use_rgb_camera:=true 54 | ``` 55 | ![](https://rt-net.github.io/images/raspberry-pi-mouse/mouse_with_rgb_camera.png) 56 | 57 | RGB Camera can be pointed down with the following command: 58 | 59 | ```sh 60 | ros2 launch raspimouse_description display.launch.py use_rgb_camera:=true camera_downward:=true 61 | ``` 62 | 63 | ![](https://rt-net.github.io/images/raspberry-pi-mouse/mouse_with_rgb_camera_downward.png) 64 | 65 | 66 | ## LICENSE 67 | 68 | (C) 2016-2022 RT Corporation 69 | 70 | This repository is licensed under the MIT license, see [LICENSE](./LICENSE). 71 | Unless attributed otherwise, everything in this repository is under the MIT license. 72 | 73 | ### Acknowledgements 74 | 75 | Special thanks to https://gbiggs.github.io/rosjp_urdf_tutorial_text/index.html 76 | 77 | The file [robotis_lds01.stl](./meshes/stl/robotis_lds01.stl) is released from ROBOTIS and licensed under the [Apache License 2.0](https://github.com/ROBOTIS-GIT/turtlebot3/blob/a3c515b350a752b93ed8de4a009442e80e9d787d/LICENSE). 78 | The original file is released in [turtlebot3_description package](https://github.com/ROBOTIS-GIT/turtlebot3/blob/a3c515b350a752b93ed8de4a009442e80e9d787d/turtlebot3_description/meshes/sensors/lds.stl). 79 | -------------------------------------------------------------------------------- /launch/config/urdf.rviz: -------------------------------------------------------------------------------- 1 | Panels: 2 | - Class: rviz_common/Displays 3 | Help Height: 78 4 | Name: Displays 5 | Property Tree Widget: 6 | Expanded: 7 | - /Global Options1 8 | - /Status1 9 | - /RobotModel1 10 | - /TF1 11 | Splitter Ratio: 0.5 12 | Tree Height: 802 13 | - Class: rviz_common/Selection 14 | Name: Selection 15 | - Class: rviz_common/Tool Properties 16 | Expanded: 17 | - /2D Goal Pose1 18 | - /Publish Point1 19 | Name: Tool Properties 20 | Splitter Ratio: 0.5886790156364441 21 | - Class: rviz_common/Views 22 | Expanded: 23 | - /Current View1 24 | Name: Views 25 | Splitter Ratio: 0.5 26 | Visualization Manager: 27 | Class: "" 28 | Displays: 29 | - Alpha: 0.5 30 | Cell Size: 1 31 | Class: rviz_default_plugins/Grid 32 | Color: 160; 160; 164 33 | Enabled: true 34 | Line Style: 35 | Line Width: 0.029999999329447746 36 | Value: Lines 37 | Name: Grid 38 | Normal Cell Count: 0 39 | Offset: 40 | X: 0 41 | Y: 0 42 | Z: 0 43 | Plane: XY 44 | Plane Cell Count: 10 45 | Reference Frame: 46 | Value: true 47 | - Alpha: 1 48 | Class: rviz_default_plugins/RobotModel 49 | Collision Enabled: false 50 | Description File: "" 51 | Description Source: Topic 52 | Description Topic: 53 | Depth: 5 54 | Durability Policy: Volatile 55 | History Policy: Keep Last 56 | Reliability Policy: Reliable 57 | Value: /robot_description 58 | Enabled: true 59 | Links: 60 | All Links Enabled: true 61 | Expand Joint Details: false 62 | Expand Link Details: false 63 | Expand Tree: false 64 | Link Tree Style: Links in Alphabetic Order 65 | base_footprint: 66 | Alpha: 1 67 | Show Axes: false 68 | Show Trail: false 69 | base_link: 70 | Alpha: 1 71 | Show Axes: false 72 | Show Trail: false 73 | Value: true 74 | left_wheel: 75 | Alpha: 1 76 | Show Axes: false 77 | Show Trail: false 78 | Value: true 79 | lf: 80 | Alpha: 1 81 | Show Axes: false 82 | Show Trail: false 83 | Value: true 84 | ls: 85 | Alpha: 1 86 | Show Axes: false 87 | Show Trail: false 88 | Value: true 89 | rf: 90 | Alpha: 1 91 | Show Axes: false 92 | Show Trail: false 93 | Value: true 94 | right_wheel: 95 | Alpha: 1 96 | Show Axes: false 97 | Show Trail: false 98 | Value: true 99 | rs: 100 | Alpha: 1 101 | Show Axes: false 102 | Show Trail: false 103 | Value: true 104 | Name: RobotModel 105 | TF Prefix: "" 106 | Update Interval: 0 107 | Value: true 108 | Visual Enabled: true 109 | - Class: rviz_default_plugins/TF 110 | Enabled: true 111 | Frame Timeout: 15 112 | Frames: 113 | All Enabled: true 114 | base_footprint: 115 | Value: true 116 | base_link: 117 | Value: true 118 | left_wheel: 119 | Value: true 120 | lf: 121 | Value: true 122 | ls: 123 | Value: true 124 | rf: 125 | Value: true 126 | right_wheel: 127 | Value: true 128 | rs: 129 | Value: true 130 | Marker Scale: 0.30000001192092896 131 | Name: TF 132 | Show Arrows: true 133 | Show Axes: true 134 | Show Names: true 135 | Tree: 136 | base_footprint: 137 | base_link: 138 | left_wheel: 139 | {} 140 | lf: 141 | {} 142 | ls: 143 | {} 144 | rf: 145 | {} 146 | right_wheel: 147 | {} 148 | rs: 149 | {} 150 | Update Interval: 0 151 | Value: true 152 | Enabled: true 153 | Global Options: 154 | Background Color: 48; 48; 48 155 | Fixed Frame: base_link 156 | Frame Rate: 30 157 | Name: root 158 | Tools: 159 | - Class: rviz_default_plugins/Interact 160 | Hide Inactive Objects: true 161 | - Class: rviz_default_plugins/MoveCamera 162 | - Class: rviz_default_plugins/Select 163 | - Class: rviz_default_plugins/FocusCamera 164 | - Class: rviz_default_plugins/Measure 165 | Line color: 128; 128; 0 166 | - Class: rviz_default_plugins/SetInitialPose 167 | Topic: 168 | Depth: 5 169 | Durability Policy: Volatile 170 | History Policy: Keep Last 171 | Reliability Policy: Reliable 172 | Value: /initialpose 173 | - Class: rviz_default_plugins/SetGoal 174 | Topic: 175 | Depth: 5 176 | Durability Policy: Volatile 177 | History Policy: Keep Last 178 | Reliability Policy: Reliable 179 | Value: /goal_pose 180 | - Class: rviz_default_plugins/PublishPoint 181 | Single click: true 182 | Topic: 183 | Depth: 5 184 | Durability Policy: Volatile 185 | History Policy: Keep Last 186 | Reliability Policy: Reliable 187 | Value: /clicked_point 188 | Transformation: 189 | Current: 190 | Class: rviz_default_plugins/TF 191 | Value: true 192 | Views: 193 | Current: 194 | Class: rviz_default_plugins/Orbit 195 | Distance: 0.2948347330093384 196 | Enable Stereo Rendering: 197 | Stereo Eye Separation: 0.05999999865889549 198 | Stereo Focal Distance: 1 199 | Swap Stereo Eyes: false 200 | Value: false 201 | Focal Point: 202 | X: 0.01689356379210949 203 | Y: 0.00432221544906497 204 | Z: 0.048864349722862244 205 | Focal Shape Fixed Size: true 206 | Focal Shape Size: 0.05000000074505806 207 | Invert Z Axis: false 208 | Name: Current View 209 | Near Clip Distance: 0.009999999776482582 210 | Pitch: 0.23039847612380981 211 | Target Frame: 212 | Value: Orbit (rviz) 213 | Yaw: 0.7253983616828918 214 | Saved: ~ 215 | Window Geometry: 216 | Displays: 217 | collapsed: false 218 | Height: 1031 219 | Hide Left Dock: false 220 | Hide Right Dock: false 221 | QMainWindow State: 000000ff00000000fd000000040000000000000156000003adfc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d000003ad000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f000003adfc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073010000003d000003ad000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004420000003efc0100000002fb0000000800540069006d00650100000000000004420000000000000000fb0000000800540069006d006501000000000000045000000000000000000000050f000003ad00000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 222 | Selection: 223 | collapsed: false 224 | Tool Properties: 225 | collapsed: false 226 | Views: 227 | collapsed: false 228 | Width: 1920 229 | X: 0 230 | Y: 25 231 | -------------------------------------------------------------------------------- /launch/display.launch.py: -------------------------------------------------------------------------------- 1 | # Copyright 2020 RT Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | 16 | from ament_index_python.packages import get_package_share_directory 17 | from launch import LaunchDescription 18 | from launch.actions import DeclareLaunchArgument 19 | from launch.conditions import IfCondition 20 | from launch.substitutions import LaunchConfiguration 21 | from launch_ros.actions import Node, PushRosNamespace 22 | from raspimouse_description.robot_description_loader import RobotDescriptionLoader 23 | 24 | 25 | def generate_launch_description(): 26 | declare_arg_lidar = DeclareLaunchArgument( 27 | 'lidar', 28 | default_value='none', 29 | description='Set "none", "urg", "lds", or "rplidar".') 30 | declare_arg_lidar_frame = DeclareLaunchArgument( 31 | 'lidar_frame', 32 | default_value='laser', 33 | description='Set lidar link name.') 34 | declare_arg_namespace = DeclareLaunchArgument( 35 | 'namespace', 36 | default_value='', 37 | description='Set namespace for tf tree.') 38 | declare_arg_use_rviz = DeclareLaunchArgument( 39 | 'use_rviz', 40 | default_value='true', 41 | description='Set "true" to launch rviz.') 42 | declare_arg_use_rgb_camera = DeclareLaunchArgument( 43 | 'use_rgb_camera', 44 | default_value='false', 45 | description='Set "true" to mount rgb camera.') 46 | declare_arg_camera_downward = DeclareLaunchArgument( 47 | 'camera_downward', 48 | default_value='false', 49 | description='Set "true" to point the camera downwards.') 50 | 51 | description_loader = RobotDescriptionLoader() 52 | description_loader.lidar = LaunchConfiguration('lidar') 53 | description_loader.lidar_frame = LaunchConfiguration('lidar_frame') 54 | description_loader.use_rgb_camera = LaunchConfiguration('use_rgb_camera') 55 | description_loader.camera_downward = LaunchConfiguration('camera_downward') 56 | 57 | push_ns = PushRosNamespace([LaunchConfiguration('namespace')]) 58 | 59 | rsp = Node(package='robot_state_publisher', 60 | executable='robot_state_publisher', 61 | output='both', 62 | parameters=[{'robot_description': description_loader.load()}]) 63 | 64 | jsp = Node( 65 | package='joint_state_publisher_gui', 66 | executable='joint_state_publisher_gui', 67 | output='screen', 68 | condition=IfCondition(LaunchConfiguration('use_rviz'))) 69 | 70 | rviz_config_file = get_package_share_directory( 71 | 'raspimouse_description') + '/launch/config/urdf.rviz' 72 | rviz_node = Node(package='rviz2', 73 | executable='rviz2', 74 | name='rviz2', 75 | output='log', 76 | arguments=['-d', rviz_config_file], 77 | condition=IfCondition(LaunchConfiguration('use_rviz'))) 78 | 79 | return LaunchDescription([ 80 | declare_arg_lidar, 81 | declare_arg_lidar_frame, 82 | declare_arg_namespace, 83 | declare_arg_use_rviz, 84 | declare_arg_use_rgb_camera, 85 | declare_arg_camera_downward, 86 | push_ns, 87 | rsp, 88 | jsp, 89 | rviz_node, 90 | ]) 91 | -------------------------------------------------------------------------------- /meshes/dae/body/rt-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/raspimouse_description/a4cb46f2e29c92f09d69e5256acba77c4eebfde8/meshes/dae/body/rt-logo.png -------------------------------------------------------------------------------- /meshes/dae/sensor/urg_bottom_origin.dae: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Daisuke 6 | Blender 2.71.0 commit date:2014-06-12, commit time:18:39, hash:169c95b 7 | 8 | 2016-10-28T19:25:19 9 | 2016-10-28T19:25:19 10 | 11 | Z_UP 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 0 0 0 1 25 | 26 | 27 | 0 0 0 1 28 | 29 | 30 | 0.01576805 0.01576805 0.01576805 1 31 | 32 | 33 | 0.03125 0.03125 0.03125 1 34 | 35 | 36 | 250 37 | 38 | 39 | 1 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | -0.01978629 -0.01878917 0.007999956 -0.01999998 -0.01999998 0.008738756 -0.01999998 -0.01877045 0.007999956 -0.01957947 -0.0188446 0.007999956 -0.01938503 -0.0189352 0.007999956 -0.01920968 -0.01905792 0.007999956 -0.01905792 -0.01920968 0.007999956 -0.0189352 -0.01938503 0.007999956 -0.0188446 -0.01957947 0.007999956 -0.01878917 -0.01978629 0.007999956 -0.01877045 -0.01999998 0.007999956 -0.01878917 -0.02021348 0.007999956 -0.0188446 -0.02042049 0.007999956 -0.0189352 -0.02061474 0.007999956 -0.01905792 -0.0207901 0.007999956 -0.01920968 -0.02094185 0.007999956 -0.01938503 -0.02106457 0.007999956 -0.01957947 -0.02115517 0.007999956 -0.01978629 -0.02121073 0.007999956 -0.01999998 -0.0212295 0.007999956 -0.02021348 -0.02121073 0.007999956 -0.02042049 -0.02115517 0.007999956 -0.02061474 -0.02106457 0.007999956 -0.0207901 -0.02094185 0.007999956 -0.02094185 -0.0207901 0.007999956 -0.02106457 -0.02061474 0.007999956 -0.02115517 -0.02042049 0.007999956 -0.02121073 -0.02021348 0.007999956 -0.0212295 -0.01999998 0.007999956 -0.02121073 -0.01978629 0.007999956 -0.02115517 -0.01957947 0.007999956 -0.02106457 -0.01938503 0.007999956 -0.02094185 -0.01920968 0.007999956 -0.0207901 -0.01905792 0.007999956 -0.02061474 -0.0189352 0.007999956 -0.02042049 -0.0188446 0.007999956 -0.02021348 -0.01878917 0.007999956 -0.01978629 -0.01878917 0 -0.01978629 -0.01878917 0.003999948 -0.01999998 -0.01877045 0 -0.01957947 -0.0188446 0.003999948 -0.01957947 -0.0188446 0 -0.01938503 -0.0189352 0.003999948 -0.01999998 -0.01877045 0.003999948 -0.02021348 -0.01878917 0.003999948 -0.02042049 -0.0188446 0.003999948 -0.02061474 -0.0189352 0.003999948 -0.0207901 -0.01905792 0.003999948 -0.02094185 -0.01920968 0.003999948 -0.02106457 -0.01938503 0.003999948 -0.02115517 -0.01957947 0.003999948 -0.02121073 -0.01978629 0.003999948 -0.0212295 -0.01999998 0.003999948 -0.02121073 -0.02021348 0.003999948 -0.02115517 -0.02042049 0.003999948 -0.02106457 -0.02061474 0.003999948 -0.02094185 -0.0207901 0.003999948 -0.0207901 -0.02094185 0.003999948 -0.02061474 -0.02106457 0.003999948 -0.02042049 -0.02115517 0.003999948 -0.02021348 -0.02121073 0.003999948 -0.01999998 -0.0212295 0.003999948 -0.01978629 -0.02121073 0.003999948 -0.01957947 -0.02115517 0.003999948 -0.01938503 -0.02106457 0.003999948 -0.01920968 -0.02094185 0.003999948 -0.01905792 -0.0207901 0.003999948 -0.0189352 -0.02061474 0.003999948 -0.0188446 -0.02042049 0.003999948 -0.01878917 -0.02021348 0.003999948 -0.01877045 -0.01999998 0.003999948 -0.01878917 -0.01978629 0.003999948 -0.0188446 -0.01957947 0.003999948 -0.0189352 -0.01938503 0.003999948 -0.01905792 -0.01920968 0.003999948 -0.01920968 -0.01905792 0.003999948 -0.01938503 -0.0189352 0 -0.01920968 -0.01905792 0 -0.01905792 -0.01920968 0 -0.0189352 -0.01938503 0 -0.0188446 -0.01957947 0 -0.01878917 -0.01978629 0 -0.01877045 -0.01999998 0 -0.01878917 -0.02021348 0 -0.0188446 -0.02042049 0 -0.0189352 -0.02061474 0 -0.01905792 -0.0207901 0 -0.01920968 -0.02094185 0 -0.01938503 -0.02106457 0 -0.01957947 -0.02115517 0 -0.01978629 -0.02121073 0 -0.01999998 -0.0212295 0 -0.02021348 -0.02121073 0 -0.02042049 -0.02115517 0 -0.02061474 -0.02106457 0 -0.0207901 -0.02094185 0 -0.02094185 -0.0207901 0 -0.02106457 -0.02061474 0 -0.02115517 -0.02042049 0 -0.02121073 -0.02021348 0 -0.0212295 -0.01999998 0 -0.02121073 -0.01978629 0 -0.02115517 -0.01957947 0 -0.02106457 -0.01938503 0 -0.02094185 -0.01920968 0 -0.0207901 -0.01905792 0 -0.02061474 -0.0189352 0 -0.02042049 -0.0188446 0 -0.02021348 -0.01878917 0 0.02021348 0.02121073 0.007999956 0.01999998 0.01999998 0.008738756 0.01999998 0.0212295 0.007999956 0.02042049 0.02115517 0.007999956 0.02061474 0.02106457 0.007999956 0.0207901 0.02094185 0.007999956 0.02094185 0.0207901 0.007999956 0.02106457 0.02061474 0.007999956 0.02115517 0.02042049 0.007999956 0.02121073 0.02021348 0.007999956 0.0212295 0.01999998 0.007999956 0.02121073 0.01978629 0.007999956 0.02115517 0.01957947 0.007999956 0.02106457 0.01938503 0.007999956 0.02094185 0.01920968 0.007999956 0.0207901 0.01905792 0.007999956 0.02061474 0.0189352 0.007999956 0.02042049 0.0188446 0.007999956 0.02021348 0.01878917 0.007999956 0.01999998 0.01877045 0.007999956 0.01978629 0.01878917 0.007999956 0.01957947 0.0188446 0.007999956 0.01938503 0.0189352 0.007999956 0.01920968 0.01905792 0.007999956 0.01905792 0.01920968 0.007999956 0.0189352 0.01938503 0.007999956 0.0188446 0.01957947 0.007999956 0.01878917 0.01978629 0.007999956 0.01877045 0.01999998 0.007999956 0.01878917 0.02021348 0.007999956 0.0188446 0.02042049 0.007999956 0.0189352 0.02061474 0.007999956 0.01905792 0.0207901 0.007999956 0.01920968 0.02094185 0.007999956 0.01938503 0.02106457 0.007999956 0.01957947 0.02115517 0.007999956 0.01978629 0.02121073 0.007999956 0.02021348 0.02121073 0 0.02021348 0.02121073 0.003999948 0.01999998 0.0212295 0 0.02042049 0.02115517 0.003999948 0.02042049 0.02115517 0 0.02061474 0.02106457 0.003999948 0.01999998 0.0212295 0.003999948 0.01978629 0.02121073 0.003999948 0.01957947 0.02115517 0.003999948 0.01938503 0.02106457 0.003999948 0.01920968 0.02094185 0.003999948 0.01905792 0.0207901 0.003999948 0.0189352 0.02061474 0.003999948 0.0188446 0.02042049 0.003999948 0.01878917 0.02021348 0.003999948 0.01877045 0.01999998 0.003999948 0.01878917 0.01978629 0.003999948 0.0188446 0.01957947 0.003999948 0.0189352 0.01938503 0.003999948 0.01905792 0.01920968 0.003999948 0.01920968 0.01905792 0.003999948 0.01938503 0.0189352 0.003999948 0.01957947 0.0188446 0.003999948 0.01978629 0.01878917 0.003999948 0.01999998 0.01877045 0.003999948 0.02021348 0.01878917 0.003999948 0.02042049 0.0188446 0.003999948 0.02061474 0.0189352 0.003999948 0.0207901 0.01905792 0.003999948 0.02094185 0.01920968 0.003999948 0.02106457 0.01938503 0.003999948 0.02115517 0.01957947 0.003999948 0.02121073 0.01978629 0.003999948 0.0212295 0.01999998 0.003999948 0.02121073 0.02021348 0.003999948 0.02115517 0.02042049 0.003999948 0.02106457 0.02061474 0.003999948 0.02094185 0.0207901 0.003999948 0.0207901 0.02094185 0.003999948 0.02061474 0.02106457 0 0.0207901 0.02094185 0 0.02094185 0.0207901 0 0.02106457 0.02061474 0 0.02115517 0.02042049 0 0.02121073 0.02021348 0 0.0212295 0.01999998 0 0.02121073 0.01978629 0 0.02115517 0.01957947 0 0.02106457 0.01938503 0 0.02094185 0.01920968 0 0.0207901 0.01905792 0 0.02061474 0.0189352 0 0.02042049 0.0188446 0 0.02021348 0.01878917 0 0.01999998 0.01877045 0 0.01978629 0.01878917 0 0.01957947 0.0188446 0 0.01938503 0.0189352 0 0.01920968 0.01905792 0 0.01905792 0.01920968 0 0.0189352 0.01938503 0 0.0188446 0.01957947 0 0.01878917 0.01978629 0 0.01877045 0.01999998 0 0.01878917 0.02021348 0 0.0188446 0.02042049 0 0.0189352 0.02061474 0 0.01905792 0.0207901 0 0.01920968 0.02094185 0 0.01938503 0.02106457 0 0.01957947 0.02115517 0 0.01978629 0.02121073 0 0.008499979 -0.02399981 0.003999948 0.008499979 -0.02499997 0.003999948 0.01799976 -0.02399981 0.003999948 0.01799976 -0.02499997 0.003999948 0.01799976 -0.02399981 0.01049995 0.01799976 -0.02499997 0.01049995 0.008499979 -0.02399981 0.01049995 0.008499979 -0.02499997 0.01049995 -0.02039605 -0.004999995 0.04129981 -0.02039605 -0.004999995 0.06129992 -0.02499997 -0.004999995 0.04129981 -0.02499997 -0.004999995 0.06129992 -0.02057999 -0.004178941 0.06129992 -0.02073085 -0.003351211 0.06129992 -0.02084845 -0.002518117 0.06129992 -0.02093261 -0.00168097 0.06129992 -0.02098304 -8.4119e-4 0.06129992 -0.02099978 0 0.06129992 -0.02499997 0.004999995 0.06129992 -0.02098304 8.4119e-4 0.06129992 -0.02093261 0.00168097 0.06129992 -0.02084845 0.002518117 0.06129992 -0.02073085 0.003351211 0.06129992 -0.02057999 0.004178941 0.06129992 -0.02039605 0.004999995 0.06129992 -0.02039605 0.004999995 0.04129981 -0.02499997 0.004999995 0.04129981 -0.02028441 -0.005435109 0.05579996 -0.02015841 -0.005884766 0.04129981 -0.02002805 -0.006314814 0.05579996 -0.02023452 -0.005618095 0.07029998 -0.01997214 -0.006489336 0.07029998 -0.02045869 -0.004736244 0.07029998 -0.02064484 -0.003845572 0.07029998 -0.02079188 -0.002947628 0.07029998 -0.02090013 -0.002044141 0.07029998 -0.02096915 -0.001136839 0.07029998 -0.02099871 -2.2749e-4 0.07029998 -0.02098888 6.82364e-4 0.07029998 -0.02093946 0.001590788 0.07029998 -0.02085107 0.002496421 0.07029998 -0.01988255 -0.006758332 0.04129981 -0.01973336 -0.007182419 0.05579996 -0.01967233 -0.007348418 0.07029998 -0.01956892 -0.007619023 0.04129981 -0.01940143 -0.008036315 0.05579996 -0.01933532 -0.008193671 0.07029998 -0.01921796 -0.00846529 0.04129981 -0.01903223 -0.008874952 0.05579996 -0.01896244 -0.009023606 0.07029998 -0.01883047 -0.009295403 0.04129981 -0.01862722 -0.009696722 0.05579996 -0.01855373 -0.009836554 0.07029998 -0.01840734 -0.01010763 0.04129981 -0.01818645 -0.01049995 0.05579996 -0.01811021 -0.01063102 0.07029998 -0.01794904 -0.01090097 0.04129981 -0.01771122 -0.01128309 0.05579996 -0.01763266 -0.0114054 0.07029998 -0.01745653 -0.01167345 0.04129981 -0.01720201 -0.0120449 0.05579996 -0.01712203 -0.01215869 0.07029998 -0.01693058 -0.01242363 0.04129981 -0.01666039 -0.01278394 0.05579996 -0.01657927 -0.01288878 0.07029998 -0.01637274 -0.01315003 0.04129981 -0.01608693 -0.01349854 0.05579996 -0.01600521 -0.0135951 0.07029998 -0.01578354 -0.01385176 0.04129981 -0.01548278 -0.01418721 0.05579996 -0.01540142 -0.01427567 0.07029998 -0.01516461 -0.01452696 0.04129981 -0.01484906 -0.01484906 0.05579996 -0.01476854 -0.01492941 0.07029998 -0.01451659 -0.01517438 0.04129981 -0.01418721 -0.01548278 0.05579996 -0.014108 -0.0155552 0.07029998 -0.01384097 -0.0157932 0.04129981 -0.01349854 -0.01608693 0.05579996 -0.01342082 -0.01615172 0.07029998 -0.01313889 -0.0163818 0.04129981 -0.01278394 -0.01666039 0.05579996 -0.0127086 -0.01671791 0.07029998 -0.01241207 -0.01693928 0.04129981 -0.0120449 -0.01720201 0.05579996 -0.0119723 -0.01725274 0.07029998 -0.01166141 -0.01746433 0.04129981 -0.01128309 -0.01771122 0.05579996 -0.01121371 -0.01775521 0.07029998 -0.01088851 -0.01795649 0.04129981 -0.01049995 -0.01818645 0.05579996 -0.01043421 -0.01822412 0.07029998 -0.010095 -0.01841408 0.04129981 -0.009696722 -0.01862722 0.05579996 -0.009634971 -0.01865917 0.07029998 -0.009282469 -0.01883703 0.04129981 -0.008874952 -0.01903223 0.05579996 -0.008817613 -0.01905906 0.07029998 -0.008452117 -0.01922374 0.04129981 -0.008036315 -0.01940143 0.05579996 -0.007983744 -0.01942294 0.07029998 -0.007605612 -0.01957428 0.04129981 -0.007182419 -0.01973336 0.05579996 -0.007134795 -0.01975077 0.07029998 -0.006744742 -0.0198872 0.04129981 -0.006314814 -0.02002805 0.05579996 -0.006272614 -0.0200411 0.07029998 -0.005870938 -0.02016258 0.04129981 -0.005435109 -0.02028441 0.05579996 -0.005398452 -0.02029407 0.07029998 -0.004985988 -0.02039945 0.04129981 -0.004545152 -0.02050215 0.05579996 -0.004514336 -0.020509 0.07029998 -0.004091501 -0.02059733 0.04129981 -0.003646612 -0.02068096 0.05579996 -0.003621697 -0.02068531 0.07029998 -0.003189325 -0.02075636 0.04129981 -0.002740979 -0.02082026 0.05579996 -0.002722144 -0.02082276 0.07029998 -0.00228101 -0.02087569 0.04129981 -0.00183022 -0.02091985 0.05579996 -0.001817584 -0.02092117 0.07029998 -0.001368463 -0.02095532 0.04129981 -9.1285e-4 -0.02098006 0.05579996 -9.09694e-4 -0.02098006 0.07029998 -4.53256e-4 -0.02099508 0.04129981 0 -0.02099978 0.05579996 0 -0.02099978 0.07029998 4.62836e-4 -0.0209949 0.04129981 9.1285e-4 -0.02098006 0.05579996 9.09694e-4 -0.02098006 0.07029998 0.001817584 -0.02092117 0.07029998 0.00137794 -0.02095454 0.04129981 0.00183022 -0.02091985 0.05579996 0.002722144 -0.02082276 0.07029998 0.002290606 -0.0208745 0.04129981 0.002740979 -0.02082026 0.05579996 0.003621697 -0.02068531 0.07029998 0.003198862 -0.02075493 0.04129981 0.003646612 -0.02068096 0.05579996 0.004514336 -0.020509 0.07029998 0.004100978 -0.02059561 0.04129981 0.004545152 -0.02050215 0.05579996 0.005398452 -0.02029407 0.07029998 0.004995346 -0.02039718 0.04129981 0.005435109 -0.02028441 0.05579996 0.006272614 -0.0200411 0.07029998 0.005880177 -0.0201599 0.04129981 0.006314814 -0.02002805 0.05579996 0.007134795 -0.01975077 0.07029998 0.006753802 -0.0198841 0.04129981 0.007182419 -0.01973336 0.05579996 0.007983744 -0.01942294 0.07029998 0.007614493 -0.01957064 0.04129981 0.008036315 -0.01940143 0.05579996 0.008817613 -0.01905906 0.07029998 0.008460879 -0.01922011 0.04129981 0.008874952 -0.01903223 0.05579996 0.009634971 -0.01865917 0.07029998 0.009291052 -0.0188328 0.04129981 0.009696722 -0.01862722 0.05579996 0.01043421 -0.01822412 0.07029998 0.01010358 -0.01840955 0.04129981 0.01049995 -0.01818645 0.05579996 0.01121371 -0.01775521 0.07029998 0.01089686 -0.0179513 0.04129981 0.01128309 -0.01771122 0.05579996 0.0119723 -0.01725274 0.07029998 0.01166927 -0.01745915 0.04129981 0.0120449 -0.01720201 0.05579996 0.0127086 -0.01671791 0.07029998 0.01241976 -0.01693356 0.04129981 0.01278394 -0.01666039 0.05579996 0.01342082 -0.01615172 0.07029998 0.01314646 -0.01637578 0.04129981 0.01349854 -0.01608693 0.05579996 0.014108 -0.0155552 0.07029998 0.013848 -0.01578688 0.04129981 0.01418721 -0.01548278 0.05579996 0.01476854 -0.01492941 0.07029998 0.01452332 -0.01516789 0.04129981 0.01484906 -0.01484906 0.05579996 0.01540142 -0.01427567 0.07029998 0.01517117 -0.01451987 0.04129981 0.01548278 -0.01418721 0.05579996 0.01600521 -0.0135951 0.07029998 0.01579004 -0.01384449 0.04129981 0.01608693 -0.01349854 0.05579996 0.01657927 -0.01288878 0.07029998 0.01637876 -0.01314276 0.04129981 0.01666039 -0.01278394 0.05579996 0.01712203 -0.01215869 0.07029998 0.01693648 -0.01241576 0.04129981 0.01720201 -0.0120449 0.05579996 0.01763266 -0.0114054 0.07029998 0.01746183 -0.01166546 0.04129981 0.01771122 -0.01128309 0.05579996 0.01811021 -0.01063102 0.07029998 0.01795399 -0.01089262 0.04129981 0.01818645 -0.01049995 0.05579996 0.01855373 -0.009836554 0.07029998 0.01841199 -0.01009941 0.04129981 0.01862722 -0.009696722 0.05579996 0.01896244 -0.009023606 0.07029998 0.01883476 -0.009286761 0.04129981 0.01903223 -0.008874952 0.05579996 0.01933532 -0.008193671 0.07029998 0.01922202 -0.008456468 0.04129981 0.01940143 -0.008036315 0.05579996 0.01967233 -0.007348418 0.07029998 0.01957255 -0.007610142 0.04129981 0.01973336 -0.007182419 0.05579996 0.01997214 -0.006489336 0.07029998 0.01988565 -0.006749272 0.04129981 0.02002805 -0.006314814 0.05579996 0.02023452 -0.005618095 0.07029998 0.02016127 -0.005875468 0.04129981 0.02028441 -0.005435109 0.05579996 0.02045869 -0.004736244 0.07029998 0.02039813 -0.004990637 0.04129981 0.02050215 -0.004545152 0.05579996 0.02064484 -0.003845572 0.07029998 0.02059656 -0.004096269 0.04129981 0.02068096 -0.003646612 0.05579996 0.02079188 -0.002947628 0.07029998 0.02075546 -0.003194034 0.04129981 0.02082026 -0.002740979 0.05579996 0.02090013 -0.002044141 0.07029998 0.02087521 -0.002285838 0.04129981 0.02091985 -0.00183022 0.05579996 0.02096915 -0.001136839 0.07029998 0.02095502 -0.001373231 0.04129981 0.02098 -9.16007e-4 0.05579996 0.02099871 -2.2749e-4 0.07029998 0.02099496 -4.58046e-4 0.04129981 0.02099978 0 0.05579996 0.02098888 6.82364e-4 0.07029998 0.02099496 4.58046e-4 0.04129981 0.02098 9.16007e-4 0.05579996 0.02093946 0.001590788 0.07029998 0.02095502 0.001373231 0.04129981 0.02091985 0.00183022 0.05579996 0.02085107 0.002496421 0.07029998 0.02087521 0.002285838 0.04129981 0.02082026 0.002740979 0.05579996 0.02072334 0.003397405 0.07029998 0.02075546 0.003194034 0.04129981 0.02068096 0.003646612 0.05579996 0.0205565 0.004291892 0.07029998 0.02059656 0.004096269 0.04129981 0.02050215 0.004545152 0.05579996 0.02035135 0.005178332 0.07029998 0.02039813 0.004990637 0.04129981 0.02028441 0.005435109 0.05579996 0.02010804 0.006055116 0.07029998 0.02016127 0.005875468 0.04129981 0.02002805 0.006314814 0.05579996 0.01982671 0.006920516 0.07029998 0.01988565 0.006749272 0.04129981 0.01973336 0.007182419 0.05579996 0.01950848 0.007772803 0.07029998 0.01957255 0.007610142 0.04129981 0.01940143 0.008036315 0.05579996 0.01915347 0.008610665 0.07029998 0.01922202 0.008456468 0.04129981 0.01903223 0.008874952 0.05579996 0.01876235 0.009432256 0.07029998 0.01883476 0.009286761 0.04129981 0.01862722 0.009696722 0.05579996 0.01833629 0.0102362 0.07029998 0.01841199 0.01009941 0.04129981 0.01818645 0.01049995 0.05579996 0.01787561 0.01102072 0.07029998 0.01795399 0.01089262 0.04129981 0.01771122 0.01128309 0.05579996 0.01738137 0.01178491 0.07029998 0.01746183 0.01166546 0.04129981 0.01720201 0.0120449 0.05579996 0.01685464 0.01252681 0.07029998 0.01693648 0.01241576 0.04129981 0.01666039 0.01278394 0.05579996 0.01629596 0.01324498 0.07029998 0.01637876 0.01314276 0.04129981 0.01608693 0.01349854 0.05579996 0.01570707 0.01393848 0.07029998 0.01579004 0.01384449 0.04129981 0.01548278 0.01418721 0.05579996 0.01508837 0.01460582 0.07029998 0.01517117 0.01451987 0.04129981 0.01484906 0.01484906 0.05579996 0.01444149 0.01524585 0.07029998 0.01452332 0.01516789 0.04129981 0.01418721 0.01548278 0.05579996 0.0137676 0.01585716 0.07029998 0.013848 0.01578688 0.04129981 0.01349854 0.01608693 0.05579996 0.01306784 0.01643866 0.07029998 0.01314646 0.01637578 0.04129981 0.01278394 0.01666039 0.05579996 0.01234328 0.01698935 0.07029998 0.01241976 0.01693356 0.04129981 0.0120449 0.01720201 0.05579996 0.0115959 0.01750797 0.07029998 0.01166927 0.01745915 0.04129981 0.01128309 0.01771122 0.05579996 0.0108264 0.0179938 0.07029998 0.01089686 0.0179513 0.04129981 0.01049995 0.01818645 0.05579996 0.01003676 0.0184459 0.07029998 0.01010358 0.01840955 0.04129981 0.009696722 0.01862722 0.05579996 0.009228467 0.01886337 0.07029998 0.009291052 0.0188328 0.04129981 0.008874952 0.01903223 0.05579996 0.008402645 0.01924562 0.07029998 0.008460879 0.01922011 0.04129981 0.008036315 0.01940143 0.05579996 0.007561087 0.01959151 0.07029998 0.007614493 0.01957064 0.04129981 0.007182419 0.01973336 0.05579996 0.006705284 0.01990056 0.07029998 0.006753802 0.0198841 0.04129981 0.006314814 0.02002805 0.05579996 0.005836963 0.02017229 0.07029998 0.005880177 0.0201599 0.04129981 0.005435109 0.02028441 0.05579996 0.004957616 0.02040636 0.07029998 0.004995346 0.02039718 0.04129981 0.004545152 0.02050215 0.05579996 0.00406897 0.0206018 0.07029998 0.004100978 0.02059561 0.04129981 0.003646612 0.02068096 0.05579996 0.003172636 0.02075874 0.07029998 0.003198862 0.02075493 0.04129981 0.002740979 0.02082026 0.05579996 0.00227046 0.02087688 0.07029998 0.002290606 0.0208745 0.04129981 0.00183022 0.02091985 0.05579996 0.001363933 0.02095562 0.07029998 0.00137794 0.02095454 0.04129981 9.16007e-4 0.02098 0.05579996 4.54954e-4 0.02099502 0.07029998 4.62836e-4 0.0209949 0.04129981 0 0.02099978 0.05579996 -4.54954e-4 0.02099502 0.07029998 -4.53256e-4 0.02099508 0.04129981 -9.16007e-4 0.02098 0.05579996 -0.001363933 0.02095562 0.07029998 -0.001368463 0.02095532 0.04129981 -0.00183022 0.02091985 0.05579996 -0.00227046 0.02087688 0.07029998 -0.00228101 0.02087569 0.04129981 -0.002740979 0.02082026 0.05579996 -0.003172636 0.02075874 0.07029998 -0.003189325 0.02075636 0.04129981 -0.003646612 0.02068096 0.05579996 -0.00406897 0.0206018 0.07029998 -0.004091501 0.02059733 0.04129981 -0.004545152 0.02050215 0.05579996 -0.004957616 0.02040636 0.07029998 -0.004985988 0.02039945 0.04129981 -0.005435109 0.02028441 0.05579996 -0.005836963 0.02017229 0.07029998 -0.005870938 0.02016258 0.04129981 -0.006314814 0.02002805 0.05579996 -0.006705284 0.01990056 0.07029998 -0.006744742 0.0198872 0.04129981 -0.007182419 0.01973336 0.05579996 -0.007561087 0.01959151 0.07029998 -0.007605612 0.01957428 0.04129981 -0.008036315 0.01940143 0.05579996 -0.008402645 0.01924562 0.07029998 -0.008452117 0.01922374 0.04129981 -0.008874952 0.01903223 0.05579996 -0.009228467 0.01886337 0.07029998 -0.009282469 0.01883703 0.04129981 -0.009696722 0.01862722 0.05579996 -0.01003676 0.0184459 0.07029998 -0.010095 0.01841408 0.04129981 -0.01049995 0.01818645 0.05579996 -0.0108264 0.0179938 0.07029998 -0.01088851 0.01795649 0.04129981 -0.01128309 0.01771122 0.05579996 -0.0115959 0.01750797 0.07029998 -0.01166141 0.01746433 0.04129981 -0.0120449 0.01720201 0.05579996 -0.01234328 0.01698935 0.07029998 -0.01241207 0.01693928 0.04129981 -0.01278394 0.01666039 0.05579996 -0.01306784 0.01643866 0.07029998 -0.01313889 0.0163818 0.04129981 -0.01349854 0.01608693 0.05579996 -0.0137676 0.01585716 0.07029998 -0.01384097 0.0157932 0.04129981 -0.01418721 0.01548278 0.05579996 -0.01444149 0.01524585 0.07029998 -0.01451659 0.01517438 0.04129981 -0.01484906 0.01484906 0.05579996 -0.01508837 0.01460582 0.07029998 -0.01516461 0.01452696 0.04129981 -0.01548278 0.01418721 0.05579996 -0.01570707 0.01393848 0.07029998 -0.01578354 0.01385176 0.04129981 -0.01608693 0.01349854 0.05579996 -0.01629596 0.01324498 0.07029998 -0.01637274 0.01315003 0.04129981 -0.01666039 0.01278394 0.05579996 -0.01685464 0.01252681 0.07029998 -0.01693058 0.01242363 0.04129981 -0.01720201 0.0120449 0.05579996 -0.01738137 0.01178491 0.07029998 -0.01745653 0.01167345 0.04129981 -0.01771122 0.01128309 0.05579996 -0.01787561 0.01102072 0.07029998 -0.01794904 0.01090097 0.04129981 -0.01818645 0.01049995 0.05579996 -0.01833629 0.0102362 0.07029998 -0.01840734 0.01010763 0.04129981 -0.01862722 0.009696722 0.05579996 -0.01876235 0.009432256 0.07029998 -0.01883047 0.009295403 0.04129981 -0.01903223 0.008874952 0.05579996 -0.01915347 0.008610665 0.07029998 -0.01921796 0.00846529 0.04129981 -0.01940143 0.008036315 0.05579996 -0.01950848 0.007772803 0.07029998 -0.01956892 0.007619023 0.04129981 -0.01973336 0.007182419 0.05579996 -0.01982671 0.006920516 0.07029998 -0.01988255 0.006758332 0.04129981 -0.02002805 0.006314814 0.05579996 -0.02010804 0.006055116 0.07029998 -0.02015841 0.005884766 0.04129981 -0.02028441 0.005435109 0.05579996 -0.02035135 0.005178332 0.07029998 -0.0205565 0.004291892 0.07029998 -0.02072334 0.003397405 0.07029998 0.02499997 -0.02499997 0 0.02499997 -0.02499997 0.04129981 -0.02499997 -0.02499997 0.04129981 -0.02499997 -0.02499997 0 -0.02499997 0.02499997 0 -0.02499997 0.02499997 0.04129981 0.02499997 0.02499997 0.04129981 0.02499997 0.02499997 0 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | -0.04508596 -0.5145267 -0.8562882 -0.1336722 -0.498898 -0.85629 -0.2181952 -0.4681373 -0.8562934 -0.2961648 -0.4231189 -0.8563042 -0.3652006 -0.3652006 -0.8563043 -0.4231189 -0.2961648 -0.8563042 -0.4681373 -0.2181952 -0.8562934 -0.498898 -0.1336722 -0.85629 -0.5145267 -0.0450859 -0.8562882 -0.5145261 0.04511374 -0.8562872 -0.4989242 0.133595 -0.8562868 -0.4680891 0.2183192 -0.8562881 -0.423138 0.2961782 -0.8562901 -0.365221 0.365221 -0.8562869 -0.296184 0.4231463 -0.8562839 -0.2182144 0.4681689 -0.8562712 -0.1338347 0.4988841 -0.8562728 -0.04520708 0.5145274 -0.8562815 0.04523503 0.5145266 -0.8562803 0.1337574 0.4989104 -0.8562694 0.2183384 0.4681208 -0.8562659 0.2961974 0.4231655 -0.8562698 0.3652415 0.3652415 -0.8562695 0.4231655 0.2961974 -0.8562698 0.4681208 0.2183384 -0.8562659 0.4989104 0.1337574 -0.8562694 0.5145267 0.04523503 -0.8562804 0.5145274 -0.04520708 -0.8562815 0.4988841 -0.1338347 -0.8562728 0.4681689 -0.2182144 -0.8562712 0.4231463 -0.296184 -0.8562839 0.365221 -0.365221 -0.8562868 0.2961782 -0.423138 -0.85629 0.2183192 -0.4680892 -0.8562881 0.133595 -0.4989242 -0.8562868 0.04511374 -0.5145261 -0.8562872 -0.08729147 -0.9961827 0 -0.2588062 -0.9659293 0 -0.2588062 -0.9659293 0 -0.4224579 -0.9063825 0 -0.5734384 -0.8192486 0 -0.4224579 -0.9063825 0 -0.4224579 -0.9063825 0 -0.2588062 -0.9659293 0 -0.2588062 -0.9659293 0 -0.08729147 -0.9961829 0 0.08734512 -0.9961781 0 0.2586541 -0.96597 0 0.4226909 -0.9062739 0 0.5734384 -0.8192486 0 0.7071068 -0.7071068 0 0.8192486 -0.5734384 0 0.9063792 -0.4224651 0 0.9658488 -0.2591064 0 0.9961624 -0.08752423 0 0.9961577 0.08757799 0 0.9658897 0.2589542 0 0.9062706 0.422698 0 0.8192486 0.5734384 0 0.7071068 0.7071068 0 0.5734384 0.8192486 0 0.422698 0.9062706 0 0.2589542 0.9658897 0 0.08757799 0.9961577 0 -0.08752423 0.9961624 0 -0.2591064 0.9658488 0 -0.4224651 0.9063792 0 -0.5734384 0.8192486 0 -0.7071068 0.7071068 0 -0.8192486 0.5734384 0 -0.9062739 0.4226909 0 -0.96597 0.2586541 0 -0.9961781 0.08734512 0 -0.9961829 -0.08729147 0 -0.9659293 -0.2588062 0 -0.9063825 -0.4224579 0 -0.8192486 -0.5734384 0 -0.7071068 -0.7071068 0 -0.5734384 -0.8192486 0 -0.5734384 -0.8192487 0 -0.4224579 -0.9063825 0 -0.5734384 -0.8192487 0 -0.7071068 -0.7071068 0 -0.7071068 -0.7071068 0 -0.7071068 -0.7071068 0 -0.8192487 -0.5734384 0 -0.8192486 -0.5734384 0 -0.8192487 -0.5734384 0 -0.9063825 -0.4224579 0 -0.9063825 -0.4224579 0 -0.9063825 -0.4224579 0 -0.9659293 -0.2588062 0 -0.9659293 -0.2588062 0 -0.9659293 -0.2588062 0 -0.9961827 -0.08729147 0 -0.9961829 -0.08729147 0 -0.9961827 -0.08729147 0 -0.9961782 0.08734512 0 -0.9961781 0.08734512 0 -0.9961782 0.08734512 0 -0.96597 0.2586541 0 -0.96597 0.2586541 0 -0.96597 0.2586541 0 -0.9062739 0.4226909 0 -0.9062739 0.4226909 0 -0.9062739 0.4226909 0 -0.8192487 0.5734384 0 -0.8192486 0.5734384 0 -0.8192487 0.5734384 0 -0.7071068 0.7071068 0 -0.7071068 0.7071068 0 -0.7071068 0.7071068 0 -0.5734384 0.8192487 0 -0.5734384 0.8192486 0 -0.5734384 0.8192487 0 -0.4224651 0.9063792 0 -0.4224651 0.9063792 0 -0.4224651 0.9063792 0 -0.2591064 0.9658488 0 -0.2591064 0.9658488 0 -0.2591064 0.9658488 0 -0.08752417 0.9961624 0 -0.08752423 0.9961624 0 -0.08752417 0.9961624 0 0.08757799 0.9961578 0 0.08757799 0.9961577 0 0.08757799 0.9961578 0 0.2589541 0.9658896 0 0.2589542 0.9658897 0 0.2589541 0.9658896 0 0.422698 0.9062706 0 0.422698 0.9062706 0 0.422698 0.9062706 0 0.5734384 0.8192487 0 0.5734384 0.8192486 0 0.5734384 0.8192487 0 0.7071068 0.7071068 0 0.7071068 0.7071068 0 0.7071068 0.7071068 0 0.8192487 0.5734384 0 0.8192486 0.5734384 0 0.8192487 0.5734384 0 0.9062706 0.422698 0 0.9062706 0.422698 0 0.9062706 0.422698 0 0.9658896 0.2589541 0 0.9658897 0.2589542 0 0.9658896 0.2589541 0 0.9961578 0.08757799 0 0.9961577 0.08757799 0 0.9961578 0.08757799 0 0.9961624 -0.08752417 0 0.9961624 -0.08752423 0 0.9961624 -0.08752417 0 0.9658488 -0.2591064 0 0.9658488 -0.2591064 0 0.9658488 -0.2591064 0 0.9063792 -0.4224651 0 0.9063792 -0.4224651 0 0.9063792 -0.4224651 0 0.8192487 -0.5734384 0 0.8192486 -0.5734384 0 0.8192487 -0.5734384 0 0.7071068 -0.7071068 0 0.7071068 -0.7071068 0 0.7071068 -0.7071068 0 0.5734384 -0.8192487 0 0.5734384 -0.8192486 0 0.5734384 -0.8192487 0 0.4226909 -0.9062739 0 0.4226909 -0.9062739 0 0.4226909 -0.9062739 0 0.2586541 -0.96597 0 0.2586541 -0.96597 0 0.2586541 -0.96597 0 0.08734512 -0.9961782 0 0.08734512 -0.9961781 0 0.08734512 -0.9961782 0 -0.08729147 -0.9961827 0 -0.08729147 -0.9961829 0 -0.04523497 -0.5145267 -0.8562804 -0.1337574 -0.4989104 -0.8562694 -0.2183384 -0.4681208 -0.8562659 -0.2961974 -0.4231655 -0.8562698 -0.3652415 -0.3652415 -0.8562695 -0.4231655 -0.2961974 -0.8562698 -0.4681208 -0.2183384 -0.8562659 -0.4989104 -0.1337574 -0.8562694 -0.5145267 -0.04523503 -0.8562804 -0.5145274 0.04520708 -0.8562815 -0.4988841 0.1338347 -0.8562728 -0.4681689 0.2182144 -0.8562712 -0.4231463 0.296184 -0.8562839 -0.365221 0.365221 -0.8562868 -0.2961782 0.423138 -0.85629 -0.2183192 0.4680892 -0.8562881 -0.133595 0.4989242 -0.8562868 -0.04511374 0.5145261 -0.8562872 0.0450859 0.5145267 -0.8562882 0.1336722 0.498898 -0.85629 0.2181952 0.4681373 -0.8562934 0.2961648 0.4231189 -0.8563042 0.3652006 0.3652006 -0.8563043 0.4231189 0.2961648 -0.8563042 0.4681373 0.2181952 -0.8562934 0.498898 0.1336722 -0.85629 0.5145267 0.0450859 -0.8562882 0.5145261 -0.04511374 -0.8562872 0.4989242 -0.133595 -0.8562868 0.4680891 -0.2183192 -0.8562881 0.423138 -0.2961782 -0.8562901 0.365221 -0.365221 -0.8562869 0.296184 -0.4231463 -0.8562839 0.2182144 -0.4681689 -0.8562712 0.1338347 -0.4988841 -0.8562728 0.04520708 -0.5145274 -0.8562815 -0.08757799 -0.9961578 0 -0.2589541 -0.9658896 0 -0.2589541 -0.9658896 0 -0.422698 -0.9062706 0 -0.5734384 -0.8192486 0 -0.422698 -0.9062706 0 -0.422698 -0.9062706 0 -0.2589542 -0.9658897 0 -0.2589542 -0.9658897 0 -0.08757799 -0.9961577 0 0.08752423 -0.9961624 0 0.2591064 -0.9658488 0 0.4224651 -0.9063792 0 0.5734384 -0.8192486 0 0.7071068 -0.7071068 0 0.8192486 -0.5734384 0 0.9062739 -0.4226909 0 0.96597 -0.2586541 0 0.9961781 -0.08734512 0 0.9961829 0.08729147 0 0.9659293 0.2588062 0 0.9063825 0.4224579 0 0.8192486 0.5734384 0 0.7071068 0.7071068 0 0.5734384 0.8192486 0 0.4224579 0.9063825 0 0.2588062 0.9659293 0 0.08729147 0.9961829 0 -0.08734512 0.9961781 0 -0.2586541 0.96597 0 -0.4226909 0.9062739 0 -0.5734384 0.8192486 0 -0.7071068 0.7071068 0 -0.8192486 0.5734384 0 -0.9063792 0.4224651 0 -0.9658488 0.2591064 0 -0.9961624 0.08752423 0 -0.9961577 -0.08757799 0 -0.9658897 -0.2589542 0 -0.9062706 -0.422698 0 -0.8192486 -0.5734384 0 -0.7071068 -0.7071068 0 -0.5734384 -0.8192486 0 -0.5734384 -0.8192487 0 -0.422698 -0.9062706 0 -0.5734384 -0.8192487 0 -0.7071068 -0.7071068 0 -0.7071068 -0.7071068 0 -0.7071068 -0.7071068 0 -0.8192487 -0.5734384 0 -0.8192486 -0.5734384 0 -0.8192487 -0.5734384 0 -0.9062706 -0.422698 0 -0.9062706 -0.422698 0 -0.9062706 -0.422698 0 -0.9658896 -0.2589541 0 -0.9658897 -0.2589542 0 -0.9658896 -0.2589541 0 -0.9961578 -0.08757799 0 -0.9961577 -0.08757799 0 -0.9961578 -0.08757799 0 -0.9961624 0.08752417 0 -0.9961624 0.08752423 0 -0.9961624 0.08752417 0 -0.9658488 0.2591064 0 -0.9658488 0.2591064 0 -0.9658488 0.2591064 0 -0.9063792 0.4224651 0 -0.9063792 0.4224651 0 -0.9063792 0.4224651 0 -0.8192487 0.5734384 0 -0.8192486 0.5734384 0 -0.8192487 0.5734384 0 -0.7071068 0.7071068 0 -0.7071068 0.7071068 0 -0.7071068 0.7071068 0 -0.5734384 0.8192487 0 -0.5734384 0.8192486 0 -0.5734384 0.8192487 0 -0.4226909 0.9062739 0 -0.4226909 0.9062739 0 -0.4226909 0.9062739 0 -0.2586541 0.96597 0 -0.2586541 0.96597 0 -0.2586541 0.96597 0 -0.08734512 0.9961782 0 -0.08734512 0.9961781 0 -0.08734512 0.9961782 0 0.08729147 0.9961827 0 0.08729147 0.9961829 0 0.08729147 0.9961827 0 0.2588062 0.9659293 0 0.2588062 0.9659293 0 0.2588062 0.9659293 0 0.4224579 0.9063825 0 0.4224579 0.9063825 0 0.4224579 0.9063825 0 0.5734384 0.8192487 0 0.5734384 0.8192486 0 0.5734384 0.8192487 0 0.7071068 0.7071068 0 0.7071068 0.7071068 0 0.7071068 0.7071068 0 0.8192487 0.5734384 0 0.8192486 0.5734384 0 0.8192487 0.5734384 0 0.9063825 0.4224579 0 0.9063825 0.4224579 0 0.9063825 0.4224579 0 0.9659293 0.2588062 0 0.9659293 0.2588062 0 0.9659293 0.2588062 0 0.9961827 0.08729147 0 0.9961829 0.08729147 0 0.9961827 0.08729147 0 0.9961782 -0.08734512 0 0.9961781 -0.08734512 0 0.9961782 -0.08734512 0 0.96597 -0.2586541 0 0.96597 -0.2586541 0 0.96597 -0.2586541 0 0.9062739 -0.4226909 0 0.9062739 -0.4226909 0 0.9062739 -0.4226909 0 0.8192487 -0.5734384 0 0.8192486 -0.5734384 0 0.8192487 -0.5734384 0 0.7071068 -0.7071068 0 0.7071068 -0.7071068 0 0.7071068 -0.7071068 0 0.5734384 -0.8192487 0 0.5734384 -0.8192486 0 0.5734384 -0.8192487 0 0.4224651 -0.9063792 0 0.4224651 -0.9063792 0 0.4224651 -0.9063792 0 0.2591064 -0.9658488 0 0.2591064 -0.9658488 0 0.2591064 -0.9658488 0 0.08752417 -0.9961624 0 0.08752423 -0.9961624 0 0.08752417 -0.9961624 0 -0.08757799 -0.9961578 0 -0.08757799 -0.9961577 0 0 0 1 0 0 1 -1 0 0 -1 0 0 0 0 -1 0 0 -1 1 0 0 1 0 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 1 0 0 1 0 -0.9686254 -0.2485254 0 -0.9657849 -0.2593446 -3.46529e-4 -0.9600642 -0.2797795 3.36862e-4 -0.957521 -0.2883633 2.21273e-4 -0.9600643 -0.2797796 -2.2739e-4 -0.9681079 -0.2505334 1.69363e-4 -0.9691601 -0.2464312 4.69974e-4 -0.9758122 -0.2186101 -3.91679e-4 -0.9788632 -0.2045153 5.22205e-4 -0.9868456 -0.1616643 5.50837e-4 -0.9929063 -0.1188976 5.60023e-4 -0.9971188 -0.07585287 5.37529e-4 -0.999472 -0.03248977 4.752e-4 -0.9999416 0.01080441 3.98508e-4 -0.9985271 0.0542559 3.09605e-4 -0.9952645 0.09720349 2.09811e-4 -0.9901833 0.1397747 4.86128e-5 -0.9949847 0.1000276 -4.86012e-5 -0.9535865 -0.3011189 -3.54285e-4 -0.9468911 -0.3215543 3.37934e-4 -0.9441558 -0.3294993 2.05597e-4 -0.9468911 -0.3215543 -2.19199e-4 -0.9395613 -0.3423803 -3.46584e-4 -0.9320343 -0.3623699 3.40678e-4 -0.928912 -0.3703004 2.12782e-4 -0.9320343 -0.3623699 -2.2178e-4 -0.9237192 -0.3830699 -3.51115e-4 -0.915259 -0.4028657 3.41537e-4 -0.9121394 -0.4098801 1.91971e-4 -0.9152591 -0.4028657 -2.0281e-4 -0.9061397 -0.4229785 -3.43504e-4 -0.8969518 -0.4421282 3.39615e-4 -0.8934425 -0.4491777 1.96583e-4 -0.8969519 -0.4421282 -2.11799e-4 -0.8868579 -0.4620419 -3.53066e-4 -0.8766784 -0.4810768 3.40796e-4 -0.8731524 -0.4874473 1.84762e-4 -0.8766784 -0.4810768 -1.96003e-4 -0.8658838 -0.5002453 -3.42194e-4 -0.8549253 -0.5187509 3.49028e-4 -0.8511809 -0.5248724 1.84308e-4 -0.8549255 -0.518751 -1.94038e-4 -0.8432006 -0.5375988 -3.40048e-4 -0.8314064 -0.5556647 3.53398e-4 -0.8277266 -0.5611316 1.67816e-4 -0.8314064 -0.5556648 -1.82567e-4 -0.8188353 -0.5740284 -3.37711e-4 -0.8065295 -0.5911937 3.40926e-4 -0.8025531 -0.5965807 1.73901e-4 -0.8065295 -0.5911938 -1.84983e-4 -0.7931121 -0.6090757 -3.53481e-4 -0.7799203 -0.6258789 3.32523e-4 -0.7760255 -0.6307016 1.70356e-4 -0.7799203 -0.6258789 -1.64675e-4 -0.765846 -0.6430239 -3.56903e-4 -0.7517581 -0.6594389 3.37671e-4 -0.7480102 -0.6636873 1.50867e-4 -0.7517582 -0.659439 -1.57681e-4 -0.7371232 -0.6757582 -3.43548e-4 -0.7223223 -0.6915564 3.51323e-4 -0.7184765 -0.6955512 1.41295e-4 -0.7223224 -0.6915565 -1.63173e-4 -0.7068119 -0.7074015 -3.38194e-4 -0.6915564 -0.7223224 3.46418e-4 -0.6877538 -0.7259441 1.34112e-4 -0.6915565 -0.7223224 -1.56544e-4 -0.6753934 -0.7374576 -3.42517e-4 -0.6594389 -0.7517582 3.44664e-4 -0.6555356 -0.7551643 1.39366e-4 -0.659439 -0.7517582 -1.4961e-4 -0.6424577 -0.7663211 -3.51366e-4 -0.6258788 -0.7799203 3.36392e-4 -0.6222887 -0.7827879 1.2808e-4 -0.6258789 -0.7799203 -1.3021e-4 -0.6086046 -0.7934737 -3.46868e-4 -0.5911937 -0.8065295 3.50762e-4 -0.5877274 -0.809059 1.15448e-4 -0.5911938 -0.8065295 -1.27666e-4 -0.573204 -0.8194125 -3.38185e-4 -0.5556648 -0.8314064 3.42735e-4 -0.5522205 -0.8336981 1.12999e-4 -0.5556648 -0.8314064 -1.23176e-4 -0.5371025 -0.843517 -3.47651e-4 -0.5187509 -0.8549253 3.44708e-4 -0.5154849 -0.8568987 1.07931e-4 -0.518751 -0.8549255 -1.11545e-4 -0.4995918 -0.8662609 -3.48552e-4 -0.4810768 -0.8766784 3.32034e-4 -0.4780486 -0.8783335 1.00512e-4 -0.4810768 -0.8766784 -9.95199e-5 -0.4616591 -0.8870573 -3.53913e-4 -0.4421282 -0.8969518 3.47236e-4 -0.4394694 -0.8982575 7.94707e-5 -0.4421282 -0.8969519 -9.34865e-5 -0.4222341 -0.9064869 -3.40278e-4 -0.4028657 -0.915259 3.4038e-4 -0.4000093 -0.9165111 8.68055e-5 -0.4028657 -0.9152591 -9.66631e-5 -0.3825407 -0.9239386 -3.48783e-4 -0.3623699 -0.9320343 3.46865e-4 -0.3601762 -0.9328844 6.66796e-5 -0.3623699 -0.9320343 -7.27535e-5 -0.3416802 -0.9398163 -3.42383e-4 -0.3215543 -0.9468911 3.40166e-4 -0.3191904 -0.9476906 7.20373e-5 -0.3215543 -0.9468911 -7.69298e-5 -0.300519 -0.9537757 -3.50376e-4 -0.2797796 -0.9600642 3.42846e-4 -0.2779192 -0.9606045 6.26649e-5 -0.2797796 -0.9600643 -5.38505e-5 -0.2585616 -0.9659947 -3.44727e-4 -0.2376533 -0.97135 3.45367e-4 -0.2362223 -0.9716991 4.29323e-5 -0.2376533 -0.9713501 -4.62891e-5 -0.2160633 -0.9763793 -3.46641e-4 -0.1951737 -0.9807686 3.35744e-4 -0.1937704 -0.9810469 3.86856e-5 -0.1951737 -0.9807687 -4.85911e-5 -0.1735332 -0.984828 -3.51621e-4 -0.1520269 -0.9883763 3.45069e-4 -0.1510452 -0.9885268 2.579e-5 -0.1520269 -0.9883764 -3.52396e-5 -0.1302562 -0.9914803 -3.41765e-4 -0.1087647 -0.9940674 3.49873e-4 -0.1081561 -0.9941339 7.796e-6 -0.1087647 -0.9940676 -3.00861e-5 -0.08693087 -0.9962143 -3.35463e-4 -0.06542778 -0.9978572 3.53317e-4 -0.06478303 -0.9978994 1.06393e-5 -0.06542778 -0.9978573 -2.97631e-5 -0.04340279 -0.9990577 -3.40788e-4 -0.02166265 -0.9997653 3.49019e-4 -0.02168256 -0.9997649 0 -0.02166265 -0.9997653 1.24746e-6 1.97225e-4 -0.9999999 -3.34374e-4 0.02166265 -0.9997653 3.50873e-4 0.06478303 -0.9978994 1.06393e-5 0.02166265 -0.9997653 1.24739e-6 0.02168256 -0.9997649 0 0.04399627 -0.9990317 -3.43006e-4 0.06542778 -0.9978572 3.46472e-4 0.1081561 -0.9941339 7.796e-6 0.06542778 -0.9978573 -2.97632e-5 0.08737355 -0.9961756 -3.42073e-4 0.1087647 -0.9940674 3.43704e-4 0.1510452 -0.9885268 2.579e-5 0.1087647 -0.9940676 -3.0086e-5 0.1305763 -0.9914382 -3.43609e-4 0.1520269 -0.9883763 3.47552e-4 0.1937704 -0.9810469 3.86856e-5 0.1520269 -0.9883764 -3.52401e-5 0.173915 -0.9847605 -3.4678e-4 0.1951737 -0.9807686 3.42865e-4 0.2362223 -0.9716991 4.29323e-5 0.1951737 -0.9807687 -4.85911e-5 0.2165986 -0.9762607 -3.42488e-4 0.2376533 -0.97135 3.46763e-4 0.2779192 -0.9606045 6.26649e-5 0.2376533 -0.9713501 -4.62898e-5 0.2590133 -0.9658737 -3.43639e-4 0.2797796 -0.9600642 3.43648e-4 0.3191904 -0.9476906 7.20373e-5 0.2797796 -0.9600643 -5.38514e-5 0.3009912 -0.9536268 -3.50705e-4 0.3215543 -0.9468911 3.38678e-4 0.3601762 -0.9328844 6.66796e-5 0.3215543 -0.9468911 -7.69292e-5 0.3422062 -0.9396248 -3.47323e-4 0.3623699 -0.9320343 3.38697e-4 0.4000093 -0.9165111 8.68055e-5 0.3623699 -0.9320343 -7.2753e-5 0.3826891 -0.9238771 -3.47633e-4 0.4028657 -0.915259 3.50907e-4 0.4394694 -0.8982575 7.94707e-5 0.4028657 -0.9152591 -9.6662e-5 0.4227915 -0.9062268 -3.35101e-4 0.4421282 -0.8969518 3.47396e-4 0.4780486 -0.8783335 1.00512e-4 0.4421282 -0.8969519 -9.34871e-5 0.4619852 -0.8868876 -3.50835e-4 0.4810768 -0.8766784 3.38114e-4 0.5154849 -0.8568987 1.07931e-4 0.4810768 -0.8766784 -9.95207e-5 0.5001553 -0.8659356 -3.48697e-4 0.5187509 -0.8549253 3.3883e-4 0.5522205 -0.8336981 1.12999e-4 0.518751 -0.8549255 -1.11545e-4 0.5373707 -0.8433461 -3.48976e-4 0.5556647 -0.8314064 3.4581e-4 0.5877274 -0.809059 1.15448e-4 0.5556648 -0.8314064 -1.23176e-4 0.5736741 -0.8190837 -3.39203e-4 0.5911937 -0.8065295 3.46124e-4 0.6222887 -0.7827879 1.2808e-4 0.5911938 -0.8065295 -1.27666e-4 0.608874 -0.7932669 -3.47783e-4 0.6258788 -0.7799203 3.3933e-4 0.6555356 -0.7551643 1.39366e-4 0.6258789 -0.7799203 -1.30212e-4 0.6429076 -0.7659437 -3.52571e-4 0.6594389 -0.7517581 3.39453e-4 0.6877538 -0.7259441 1.34112e-4 0.659439 -0.7517582 -1.49608e-4 0.6756929 -0.7371831 -3.46457e-4 0.6915564 -0.7223223 3.4398e-4 0.7184765 -0.6955512 1.41295e-4 0.6915565 -0.7223224 -1.56545e-4 0.7072053 -0.7070081 -3.44235e-4 0.7223224 -0.6915565 3.42322e-4 0.7480102 -0.6636873 1.50867e-4 0.7223224 -0.6915565 -1.63175e-4 0.7373033 -0.6755619 -3.46556e-4 0.7517581 -0.6594389 3.40888e-4 0.7760255 -0.6307016 1.70356e-4 0.7517582 -0.659439 -1.57681e-4 0.7660986 -0.642723 -3.51553e-4 0.7799203 -0.6258788 3.39916e-4 0.8025531 -0.5965807 1.73901e-4 0.7799203 -0.6258789 -1.64676e-4 0.7933965 -0.6087051 -3.46811e-4 0.8065295 -0.5911938 3.47814e-4 0.8277266 -0.5611316 1.67816e-4 0.8065295 -0.5911938 -1.84982e-4 0.8191809 -0.5735353 -3.35556e-4 0.8314064 -0.5556647 3.5117e-4 0.8511809 -0.5248724 1.84308e-4 0.8314064 -0.5556648 -1.82567e-4 0.8434684 -0.5371786 -3.43692e-4 0.8549253 -0.5187509 3.44363e-4 0.8731524 -0.4874473 1.84762e-4 0.8549255 -0.518751 -1.94038e-4 0.8660227 -0.5000047 -3.41282e-4 0.8766784 -0.4810768 3.47306e-4 0.8934425 -0.4491777 1.96583e-4 0.8766784 -0.4810768 -1.96004e-4 0.8871039 -0.4615696 -3.4919e-4 0.8969518 -0.4421282 3.41468e-4 0.9121394 -0.4098801 1.91971e-4 0.8969519 -0.4421282 -2.11798e-4 0.9062964 -0.4226424 -3.39199e-4 0.915259 -0.4028657 3.48845e-4 0.928912 -0.3703004 2.12782e-4 0.9152591 -0.4028657 -2.02811e-4 0.9238904 -0.3826571 -3.43512e-4 0.9320343 -0.3623699 3.48858e-4 0.9441558 -0.3294993 2.05597e-4 0.9320343 -0.3623699 -2.2178e-4 0.9397529 -0.3418542 -3.41947e-4 0.9468911 -0.3215543 3.39423e-4 0.957521 -0.2883633 2.21273e-4 0.9468911 -0.3215543 -2.19199e-4 0.9537012 -0.3007558 -3.50603e-4 0.9600642 -0.2797796 3.43429e-4 0.9691603 -0.2464312 2.24752e-4 0.9600643 -0.2797796 -2.2739e-4 0.9659718 -0.2586472 -3.48518e-4 0.97135 -0.2376533 3.37209e-4 0.9788634 -0.2045153 2.34556e-4 0.9713501 -0.2376533 -2.24649e-4 0.9762744 -0.2165367 -3.46863e-4 0.9807686 -0.1951737 3.43737e-4 0.9868457 -0.1616643 2.40036e-4 0.9807686 -0.1951737 -2.34897e-4 0.9848316 -0.1735122 -3.51648e-4 0.9883763 -0.1520269 3.3718e-4 0.9929065 -0.1188976 2.44737e-4 0.9883763 -0.1520269 -2.36258e-4 0.9914273 -0.1306587 -3.4409e-4 0.9940674 -0.1087647 3.53142e-4 0.997119 -0.07585287 2.41097e-4 0.9940676 -0.1087647 -2.48619e-4 0.9961978 -0.08712089 -3.33511e-4 0.9978468 -0.06558799 3.49119e-4 0.999472 -0.03248977 2.53061e-4 0.9978468 -0.06558799 -2.52233e-4 0.9990491 -0.04359865 -3.4633e-4 0.9997655 -0.02165305 3.47524e-4 0.9999417 0.01080441 2.47351e-4 0.9997655 -0.02165305 -2.61887e-4 0.9999999 0 -3.36559e-4 0.9997655 0.02165305 3.47524e-4 0.998527 0.0542559 2.62784e-4 0.9997655 0.02165305 -2.63314e-4 0.9990491 0.04359865 -3.4633e-4 0.9978468 0.06558799 3.49119e-4 0.9952645 0.09720349 2.59073e-4 0.9978468 0.06558799 -2.66471e-4 0.9961978 0.08712089 -3.33511e-4 0.9940674 0.1087647 3.53142e-4 0.9900999 0.1403647 2.63607e-4 0.9940676 0.1087647 -2.7779e-4 0.9914273 0.1306587 -3.4409e-4 0.9883763 0.1520269 3.3718e-4 0.9830582 0.1832937 2.77044e-4 0.9883763 0.1520269 -2.7587e-4 0.9848316 0.1735122 -3.51648e-4 0.9807686 0.1951737 3.43737e-4 0.9742352 0.225534 2.8351e-4 0.9807686 0.1951737 -2.71285e-4 0.9762744 0.2165367 -3.46863e-4 0.97135 0.2376533 3.37209e-4 0.9635862 0.2673976 2.86856e-4 0.9713501 0.2376533 -2.75719e-4 0.9659718 0.2586472 -3.48518e-4 0.9600642 0.2797796 3.43429e-4 0.951026 0.3091108 2.89768e-4 0.9600643 0.2797796 -2.85422e-4 0.9537012 0.3007558 -3.50602e-4 0.9468911 0.3215543 3.39423e-4 0.9368076 0.3498451 2.88481e-4 0.9468911 0.3215543 -2.87425e-4 0.9397529 0.3418542 -3.41947e-4 0.9320343 0.3623699 3.48858e-4 0.9207585 0.3901329 2.92261e-4 0.9320343 0.3623699 -2.95528e-4 0.9238904 0.3826571 -3.43512e-4 0.915259 0.4028657 3.48845e-4 0.9029091 0.4298315 2.88579e-4 0.9152591 0.4028657 -3.06131e-4 0.9062964 0.4226424 -3.39199e-4 0.8969518 0.4421282 3.41468e-4 0.8835868 0.4682674 3.0636e-4 0.8969519 0.4421282 -2.94943e-4 0.8871039 0.4615696 -3.4919e-4 0.8766784 0.4810768 3.47306e-4 0.8623332 0.506341 2.98953e-4 0.8766784 0.4810768 -3.08832e-4 0.8660227 0.5000047 -3.41283e-4 0.8549253 0.5187509 3.44363e-4 0.8396722 0.5430936 3.07814e-4 0.8549255 0.518751 -3.05598e-4 0.8434684 0.5371786 -3.43693e-4 0.8314064 0.5556647 3.5117e-4 0.8153928 0.578908 2.99636e-4 0.8314064 0.5556648 -3.15235e-4 0.8191809 0.5735353 -3.35555e-4 0.8065295 0.5911938 3.47814e-4 0.7893536 0.6139388 3.12433e-4 0.8065295 0.5911938 -3.21004e-4 0.7933965 0.6087051 -3.46811e-4 0.7799203 0.6258788 3.39916e-4 0.7622241 0.6473131 3.25599e-4 0.7799203 0.6258789 -3.04309e-4 0.7660986 0.642723 -3.51554e-4 0.7517581 0.6594389 3.40888e-4 0.7333539 0.6798471 3.18224e-4 0.751758 0.6594389 -3.16536e-4 0.7373033 0.6755619 -3.46555e-4 0.7223224 0.6915565 3.42322e-4 0.7033005 0.7108926 3.18487e-4 0.7223224 0.6915565 -3.19831e-4 0.7072053 0.7070081 -3.44234e-4 0.6915564 0.7223223 3.4398e-4 0.6718521 0.7406854 3.21232e-4 0.6915565 0.7223224 -3.24349e-4 0.6756929 0.7371831 -3.46458e-4 0.6594389 0.7517581 3.39453e-4 0.6391236 0.769104 3.27908e-4 0.6594389 0.751758 -3.23928e-4 0.6429076 0.7659437 -3.5257e-4 0.6258788 0.7799203 3.3933e-4 0.6051327 0.7961246 3.26111e-4 0.6258789 0.7799203 -3.27878e-4 0.608874 0.7932669 -3.47783e-4 0.5911937 0.8065295 3.46124e-4 0.5700731 0.8215939 3.22127e-4 0.5911938 0.8065295 -3.33493e-4 0.5736741 0.8190837 -3.39204e-4 0.5556647 0.8314064 3.4581e-4 0.533936 0.8455249 3.35469e-4 0.5556648 0.8314064 -3.31099e-4 0.5373707 0.8433461 -3.48976e-4 0.5187509 0.8549253 3.3883e-4 0.4968647 0.867828 3.38171e-4 0.518751 0.8549255 -3.26034e-4 0.5001553 0.8659356 -3.48696e-4 0.4810768 0.8766784 3.38114e-4 0.4588657 0.8885056 3.44324e-4 0.4810768 0.8766784 -3.24489e-4 0.4619852 0.8868876 -3.50834e-4 0.4421282 0.8969518 3.47396e-4 0.4200018 0.9075232 3.28783e-4 0.4421282 0.8969519 -3.33776e-4 0.4227915 0.9062268 -3.35101e-4 0.4028657 0.915259 3.50907e-4 0.3801537 0.9249233 3.34441e-4 0.4028657 0.9152591 -3.432e-4 0.3826891 0.9238771 -3.47632e-4 0.3623699 0.9320343 3.38697e-4 0.3396543 0.9405503 3.34936e-4 0.3623699 0.9320343 -3.4163e-4 0.3422062 0.9396248 -3.47323e-4 0.3215543 0.9468911 3.38678e-4 0.2987149 0.9543423 3.46805e-4 0.3215543 0.9468911 -3.33748e-4 0.3009912 0.9536268 -3.50705e-4 0.2797796 0.9600642 3.43648e-4 0.2571671 0.9663669 3.41232e-4 0.2797796 0.9600643 -3.34158e-4 0.2590133 0.9658737 -3.43639e-4 0.2376533 0.97135 3.46763e-4 0.2148591 0.976645 3.40102e-4 0.2376533 0.9713501 -3.43277e-4 0.2165986 0.9762607 -3.42488e-4 0.1951737 0.9807686 3.42865e-4 0.1724682 0.985015 3.4981e-4 0.1951737 0.9807686 -3.34724e-4 0.173915 0.9847605 -3.4678e-4 0.1520269 0.9883763 3.47552e-4 0.1297772 0.9915432 3.39366e-4 0.1520269 0.9883763 -3.36417e-4 0.1305763 0.9914382 -3.43609e-4 0.1087647 0.9940674 3.43704e-4 0.08653271 0.996249 3.29131e-4 0.1087647 0.9940674 -3.52337e-4 0.08737355 0.9961756 -3.42073e-4 0.06558799 0.9978468 3.4145e-4 0.04330521 0.9990619 3.4205e-4 0.06558799 0.9978468 -3.48338e-4 0.04399627 0.9990316 -3.48478e-4 0.02165305 0.9997655 3.50567e-4 0 1 3.32321e-4 0.02165305 0.9997654 -3.47146e-4 1.97225e-4 0.9999999 -3.34374e-4 -0.02165305 0.9997655 3.48719e-4 -0.04330521 0.9990619 3.4205e-4 -0.02165305 0.9997654 -3.47146e-4 -0.04340279 0.9990575 -3.46131e-4 -0.06558799 0.9978467 3.4819e-4 -0.08653271 0.996249 3.29131e-4 -0.06558799 0.9978468 -3.48338e-4 -0.08693087 0.9962143 -3.35462e-4 -0.1087647 0.9940674 3.49873e-4 -0.1297772 0.9915432 3.39366e-4 -0.1087647 0.9940674 -3.52337e-4 -0.1302562 0.9914803 -3.41765e-4 -0.1520269 0.9883763 3.45069e-4 -0.1724682 0.985015 3.4981e-4 -0.1520269 0.9883763 -3.36417e-4 -0.1735332 0.984828 -3.51621e-4 -0.1951737 0.9807686 3.35744e-4 -0.2148591 0.976645 3.40102e-4 -0.1951737 0.9807686 -3.34724e-4 -0.2160633 0.9763793 -3.46641e-4 -0.2376533 0.97135 3.45367e-4 -0.2571671 0.9663669 3.41232e-4 -0.2376533 0.9713501 -3.43277e-4 -0.2585616 0.9659947 -3.44727e-4 -0.2797796 0.9600642 3.42846e-4 -0.2987149 0.9543423 3.46805e-4 -0.2797796 0.9600643 -3.34159e-4 -0.300519 0.9537757 -3.50376e-4 -0.3215543 0.9468911 3.40166e-4 -0.3396543 0.9405503 3.34936e-4 -0.3215543 0.9468911 -3.33748e-4 -0.3416802 0.9398163 -3.42383e-4 -0.3623699 0.9320343 3.46865e-4 -0.3801537 0.9249233 3.34441e-4 -0.3623699 0.9320343 -3.41629e-4 -0.3825407 0.9239386 -3.48783e-4 -0.4028657 0.915259 3.4038e-4 -0.4200018 0.9075232 3.28783e-4 -0.4028657 0.9152591 -3.432e-4 -0.4222341 0.9064869 -3.40279e-4 -0.4421282 0.8969518 3.47236e-4 -0.4588657 0.8885056 3.44324e-4 -0.4421282 0.8969519 -3.33776e-4 -0.4616591 0.8870573 -3.53912e-4 -0.4810768 0.8766784 3.32034e-4 -0.4968647 0.867828 3.38171e-4 -0.4810768 0.8766784 -3.24489e-4 -0.4995918 0.8662609 -3.48553e-4 -0.5187509 0.8549253 3.44708e-4 -0.533936 0.8455249 3.35469e-4 -0.518751 0.8549255 -3.26034e-4 -0.5371025 0.843517 -3.4765e-4 -0.5556648 0.8314064 3.42735e-4 -0.5700731 0.8215939 3.22127e-4 -0.5556648 0.8314064 -3.31099e-4 -0.573204 0.8194125 -3.38184e-4 -0.5911937 0.8065295 3.50762e-4 -0.6051327 0.7961246 3.26111e-4 -0.5911938 0.8065295 -3.33494e-4 -0.6086046 0.7934737 -3.46868e-4 -0.6258788 0.7799203 3.36392e-4 -0.6391236 0.769104 3.27908e-4 -0.6258789 0.7799203 -3.27876e-4 -0.6424577 0.7663211 -3.51366e-4 -0.6594389 0.7517582 3.44664e-4 -0.6718521 0.7406854 3.21232e-4 -0.6594389 0.751758 -3.23929e-4 -0.6753934 0.7374576 -3.42518e-4 -0.6915564 0.7223224 3.46418e-4 -0.7033005 0.7108926 3.18487e-4 -0.6915565 0.7223224 -3.24351e-4 -0.7068119 0.7074015 -3.38194e-4 -0.7223223 0.6915564 3.51323e-4 -0.7333539 0.6798471 3.18224e-4 -0.7223224 0.6915565 -3.19831e-4 -0.7371232 0.6757582 -3.43548e-4 -0.7517581 0.6594389 3.37671e-4 -0.7622241 0.6473131 3.25599e-4 -0.751758 0.6594389 -3.16536e-4 -0.765846 0.6430239 -3.56903e-4 -0.7799203 0.6258789 3.32523e-4 -0.7893536 0.6139388 3.12433e-4 -0.7799203 0.6258789 -3.04309e-4 -0.7931121 0.6090757 -3.53481e-4 -0.8065295 0.5911937 3.40926e-4 -0.8153928 0.578908 2.99636e-4 -0.8065295 0.5911938 -3.21003e-4 -0.8188353 0.5740284 -3.37711e-4 -0.8314064 0.5556647 3.53398e-4 -0.8396722 0.5430936 3.07814e-4 -0.8314064 0.5556648 -3.15235e-4 -0.8432006 0.5375988 -3.40047e-4 -0.8549253 0.5187509 3.49028e-4 -0.8623332 0.506341 2.98953e-4 -0.8549255 0.518751 -3.05597e-4 -0.8658838 0.5002453 -3.42193e-4 -0.8766784 0.4810768 3.40796e-4 -0.8835868 0.4682674 3.0636e-4 -0.8766784 0.4810768 -3.08832e-4 -0.8868579 0.4620419 -3.53065e-4 -0.8969518 0.4421282 3.39615e-4 -0.9029091 0.4298315 2.88579e-4 -0.8969519 0.4421282 -2.94944e-4 -0.9061397 0.4229785 -3.43504e-4 -0.915259 0.4028657 3.41537e-4 -0.9207585 0.3901329 2.92261e-4 -0.9152591 0.4028657 -3.06131e-4 -0.9237192 0.3830699 -3.51116e-4 -0.9320343 0.3623699 3.40678e-4 -0.9368076 0.3498451 2.88481e-4 -0.9320343 0.3623699 -2.95529e-4 -0.9395613 0.3423803 -3.46584e-4 -0.9468911 0.3215543 3.37934e-4 -0.951026 0.3091108 2.89768e-4 -0.9468911 0.3215543 -2.87425e-4 -0.9535865 0.3011189 -3.54285e-4 -0.9600642 0.2797795 3.36862e-4 -0.9635862 0.2673976 2.86856e-4 -0.9600643 0.2797796 -2.85422e-4 -0.9657849 0.2593446 -3.46528e-4 -0.9686254 0.2485254 0 -0.9742353 0.225534 3.69676e-4 -0.9689017 0.247446 -9.1001e-5 -0.9758123 0.2186101 -2.03199e-4 -0.9830582 0.1832937 2.58888e-4 -0.9837939 0.1793031 -9.9358e-5 -0.9901 0.1403647 1.0576e-4 -0.9982017 0.05994474 -1.65782e-4 -0.9998006 0.01996672 -2.9633e-4 -0.9998005 -0.01996672 -3.79298e-4 -0.9982016 -0.05994474 -4.28647e-4 -0.9949846 -0.1000276 -4.45673e-4 -0.9901832 -0.1397747 -4.53397e-4 -0.9837938 -0.1793031 -4.472e-4 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 81 |

0 0 1 0 2 0 0 1 3 1 1 1 3 2 4 2 1 2 4 3 5 3 1 3 5 4 6 4 1 4 6 5 7 5 1 5 7 6 8 6 1 6 8 7 9 7 1 7 9 8 10 8 1 8 10 9 11 9 1 9 11 10 12 10 1 10 12 11 13 11 1 11 13 12 14 12 1 12 14 13 15 13 1 13 15 14 16 14 1 14 16 15 17 15 1 15 17 16 18 16 1 16 18 17 19 17 1 17 19 18 20 18 1 18 20 19 21 19 1 19 21 20 22 20 1 20 22 21 23 21 1 21 23 22 24 22 1 22 24 23 25 23 1 23 25 24 26 24 1 24 26 25 27 25 1 25 27 26 28 26 1 26 28 27 29 27 1 27 29 28 30 28 1 28 30 29 31 29 1 29 31 30 32 30 1 30 32 31 33 31 1 31 33 32 34 32 1 32 34 33 35 33 1 33 35 34 36 34 1 34 36 35 2 35 1 35 37 36 38 36 39 36 37 37 40 37 38 37 37 38 41 38 40 38 40 39 41 39 42 39 4 40 42 40 5 40 4 41 40 41 42 41 4 42 3 42 40 42 40 43 3 43 38 43 38 44 3 44 0 44 43 45 0 45 2 45 44 46 2 46 36 46 45 47 36 47 35 47 46 48 35 48 34 48 47 49 34 49 33 49 48 50 33 50 32 50 49 51 32 51 31 51 50 52 31 52 30 52 51 53 30 53 29 53 52 54 29 54 28 54 53 55 28 55 27 55 54 56 27 56 26 56 55 57 26 57 25 57 56 58 25 58 24 58 57 59 24 59 23 59 58 60 23 60 22 60 59 61 22 61 21 61 60 62 21 62 20 62 61 63 20 63 19 63 62 64 19 64 18 64 63 65 18 65 17 65 64 66 17 66 16 66 65 67 16 67 15 67 66 68 15 68 14 68 67 69 14 69 13 69 68 70 13 70 12 70 69 71 12 71 11 71 70 72 11 72 10 72 71 73 10 73 9 73 72 74 9 74 8 74 73 75 8 75 7 75 74 76 7 76 6 76 75 77 6 77 5 77 42 78 75 78 5 78 42 79 76 79 75 79 42 80 41 80 76 80 76 81 77 81 75 81 75 82 77 82 74 82 6 83 75 83 74 83 77 84 78 84 74 84 74 85 78 85 73 85 7 86 74 86 73 86 78 87 79 87 73 87 73 88 79 88 72 88 8 89 73 89 72 89 79 90 80 90 72 90 72 91 80 91 71 91 9 92 72 92 71 92 80 93 81 93 71 93 71 94 81 94 70 94 10 95 71 95 70 95 81 96 82 96 70 96 70 97 82 97 69 97 11 98 70 98 69 98 82 99 83 99 69 99 69 100 83 100 68 100 12 101 69 101 68 101 83 102 84 102 68 102 68 103 84 103 67 103 13 104 68 104 67 104 84 105 85 105 67 105 67 106 85 106 66 106 14 107 67 107 66 107 85 108 86 108 66 108 66 109 86 109 65 109 15 110 66 110 65 110 86 111 87 111 65 111 65 112 87 112 64 112 16 113 65 113 64 113 87 114 88 114 64 114 64 115 88 115 63 115 17 116 64 116 63 116 88 117 89 117 63 117 63 118 89 118 62 118 18 119 63 119 62 119 89 120 90 120 62 120 62 121 90 121 61 121 19 122 62 122 61 122 90 123 91 123 61 123 61 124 91 124 60 124 20 125 61 125 60 125 91 126 92 126 60 126 60 127 92 127 59 127 21 128 60 128 59 128 92 129 93 129 59 129 59 130 93 130 58 130 22 131 59 131 58 131 93 132 94 132 58 132 58 133 94 133 57 133 23 134 58 134 57 134 94 135 95 135 57 135 57 136 95 136 56 136 24 137 57 137 56 137 95 138 96 138 56 138 56 139 96 139 55 139 25 140 56 140 55 140 96 141 97 141 55 141 55 142 97 142 54 142 26 143 55 143 54 143 97 144 98 144 54 144 54 145 98 145 53 145 27 146 54 146 53 146 98 147 99 147 53 147 53 148 99 148 52 148 28 149 53 149 52 149 99 150 100 150 52 150 52 151 100 151 51 151 29 152 52 152 51 152 100 153 101 153 51 153 51 154 101 154 50 154 30 155 51 155 50 155 101 156 102 156 50 156 50 157 102 157 49 157 31 158 50 158 49 158 102 159 103 159 49 159 49 160 103 160 48 160 32 161 49 161 48 161 103 162 104 162 48 162 48 163 104 163 47 163 33 164 48 164 47 164 104 165 105 165 47 165 47 166 105 166 46 166 34 167 47 167 46 167 105 168 106 168 46 168 46 169 106 169 45 169 35 170 46 170 45 170 106 171 107 171 45 171 45 172 107 172 44 172 36 173 45 173 44 173 107 174 108 174 44 174 44 175 108 175 43 175 2 176 44 176 43 176 108 177 39 177 43 177 43 178 39 178 38 178 0 179 43 179 38 179 109 180 110 180 111 180 109 181 112 181 110 181 112 182 113 182 110 182 113 183 114 183 110 183 114 184 115 184 110 184 115 185 116 185 110 185 116 186 117 186 110 186 117 187 118 187 110 187 118 188 119 188 110 188 119 189 120 189 110 189 120 190 121 190 110 190 121 191 122 191 110 191 122 192 123 192 110 192 123 193 124 193 110 193 124 194 125 194 110 194 125 195 126 195 110 195 126 196 127 196 110 196 127 197 128 197 110 197 128 198 129 198 110 198 129 199 130 199 110 199 130 200 131 200 110 200 131 201 132 201 110 201 132 202 133 202 110 202 133 203 134 203 110 203 134 204 135 204 110 204 135 205 136 205 110 205 136 206 137 206 110 206 137 207 138 207 110 207 138 208 139 208 110 208 139 209 140 209 110 209 140 210 141 210 110 210 141 211 142 211 110 211 142 212 143 212 110 212 143 213 144 213 110 213 144 214 145 214 110 214 145 215 111 215 110 215 146 216 147 216 148 216 146 217 149 217 147 217 146 218 150 218 149 218 149 219 150 219 151 219 113 220 151 220 114 220 113 221 149 221 151 221 113 222 112 222 149 222 149 223 112 223 147 223 147 224 112 224 109 224 152 225 109 225 111 225 153 226 111 226 145 226 154 227 145 227 144 227 155 228 144 228 143 228 156 229 143 229 142 229 157 230 142 230 141 230 158 231 141 231 140 231 159 232 140 232 139 232 160 233 139 233 138 233 161 234 138 234 137 234 162 235 137 235 136 235 163 236 136 236 135 236 164 237 135 237 134 237 165 238 134 238 133 238 166 239 133 239 132 239 167 240 132 240 131 240 168 241 131 241 130 241 169 242 130 242 129 242 170 243 129 243 128 243 171 244 128 244 127 244 172 245 127 245 126 245 173 246 126 246 125 246 174 247 125 247 124 247 175 248 124 248 123 248 176 249 123 249 122 249 177 250 122 250 121 250 178 251 121 251 120 251 179 252 120 252 119 252 180 253 119 253 118 253 181 254 118 254 117 254 182 255 117 255 116 255 183 256 116 256 115 256 184 257 115 257 114 257 151 258 184 258 114 258 151 259 185 259 184 259 151 260 150 260 185 260 185 261 186 261 184 261 184 262 186 262 183 262 115 263 184 263 183 263 186 264 187 264 183 264 183 265 187 265 182 265 116 266 183 266 182 266 187 267 188 267 182 267 182 268 188 268 181 268 117 269 182 269 181 269 188 270 189 270 181 270 181 271 189 271 180 271 118 272 181 272 180 272 189 273 190 273 180 273 180 274 190 274 179 274 119 275 180 275 179 275 190 276 191 276 179 276 179 277 191 277 178 277 120 278 179 278 178 278 191 279 192 279 178 279 178 280 192 280 177 280 121 281 178 281 177 281 192 282 193 282 177 282 177 283 193 283 176 283 122 284 177 284 176 284 193 285 194 285 176 285 176 286 194 286 175 286 123 287 176 287 175 287 194 288 195 288 175 288 175 289 195 289 174 289 124 290 175 290 174 290 195 291 196 291 174 291 174 292 196 292 173 292 125 293 174 293 173 293 196 294 197 294 173 294 173 295 197 295 172 295 126 296 173 296 172 296 197 297 198 297 172 297 172 298 198 298 171 298 127 299 172 299 171 299 198 300 199 300 171 300 171 301 199 301 170 301 128 302 171 302 170 302 199 303 200 303 170 303 170 304 200 304 169 304 129 305 170 305 169 305 200 306 201 306 169 306 169 307 201 307 168 307 130 308 169 308 168 308 201 309 202 309 168 309 168 310 202 310 167 310 131 311 168 311 167 311 202 312 203 312 167 312 167 313 203 313 166 313 132 314 167 314 166 314 203 315 204 315 166 315 166 316 204 316 165 316 133 317 166 317 165 317 204 318 205 318 165 318 165 319 205 319 164 319 134 320 165 320 164 320 205 321 206 321 164 321 164 322 206 322 163 322 135 323 164 323 163 323 206 324 207 324 163 324 163 325 207 325 162 325 136 326 163 326 162 326 207 327 208 327 162 327 162 328 208 328 161 328 137 329 162 329 161 329 208 330 209 330 161 330 161 331 209 331 160 331 138 332 161 332 160 332 209 333 210 333 160 333 160 334 210 334 159 334 139 335 160 335 159 335 210 336 211 336 159 336 159 337 211 337 158 337 140 338 159 338 158 338 211 339 212 339 158 339 158 340 212 340 157 340 141 341 158 341 157 341 212 342 213 342 157 342 157 343 213 343 156 343 142 344 157 344 156 344 213 345 214 345 156 345 156 346 214 346 155 346 143 347 156 347 155 347 214 348 215 348 155 348 155 349 215 349 154 349 144 350 155 350 154 350 215 351 216 351 154 351 154 352 216 352 153 352 145 353 154 353 153 353 216 354 217 354 153 354 153 355 217 355 152 355 111 356 153 356 152 356 217 357 148 357 152 357 152 358 148 358 147 358 109 359 152 359 147 359 218 360 219 360 220 360 220 361 219 361 221 361 222 362 220 362 223 362 223 363 220 363 221 363 222 364 223 364 224 364 224 365 223 365 225 365 218 366 224 366 219 366 219 367 224 367 225 367 220 368 222 368 218 368 218 369 222 369 224 369 226 370 227 370 228 370 228 371 227 371 229 371 227 372 230 372 229 372 229 373 230 373 231 373 232 374 229 374 231 374 232 375 233 375 229 375 229 376 233 376 234 376 235 377 229 377 234 377 235 378 236 378 229 378 235 379 237 379 236 379 236 380 237 380 238 380 239 381 236 381 238 381 239 382 240 382 236 382 236 383 240 383 241 383 242 384 236 384 241 384 242 385 243 385 236 385 236 386 243 386 244 386 226 387 245 387 227 387 226 388 246 388 245 388 245 389 246 389 247 389 248 390 247 390 249 390 248 391 245 391 247 391 248 392 227 392 245 392 248 393 250 393 227 393 227 394 250 394 230 394 230 395 250 395 251 395 231 396 251 396 252 396 232 397 252 397 253 397 233 398 253 398 254 398 234 399 254 399 255 399 235 400 255 400 256 400 237 401 256 401 257 401 238 402 257 402 258 402 239 403 258 403 240 403 239 404 238 404 258 404 246 405 259 405 247 405 247 406 259 406 260 406 249 407 260 407 261 407 249 408 247 408 260 408 259 409 262 409 260 409 260 410 262 410 263 410 261 411 263 411 264 411 261 412 260 412 263 412 262 413 265 413 263 413 263 414 265 414 266 414 264 415 266 415 267 415 264 416 263 416 266 416 265 417 268 417 266 417 266 418 268 418 269 418 267 419 269 419 270 419 267 420 266 420 269 420 268 421 271 421 269 421 269 422 271 422 272 422 270 423 272 423 273 423 270 424 269 424 272 424 271 425 274 425 272 425 272 426 274 426 275 426 273 427 275 427 276 427 273 428 272 428 275 428 274 429 277 429 275 429 275 430 277 430 278 430 276 431 278 431 279 431 276 432 275 432 278 432 277 433 280 433 278 433 278 434 280 434 281 434 279 435 281 435 282 435 279 436 278 436 281 436 280 437 283 437 281 437 281 438 283 438 284 438 282 439 284 439 285 439 282 440 281 440 284 440 283 441 286 441 284 441 284 442 286 442 287 442 285 443 287 443 288 443 285 444 284 444 287 444 286 445 289 445 287 445 287 446 289 446 290 446 288 447 290 447 291 447 288 448 287 448 290 448 289 449 292 449 290 449 290 450 292 450 293 450 291 451 293 451 294 451 291 452 290 452 293 452 292 453 295 453 293 453 293 454 295 454 296 454 294 455 296 455 297 455 294 456 293 456 296 456 295 457 298 457 296 457 296 458 298 458 299 458 297 459 299 459 300 459 297 460 296 460 299 460 298 461 301 461 299 461 299 462 301 462 302 462 300 463 302 463 303 463 300 464 299 464 302 464 301 465 304 465 302 465 302 466 304 466 305 466 303 467 305 467 306 467 303 468 302 468 305 468 304 469 307 469 305 469 305 470 307 470 308 470 306 471 308 471 309 471 306 472 305 472 308 472 307 473 310 473 308 473 308 474 310 474 311 474 309 475 311 475 312 475 309 476 308 476 311 476 310 477 313 477 311 477 311 478 313 478 314 478 312 479 314 479 315 479 312 480 311 480 314 480 313 481 316 481 314 481 314 482 316 482 317 482 315 483 317 483 318 483 315 484 314 484 317 484 316 485 319 485 317 485 317 486 319 486 320 486 318 487 320 487 321 487 318 488 317 488 320 488 319 489 322 489 320 489 320 490 322 490 323 490 321 491 323 491 324 491 321 492 320 492 323 492 322 493 325 493 323 493 323 494 325 494 326 494 324 495 326 495 327 495 324 496 323 496 326 496 325 497 328 497 326 497 326 498 328 498 329 498 327 499 329 499 330 499 327 500 326 500 329 500 328 501 331 501 329 501 329 502 331 502 332 502 330 503 332 503 333 503 330 504 329 504 332 504 331 505 334 505 332 505 332 506 334 506 335 506 333 507 335 507 336 507 333 508 332 508 335 508 334 509 337 509 335 509 335 510 337 510 338 510 336 511 338 511 339 511 336 512 335 512 338 512 337 513 340 513 338 513 338 514 340 514 341 514 339 515 341 515 342 515 339 516 338 516 341 516 340 517 343 517 341 517 341 518 343 518 344 518 342 519 344 519 345 519 342 520 341 520 344 520 343 521 346 521 344 521 344 522 346 522 347 522 348 523 347 523 349 523 348 524 344 524 347 524 348 525 345 525 344 525 346 526 350 526 347 526 347 527 350 527 351 527 349 528 351 528 352 528 349 529 347 529 351 529 350 530 353 530 351 530 351 531 353 531 354 531 352 532 354 532 355 532 352 533 351 533 354 533 353 534 356 534 354 534 354 535 356 535 357 535 355 536 357 536 358 536 355 537 354 537 357 537 356 538 359 538 357 538 357 539 359 539 360 539 358 540 360 540 361 540 358 541 357 541 360 541 359 542 362 542 360 542 360 543 362 543 363 543 361 544 363 544 364 544 361 545 360 545 363 545 362 546 365 546 363 546 363 547 365 547 366 547 364 548 366 548 367 548 364 549 363 549 366 549 365 550 368 550 366 550 366 551 368 551 369 551 367 552 369 552 370 552 367 553 366 553 369 553 368 554 371 554 369 554 369 555 371 555 372 555 370 556 372 556 373 556 370 557 369 557 372 557 371 558 374 558 372 558 372 559 374 559 375 559 373 560 375 560 376 560 373 561 372 561 375 561 374 562 377 562 375 562 375 563 377 563 378 563 376 564 378 564 379 564 376 565 375 565 378 565 377 566 380 566 378 566 378 567 380 567 381 567 379 568 381 568 382 568 379 569 378 569 381 569 380 570 383 570 381 570 381 571 383 571 384 571 382 572 384 572 385 572 382 573 381 573 384 573 383 574 386 574 384 574 384 575 386 575 387 575 385 576 387 576 388 576 385 577 384 577 387 577 386 578 389 578 387 578 387 579 389 579 390 579 388 580 390 580 391 580 388 581 387 581 390 581 389 582 392 582 390 582 390 583 392 583 393 583 391 584 393 584 394 584 391 585 390 585 393 585 392 586 395 586 393 586 393 587 395 587 396 587 394 588 396 588 397 588 394 589 393 589 396 589 395 590 398 590 396 590 396 591 398 591 399 591 397 592 399 592 400 592 397 593 396 593 399 593 398 594 401 594 399 594 399 595 401 595 402 595 400 596 402 596 403 596 400 597 399 597 402 597 401 598 404 598 402 598 402 599 404 599 405 599 403 600 405 600 406 600 403 601 402 601 405 601 404 602 407 602 405 602 405 603 407 603 408 603 406 604 408 604 409 604 406 605 405 605 408 605 407 606 410 606 408 606 408 607 410 607 411 607 409 608 411 608 412 608 409 609 408 609 411 609 410 610 413 610 411 610 411 611 413 611 414 611 412 612 414 612 415 612 412 613 411 613 414 613 413 614 416 614 414 614 414 615 416 615 417 615 415 616 417 616 418 616 415 617 414 617 417 617 416 618 419 618 417 618 417 619 419 619 420 619 418 620 420 620 421 620 418 621 417 621 420 621 419 622 422 622 420 622 420 623 422 623 423 623 421 624 423 624 424 624 421 625 420 625 423 625 422 626 425 626 423 626 423 627 425 627 426 627 424 628 426 628 427 628 424 629 423 629 426 629 425 630 428 630 426 630 426 631 428 631 429 631 427 632 429 632 430 632 427 633 426 633 429 633 428 634 431 634 429 634 429 635 431 635 432 635 430 636 432 636 433 636 430 637 429 637 432 637 431 638 434 638 432 638 432 639 434 639 435 639 433 640 435 640 436 640 433 641 432 641 435 641 434 642 437 642 435 642 435 643 437 643 438 643 436 644 438 644 439 644 436 645 435 645 438 645 437 646 440 646 438 646 438 647 440 647 441 647 439 648 441 648 442 648 439 649 438 649 441 649 440 650 443 650 441 650 441 651 443 651 444 651 442 652 444 652 445 652 442 653 441 653 444 653 443 654 446 654 444 654 444 655 446 655 447 655 445 656 447 656 448 656 445 657 444 657 447 657 446 658 449 658 447 658 447 659 449 659 450 659 448 660 450 660 451 660 448 661 447 661 450 661 449 662 452 662 450 662 450 663 452 663 453 663 451 664 453 664 454 664 451 665 450 665 453 665 452 666 455 666 453 666 453 667 455 667 456 667 454 668 456 668 457 668 454 669 453 669 456 669 455 670 458 670 456 670 456 671 458 671 459 671 457 672 459 672 460 672 457 673 456 673 459 673 458 674 461 674 459 674 459 675 461 675 462 675 460 676 462 676 463 676 460 677 459 677 462 677 461 678 464 678 462 678 462 679 464 679 465 679 463 680 465 680 466 680 463 681 462 681 465 681 464 682 467 682 465 682 465 683 467 683 468 683 466 684 468 684 469 684 466 685 465 685 468 685 467 686 470 686 468 686 468 687 470 687 471 687 469 688 471 688 472 688 469 689 468 689 471 689 470 690 473 690 471 690 471 691 473 691 474 691 472 692 474 692 475 692 472 693 471 693 474 693 473 694 476 694 474 694 474 695 476 695 477 695 475 696 477 696 478 696 475 697 474 697 477 697 476 698 479 698 477 698 477 699 479 699 480 699 478 700 480 700 481 700 478 701 477 701 480 701 479 702 482 702 480 702 480 703 482 703 483 703 481 704 483 704 484 704 481 705 480 705 483 705 482 706 485 706 483 706 483 707 485 707 486 707 484 708 486 708 487 708 484 709 483 709 486 709 485 710 488 710 486 710 486 711 488 711 489 711 487 712 489 712 490 712 487 713 486 713 489 713 488 714 491 714 489 714 489 715 491 715 492 715 490 716 492 716 493 716 490 717 489 717 492 717 491 718 494 718 492 718 492 719 494 719 495 719 493 720 495 720 496 720 493 721 492 721 495 721 494 722 497 722 495 722 495 723 497 723 498 723 496 724 498 724 499 724 496 725 495 725 498 725 497 726 500 726 498 726 498 727 500 727 501 727 499 728 501 728 502 728 499 729 498 729 501 729 500 730 503 730 501 730 501 731 503 731 504 731 502 732 504 732 505 732 502 733 501 733 504 733 503 734 506 734 504 734 504 735 506 735 507 735 505 736 507 736 508 736 505 737 504 737 507 737 506 738 509 738 507 738 507 739 509 739 510 739 508 740 510 740 511 740 508 741 507 741 510 741 509 742 512 742 510 742 510 743 512 743 513 743 511 744 513 744 514 744 511 745 510 745 513 745 512 746 515 746 513 746 513 747 515 747 516 747 514 748 516 748 517 748 514 749 513 749 516 749 515 750 518 750 516 750 516 751 518 751 519 751 517 752 519 752 520 752 517 753 516 753 519 753 518 754 521 754 519 754 519 755 521 755 522 755 520 756 522 756 523 756 520 757 519 757 522 757 521 758 524 758 522 758 522 759 524 759 525 759 523 760 525 760 526 760 523 761 522 761 525 761 524 762 527 762 525 762 525 763 527 763 528 763 526 764 528 764 529 764 526 765 525 765 528 765 527 766 530 766 528 766 528 767 530 767 531 767 529 768 531 768 532 768 529 769 528 769 531 769 530 770 533 770 531 770 531 771 533 771 534 771 532 772 534 772 535 772 532 773 531 773 534 773 533 774 536 774 534 774 534 775 536 775 537 775 535 776 537 776 538 776 535 777 534 777 537 777 536 778 539 778 537 778 537 779 539 779 540 779 538 780 540 780 541 780 538 781 537 781 540 781 539 782 542 782 540 782 540 783 542 783 543 783 541 784 543 784 544 784 541 785 540 785 543 785 542 786 545 786 543 786 543 787 545 787 546 787 544 788 546 788 547 788 544 789 543 789 546 789 545 790 548 790 546 790 546 791 548 791 549 791 547 792 549 792 550 792 547 793 546 793 549 793 548 794 551 794 549 794 549 795 551 795 552 795 550 796 552 796 553 796 550 797 549 797 552 797 551 798 554 798 552 798 552 799 554 799 555 799 553 800 555 800 556 800 553 801 552 801 555 801 554 802 557 802 555 802 555 803 557 803 558 803 556 804 558 804 559 804 556 805 555 805 558 805 557 806 560 806 558 806 558 807 560 807 561 807 559 808 561 808 562 808 559 809 558 809 561 809 560 810 563 810 561 810 561 811 563 811 564 811 562 812 564 812 565 812 562 813 561 813 564 813 563 814 566 814 564 814 564 815 566 815 567 815 565 816 567 816 568 816 565 817 564 817 567 817 566 818 569 818 567 818 567 819 569 819 570 819 568 820 570 820 571 820 568 821 567 821 570 821 569 822 572 822 570 822 570 823 572 823 573 823 571 824 573 824 574 824 571 825 570 825 573 825 572 826 575 826 573 826 573 827 575 827 576 827 574 828 576 828 577 828 574 829 573 829 576 829 575 830 578 830 576 830 576 831 578 831 579 831 577 832 579 832 580 832 577 833 576 833 579 833 578 834 581 834 579 834 579 835 581 835 582 835 580 836 582 836 583 836 580 837 579 837 582 837 581 838 584 838 582 838 582 839 584 839 585 839 583 840 585 840 586 840 583 841 582 841 585 841 584 842 587 842 585 842 585 843 587 843 588 843 586 844 588 844 589 844 586 845 585 845 588 845 587 846 590 846 588 846 588 847 590 847 591 847 589 848 591 848 592 848 589 849 588 849 591 849 590 850 593 850 591 850 591 851 593 851 594 851 592 852 594 852 595 852 592 853 591 853 594 853 593 854 596 854 594 854 594 855 596 855 597 855 595 856 597 856 598 856 595 857 594 857 597 857 596 858 599 858 597 858 597 859 599 859 600 859 598 860 600 860 601 860 598 861 597 861 600 861 599 862 602 862 600 862 600 863 602 863 603 863 601 864 603 864 604 864 601 865 600 865 603 865 602 866 605 866 603 866 603 867 605 867 606 867 604 868 606 868 607 868 604 869 603 869 606 869 605 870 608 870 606 870 606 871 608 871 609 871 607 872 609 872 610 872 607 873 606 873 609 873 608 874 611 874 609 874 609 875 611 875 612 875 610 876 612 876 613 876 610 877 609 877 612 877 611 878 614 878 612 878 612 879 614 879 615 879 613 880 615 880 616 880 613 881 612 881 615 881 614 882 617 882 615 882 615 883 617 883 618 883 616 884 618 884 619 884 616 885 615 885 618 885 617 886 620 886 618 886 618 887 620 887 621 887 619 888 621 888 622 888 619 889 618 889 621 889 620 890 623 890 621 890 621 891 623 891 624 891 622 892 624 892 625 892 622 893 621 893 624 893 623 894 626 894 624 894 624 895 626 895 627 895 625 896 627 896 628 896 625 897 624 897 627 897 626 898 629 898 627 898 627 899 629 899 630 899 628 900 630 900 631 900 628 901 627 901 630 901 629 902 632 902 630 902 630 903 632 903 633 903 631 904 633 904 634 904 631 905 630 905 633 905 632 906 635 906 633 906 633 907 635 907 636 907 634 908 636 908 637 908 634 909 633 909 636 909 635 910 638 910 636 910 636 911 638 911 639 911 637 912 639 912 640 912 637 913 636 913 639 913 638 914 641 914 639 914 639 915 641 915 642 915 640 916 642 916 643 916 640 917 639 917 642 917 641 918 644 918 642 918 642 919 644 919 645 919 643 920 645 920 646 920 643 921 642 921 645 921 644 922 647 922 645 922 645 923 647 923 648 923 646 924 648 924 649 924 646 925 645 925 648 925 647 926 650 926 648 926 648 927 650 927 651 927 649 928 651 928 652 928 649 929 648 929 651 929 650 930 243 930 651 930 651 931 243 931 242 931 652 932 242 932 653 932 652 933 651 933 242 933 242 934 241 934 653 934 653 935 241 935 654 935 654 936 241 936 240 936 258 937 654 937 240 937 238 938 237 938 257 938 237 939 235 939 256 939 235 940 234 940 255 940 234 941 233 941 254 941 233 942 232 942 253 942 232 943 231 943 252 943 231 944 230 944 251 944 348 945 559 945 345 945 348 946 556 946 559 946 348 947 349 947 556 947 556 948 349 948 553 948 553 949 349 949 352 949 550 950 352 950 355 950 547 951 355 951 358 951 544 952 358 952 361 952 541 953 361 953 364 953 538 954 364 954 367 954 535 955 367 955 370 955 532 956 370 956 373 956 529 957 373 957 376 957 526 958 376 958 379 958 523 959 379 959 382 959 520 960 382 960 385 960 517 961 385 961 388 961 514 962 388 962 391 962 511 963 391 963 394 963 508 964 394 964 397 964 505 965 397 965 400 965 502 966 400 966 403 966 499 967 403 967 406 967 496 968 406 968 409 968 493 969 409 969 412 969 490 970 412 970 415 970 487 971 415 971 418 971 484 972 418 972 421 972 481 973 421 973 424 973 478 974 424 974 427 974 475 975 427 975 430 975 472 976 430 976 433 976 469 977 433 977 436 977 466 978 436 978 439 978 463 979 439 979 442 979 460 980 442 980 445 980 457 981 445 981 448 981 454 982 448 982 451 982 454 983 457 983 448 983 553 984 352 984 550 984 550 985 355 985 547 985 547 986 358 986 544 986 544 987 361 987 541 987 541 988 364 988 538 988 538 989 367 989 535 989 535 990 370 990 532 990 532 991 373 991 529 991 529 992 376 992 526 992 526 993 379 993 523 993 523 994 382 994 520 994 520 995 385 995 517 995 517 996 388 996 514 996 514 997 391 997 511 997 511 998 394 998 508 998 508 999 397 999 505 999 505 1000 400 1000 502 1000 502 1001 403 1001 499 1001 499 1002 406 1002 496 1002 496 1003 409 1003 493 1003 493 1004 412 1004 490 1004 490 1005 415 1005 487 1005 487 1006 418 1006 484 1006 484 1007 421 1007 481 1007 481 1008 424 1008 478 1008 478 1009 427 1009 475 1009 475 1010 430 1010 472 1010 472 1011 433 1011 469 1011 469 1012 436 1012 466 1012 466 1013 439 1013 463 1013 463 1014 442 1014 460 1014 460 1015 445 1015 457 1015 559 1016 562 1016 345 1016 345 1017 562 1017 342 1017 342 1018 562 1018 565 1018 339 1019 565 1019 568 1019 336 1020 568 1020 571 1020 333 1021 571 1021 574 1021 330 1022 574 1022 577 1022 327 1023 577 1023 580 1023 324 1024 580 1024 583 1024 321 1025 583 1025 586 1025 318 1026 586 1026 589 1026 315 1027 589 1027 592 1027 312 1028 592 1028 595 1028 309 1029 595 1029 598 1029 306 1030 598 1030 601 1030 303 1031 601 1031 604 1031 300 1032 604 1032 607 1032 297 1033 607 1033 610 1033 294 1034 610 1034 613 1034 291 1035 613 1035 616 1035 288 1036 616 1036 619 1036 285 1037 619 1037 622 1037 282 1038 622 1038 625 1038 279 1039 625 1039 628 1039 276 1040 628 1040 631 1040 273 1041 631 1041 634 1041 270 1042 634 1042 637 1042 267 1043 637 1043 640 1043 264 1044 640 1044 643 1044 261 1045 643 1045 646 1045 249 1046 646 1046 649 1046 248 1047 649 1047 652 1047 250 1048 652 1048 653 1048 251 1049 653 1049 654 1049 252 1050 654 1050 258 1050 253 1051 258 1051 257 1051 254 1052 257 1052 256 1052 255 1053 254 1053 256 1053 342 1054 565 1054 339 1054 339 1055 568 1055 336 1055 336 1056 571 1056 333 1056 333 1057 574 1057 330 1057 330 1058 577 1058 327 1058 327 1059 580 1059 324 1059 324 1060 583 1060 321 1060 321 1061 586 1061 318 1061 318 1062 589 1062 315 1062 315 1063 592 1063 312 1063 312 1064 595 1064 309 1064 309 1065 598 1065 306 1065 306 1066 601 1066 303 1066 303 1067 604 1067 300 1067 300 1068 607 1068 297 1068 297 1069 610 1069 294 1069 294 1070 613 1070 291 1070 291 1071 616 1071 288 1071 288 1072 619 1072 285 1072 285 1073 622 1073 282 1073 282 1074 625 1074 279 1074 279 1075 628 1075 276 1075 276 1076 631 1076 273 1076 273 1077 634 1077 270 1077 270 1078 637 1078 267 1078 267 1079 640 1079 264 1079 264 1080 643 1080 261 1080 261 1081 646 1081 249 1081 249 1082 649 1082 248 1082 248 1083 652 1083 250 1083 250 1084 653 1084 251 1084 251 1085 654 1085 252 1085 252 1086 258 1086 253 1086 253 1087 257 1087 254 1087 223 1088 221 1088 655 1088 656 1089 223 1089 655 1089 656 1090 225 1090 223 1090 656 1091 657 1091 225 1091 225 1092 657 1092 658 1092 219 1093 658 1093 655 1093 221 1094 219 1094 655 1094 219 1095 225 1095 658 1095 657 1096 228 1096 658 1096 658 1097 228 1097 659 1097 659 1098 228 1098 244 1098 660 1099 659 1099 244 1099 228 1100 229 1100 244 1100 244 1101 229 1101 236 1101 661 1102 662 1102 660 1102 660 1103 662 1103 659 1103 656 1104 655 1104 661 1104 661 1105 655 1105 662 1105 226 1106 228 1106 246 1106 246 1107 228 1107 259 1107 259 1108 228 1108 262 1108 262 1109 228 1109 265 1109 265 1110 228 1110 268 1110 268 1111 228 1111 271 1111 271 1112 228 1112 657 1112 274 1113 657 1113 277 1113 274 1114 271 1114 657 1114 656 1115 343 1115 657 1115 656 1116 346 1116 343 1116 656 1117 350 1117 346 1117 656 1118 353 1118 350 1118 656 1119 356 1119 353 1119 656 1120 359 1120 356 1120 656 1121 362 1121 359 1121 656 1122 365 1122 362 1122 656 1123 368 1123 365 1123 656 1124 371 1124 368 1124 656 1125 374 1125 371 1125 656 1126 377 1126 374 1126 656 1127 380 1127 377 1127 656 1128 383 1128 380 1128 656 1129 386 1129 383 1129 656 1130 389 1130 386 1130 656 1131 392 1131 389 1131 656 1132 395 1132 392 1132 656 1133 398 1133 395 1133 656 1134 401 1134 398 1134 656 1135 404 1135 401 1135 656 1136 407 1136 404 1136 656 1137 410 1137 407 1137 656 1138 413 1138 410 1138 656 1139 416 1139 413 1139 656 1140 419 1140 416 1140 656 1141 422 1141 419 1141 656 1142 425 1142 422 1142 656 1143 428 1143 425 1143 656 1144 431 1144 428 1144 656 1145 434 1145 431 1145 656 1146 437 1146 434 1146 656 1147 440 1147 437 1147 656 1148 443 1148 440 1148 656 1149 446 1149 443 1149 656 1150 449 1150 446 1150 656 1151 452 1151 449 1151 656 1152 661 1152 452 1152 452 1153 661 1153 455 1153 455 1154 661 1154 458 1154 458 1155 661 1155 461 1155 461 1156 661 1156 464 1156 464 1157 661 1157 467 1157 467 1158 661 1158 470 1158 470 1159 661 1159 473 1159 473 1160 661 1160 476 1160 476 1161 661 1161 479 1161 479 1162 661 1162 482 1162 482 1163 661 1163 485 1163 485 1164 661 1164 488 1164 488 1165 661 1165 491 1165 491 1166 661 1166 494 1166 494 1167 661 1167 497 1167 497 1168 661 1168 500 1168 500 1169 661 1169 503 1169 503 1170 661 1170 506 1170 506 1171 661 1171 509 1171 509 1172 661 1172 512 1172 512 1173 661 1173 515 1173 515 1174 661 1174 518 1174 518 1175 661 1175 521 1175 521 1176 661 1176 524 1176 524 1177 661 1177 527 1177 527 1178 661 1178 530 1178 530 1179 661 1179 533 1179 533 1180 661 1180 536 1180 536 1181 661 1181 539 1181 539 1182 661 1182 542 1182 542 1183 661 1183 545 1183 545 1184 661 1184 548 1184 548 1185 661 1185 551 1185 551 1186 661 1186 554 1186 554 1187 661 1187 557 1187 557 1188 661 1188 560 1188 560 1189 661 1189 563 1189 563 1190 661 1190 660 1190 566 1191 660 1191 569 1191 566 1192 563 1192 660 1192 244 1193 635 1193 660 1193 244 1194 638 1194 635 1194 244 1195 641 1195 638 1195 244 1196 644 1196 641 1196 244 1197 647 1197 644 1197 244 1198 650 1198 647 1198 244 1199 243 1199 650 1199 635 1200 632 1200 660 1200 660 1201 632 1201 629 1201 626 1202 660 1202 629 1202 626 1203 623 1203 660 1203 660 1204 623 1204 620 1204 617 1205 660 1205 620 1205 617 1206 614 1206 660 1206 660 1207 614 1207 611 1207 608 1208 660 1208 611 1208 608 1209 605 1209 660 1209 660 1210 605 1210 602 1210 599 1211 660 1211 602 1211 599 1212 596 1212 660 1212 660 1213 596 1213 593 1213 590 1214 660 1214 593 1214 590 1215 587 1215 660 1215 660 1216 587 1216 584 1216 581 1217 660 1217 584 1217 581 1218 578 1218 660 1218 660 1219 578 1219 575 1219 572 1220 660 1220 575 1220 572 1221 569 1221 660 1221 343 1222 340 1222 657 1222 657 1223 340 1223 337 1223 334 1224 657 1224 337 1224 334 1225 331 1225 657 1225 657 1226 331 1226 328 1226 325 1227 657 1227 328 1227 325 1228 322 1228 657 1228 657 1229 322 1229 319 1229 316 1230 657 1230 319 1230 316 1231 313 1231 657 1231 657 1232 313 1232 310 1232 307 1233 657 1233 310 1233 307 1234 304 1234 657 1234 657 1235 304 1235 301 1235 298 1236 657 1236 301 1236 298 1237 295 1237 657 1237 657 1238 295 1238 292 1238 289 1239 657 1239 292 1239 289 1240 286 1240 657 1240 657 1241 286 1241 283 1241 280 1242 657 1242 283 1242 280 1243 277 1243 657 1243 37 1244 39 1244 659 1244 41 1245 659 1245 76 1245 41 1246 37 1246 659 1246 39 1247 108 1247 659 1247 659 1248 108 1248 107 1248 106 1249 659 1249 107 1249 106 1250 105 1250 659 1250 659 1251 105 1251 104 1251 103 1252 659 1252 104 1252 103 1253 658 1253 659 1253 103 1254 102 1254 658 1254 658 1255 102 1255 101 1255 100 1256 658 1256 101 1256 100 1257 99 1257 658 1257 658 1258 99 1258 98 1258 97 1259 658 1259 98 1259 97 1260 96 1260 658 1260 658 1261 96 1261 95 1261 94 1262 658 1262 95 1262 94 1263 93 1263 658 1263 658 1264 93 1264 92 1264 91 1265 658 1265 92 1265 91 1266 90 1266 658 1266 658 1267 90 1267 89 1267 88 1268 658 1268 89 1268 88 1269 655 1269 658 1269 88 1270 87 1270 655 1270 655 1271 87 1271 86 1271 85 1272 655 1272 86 1272 85 1273 84 1273 655 1273 655 1274 84 1274 83 1274 82 1275 655 1275 83 1275 82 1276 81 1276 655 1276 655 1277 81 1277 80 1277 79 1278 655 1278 80 1278 79 1279 203 1279 655 1279 79 1280 204 1280 203 1280 79 1281 78 1281 204 1281 204 1282 78 1282 205 1282 205 1283 78 1283 77 1283 206 1284 77 1284 76 1284 659 1285 206 1285 76 1285 659 1286 207 1286 206 1286 659 1287 208 1287 207 1287 659 1288 209 1288 208 1288 659 1289 210 1289 209 1289 659 1290 211 1290 210 1290 659 1291 212 1291 211 1291 659 1292 213 1292 212 1292 659 1293 214 1293 213 1293 659 1294 215 1294 214 1294 659 1295 662 1295 215 1295 215 1296 662 1296 216 1296 216 1297 662 1297 217 1297 217 1298 662 1298 148 1298 148 1299 662 1299 146 1299 146 1300 662 1300 150 1300 150 1301 662 1301 185 1301 185 1302 662 1302 186 1302 186 1303 662 1303 187 1303 187 1304 662 1304 188 1304 188 1305 662 1305 189 1305 189 1306 662 1306 190 1306 190 1307 662 1307 191 1307 191 1308 662 1308 192 1308 192 1309 662 1309 193 1309 193 1310 662 1310 194 1310 194 1311 662 1311 655 1311 195 1312 655 1312 196 1312 195 1313 194 1313 655 1313 205 1314 77 1314 206 1314 203 1315 202 1315 655 1315 655 1316 202 1316 201 1316 200 1317 655 1317 201 1317 200 1318 199 1318 655 1318 655 1319 199 1319 198 1319 197 1320 655 1320 198 1320 197 1321 196 1321 655 1321

82 |
83 |
84 |
85 |
86 | 87 | 88 | 89 | 90 | 0.6858805 -0.3173701 0.6548619 7.481132 0.7276338 0.3124686 -0.6106656 -6.50764 -0.01081678 0.8953432 0.4452454 5.343665 0 0 0 1 91 | 92 | 93 | 94 | -0.2908646 -0.7711008 0.5663932 4.076245 0.9551712 -0.1998834 0.2183912 1.005454 -0.05518906 0.6045247 0.7946723 5.903862 0 0 0 1 95 | 96 | 97 | 98 | 0.6858805 -0.3173701 0.6548619 7.481132 0.7276337 0.3124686 -0.6106656 -6.50764 -0.01081678 0.8953431 0.4452454 5.343665 0 0 0 1 99 | 100 | 101 | 102 | -0.2908647 -0.7711007 0.5663933 4.076245 0.9551713 -0.1998833 0.2183912 1.005454 -0.05518912 0.6045247 0.7946723 5.903862 0 0 0 1 103 | 104 | 105 | 106 | 0.6858805 -0.31737 0.6548618 7.481132 0.7276337 0.3124685 -0.6106656 -6.50764 -0.01081678 0.8953429 0.4452453 5.343665 0 0 0 1 107 | 108 | 109 | 110 | -0.2908648 -0.7711005 0.5663933 4.076245 0.9551712 -0.1998834 0.2183913 1.005454 -0.05518909 0.6045247 0.7946722 5.903862 0 0 0 1 111 | 112 | 113 | 114 | 0.6858805 -0.31737 0.6548618 7.481132 0.7276337 0.3124685 -0.6106656 -6.50764 -0.01081678 0.8953429 0.4452453 5.343665 0 0 0 1 115 | 116 | 117 | 118 | -0.2908648 -0.7711005 0.5663933 4.076245 0.9551712 -0.1998834 0.2183913 1.005454 -0.05518909 0.6045247 0.7946722 5.903862 0 0 0 1 119 | 120 | 121 | 122 | 0.6858805 -0.31737 0.6548618 7.481132 0.7276337 0.3124684 -0.6106656 -6.50764 -0.01081672 0.8953428 0.4452453 5.343665 0 0 0 1 123 | 124 | 125 | 126 | -0.2908649 -0.7711004 0.5663933 4.076245 0.9551712 -0.1998834 0.2183914 1.005454 -0.05518909 0.6045246 0.7946722 5.903862 0 0 0 1 127 | 128 | 129 | 130 | 0.6858805 -0.31737 0.6548618 7.481132 0.7276337 0.3124684 -0.6106656 -6.50764 -0.01081672 0.8953428 0.4452453 5.343665 0 0 0 1 131 | 132 | 133 | 134 | -0.2908649 -0.7711004 0.5663933 4.076245 0.9551712 -0.1998834 0.2183914 1.005454 -0.05518909 0.6045246 0.7946722 5.903862 0 0 0 1 135 | 136 | 137 | 138 | 0.6858805 -0.31737 0.6548618 7.481132 0.7276337 0.3124684 -0.6106656 -6.50764 -0.01081672 0.8953428 0.4452453 5.343665 0 0 0 1 139 | 140 | 141 | 142 | -0.2908649 -0.7711004 0.5663933 4.076245 0.9551712 -0.1998834 0.2183914 1.005454 -0.05518909 0.6045246 0.7946722 5.903862 0 0 0 1 143 | 144 | 145 | 146 | 0.6858805 -0.31737 0.6548618 7.481132 0.7276337 0.3124684 -0.6106656 -6.50764 -0.01081672 0.8953428 0.4452453 5.343665 0 0 0 1 147 | 148 | 149 | 150 | -0.2908649 -0.7711004 0.5663933 4.076245 0.9551712 -0.1998834 0.2183914 1.005454 -0.05518909 0.6045246 0.7946722 5.903862 0 0 0 1 151 | 152 | 153 | 154 | 0.6858805 -0.31737 0.6548618 7.481132 0.7276337 0.3124684 -0.6106656 -6.50764 -0.01081672 0.8953428 0.4452453 5.343665 0 0 0 1 155 | 156 | 157 | 158 | -0.2908649 -0.7711004 0.5663933 4.076245 0.9551712 -0.1998834 0.2183914 1.005454 -0.05518909 0.6045246 0.7946722 5.903862 0 0 0 1 159 | 160 | 161 | 162 | 0.6858805 -0.31737 0.6548619 7.481132 0.7276338 0.3124684 -0.6106656 -6.50764 -0.01081671 0.8953428 0.4452454 5.343665 0 0 0 1 163 | 164 | 165 | 166 | -0.2908651 -0.7711003 0.5663932 4.076245 0.9551711 -0.1998836 0.2183915 1.005454 -0.05518912 0.6045246 0.7946722 5.903862 0 0 0 1 167 | 168 | 169 | 170 | 0.6858805 -0.31737 0.6548619 7.481132 0.7276338 0.3124684 -0.6106656 -6.50764 -0.01081671 0.8953428 0.4452454 5.343665 0 0 0 1 171 | 172 | 173 | 174 | -0.2908651 -0.7711003 0.5663932 4.076245 0.9551711 -0.1998836 0.2183915 1.005454 -0.05518912 0.6045246 0.7946722 5.903862 0 0 0 1 175 | 176 | 177 | 178 | 0.6858805 -0.31737 0.6548618 7.481132 0.7276337 0.3124684 -0.6106656 -6.50764 -0.01081672 0.8953428 0.4452453 5.343665 0 0 0 1 179 | 180 | 181 | 182 | -0.2908649 -0.7711004 0.5663933 4.076245 0.9551712 -0.1998834 0.2183914 1.005454 -0.05518909 0.6045246 0.7946722 5.903862 0 0 0 1 183 | 184 | 185 | 186 | 0.6858805 -0.31737 0.6548619 7.481132 0.7276338 0.3124684 -0.6106656 -6.50764 -0.01081671 0.8953428 0.4452454 5.343665 0 0 0 1 187 | 188 | 189 | 190 | -0.2908651 -0.7711003 0.5663932 4.076245 0.9551711 -0.1998836 0.2183915 1.005454 -0.05518912 0.6045246 0.7946722 5.903862 0 0 0 1 191 | 192 | 193 | 194 | 0.6858805 -0.31737 0.6548619 7.481132 0.7276338 0.3124684 -0.6106656 -6.50764 -0.01081671 0.8953428 0.4452454 5.343665 0 0 0 1 195 | 196 | 197 | 198 | -0.2908651 -0.7711003 0.5663932 4.076245 0.9551711 -0.1998836 0.2183915 1.005454 -0.05518912 0.6045246 0.7946722 5.903862 0 0 0 1 199 | 200 | 201 | 202 | 0.6858805 -0.31737 0.6548618 7.481132 0.7276337 0.3124685 -0.6106656 -6.50764 -0.01081678 0.8953429 0.4452453 5.343665 0 0 0 1 203 | 204 | 205 | 206 | -0.2908648 -0.7711005 0.5663933 4.076245 0.9551712 -0.1998834 0.2183913 1.005454 -0.05518909 0.6045247 0.7946722 5.903862 0 0 0 1 207 | 208 | 209 | 210 | 0.6858805 -0.31737 0.6548618 7.481132 0.7276337 0.3124684 -0.6106656 -6.50764 -0.01081672 0.8953428 0.4452453 5.343665 0 0 0 1 211 | 212 | 213 | 214 | -0.2908649 -0.7711004 0.5663933 4.076245 0.9551712 -0.1998834 0.2183914 1.005454 -0.05518909 0.6045246 0.7946722 5.903862 0 0 0 1 215 | 216 | 217 | 218 | 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 |
233 | -------------------------------------------------------------------------------- /meshes/stl/RasPiMouse_MultiLiDARMount.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/raspimouse_description/a4cb46f2e29c92f09d69e5256acba77c4eebfde8/meshes/stl/RasPiMouse_MultiLiDARMount.stl -------------------------------------------------------------------------------- /meshes/stl/RasPiMouse_TopPlate.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/raspimouse_description/a4cb46f2e29c92f09d69e5256acba77c4eebfde8/meshes/stl/RasPiMouse_TopPlate.stl -------------------------------------------------------------------------------- /meshes/stl/RasPiMouse_base-metric.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/raspimouse_description/a4cb46f2e29c92f09d69e5256acba77c4eebfde8/meshes/stl/RasPiMouse_base-metric.stl -------------------------------------------------------------------------------- /meshes/stl/RasPiMouse_sensor-metric.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/raspimouse_description/a4cb46f2e29c92f09d69e5256acba77c4eebfde8/meshes/stl/RasPiMouse_sensor-metric.stl -------------------------------------------------------------------------------- /meshes/stl/RasPiMouse_wheel-metric.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/raspimouse_description/a4cb46f2e29c92f09d69e5256acba77c4eebfde8/meshes/stl/RasPiMouse_wheel-metric.stl -------------------------------------------------------------------------------- /meshes/stl/RasPiMouse_wheel-mm.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/raspimouse_description/a4cb46f2e29c92f09d69e5256acba77c4eebfde8/meshes/stl/RasPiMouse_wheel-mm.stl -------------------------------------------------------------------------------- /meshes/stl/URG-04LX-UG01.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/raspimouse_description/a4cb46f2e29c92f09d69e5256acba77c4eebfde8/meshes/stl/URG-04LX-UG01.stl -------------------------------------------------------------------------------- /meshes/stl/color/RasPiMouse_body_black.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/raspimouse_description/a4cb46f2e29c92f09d69e5256acba77c4eebfde8/meshes/stl/color/RasPiMouse_body_black.stl -------------------------------------------------------------------------------- /meshes/stl/color/RasPiMouse_body_gray.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/raspimouse_description/a4cb46f2e29c92f09d69e5256acba77c4eebfde8/meshes/stl/color/RasPiMouse_body_gray.stl -------------------------------------------------------------------------------- /meshes/stl/color/RasPiMouse_body_green.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/raspimouse_description/a4cb46f2e29c92f09d69e5256acba77c4eebfde8/meshes/stl/color/RasPiMouse_body_green.stl -------------------------------------------------------------------------------- /meshes/stl/color/RasPiMouse_body_red.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/raspimouse_description/a4cb46f2e29c92f09d69e5256acba77c4eebfde8/meshes/stl/color/RasPiMouse_body_red.stl -------------------------------------------------------------------------------- /meshes/stl/color/RasPiMouse_wheel_black.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/raspimouse_description/a4cb46f2e29c92f09d69e5256acba77c4eebfde8/meshes/stl/color/RasPiMouse_wheel_black.stl -------------------------------------------------------------------------------- /meshes/stl/color/RasPiMouse_wheel_gray.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/raspimouse_description/a4cb46f2e29c92f09d69e5256acba77c4eebfde8/meshes/stl/color/RasPiMouse_wheel_gray.stl -------------------------------------------------------------------------------- /meshes/stl/robotis_lds01.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/raspimouse_description/a4cb46f2e29c92f09d69e5256acba77c4eebfde8/meshes/stl/robotis_lds01.stl -------------------------------------------------------------------------------- /model.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | RaspberryPiMouse 4 | 1.0 5 | urdf/raspimouse.urdf.xacro 6 | 7 | rt-net 8 | shop@rt-net.jp 9 | 10 | 11 | RaspberryPiMouse 12 | 13 | 14 | -------------------------------------------------------------------------------- /package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | raspimouse_description 5 | 2.0.0 6 | The raspimouse_description package 7 | RT Corporation 8 | 9 | MIT 10 | 11 | Daisuke Sato 12 | Shota Aoki 13 | Yusuke Kato 14 | Kazushi Kurasawa 15 | 16 | ament_cmake 17 | 18 | joint_state_publisher_gui 19 | joint_state_publisher 20 | robot_state_publisher 21 | rviz2 22 | urdf 23 | xacro 24 | launch 25 | gz_ros2_control 26 | realsense2_description 27 | 28 | ament_lint_auto 29 | ament_lint_common 30 | 31 | 32 | ament_cmake 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /raspimouse_description/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/raspimouse_description/a4cb46f2e29c92f09d69e5256acba77c4eebfde8/raspimouse_description/__init__.py -------------------------------------------------------------------------------- /raspimouse_description/robot_description_loader.py: -------------------------------------------------------------------------------- 1 | # The MIT License (MIT) 2 | # 3 | # Copyright 2023 RT Corporation 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | # this software and associated documentation files (the "Software"), to deal in 7 | # the Software without restriction, including without limitation the rights to 8 | # use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | # the Software, and to permit persons to whom the Software is furnished to do so, 10 | # subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in all 13 | # copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | # FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | 22 | import os 23 | 24 | from ament_index_python.packages import get_package_share_directory 25 | from launch.substitutions import Command 26 | 27 | 28 | class RobotDescriptionLoader(): 29 | 30 | def __init__(self): 31 | self.robot_description_path = os.path.join( 32 | get_package_share_directory('raspimouse_description'), 33 | 'urdf', 34 | 'raspimouse.urdf.xacro') 35 | self.lidar = 'none' 36 | self.lidar_frame = 'laser' 37 | self.use_gazebo = 'false' 38 | self.use_rgb_camera = 'false' 39 | self.camera_downward = 'false' 40 | self.gz_control_config_package = '' 41 | self.gz_control_config_file_path = '' 42 | 43 | def load(self): 44 | return Command([ 45 | 'xacro ', 46 | self.robot_description_path, 47 | ' lidar:=', self.lidar, 48 | ' lidar_frame:=', self.lidar_frame, 49 | ' use_gazebo:=', self.use_gazebo, 50 | ' use_rgb_camera:=', self.use_rgb_camera, 51 | ' camera_downward:=', self.camera_downward, 52 | ' gz_control_config_package:=', self.gz_control_config_package, 53 | ' gz_control_config_file_path:=', self.gz_control_config_file_path 54 | ]) 55 | -------------------------------------------------------------------------------- /test/dummy_controllers.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rt-net/raspimouse_description/a4cb46f2e29c92f09d69e5256acba77c4eebfde8/test/dummy_controllers.yaml -------------------------------------------------------------------------------- /test/test_robot_description_loader.py: -------------------------------------------------------------------------------- 1 | # The MIT License (MIT) 2 | # 3 | # Copyright 2023 RT Corporation 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | # this software and associated documentation files (the "Software"), to deal in 7 | # the Software without restriction, including without limitation the rights to 8 | # use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | # the Software, and to permit persons to whom the Software is furnished to do so, 10 | # subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in all 13 | # copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | # FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | 22 | import math 23 | 24 | from launch.launch_context import LaunchContext 25 | import pytest 26 | 27 | from raspimouse_description.robot_description_loader import \ 28 | RobotDescriptionLoader 29 | 30 | 31 | def exec_load(loader): 32 | # Command substitutionの実行方法はCommandのテストを参考にした 33 | # https://github.com/ros2/launch/blob/074cd2903ddccd61bce8f40a0f58da0b7c200481/launch/test/launch/substitutions/test_command.py#L47 34 | context = LaunchContext() 35 | return loader.load().perform(context) 36 | 37 | 38 | def test_load_description(): 39 | # xacroの読み込みが成功することを期待 40 | rdl = RobotDescriptionLoader() 41 | assert exec_load(rdl) 42 | 43 | 44 | def test_change_description_path(): 45 | # xacroのファイルパスを変更し、読み込みが失敗することを期待 46 | rdl = RobotDescriptionLoader() 47 | rdl.robot_description_path = 'hoge' 48 | with pytest.raises(Exception) as e: 49 | exec_load(rdl) 50 | assert e.value 51 | 52 | 53 | def test_lidar_none(): 54 | # lidarが変更されて、xacroに何もセットされないことを期待 55 | rdl = RobotDescriptionLoader() 56 | rdl.lidar = 'none' 57 | assert 'laser' not in exec_load(rdl) 58 | 59 | 60 | def test_lidar_urg(): 61 | # lidarが変更されて、xacroにURGがセットされることを期待 62 | rdl = RobotDescriptionLoader() 63 | rdl.lidar = 'urg' 64 | assert 'urg_mount_link' in exec_load(rdl) 65 | 66 | 67 | def test_lidar_lds(): 68 | # lidarが変更されて、xacroにLDSがセットされることを期待 69 | rdl = RobotDescriptionLoader() 70 | rdl.lidar = 'lds' 71 | assert 'lds_multi_mount_link' in exec_load(rdl) 72 | 73 | 74 | def test_lidar_rplidar(): 75 | # lidarが変更されて、xacroにRPLiDARがセットされることを期待 76 | rdl = RobotDescriptionLoader() 77 | rdl.lidar = 'rplidar' 78 | assert 'rplidar_multi_mount_link' in exec_load(rdl) 79 | 80 | 81 | def test_lidar_frame(): 82 | # lidar_frameが変更されて、xacroにlaserがセットされることを期待 83 | rdl = RobotDescriptionLoader() 84 | rdl.lidar = 'urg' 85 | rdl.lidar_frame = 'laser' 86 | assert 'laser' in exec_load(rdl) 87 | 88 | 89 | def test_use_gazebo(): 90 | # use_gazeboが変更され、xacroにgazebo_ros2_controlがセットされることを期待 91 | rdl = RobotDescriptionLoader() 92 | rdl.use_gazebo = 'true' 93 | rdl.gz_control_config_package = 'raspimouse_description' 94 | rdl.gz_control_config_file_path = 'test/dummy_controllers.yaml' 95 | assert 'gz_ros2_control/GazeboSimSystem' in exec_load(rdl) 96 | 97 | 98 | def test_use_rgb_camera(): 99 | # use_rgb_cameraが変更され、xacroにRGB Cameraがセットされることを期待 100 | rdl = RobotDescriptionLoader() 101 | rdl.use_rgb_camera = 'true' 102 | rdl.gz_control_config_package = 'raspimouse_description' 103 | rdl.gz_control_config_file_path = 'test/dummy_controllers.yaml' 104 | assert 'realsense2_description/meshes/d435.dae' in exec_load(rdl) 105 | 106 | 107 | def test_camera_link(): 108 | # use_gazeboとuse_rgb_cameraが変更され、xacroにcamera linkがセットされることを期待 109 | rdl = RobotDescriptionLoader() 110 | rdl.use_gazebo = 'true' 111 | rdl.use_rgb_camera = 'true' 112 | rdl.gz_control_config_package = 'raspimouse_description' 113 | rdl.gz_control_config_file_path = 'test/dummy_controllers.yaml' 114 | assert 'camera_link' in exec_load(rdl) 115 | 116 | 117 | def test_camera_downward(): 118 | # camera_downwardが変更され、カメラが斜め30度下を向くことを期待 119 | rdl = RobotDescriptionLoader() 120 | rdl.use_gazebo = 'true' 121 | rdl.use_rgb_camera = 'true' 122 | rdl.camera_downward = 'true' 123 | rdl.gz_control_config_package = 'raspimouse_description' 124 | rdl.gz_control_config_file_path = 'test/dummy_controllers.yaml' 125 | camera_angle = math.radians(30) 126 | assert '0 0 0 0 ' + str(camera_angle) + ' 0' in exec_load(rdl) 127 | -------------------------------------------------------------------------------- /urdf/body/body.gazebo.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 0.1 6 | 0.1 7 | 8 | 9 | -------------------------------------------------------------------------------- /urdf/body/body.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 | 32 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /urdf/body/option.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 | 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 | -------------------------------------------------------------------------------- /urdf/common.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 19 | 20 | 21 | 24 | 25 | 26 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /urdf/raspimouse.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 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 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 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 | 108 | 109 | 110 | 114 | 115 | 119 | 120 | 121 | 122 | 123 | 124 | $(arg robot_namespace) 125 | 126 | 127 | 128 | 129 | 133 | 137 | 141 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | -------------------------------------------------------------------------------- /urdf/sensors/lidar.gazebo.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 0 0 0 0 0 8 | ${sensor_link_name} 9 | ${sensor_link_name} 10 | scan 11 | 1 12 | $(arg laser_visual) 13 | 10 14 | 15 | 16 | 17 | 720 18 | 1 19 | ${base_rad-rad_range/2} 20 | ${base_rad+rad_range/2} 21 | 22 | 23 | 24 | ${min_range} 25 | ${max_range} 26 | 0.01 27 | 28 | 29 | gaussian 30 | 0.0 31 | 0.03 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /urdf/sensors/lidar.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 | 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 | 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 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | -------------------------------------------------------------------------------- /urdf/sensors/lightsens.gazebo.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Gazebo/Gray 7 | 8 | 0 0 0 0 0 0 9 | false 10 | 20 11 | 12 | 13 | 14 | 1 15 | 1 16 | ${base_rad-rad_range/2} 17 | ${base_rad+rad_range/2} 18 | 19 | 20 | 21 | ${min_range} 22 | ${max_range} 23 | 0.001 24 | 25 | 26 | gaussian 27 | 0.0 28 | 0.01 29 | 30 | 31 | 32 | ${robot_namespace} 33 | ${prefix}_scan 34 | ${robotdescription_namespace}${prefix} 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /urdf/sensors/lightsens.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 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /urdf/sensors/rgb_camera.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 13 | 14 | 15 | 16 | 17 | 22 | 23 | 24 | 25 | 26 | 27 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | ogre2 40 | 41 | 42 | 43 | 44 | 45 | 30.0 46 | true 47 | camera_link 48 | 49 | 0 0 0 0 ${DOWNWARD_CAMERA_ANGLE} 0 50 | 51 | 52 | 0 0 0 0 0 0 53 | 54 | /camera/color/image_raw 55 | 56 | 1.20428 57 | 58 | 1920 59 | 1080 60 | R8G8B8 61 | 62 | 63 | 0.02 64 | 300 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /urdf/wheel/diffdrive.gazebo.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 11 | 12 | 13 | 14 | 15 | 16 | diff_drive_controller/cmd_vel:=cmd_vel 17 | diff_drive_controller/odom:=odom 18 | 19 | $(find ${config_file_package})/${config_file_path} 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /urdf/wheel/diffdrive.gazebo_ros2_control.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 10 | 11 | 12 | 13 | gz_ros2_control/GazeboSimSystem 14 | 15 | 16 | 17 | 18 | -${WHEEL_VELOCITY_LIMIT} 19 | ${WHEEL_VELOCITY_LIMIT} 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -${WHEEL_VELOCITY_LIMIT} 29 | ${WHEEL_VELOCITY_LIMIT} 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /urdf/wheel/wheel.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 | 32 | 33 | 2 34 | 2 35 | 0 36 | 0 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | --------------------------------------------------------------------------------