├── README.md ├── documentation ├── simulation.md └── tractor_sim_parameters.xml ├── tractor_sim ├── CMakeLists.txt └── package.xml ├── tractor_sim_description ├── CMakeLists.txt ├── launch │ ├── tractor_sim.launch │ └── tractor_sim_rviz.launch ├── meshes │ ├── __auto_10.jpg │ ├── __auto_20.jpg │ ├── __auto_30.JPG │ ├── __auto_32.jpg │ ├── __auto_35.jpg │ ├── blade.dae │ ├── hokuyo.dae │ ├── kubo_back_tire.dae │ ├── kubo_chassis.dae │ └── kubo_front_tire.dae ├── package.xml ├── rviz │ └── amcl.rviz └── urdf │ ├── .lidarx.urdf.xacro.swp │ ├── kubo.gazebo │ ├── kubo.urdf.xacro │ ├── kubo_macros.urdf.xacro │ └── lidarx.urdf.xacro └── tractor_sim_gazebo ├── CMakeLists.txt ├── config ├── kubo_ackermann_ctrlr_params.yaml └── kubo_joint_ctrlr_params.yaml ├── launch ├── bringup.launch ├── bringup_min.launch ├── hitch.launch ├── sim_odometry.launch ├── tractor_sim.launch └── world.launch ├── models ├── big_asphalt_plane │ ├── materials │ │ ├── scripts │ │ │ └── asphalt.material │ │ └── textures │ │ │ └── tarmac.png │ ├── model-1_4.sdf │ ├── model.config │ ├── model.sdf │ └── model.tar.gz ├── olin │ ├── meshes │ │ ├── full_campus.dae │ │ └── full_campus │ │ │ ├── IMG_2198.jpg │ │ │ ├── IMG_2199.jpg │ │ │ ├── IMG_2202_wh_4N_window_upper.jpg │ │ │ ├── IMG_2206.jpg │ │ │ ├── IMG_2221.jpg │ │ │ ├── IMG_2232.jpg │ │ │ ├── IMG_2233.jpg │ │ │ ├── IMG_2236.jpg │ │ │ ├── IMG_2239.jpg │ │ │ ├── IMG_2246_2248_WH_EW_EastFace.jpg │ │ │ ├── IMG_2251.jpg │ │ │ ├── IMG_2252.jpg │ │ │ ├── IMG_2256.jpg │ │ │ ├── IMG_2257.jpg │ │ │ ├── IMG_2460l.jpg │ │ │ ├── IMG_2460r.jpg │ │ │ ├── IMG_2475.jpg │ │ │ ├── IMG_2476.jpg │ │ │ ├── ac.logo.jpg │ │ │ ├── ac.stairs.plot.jpg │ │ │ ├── ac_4f.jpg │ │ │ ├── ac_plot_f23.jpg │ │ │ ├── acwin.jpg │ │ │ ├── bac.face.jpg │ │ │ ├── backface.jpg │ │ │ ├── brick.red.jpg │ │ │ ├── brick.tan.dark.jpg │ │ │ ├── brick.tan.light.jpg │ │ │ ├── bricks.ac.tan.jpg │ │ │ ├── bricks.tan.med.jpg │ │ │ ├── cc_front.jpg │ │ │ ├── cc_logo.jpg │ │ │ ├── cc_powerplant_babsonside.jpg │ │ │ ├── center_part.jpg │ │ │ ├── door_to_ac.jpg │ │ │ ├── door_to_cc.jpg │ │ │ ├── door_to_flags1.jpg │ │ │ ├── door_to_plot.jpg │ │ │ ├── east_face.jpg │ │ │ ├── east_side_next_to_lounge.jpg │ │ │ ├── eastbycore.jpg │ │ │ ├── eastend_main.jpg │ │ │ ├── eastside_slate.jpg │ │ │ ├── eastside_windows.jpg │ │ │ ├── ehlogo.jpg │ │ │ ├── end_by_circle.jpg │ │ │ ├── faculty_bymain.jpg │ │ │ ├── faculty_circle.jpg │ │ │ ├── faculty_patio.jpg │ │ │ ├── grating.jpg │ │ │ ├── grating.red.jpg │ │ │ ├── lounge_west_side.jpg │ │ │ ├── main_face.jpg │ │ │ ├── main_top.jpg │ │ │ ├── north_part.jpg │ │ │ ├── northernmost_face.jpg │ │ │ ├── oc_logo.jpg │ │ │ ├── oc_main.jpg │ │ │ └── oc_stairs_windows.jpg │ ├── model.config │ ├── model.sdf │ └── model.tar.gz ├── sandbox1 │ ├── meshes │ │ └── sandbox.dae │ ├── model.config │ ├── model.sdf │ └── model.tar.gz └── terrain_test │ ├── meshes │ └── terrain_test.dae │ ├── model.config │ ├── model.sdf │ └── model.tar.gz ├── package.xml ├── scripts ├── ackermann_controller ├── gazebo_link_pose ├── hitch_controller └── hitch_plugin.cc └── worlds ├── gas_station.world ├── lpb.world └── olin.world /README.md: -------------------------------------------------------------------------------- 1 | # tractor_sim 2 | Package for simulating the Olin Robotics Lab Autonomous Tractor. For further project information, see the GRAVL main repository wiki: ([link](https://github.com/olinrobotics/gravl/wiki)) 3 | 4 | ## Setup 5 | Dependencies: 6 | + [GRAVL](https://github.com/olinrobotics/gravl) - for teleop and testing code 7 | + Follow setup instructions on the GRAVL wiki if you haven't already ([reference](https://github.com/olinrobotics/gravl/wiki)) 8 | + [tractor_sim_packages](https://github.com/olinrobotics/tractor_sim_packages) - packages for simulated localization and odometry 9 | + [velodyne_simulator](https://bitbucket.org/DataspeedInc/velodyne_simulator/src/master/) - packages for simulated 3D lidar 10 | 11 | Installation: 12 | + `cd ~/catkin_ws/src` 13 | + `git clone https://github.com/olinrobotics/tractor_sim.git` 14 | + `cd ..` 15 | + `rosdep install -iry --from-paths src` 16 | + `cd ~/catkin_ws/` 17 | + `catkin_make` 18 | 19 | To use the models included in this repo, copy the contents of the folder to `~/.gazebo/models` 20 | + `cd ~/catkin_ws/src/tractor_sim/tractor_sim_gazebo/models` 21 | + `cp -R . ~/.gazebo/models` 22 | 23 | ## Usage 24 | To run simulation: 25 | + `roslaunch tractor_sim_gazebo bringup.launch` 26 | 27 | ## ROS Topics 28 | + `/cmd_vel` - twist command for driving the tractor 29 | + `/cmd_hitch` - pose command for setting height of box blade ([reference](https://github.com/olinrobotics/state_controller/blob/master/README.md)) 30 | 31 | #### Sensor Topics 32 | + `/camera/image_raw` - camera feed 33 | + `/gps/fix` - rtk gps data 34 | + `/imu/data` - imu data 35 | + `/scan` - downward facing LiDar data 36 | 37 | #### Other Topics 38 | + `/odometry/filtered` - tractor odometry 39 | + `/laser_pointcloud` - generated pointcloud 40 | 41 | ## Troubleshooting 42 | If using the main launch file doesn't work for you, you can just run individual launch files to suit your needs 43 | To run simulation without external dependencies: 44 | + `roslaunch tractor_sim_gazebo bringup_min.launch` 45 | 46 | To run rviz: 47 | + `roslaunch tractor_sim_description tractor_sim_rviz.launch` 48 | 49 | To test code: 50 | + `rosrun gravl yourscript.py` (ex: `rosrun gravl LidarFollower.py`) 51 | 52 | To run simulation (without teleop, hitch controls, localization, or any extra code running) 53 | + `roslaunch tractor_sim_gazebo tractor_sim.launch` 54 | 55 | To run teleop (following https://github.com/olinrobotics/gravl/wiki/Kubo:-Overview): 56 | + `roslaunch gravl teleop.launch` 57 | + `roslaunch gravl mainstate.launch` 58 | 59 | To setup localization: 60 | + `roslaunch gravl localization.launch` 61 | 62 | To setup hitch commands: 63 | + `roslaunch tractor_sim_gazebo hitch.launch` 64 | 65 | 66 | ### Parameters 67 | + **tractor_delay** - either 0 or 1. If set to 1, then tractor will react instantaneously to commands. If set to 1, the tractor will simulate the delayed response time of the real tractor (Default: 1) 68 | + **max_acceleration** - maximum acceleration for the tractor Note: only works when tractor_delay is 0 (Default: 0.4) 69 | + **max_steering_angle_velocity** - maximum steering velocity Note: only works when tractor_delay is set to 0 (Default: 1) 70 | 71 | ## Known Issues 72 | + Running the launch file will throw the warning 73 | ``` 74 | [WARN] [1590601461.920958, 0.000000]: Controller Spawner couldn't find the expected controller_manager ROS interface. 75 | ``` 76 | if the controller spawner loads before gazebo loads, which is likely. To get around this, in the launch file the controller spawner's node has `respawn="true"`. Ideally, this should wait for gazebo to finish loading before starting the node so that the warning doesn't pop up, but this works for now. 77 | -------------------------------------------------------------------------------- /documentation/simulation.md: -------------------------------------------------------------------------------- 1 | TODO: figure out function of .yaml files 2 | 3 | [insert image of tractor sim] 4 | 5 | File structure 6 | 7 | + tractor sim - metapackage for tractor simulation 8 | + tractor_sim_description - contains all files that fully describe the simulated model of the tractor (appearance and physical qualities) and the tractor model launch file 9 | + tractor_sim_gazebo - contains the script `ackermann_controller` which determines how the tractor model functions in gazebo. Also contains gazebo launch file 10 | -------------------------------------------------------------------------------- /documentation/tractor_sim_parameters.xml: -------------------------------------------------------------------------------- 1 | 7VtJc+I4FP41HENZi7djZ+mZPkxNqjI13X1KCSzAFYMp22lI//qRsWS02GBADoQMBwo/ybL8PX1vkxigu/n6j4wsZ3+lEU0G0InWA3Q/gNBFIfsuBW+VIPCcSjDN4qgSga3gKf5NuVB0e40jmisdizRNinipCsfpYkHHhSIjWZau1G6TNFGfuiRTagiexiQxpd/jqJjxt3CdrfxPGk9n4snA4S0jMn6ZZunrgj9vANFk86ma50SMxfvnMxKlK0mEHgboLkvTovo1X9/RpIRWwFbd97WltZ53RhdFlxuwW93xiySvVEx5M7HiTYCxeR1a3uAM0O1qFhf0aUnGZeuKaZ/JZsU8YVeA/UzIiCa3NQp3aZJmrGmRLlj/20m6KLi2YVBex0kiupRQkcgnYybPiyx9oVLLCHuug1kLny7NCrpufWdQI8kWKE3ntMjeWBd+A4a4uoUvTuDz69VW1UioeiapWcgIX13TeugtwuwHB7lFQ45lwI+F0MCrAdVWCIFYvwJC5BgQ1n1kCJEVDEG/GDISBxFqwhAijF026G2WFqSI0wUTh44lTDVIYUdIPRuIwmtEFKJzQoquEdIbECiQYse0ncAHJqR+aAFS287qIiCFDh66ZwTV2w8qXURfyqiKXY0Tkudx5WBIVphiCV6GSfb2o1QFe0F++VO0reNCamJXP7nOqqfTyIjQDIzz9DUbi16cbmxSU1rI68UEXoJ1l5vPaMJ0/UudRhPU/AmPacwmWOtVMz6eoxmVavb8JjlE08YJ1HFc3YNWb2yMs9F7/dLdloJvLIXRakZp8hzFeWGsCra+C1XhGc3j32S06VCqcllOajNN93bg3jMJSeJpSZ4x0yVl5LoteRKzwPsLb5jHUVTevyeQbCFZnRHwSQzqQFtZPt5OQjpDJwh9K2vgxtWofQM07aWTSU5PVlxwHRxuMZTvw1cWCQwBZkmez799NXhwnSGU2j3/ODpDDw3rR2wGOugxFtkeGotmcpVsD96N7eG7sB12SCGPZfvJjD4bewEc+m7gQccLQs91NfZizFgnt+Lj2AtEnLGla1/8FFqV1Lyh54jkdAC9pGTjKGO/pkWtn3PzdVvuUkLlGylWPpLFUnWsMS9hNPYwskRjlcSeYLVdFndIZo5k8aVz1VNzSBdqaUxXMmrjIDfojYtmkjQq4owyV0kulYvcd1qmYUtK9XFpaOY8tp0pkF3pNor+wVVfh9RVW1fyNoXOWvp7VpL7nhYMMV+pa7C711Vz4LA/p2tmUpPPSXT/2ohupju2ia5Gzbuy5xNyZKeB6C2x0fsQnSVYauQNFXViz07kXeer9a5db0YAmQnWeFbqPX9O6GLKMP1UliC8MkuAOmwfnl4tC0PUWi9rshKPNIvZS5R6rzvosq4m45wlNJnqUE3C2WOGAPkhAg7COIBauN7ZEmA2jA+xGMo95CEWrYSZnwsrUaF9SSbhJAuAdm9gfbx6OTL3Zv/5+5EJ/v328L2D3tT9QXG2RdpM5KLu2mvaqFS3Mg87WNOq7+7HZPSgW2yKy5uSuMGWQKdd6103JRE+0kTLm7uNkFyw8cQq3ljPcjpnS9qOIRbeuQcb2FAXITl9TuLFy/XYvz08wWAI5Y9aIXYdNAykz44t+/PaRLMQ8vTt/uF/o6go23X2G0W/L6PYJYNNkniZt4EnaYvky+rg7CRel3CednCzw8kZC+AjTyVC7aH2oW/kisfAj82s8HPB7wUa/E2Lv+k4HbCx+nGPWduH3fXEOFRqL2rpBYTQSunFF9jX4/YWUGAzqbr4TU+z6nJyzQXvOYVpseYC9NOHN1qEYiW6wB1Ow0rs5ZBGJJ9tfD3YHdrvKrO2F2e7klstwAovLBdgUUuJ7J0OGoba8VF8ZOKAsToQ6m+fBR+W4FlcD5du0n1NCfX5z8Otts5soJ9rt6jP/k4Rd1XuRzj54IahHeWygYab8mbl/bWjiqyxrn+WHXrTupkzihKo8BqX6bLlc0rS+gLwZMe9+2gxc9wIeSc6bruO+dijw80MlRC8XBbWlTXh59CxDtNVBzLobJFqZvJ/SKXtooszu2l3wB87tUAINfzfy1LFml1u/6RbqXP7R2j08B8= -------------------------------------------------------------------------------- /tractor_sim/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(tractor_sim) 3 | find_package(catkin REQUIRED) 4 | catkin_metapackage() 5 | -------------------------------------------------------------------------------- /tractor_sim/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | tractor_sim 4 | 0.1.0 5 | 6 | tractor_sim contains a group of packages for simulating Olin College's 7 | robotic tractor 8 | 9 | 10 | Amy Phung 11 | 12 | 13 | Apache 2.0 14 | 28 | 29 | https://github.com/olinrobotics/gravl/wiki/Gazebo-Simulation 30 | https://github.com/olinrobotics/tractor_sim 31 | 32 | Amy Phung 33 | 34 | catkin 35 | 36 | tractor_sim_description 37 | tractor_sim_gazebo 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /tractor_sim_description/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(tractor_sim_description) 3 | find_package(catkin REQUIRED) 4 | catkin_package() 5 | 6 | install(DIRECTORY launch urdf DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}) 7 | -------------------------------------------------------------------------------- /tractor_sim_description/launch/tractor_sim.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 25 | 26 | 28 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /tractor_sim_description/launch/tractor_sim_rviz.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /tractor_sim_description/meshes/__auto_10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_description/meshes/__auto_10.jpg -------------------------------------------------------------------------------- /tractor_sim_description/meshes/__auto_20.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_description/meshes/__auto_20.jpg -------------------------------------------------------------------------------- /tractor_sim_description/meshes/__auto_30.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_description/meshes/__auto_30.JPG -------------------------------------------------------------------------------- /tractor_sim_description/meshes/__auto_32.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_description/meshes/__auto_32.jpg -------------------------------------------------------------------------------- /tractor_sim_description/meshes/__auto_35.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_description/meshes/__auto_35.jpg -------------------------------------------------------------------------------- /tractor_sim_description/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | tractor_sim_description 4 | 0.1.3 5 | 6 | tractor_sim_description contains the description (3D model, 7 | kinematics, mass, etc.) of a tractor with Ackermann steering. 8 | 9 | 10 | Amy Phung 11 | 12 | Apache 2.0 13 | 14 | https://github.com/olinrobotics/gravl/wiki/Gazebo-Simulation 15 | https://github.com/olinrobotics/tractor_sim 16 | 17 | Amy Phung 18 | 19 | catkin 20 | 21 | gazebo_ros_control 22 | hardware_interface 23 | joint_state_publisher 24 | robot_state_publisher 25 | rviz 26 | transmission_interface 27 | xacro 28 | velodyne_description 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /tractor_sim_description/rviz/amcl.rviz: -------------------------------------------------------------------------------- 1 | Panels: 2 | - Class: rviz/Displays 3 | Help Height: 78 4 | Name: Displays 5 | Property Tree Widget: 6 | Expanded: 7 | - /Global Options1 8 | - /Status1 9 | Splitter Ratio: 0.5 10 | Tree Height: 548 11 | - Class: rviz/Selection 12 | Name: Selection 13 | - Class: rviz/Tool Properties 14 | Expanded: 15 | - /2D Pose Estimate1 16 | - /2D Nav Goal1 17 | - /Publish Point1 18 | Name: Tool Properties 19 | Splitter Ratio: 0.5886790156364441 20 | - Class: rviz/Views 21 | Expanded: 22 | - /Current View1 23 | Name: Views 24 | Splitter Ratio: 0.5 25 | - Class: rviz/Time 26 | Experimental: false 27 | Name: Time 28 | SyncMode: 0 29 | SyncSource: Image 30 | Preferences: 31 | PromptSaveOnExit: true 32 | Toolbars: 33 | toolButtonStyle: 2 34 | Visualization Manager: 35 | Class: "" 36 | Displays: 37 | - Alpha: 0.5 38 | Cell Size: 1 39 | Class: rviz/Grid 40 | Color: 160; 160; 164 41 | Enabled: true 42 | Line Style: 43 | Line Width: 0.029999999329447746 44 | Value: Lines 45 | Name: Grid 46 | Normal Cell Count: 0 47 | Offset: 48 | X: 0 49 | Y: 0 50 | Z: 0 51 | Plane: XY 52 | Plane Cell Count: 10 53 | Reference Frame: 54 | Value: true 55 | - Alpha: 1 56 | Class: rviz/RobotModel 57 | Collision Enabled: false 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_link: 66 | Alpha: 1 67 | Show Axes: false 68 | Show Trail: false 69 | Value: true 70 | camera: 71 | Alpha: 1 72 | Show Axes: false 73 | Show Trail: false 74 | Value: true 75 | chassis: 76 | Alpha: 1 77 | Show Axes: false 78 | Show Trail: false 79 | Value: true 80 | gps: 81 | Alpha: 1 82 | Show Axes: false 83 | Show Trail: false 84 | Value: true 85 | hemisphere_gps: 86 | Alpha: 1 87 | Show Axes: false 88 | Show Trail: false 89 | Value: true 90 | hitch: 91 | Alpha: 1 92 | Show Axes: false 93 | Show Trail: false 94 | Value: true 95 | imu: 96 | Alpha: 1 97 | Show Axes: false 98 | Show Trail: false 99 | Value: true 100 | left_front_axle_carrier: 101 | Alpha: 1 102 | Show Axes: false 103 | Show Trail: false 104 | left_front_wheel: 105 | Alpha: 1 106 | Show Axes: false 107 | Show Trail: false 108 | Value: true 109 | left_rear_axle_carrier: 110 | Alpha: 1 111 | Show Axes: false 112 | Show Trail: false 113 | left_rear_wheel: 114 | Alpha: 1 115 | Show Axes: false 116 | Show Trail: false 117 | Value: true 118 | left_steering_link: 119 | Alpha: 1 120 | Show Axes: false 121 | Show Trail: false 122 | lidarx: 123 | Alpha: 1 124 | Show Axes: false 125 | Show Trail: false 126 | Value: true 127 | lidarx_base_link: 128 | Alpha: 1 129 | Show Axes: false 130 | Show Trail: false 131 | Value: true 132 | right_front_axle_carrier: 133 | Alpha: 1 134 | Show Axes: false 135 | Show Trail: false 136 | right_front_wheel: 137 | Alpha: 1 138 | Show Axes: false 139 | Show Trail: false 140 | Value: true 141 | right_rear_axle_carrier: 142 | Alpha: 1 143 | Show Axes: false 144 | Show Trail: false 145 | right_rear_wheel: 146 | Alpha: 1 147 | Show Axes: false 148 | Show Trail: false 149 | Value: true 150 | right_steering_link: 151 | Alpha: 1 152 | Show Axes: false 153 | Show Trail: false 154 | Name: RobotModel 155 | Robot Description: robot_description 156 | TF Prefix: "" 157 | Update Interval: 0 158 | Value: true 159 | Visual Enabled: true 160 | - Class: rviz/Image 161 | Enabled: true 162 | Image Topic: /kubo/camera/image_raw 163 | Max Value: 1 164 | Median window: 5 165 | Min Value: 0 166 | Name: Image 167 | Normalize Range: true 168 | Queue Size: 2 169 | Transport Hint: raw 170 | Unreliable: false 171 | Value: true 172 | Enabled: true 173 | Global Options: 174 | Background Color: 48; 48; 48 175 | Default Light: true 176 | Fixed Frame: base_link 177 | Frame Rate: 30 178 | Name: root 179 | Tools: 180 | - Class: rviz/Interact 181 | Hide Inactive Objects: true 182 | - Class: rviz/MoveCamera 183 | - Class: rviz/Select 184 | - Class: rviz/FocusCamera 185 | - Class: rviz/Measure 186 | - Class: rviz/SetInitialPose 187 | Theta std deviation: 0.2617993950843811 188 | Topic: /initialpose 189 | X std deviation: 0.5 190 | Y std deviation: 0.5 191 | - Class: rviz/SetGoal 192 | Topic: /move_base_simple/goal 193 | - Class: rviz/PublishPoint 194 | Single click: true 195 | Topic: /clicked_point 196 | Value: true 197 | Views: 198 | Current: 199 | Class: rviz/Orbit 200 | Distance: 9.574191093444824 201 | Enable Stereo Rendering: 202 | Stereo Eye Separation: 0.05999999865889549 203 | Stereo Focal Distance: 1 204 | Swap Stereo Eyes: false 205 | Value: false 206 | Focal Point: 207 | X: 0.2145584225654602 208 | Y: -0.027811307460069656 209 | Z: 0.2289138287305832 210 | Focal Shape Fixed Size: true 211 | Focal Shape Size: 0.05000000074505806 212 | Invert Z Axis: false 213 | Name: Current View 214 | Near Clip Distance: 0.009999999776482582 215 | Pitch: 0.5353979468345642 216 | Target Frame: 217 | Value: Orbit (rviz) 218 | Yaw: 2.1203975677490234 219 | Saved: ~ 220 | Window Geometry: 221 | Displays: 222 | collapsed: false 223 | Height: 1052 224 | Hide Left Dock: false 225 | Hide Right Dock: false 226 | Image: 227 | collapsed: false 228 | QMainWindow State: 000000ff00000000fd0000000400000000000001560000037efc0200000009fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d000002af000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb0000000a0049006d00610067006501000002f2000000c90000001600ffffff000000010000010f0000037efc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073010000003d0000037e000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000007800000003efc0100000002fb0000000800540069006d0065010000000000000780000002eb00fffffffb0000000800540069006d006501000000000000045000000000000000000000050f0000037e00000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 229 | Selection: 230 | collapsed: false 231 | Time: 232 | collapsed: false 233 | Tool Properties: 234 | collapsed: false 235 | Views: 236 | collapsed: false 237 | Width: 1920 238 | X: 1920 239 | Y: 0 240 | -------------------------------------------------------------------------------- /tractor_sim_description/urdf/.lidarx.urdf.xacro.swp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_description/urdf/.lidarx.urdf.xacro.swp -------------------------------------------------------------------------------- /tractor_sim_description/urdf/kubo.gazebo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | / 11 | 12 | 13 | 14 | 15 | 16 | Gazebo/Green 17 | 18 | 30.0 19 | 20 | 1.3962634 21 | 22 | 800 23 | 800 24 | R8G8B8 25 | 26 | 27 | 0.02 28 | 300 29 | 30 | 31 | 32 | true 33 | 0.0 34 | /camera 35 | image_raw 36 | camera_info 37 | camera 38 | 0.07 39 | 0.0 40 | 0.0 41 | 0.0 42 | 0.0 43 | 0.0 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 0 0 0 0 0 0 52 | true 53 | 40 54 | 55 | 56 | 57 | 720 58 | 1 59 | -0.78 60 | 0.78 61 | 63 | 64 | 65 | 66 | 0.10 67 | 30.0 68 | 0.01 69 | 70 | 71 | gaussian 72 | 76 | 0.0 77 | 0.01 78 | 79 | 80 | 81 | /scan_ust_10lx 82 | hokuyo-ust-10lx 83 | 84 | 85 | 86 | 87 | 88 | 89 | 0 0 0 0 0 0 90 | true 91 | 40 92 | 93 | 94 | 95 | 720 96 | 1 97 | -0.78 98 | 0.78 99 | 101 | 102 | 103 | 104 | 0.10 105 | 30.0 106 | 0.01 107 | 108 | 109 | gaussian 110 | 114 | 0.0 115 | 0.01 116 | 117 | 118 | 119 | /scan_uxm_30lx_e 120 | hokuyo-uxm-30lx-e 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 4.0 131 | hemisphere_gps 132 | sensor 133 | /hemisphere_gps/fix 134 | /hemisphere_gps/fix_velocity 135 | 42.2906565265 136 | -71.2598272749 137 | 90 138 | 17.3 139 | 0 0 0 140 | 0.001 0.001 0.001 141 | 0.05 0.05 0.05 142 | 0.001 0.001 0.001 143 | 0.5 0.5 0.5 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 4.0 154 | gps 155 | sensor 156 | /piksi/navsatfix_best_fix 157 | 158 | /gps/fix_velocity 159 | 42.2906565265 160 | -71.2598272749 161 | 163 | 17.3 164 | 0 165 | 0 0 0 166 | 0.00001 0.00001 0.00001 167 | 0.0005 0.0005 0.0005 168 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 197 | 198 | 199 | 200 | 201 | true 202 | imu 203 | /imu/data_raw 204 | imu_service 205 | 0.0 206 | 20.0 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | -------------------------------------------------------------------------------- /tractor_sim_description/urdf/kubo.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 65 | 66 | 67 | 68 | 79 | 80 | 81 | 82 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | Gazebo/Grey 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 150 | 151 | 152 | 153 | 154 | 155 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 179 | 181 | 183 | 185 | 186 | 187 | 190 | 191 | 194 | 197 | 200 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 239 | 240 | 241 | 242 | -------------------------------------------------------------------------------- /tractor_sim_description/urdf/kubo_macros.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 15 | 17 | 18 | 19 | 20 | 25 | 26 | 27 | 28 | 31 | 33 | 34 | 35 | 43 | 44 | 45 | 46 | 47 | 48 | 50 | 51 | 52 | 53 | 54 | 59 | 60 | 62 | 63 | 64 | transmission_interface/SimpleTransmission 65 | 66 | hardware_interface/EffortJointInterface 67 | 68 | 69 | 71 | hardware_interface/EffortJointInterface 72 | 1 73 | 74 | 75 | 76 | 77 | 79 | 80 | 81 | 82 | 83 | 88 | 89 | 91 | 92 | 93 | transmission_interface/SimpleTransmission 94 | 95 | hardware_interface/EffortJointInterface 96 | 97 | 98 | 100 | hardware_interface/EffortJointInterface 101 | 1 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | transmission_interface/SimpleTransmission 123 | 124 | hardware_interface/EffortJointInterface 125 | 126 | 127 | 129 | hardware_interface/EffortJointInterface 130 | 1 131 | 132 | 133 | 134 | 135 | 136 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 151 | 152 | 153 | 154 | 155 | 156 | 159 | 160 | 161 | 162 | 163 | 165 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 179 | 180 | 181 | transmission_interface/SimpleTransmission 182 | 183 | hardware_interface/EffortJointInterface 184 | 185 | 186 | 188 | hardware_interface/EffortJointInterface 189 | 1 190 | 191 | 192 | 193 | 198 | 199 | 200 | 201 | 203 | 206 | 211 | 212 | 213 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | -------------------------------------------------------------------------------- /tractor_sim_description/urdf/lidarx.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 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 | 0 0 0 0 0 0 63 | false 64 | ${hz} 65 | 66 | 67 | 68 | ${samples} 69 | 1 70 | ${min_angle} 71 | ${max_angle} 72 | 73 | 74 | ${lasers} 75 | 1 76 | -${20.0*M_PI/180.0} 77 | ${20.0*M_PI/180.0} 78 | 79 | 80 | 81 | ${collision_range} 82 | ${max_range+1} 83 | 0.001 84 | 85 | 86 | gaussian 87 | 0.0 88 | 0.0 89 | 90 | 91 | 92 | ${topic} 93 | ${name} 94 | ${min_range} 95 | ${max_range} 96 | ${noise} 97 | 98 | 99 | 100 | 101 | 102 | 103 | -------------------------------------------------------------------------------- /tractor_sim_gazebo/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # CMakeLists.txt 2 | # 3 | # Copyright (c) 2015 Wunderkammer Laboratory 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | cmake_minimum_required(VERSION 2.8.3) 18 | project(tractor_sim_gazebo) 19 | find_package(catkin REQUIRED) 20 | catkin_package() 21 | 22 | catkin_install_python(PROGRAMS scripts/ackermann_controller 23 | DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}) 24 | install(DIRECTORY config launch 25 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}) 26 | 27 | find_package(roscpp REQUIRED) 28 | find_package(std_msgs REQUIRED) 29 | include_directories(${roscpp_INCLUDE_DIRS}) 30 | include_directories(${std_msgs_INCLUDE_DIRS}) 31 | find_package(gazebo REQUIRED) 32 | include_directories(${GAZEBO_INCLUDE_DIRS}) 33 | link_directories(${GAZEBO_LIBRARY_DIRS}) 34 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GAZEBO_CXX_FLAGS}") 35 | 36 | add_library(hitch_plugin SHARED scripts/hitch_plugin.cc) 37 | target_link_libraries(hitch_plugin ${GAZEBO_LIBRARIES}) 38 | target_link_libraries(hitch_plugin ${GAZEBO_LIBRARIES} ${roscpp_LIBRARIES}) 39 | -------------------------------------------------------------------------------- /tractor_sim_gazebo/config/kubo_ackermann_ctrlr_params.yaml: -------------------------------------------------------------------------------- 1 | # kubo_ackermann_ctrlr_params.yaml 2 | # 3 | # Copyright (c) 2013 Wunderkammer Laboratory 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | left_front_wheel: 18 | steering_link_name: left_front_wheel 19 | steering_controller_name: left_steering_ctrlr 20 | axle_controller_name: left_front_axle_ctrlr 21 | diameter: 0.7366 22 | 23 | right_front_wheel: 24 | steering_link_name: right_front_wheel 25 | steering_controller_name: right_steering_ctrlr 26 | axle_controller_name: right_front_axle_ctrlr 27 | diameter: 0.7366 28 | 29 | left_rear_wheel: 30 | link_name: left_rear_wheel 31 | axle_controller_name: left_rear_axle_ctrlr 32 | diameter: 0.7366 33 | 34 | right_rear_wheel: 35 | link_name: right_rear_wheel 36 | axle_controller_name: right_rear_axle_ctrlr 37 | diameter: 0.7366 38 | -------------------------------------------------------------------------------- /tractor_sim_gazebo/config/kubo_joint_ctrlr_params.yaml: -------------------------------------------------------------------------------- 1 | # kubo_joint_ctrlr_params.yaml 2 | # 3 | # Copyright (c) 2013-2014 Wunderkammer Laboratory 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | # Publish the joint states to joint_states. 18 | joint_state_ctrlr: 19 | type: joint_state_controller/JointStateController 20 | publish_rate: 30 21 | 22 | left_steering_ctrlr: 23 | joint: left_steering_joint 24 | type: effort_controllers/JointPositionController 25 | pid: {p: 4.0, i: 0.0, d: 1.0} 26 | right_steering_ctrlr: 27 | joint: right_steering_joint 28 | type: effort_controllers/JointPositionController 29 | pid: {p: 4.0, i: 0.0, d: 1.0} 30 | 31 | left_front_axle_ctrlr: 32 | joint: left_front_axle 33 | type: effort_controllers/JointVelocityController 34 | pid: {p: 1.5, i: 1.0, d: 0.0, i_clamp: 10.0} 35 | right_front_axle_ctrlr: 36 | joint: right_front_axle 37 | type: effort_controllers/JointVelocityController 38 | pid: {p: 1.5, i: 1.0, d: 0.0, i_clamp: 10.0} 39 | left_rear_axle_ctrlr: 40 | joint: left_rear_axle 41 | type: effort_controllers/JointVelocityController 42 | pid: {p: 1.5, i: 1.0, d: 0.0, i_clamp: 10.0} 43 | right_rear_axle_ctrlr: 44 | joint: right_rear_axle 45 | type: effort_controllers/JointVelocityController 46 | pid: {p: 1.5, i: 1.0, d: 0.0, i_clamp: 10.0} 47 | -------------------------------------------------------------------------------- /tractor_sim_gazebo/launch/bringup.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /tractor_sim_gazebo/launch/bringup_min.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /tractor_sim_gazebo/launch/hitch.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 10 | 12 | 14 | 15 | -------------------------------------------------------------------------------- /tractor_sim_gazebo/launch/sim_odometry.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /tractor_sim_gazebo/launch/tractor_sim.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 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 | 65 | 66 | 68 | 72 | 73 | 74 | 75 | 76 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 90 | 92 | 93 | 94 | 95 | 96 | -------------------------------------------------------------------------------- /tractor_sim_gazebo/launch/world.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/big_asphalt_plane/materials/scripts/asphalt.material: -------------------------------------------------------------------------------- 1 | material vrc/asphalt 2 | { 3 | technique 4 | { 5 | pass 6 | { 7 | ambient 0.5 0.5 0.5 1.0 8 | diffuse 0.5 0.5 0.5 1.0 9 | specular 0.2 0.2 0.2 1.0 12.5 10 | 11 | texture_unit 12 | { 13 | texture tarmac.png 14 | filtering anistropic 15 | max_anisotropy 16 16 | scale 0.1 0.1 17 | } 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/big_asphalt_plane/materials/textures/tarmac.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/big_asphalt_plane/materials/textures/tarmac.png -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/big_asphalt_plane/model-1_4.sdf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | true 5 | 6 | 7 | 8 | 9 | 50 50 .1 10 | 11 | 12 | 13 | 14 | false 15 | 16 | 17 | 50 50 .1 18 | 19 | 20 | 21 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/big_asphalt_plane/model.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Big Asphalt Plane 5 | 1.0 6 | model-1_4.sdf 7 | model.sdf 8 | 9 | 10 | Thomas Koletschka 11 | thomas.koletschka@gmail.com 12 | 13 | 14 | 15 | An asphalt textured plane. 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/big_asphalt_plane/model.sdf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | true 5 | 6 | 7 | 8 | 9 | 50 50 .1 10 | 11 | 12 | 13 | 14 | false 15 | 16 | 17 | 50 50 .1 18 | 19 | 20 | 21 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/big_asphalt_plane/model.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/big_asphalt_plane/model.tar.gz -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/IMG_2198.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/IMG_2198.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/IMG_2199.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/IMG_2199.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/IMG_2202_wh_4N_window_upper.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/IMG_2202_wh_4N_window_upper.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/IMG_2206.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/IMG_2206.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/IMG_2221.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/IMG_2221.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/IMG_2232.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/IMG_2232.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/IMG_2233.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/IMG_2233.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/IMG_2236.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/IMG_2236.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/IMG_2239.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/IMG_2239.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/IMG_2246_2248_WH_EW_EastFace.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/IMG_2246_2248_WH_EW_EastFace.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/IMG_2251.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/IMG_2251.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/IMG_2252.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/IMG_2252.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/IMG_2256.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/IMG_2256.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/IMG_2257.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/IMG_2257.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/IMG_2460l.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/IMG_2460l.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/IMG_2460r.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/IMG_2460r.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/IMG_2475.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/IMG_2475.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/IMG_2476.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/IMG_2476.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/ac.logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/ac.logo.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/ac.stairs.plot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/ac.stairs.plot.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/ac_4f.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/ac_4f.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/ac_plot_f23.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/ac_plot_f23.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/acwin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/acwin.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/bac.face.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/bac.face.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/backface.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/backface.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/brick.red.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/brick.red.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/brick.tan.dark.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/brick.tan.dark.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/brick.tan.light.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/brick.tan.light.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/bricks.ac.tan.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/bricks.ac.tan.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/bricks.tan.med.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/bricks.tan.med.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/cc_front.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/cc_front.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/cc_logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/cc_logo.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/cc_powerplant_babsonside.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/cc_powerplant_babsonside.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/center_part.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/center_part.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/door_to_ac.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/door_to_ac.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/door_to_cc.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/door_to_cc.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/door_to_flags1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/door_to_flags1.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/door_to_plot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/door_to_plot.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/east_face.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/east_face.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/east_side_next_to_lounge.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/east_side_next_to_lounge.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/eastbycore.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/eastbycore.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/eastend_main.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/eastend_main.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/eastside_slate.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/eastside_slate.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/eastside_windows.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/eastside_windows.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/ehlogo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/ehlogo.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/end_by_circle.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/end_by_circle.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/faculty_bymain.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/faculty_bymain.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/faculty_circle.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/faculty_circle.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/faculty_patio.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/faculty_patio.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/grating.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/grating.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/grating.red.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/grating.red.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/lounge_west_side.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/lounge_west_side.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/main_face.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/main_face.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/main_top.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/main_top.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/north_part.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/north_part.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/northernmost_face.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/northernmost_face.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/oc_logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/oc_logo.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/oc_main.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/oc_main.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/meshes/full_campus/oc_stairs_windows.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/meshes/full_campus/oc_stairs_windows.jpg -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/model.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Olin 5 | 1.0 6 | model.sdf 7 | 8 | 9 | Amy Phung 10 | amy.phung@students.olin.edu 11 | 12 | 13 | 14 | A model of the Olin College campus. 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/model.sdf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | true 5 | 6 | 7 | 8 | 9 | 10 | 11 | model://olin/meshes/full_campus.dae 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/olin/model.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/olin/model.tar.gz -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/sandbox1/model.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Sandbox1 5 | 1.0 6 | model.sdf 7 | 8 | 9 | Amy Phung 10 | amy.phung@students.olin.edu 11 | 12 | 13 | 14 | A model of the test sandbox. 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/sandbox1/model.sdf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | true 5 | 6 | 7 | 8 | 9 | 1 1 1 10 | model://sandbox1/meshes/sandbox.dae 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 1 1 1 19 | model://sandbox1/meshes/sandbox.dae 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/sandbox1/model.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/sandbox1/model.tar.gz -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/terrain_test/meshes/terrain_test.dae: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Blender User 6 | Blender 2.79.0 commit date:2018-03-22, commit time:14:10, hash:f4dc9f9d68b 7 | 8 | 2019-03-15T17:57:59 9 | 2019-03-15T17:57:59 10 | 11 | Z_UP 12 | 13 | 14 | 15 | 16 | 17 | 18 | 49.13434 19 | 1.777778 20 | 0.1 21 | 100 22 | 23 | 24 | 25 | 26 | 27 | 0 28 | 0 29 | 0 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 1 1 1 39 | 1 40 | 0 41 | 0.00111109 42 | 43 | 44 | 45 | 46 | 0 47 | 0 48 | 8192 49 | 1 50 | 1 51 | 1 52 | 1 53 | 0 54 | 0 55 | 0 56 | 1 57 | 29.99998 58 | 75 59 | 0.15 60 | 1 61 | 0 62 | 1 63 | 2 64 | 1.000799 65 | 30.002 66 | 1 67 | 3 68 | 0.04999995 69 | 2880 70 | 3 71 | 1 72 | 0 73 | 0 74 | 2 75 | 1 76 | 1 77 | 1 78 | 0 79 | 1 80 | 0.1 81 | 0.1 82 | 1 83 | 0.000999987 84 | 1 85 | 0 86 | 0 87 | 1 88 | 1 89 | 1 90 | 1 91 | 1 92 | 1 93 | 1 94 | 2 95 | 1 96 | 1 97 | 1 98 | 1 99 | 0 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 0 0 0 1 112 | 113 | 114 | 0 0 0 1 115 | 116 | 117 | 0.64 0.4672421 0.03691889 1 118 | 119 | 120 | 0.5 0.5 0.5 1 121 | 122 | 123 | 50 124 | 125 | 126 | 1 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 0 0 0 1 138 | 139 | 140 | 0 0 0 1 141 | 142 | 143 | 0.64 0.3327945 0.4149007 1 144 | 145 | 146 | 0.5 0.5 0.5 1 147 | 148 | 149 | 50 150 | 151 | 152 | 1 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 19.97459 0 3.048 0 0 3.048 0 0 0 19.97459 0 0 1.608667 0.4826 0 5.859612 0.4173508 0 6.014707 0.4065754 0 9.172893 0.4065595 0 2.699858 0.41291 0 2.838257 0.4070284 0 2.509355 0.4526162 0 4.319831 0.4103091 0 4.457147 0.4082186 0 7.447551 0.4186211 0 7.597489 0.4064099 0 18.36592 0.4826 3.048 18.36592 0.4826 0 17.57225 0.4838884 0 17.30365 0.4168618 0 9.315299 0.4155804 0 10.79359 0.406441 0 17.16104 0.4064372 0 15.58372 0.4064673 0 13.97671 0.4064001 0 12.38883 0.4064345 0 1.608667 0.4826 3.048 4.457147 0.4082186 3.048 4.319831 0.4103091 3.048 9.172893 0.4065595 3.048 6.014707 0.4065754 3.048 7.597489 0.4064099 3.048 2.509355 0.4526162 3.048 2.699858 0.41291 3.048 2.838257 0.4070284 3.048 17.57225 0.4838884 3.048 17.30365 0.4168618 3.048 10.79359 0.406441 3.048 9.315299 0.4155804 3.048 13.97671 0.4064001 3.048 12.53493 0.4199385 3.048 12.38883 0.4064345 3.048 15.58372 0.4064673 3.048 17.16104 0.4064372 3.048 13.82776 0.4191985 0 14.1189 0.4179657 3.048 14.1189 0.4179657 0 15.43208 0.4178378 0 13.82776 0.4191985 3.048 15.43208 0.4178378 3.048 7.739607 0.4186791 3.048 7.739607 0.4186791 0 7.447551 0.4186211 3.048 6.167312 0.4228096 3.048 12.23743 0.4182828 0 12.53493 0.4199385 0 12.23743 0.4182828 3.048 17.01357 0.4202227 0 17.01357 0.4202227 3.048 10.64195 0.4182097 0 10.94011 0.4201284 3.048 10.94011 0.4201284 0 10.64195 0.4182097 3.048 15.72665 0.4199132 3.048 15.72665 0.4199132 0 9.026988 0.4214416 0 9.026988 0.4214416 3.048 6.167312 0.4228096 0 5.859612 0.4173508 3.048 2.984033 0.424439 3.048 2.984033 0.424439 0 4.613394 0.4314032 3.048 4.613394 0.4314032 0 4.14384 0.442368 0 4.14384 0.442368 3.048 9.586967 0.4821963 3.048 9.586967 0.4821963 0 10.41762 0.473221 0 10.41762 0.473221 3.048 5.599404 0.4823256 0 5.599404 0.4823256 3.048 4.868638 0.50279 3.048 5.190493 0.5587521 3.048 5.074782 0.5497964 3.048 15.16925 0.4840445 0 14.35053 0.4749433 0 15.16925 0.4840445 3.048 14.35053 0.4749433 3.048 11.97516 0.484714 0 11.97516 0.484714 3.048 7.220156 0.4748921 0 7.220156 0.4748921 3.048 6.430368 0.4927439 3.048 6.805614 0.5587388 3.048 6.653318 0.5471801 3.048 7.953046 0.4708459 3.048 7.953046 0.4708459 0 13.59599 0.4772492 0 13.59599 0.4772492 3.048 15.96111 0.4793244 3.048 15.96111 0.4793244 0 12.80316 0.4894862 3.048 12.80316 0.4894862 0 13.18188 0.5587956 0 13.32525 0.5465396 0 11.20797 0.4897091 3.048 11.20797 0.4897091 0 16.77365 0.4815037 0 16.77365 0.4815037 3.048 8.776658 0.4867055 0 8.776658 0.4867055 3.048 6.430368 0.4927439 0 3.354598 0.5250301 3.048 3.354598 0.5250301 0 4.868638 0.50279 0 3.818355 0.5331433 0 3.818355 0.5331433 3.048 2.253669 0.525765 0 2.253669 0.525765 3.048 8.219259 0.5419664 3.048 8.219259 0.5419664 0 10.15338 0.5430827 0 10.15338 0.5430827 3.048 6.953269 0.5445561 0 6.953269 0.5445561 3.048 14.60827 0.5429494 3.048 14.60827 0.5429494 0 13.32525 0.5465396 3.048 13.03206 0.5463765 3.048 16.20741 0.5435318 3.048 16.20741 0.5435318 0 16.49559 0.549817 0 16.35308 0.5586101 0 16.49559 0.549817 3.048 16.35308 0.5586101 3.048 9.848197 0.5476566 3.048 9.848197 0.5476566 0 10.00239 0.5586655 0 10.00239 0.5586655 3.048 5.328976 0.5491136 0 5.190493 0.5587521 0 5.074782 0.5497964 0 5.328976 0.5491136 3.048 18.12985 0.5436579 0 18.12985 0.5436579 3.048 1.811742 0.5372364 0 1.811742 0.5372364 3.048 17.83097 0.5481398 3.048 17.83097 0.5481398 0 17.98489 0.5586098 0 17.98489 0.5586098 3.048 14.89566 0.5503745 0 14.75331 0.5585204 0 14.89566 0.5503745 3.048 14.75331 0.5585204 3.048 11.72891 0.5466063 0 11.43647 0.5464316 0 11.72891 0.5466063 3.048 11.43647 0.5464316 3.048 8.505628 0.5512191 0 8.3634 0.5583387 0 8.505628 0.5512191 3.048 8.3634 0.5583387 3.048 13.03206 0.5463765 0 6.653318 0.5471801 0 3.527692 0.5554244 3.048 3.527692 0.5554244 0 3.664783 0.5565985 0 3.664783 0.5565985 3.048 2.090126 0.554818 0 1.95294 0.5570393 0 2.090126 0.554818 3.048 1.95294 0.5570393 3.048 6.805614 0.5587388 0 13.18188 0.5587956 3.048 11.58625 0.5587946 3.048 11.58625 0.5587946 0 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 0 -1 0 -0.2873479 0.9578264 0 0 0 -1 0.2873485 0.9578262 0 0.287348 0.9578263 0 0 0 1 3.73041e-7 0 1 -4.93716e-7 0 1 4.0156e-7 0 1 -8.19319e-7 0 1 6.25848e-7 0 1 4.72363e-7 0 1 0.08560979 0.9963288 0 -0.08107286 0.9967082 0 -4.53309e-7 0 1 -4.89982e-7 0 1 4.07519e-7 0 1 0.08117312 0.9967001 0 -0.08601111 0.9962942 0 -0.08601182 0.9962942 0 0 0 1 3.85886e-7 0 1 0.07801938 0.9969519 0 -0.09203267 0.995756 0 -0.09203112 0.9957562 0 0.07802194 0.9969517 0 0 0 1 0.09307485 0.9956592 0 -0.072905 0.997339 0 -0.07290369 0.9973391 0 0.09307801 0.9956588 0 2.08845e-7 0 1 0.07737696 0.997002 0 -0.09301096 0.9956651 0 -0.09300941 0.9956653 0 4.65324e-7 0 1 0.07476872 0.9972009 0 -0.09366512 0.9956038 0 0.07476997 0.9972009 0 -4.31681e-7 0 1 0.1014711 0.9948385 0 -0.06321984 0.9979997 0 -0.0632193 0.9979997 0 0.101472 0.9948385 0 0.06930965 0.9975952 0 -0.1057837 0.9943892 0 0.04245865 0.9990983 0 -0.1185902 0.9929433 0 -0.1185907 0.9929433 0 0.01522213 0.9998842 0 -0.1467764 0.9891697 0 -0.146777 0.9891696 0 0.01522225 0.9998841 0 0.1792126 0.9838104 0 0.1792132 0.9838104 0 -1.84706e-7 0 1 0.2040441 0.9789617 0 0.2040437 0.9789618 0 -0.2381561 0.9712269 0 -0.2381541 0.9712275 0 4.05082e-7 0 1 -5.15852e-7 0 1 -0.2421091 0.9702491 0 -0.2421134 0.9702481 0 0.2422655 0.97021 0 0.2422633 0.9702106 0 0 0 1 0.2442699 0.9697074 0 0.2442721 0.9697068 0 0 0 1 -0.238857 0.9710547 0 0.2381646 0.9712248 0 0.2381659 0.9712245 0 0.2455407 0.9693863 0 0 0 1 0.2402136 0.9707201 0 0 0 1 4.14513e-7 0 1 -0.2374222 0.9714065 0 -0.2374235 0.9714062 0 -4.47691e-7 0 1 0.2429587 0.9700367 0 0.2429562 0.9700372 0 -2.42539e-7 0 1 -0.2456314 0.9693634 0 -0.2456339 0.9693627 0 -0.2509909 0.9679895 0 -0.2509931 0.9679889 0 -0.2514214 0.9678778 0 -0.2514236 0.9678772 0 0.2474771 0.9688938 0 0.2474746 0.9688944 0 0.2522791 0.9676545 0 0.2522779 0.9676548 0 -0.2569283 0.9664305 0 -0.2569295 0.9664302 0 -0.2619733 0.9650751 0 -0.2693434 0.9630443 0 -0.2693447 0.9630439 0 0.2686406 0.9632406 0 0.275053 0.9614291 0 0.2750536 0.9614289 0 -0.2581043 0.9661171 0 -0.2581055 0.9661168 0 0.2556031 0.9667818 0 0.255602 0.9667822 0 -2.00791e-7 0 1 0.2525617 0.9675809 0 0.2525628 0.9675806 0 -0.2551267 0.9669076 0 -0.255129 0.9669072 0 5.58808e-7 0 1 0.2479376 0.968776 0 1.55526e-7 0 1 -0.2522591 0.9676598 0 -0.2522567 0.9676604 0 0.2385855 0.9711216 0 0.2385835 0.9711221 0 -4.08781e-6 0 1 1.69585e-6 0 1 -0.2430691 0.9700091 0 0.2397674 0.9708305 0 0.2397664 0.9708307 0 0.2503925 0.9681445 0 0.2503975 0.9681431 0 -5.60855e-7 0 1 -0.2598067 0.9656606 0 -0.259806 0.9656609 0 -0.2410256 0.9705188 0 -0.2410278 0.9705182 0 1.753e-6 0 1 0.2356156 0.9718464 0 0.2356136 0.9718469 0 0.2437549 0.9698369 0 0.2437573 0.9698363 0 -3.33673e-7 0 1 1.64268e-6 0 1 0.2315614 0.9728203 0 0.2315624 0.9728201 0 -0.2411932 0.9704772 0 -0.2411907 0.9704778 0 -0.2409272 0.9705433 0 -0.2371957 0.971462 0 -0.2371944 0.9714622 0 -0.2223207 0.9749737 0 -0.2223194 0.9749739 0 -0.1729484 0.9849309 0 -0.1729478 0.984931 0 0.1749095 0.9845846 0 0.1749089 0.9845847 0 0.1509793 0.9885369 0 0.1509799 0.9885369 0 -0.13889 0.9903078 0 -0.1388897 0.9903079 0 -0.1128591 0.993611 0 -0.1067402 0.994287 0 0.1026612 0.9947164 0 0.1026604 0.9947165 0 -0.1029582 0.9946857 0 0.1026068 0.994722 0 0.1026034 0.9947224 0 0.09561282 0.9954186 0 0.09561365 0.9954186 0 -0.08261179 0.9965818 0 -0.08226311 0.9966107 0 -0.08226174 0.9966108 0 0.08517855 0.9963658 0 0.08512705 0.9963702 0 0.08512854 0.99637 0 -0.07567852 0.9971324 0 -0.07121545 0.997461 0 -0.06786441 0.9976946 0 -0.06786227 0.9976947 0 0.06943249 0.9975867 0 0.06943285 0.9975866 0 -0.07716715 0.9970182 0 -0.07716673 0.9970183 0 0.06158334 0.998102 0 0.05713504 0.9983665 0 0.05713307 0.9983667 0 0.0499947 0.9987496 0 0.04999512 0.9987496 0 0.01618957 0.999869 0 0.01618951 0.999869 0 -0.008563995 0.9999634 0 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 |

0 0 1 0 2 0 3 0 0 0 2 0 1 1 4 1 2 1 5 2 6 2 2 2 7 2 3 2 2 2 8 2 9 2 2 2 10 2 8 2 2 2 4 2 10 2 2 2 9 2 11 2 2 2 11 2 12 2 2 2 12 2 5 2 2 2 6 2 13 2 2 2 13 2 14 2 2 2 14 2 7 2 2 2 15 3 0 3 3 3 16 4 15 4 3 4 17 2 16 2 3 2 18 2 17 2 3 2 7 2 19 2 3 2 19 2 20 2 3 2 21 2 18 2 3 2 22 2 21 2 3 2 23 2 22 2 3 2 24 2 23 2 3 2 20 2 24 2 3 2 25 1 4 1 1 1 26 5 27 5 1 5 0 5 28 5 1 5 29 5 26 5 1 5 30 5 29 5 1 5 28 6 30 6 1 6 31 7 25 7 1 7 32 5 31 5 1 5 33 5 32 5 1 5 27 8 33 8 1 8 34 9 35 9 0 9 15 10 34 10 0 10 36 5 37 5 0 5 37 5 28 5 0 5 38 11 39 11 0 11 39 5 40 5 0 5 40 5 36 5 0 5 41 5 38 5 0 5 42 5 41 5 0 5 35 5 42 5 0 5 43 12 38 12 23 12 38 13 44 13 23 13 44 13 45 13 23 13 45 2 46 2 23 2 24 2 43 2 23 2 46 2 22 2 23 2 43 12 47 12 38 12 47 14 39 14 38 14 48 15 44 15 38 15 41 16 48 16 38 16 13 17 30 17 14 17 30 18 49 18 14 18 49 19 50 19 14 19 50 2 7 2 14 2 13 17 51 17 30 17 52 20 29 20 30 20 51 5 52 5 30 5 28 21 49 21 30 21 53 22 40 22 24 22 40 23 39 23 24 23 39 24 54 24 24 24 54 2 43 2 24 2 20 2 53 2 24 2 53 25 55 25 40 25 55 26 36 26 40 26 56 27 42 27 21 27 42 28 35 28 21 28 35 29 18 29 21 29 22 2 56 2 21 2 56 30 57 30 42 30 57 31 41 31 42 31 58 32 36 32 20 32 36 33 59 33 20 33 59 34 60 34 20 34 19 2 58 2 20 2 60 2 53 2 20 2 58 32 61 32 36 32 55 5 59 5 36 5 61 35 37 35 36 35 46 36 41 36 22 36 41 37 62 37 22 37 62 37 63 37 22 37 63 2 56 2 22 2 46 38 48 38 41 38 57 39 62 39 41 39 64 40 28 40 7 40 28 41 37 41 7 41 37 42 19 42 7 42 50 2 64 2 7 2 64 43 65 43 28 43 65 5 49 5 28 5 5 44 29 44 6 44 29 45 52 45 6 45 52 45 66 45 6 45 66 2 13 2 6 2 5 44 67 44 29 44 67 5 26 5 29 5 8 46 33 46 9 46 33 47 68 47 9 47 68 48 69 48 9 48 69 2 11 2 9 2 8 46 32 46 33 46 27 5 68 5 33 5 11 49 26 49 12 49 26 50 70 50 12 50 70 51 71 51 12 51 71 2 5 2 12 2 11 52 27 52 26 52 67 5 70 5 26 5 72 53 27 53 11 53 69 2 72 2 11 2 72 54 73 54 27 54 73 55 68 55 27 55 10 56 32 56 8 56 10 57 31 57 32 57 37 58 74 58 19 58 74 59 75 59 19 59 75 2 76 2 19 2 76 2 58 2 19 2 61 60 77 60 37 60 77 61 74 61 37 61 35 62 34 62 18 62 34 63 17 63 18 63 78 64 67 64 5 64 71 2 78 2 5 2 78 65 79 65 67 65 80 66 70 66 67 66 79 5 81 5 67 5 81 5 82 5 67 5 82 5 80 5 67 5 83 67 48 67 46 67 45 2 84 2 46 2 84 2 83 2 46 2 83 68 85 68 48 68 85 5 86 5 48 5 86 69 44 69 48 69 44 70 86 70 45 70 86 70 84 70 45 70 76 71 61 71 58 71 76 72 77 72 61 72 87 73 55 73 53 73 60 2 87 2 53 2 87 73 88 73 55 73 88 74 59 74 55 74 89 75 51 75 13 75 66 2 89 2 13 2 89 75 90 75 51 75 91 76 52 76 51 76 90 5 92 5 51 5 92 5 93 5 51 5 93 77 91 77 51 77 49 78 94 78 50 78 94 79 95 79 50 79 95 2 64 2 50 2 65 80 94 80 49 80 96 81 47 81 43 81 54 2 96 2 43 2 96 82 97 82 47 82 97 83 39 83 47 83 62 84 98 84 63 84 98 85 99 85 63 85 99 2 56 2 63 2 57 5 98 5 62 5 39 86 100 86 54 86 100 87 101 87 54 87 101 2 102 2 54 2 102 2 103 2 54 2 103 2 96 2 54 2 97 5 100 5 39 5 59 88 104 88 60 88 104 89 105 89 60 89 105 2 87 2 60 2 88 5 104 5 59 5 106 90 57 90 56 90 99 2 106 2 56 2 106 91 107 91 57 91 107 5 98 5 57 5 108 92 65 92 64 92 95 2 108 2 64 2 108 93 109 93 65 93 109 5 94 5 65 5 52 94 91 94 66 94 91 95 110 95 66 95 110 2 89 2 66 2 68 96 111 96 69 96 111 96 112 96 69 96 112 2 72 2 69 2 73 5 111 5 68 5 70 97 80 97 71 97 80 98 113 98 71 98 113 2 78 2 71 2 114 99 73 99 72 99 112 2 114 2 72 2 114 99 115 99 73 99 115 5 111 5 73 5 116 100 31 100 10 100 4 2 116 2 10 2 116 101 117 101 31 101 117 5 25 5 31 5 94 102 118 102 95 102 118 103 119 103 95 103 119 2 108 2 95 2 109 5 118 5 94 5 120 104 77 104 76 104 75 2 120 2 76 2 120 105 121 105 77 105 121 106 74 106 77 106 122 107 90 107 89 107 110 2 122 2 89 2 122 108 123 108 90 108 123 5 92 5 90 5 86 109 124 109 84 109 124 110 125 110 84 110 125 2 83 2 84 2 85 111 124 111 86 111 103 112 97 112 96 112 103 112 126 112 97 112 127 113 100 113 97 113 126 5 127 5 97 5 98 114 128 114 99 114 128 115 129 115 99 115 129 2 106 2 99 2 107 5 128 5 98 5 130 116 107 116 106 116 131 2 130 2 106 2 129 2 131 2 106 2 130 117 132 117 107 117 132 118 133 118 107 118 133 119 128 119 107 119 74 120 134 120 75 120 134 120 135 120 75 120 135 2 136 2 75 2 136 2 120 2 75 2 137 5 134 5 74 5 121 5 137 5 74 5 138 121 79 121 78 121 139 2 138 2 78 2 140 2 139 2 78 2 113 2 140 2 78 2 138 122 141 122 79 122 141 5 81 5 79 5 142 123 15 123 16 123 142 124 143 124 15 124 144 2 116 2 4 2 17 2 142 2 16 2 117 5 145 5 25 5 143 125 34 125 15 125 25 126 145 126 4 126 145 127 144 127 4 127 34 128 146 128 17 128 146 129 147 129 17 129 147 2 148 2 17 2 148 2 142 2 17 2 143 130 149 130 34 130 149 5 146 5 34 5 150 131 85 131 83 131 151 2 150 2 83 2 125 2 151 2 83 2 150 132 152 132 85 132 152 5 153 5 85 5 153 5 124 5 85 5 154 133 88 133 87 133 155 2 154 2 87 2 105 2 155 2 87 2 154 134 156 134 88 134 157 135 104 135 88 135 156 136 157 136 88 136 158 137 109 137 108 137 159 2 158 2 108 2 119 2 159 2 108 2 158 138 160 138 109 138 160 5 161 5 109 5 161 5 118 5 109 5 100 139 127 139 101 139 127 140 162 140 101 140 162 2 102 2 101 2 104 141 157 141 105 141 157 141 155 141 105 141 91 142 93 142 110 142 93 143 163 143 110 143 163 2 122 2 110 2 80 144 82 144 113 144 82 145 140 145 113 145 111 146 164 146 112 146 164 147 165 147 112 147 165 2 166 2 112 2 166 2 114 2 112 2 167 5 164 5 111 5 115 5 167 5 111 5 168 148 117 148 116 148 169 2 168 2 116 2 144 2 169 2 116 2 168 149 170 149 117 149 170 5 171 5 117 5 171 5 145 5 117 5 166 150 115 150 114 150 166 151 167 151 115 151 145 152 171 152 144 152 171 153 169 153 144 153 118 154 161 154 119 154 161 154 159 154 119 154 124 155 153 155 125 155 153 155 151 155 125 155 136 156 121 156 120 156 136 157 137 157 121 157 128 158 133 158 129 158 133 158 131 158 129 158 148 159 143 159 142 159 148 160 149 160 143 160 172 161 123 161 122 161 163 2 172 2 122 2 172 162 92 162 123 162 127 163 173 163 162 163 173 163 102 163 162 163 126 5 173 5 127 5 157 164 174 164 155 164 174 165 175 165 155 165 175 2 154 2 155 2 156 5 174 5 157 5 102 166 126 166 103 166 102 166 173 166 126 166 175 167 156 167 154 167 175 168 174 168 156 168 93 169 92 169 163 169 92 169 172 169 163 169 134 170 137 170 135 170 137 170 136 170 135 170 146 171 149 171 147 171 149 172 148 172 147 172 139 173 141 173 138 173 139 174 81 174 141 174 82 175 81 175 140 175 81 176 139 176 140 176 131 177 132 177 130 177 131 177 133 177 132 177 151 178 152 178 150 178 151 179 153 179 152 179 159 180 160 180 158 180 159 181 161 181 160 181 169 182 170 182 168 182 169 183 171 183 170 183 164 184 167 184 165 184 167 184 166 184 165 184

197 |
198 |
199 |
200 | 201 | 202 | 203 | 39.77985 0 3.048 0 0 3.048 0 0 0 39.77985 0 0 3.132667 0.9398001 0 11.63325 0.809504 0 11.94124 0.787683 0 4.757879 0.93102 0 5.225059 0.8134627 0 5.522502 0.787405 0 8.883924 0.7954169 0 8.609554 0.7908862 0 21.59871 0.7911457 0 21.32435 0.7950373 0 18.37456 0.7893126 0 18.09878 0.7985145 0 14.80479 0.8127697 0 15.10247 0.7874001 0 36.64718 0.9398001 3.048 36.64718 0.9398001 0 24.71572 0.7878265 0 27.87347 0.7874045 0 34.25408 0.7874001 0 34.53961 0.8109731 0 35.06919 0.9451805 0 31.12257 0.7885026 0 3.132667 0.9398001 3.048 4.757879 0.93102 3.048 24.71572 0.7878265 3.048 24.43604 0.8043233 3.048 15.10247 0.7874001 3.048 11.94124 0.787683 3.048 8.883924 0.7954169 3.048 8.609554 0.7908862 3.048 5.522502 0.787405 3.048 5.225059 0.8134627 3.048 21.59871 0.7911457 3.048 21.32435 0.7950373 3.048 18.09878 0.7985145 3.048 18.37456 0.7893126 3.048 35.06919 0.9451805 3.048 34.53961 0.8109731 3.048 34.25408 0.7874001 3.048 27.87347 0.7874045 3.048 31.12257 0.7885026 3.048 15.38354 0.8101909 3.048 15.38354 0.8101909 0 14.80479 0.8127697 3.048 12.23975 0.8183457 3.048 33.95566 0.8128161 0 33.95566 0.8128161 3.048 27.57493 0.8123226 0 28.15517 0.8108565 3.048 28.15517 0.8108565 0 30.8452 0.8009988 0 27.57493 0.8123226 3.048 30.8452 0.8009988 3.048 5.808548 0.8102829 3.048 5.808548 0.8102829 0 12.23975 0.8183457 0 11.63325 0.809504 3.048 24.43604 0.8043233 0 25.01943 0.8206002 3.048 25.01943 0.8206002 0 31.42482 0.824759 3.048 31.42482 0.824759 0 18.67027 0.8273299 3.048 18.67027 0.8273299 0 8.327121 0.8304193 0 8.327121 0.8304193 3.048 21.90178 0.8356916 3.048 21.90178 0.8356916 0 20.97335 0.8585985 0 20.97335 0.8585985 3.048 9.210486 0.853477 3.048 9.210486 0.853477 0 17.72859 0.8724446 0 17.72859 0.8724446 3.048 30.46079 0.8820805 0 30.46079 0.8820805 3.048 24.03164 0.8949074 0 24.03164 0.8949074 3.048 11.19544 0.9149741 0 11.19544 0.9149741 3.048 9.733086 1.002857 3.048 10.39005 1.090511 3.048 10.10952 1.07998 3.048 15.72983 0.8896705 3.048 15.72983 0.8896705 0 6.367794 0.9527653 3.048 6.367794 0.9527653 0 28.508 0.8927215 3.048 28.508 0.8927215 0 27.11653 0.9263394 0 27.11653 0.9263394 3.048 14.34298 0.9281686 0 14.34298 0.9281686 3.048 12.76674 0.9573119 3.048 13.51917 1.09215 3.048 13.21769 1.068274 3.048 33.49353 0.92835 0 33.49353 0.92835 3.048 12.76674 0.9573119 0 25.54255 0.9598045 3.048 25.54255 0.9598045 0 31.91703 0.9570547 3.048 31.91703 0.9570547 0 19.39105 1.024434 3.048 19.39105 1.024434 0 7.75782 0.987761 0 7.75782 0.987761 3.048 22.5985 1.028282 3.048 22.5985 1.028282 0 9.733086 1.002857 0 20.31891 1.041013 0 20.31891 1.041013 3.048 17.18285 1.027913 0 17.18285 1.027913 3.048 29.9623 1.02495 0 29.9623 1.02495 3.048 16.30297 1.048384 3.048 16.30297 1.048384 0 29.07575 1.049503 3.048 29.07575 1.049503 0 23.53489 1.035492 0 23.53489 1.035492 3.048 10.67961 1.054473 0 10.67961 1.054473 3.048 26.58309 1.064788 0 26.58309 1.064788 3.048 13.80656 1.06633 0 13.21769 1.068274 0 13.80656 1.06633 3.048 32.95681 1.06648 0 32.36845 1.068212 0 32.95681 1.06648 3.048 32.36845 1.068212 3.048 4.216717 1.068665 0 3.170016 0.9509947 0 3.632621 1.06672 0 4.216717 1.068665 3.048 3.170016 0.9509947 3.048 3.632621 1.06672 3.048 36.17867 1.061258 0 36.17867 1.061258 3.048 35.58069 1.071401 3.048 35.58069 1.071401 0 35.88968 1.091717 0 35.88968 1.091717 3.048 6.827129 1.067158 3.048 6.827129 1.067158 0 7.406953 1.068924 0 7.406953 1.068924 3.048 25.98897 1.068892 3.048 25.98897 1.068892 0 10.10952 1.07998 0 10.39005 1.090511 0 19.73754 1.085395 3.048 19.73754 1.085395 0 20.01174 1.08784 0 20.01174 1.08784 3.048 29.63274 1.084015 0 29.35828 1.088818 0 29.63274 1.084015 3.048 29.35828 1.088818 3.048 16.85943 1.084576 0 16.58517 1.088452 0 16.85943 1.084576 3.048 16.58517 1.088452 3.048 22.94002 1.086305 3.048 22.94002 1.086305 0 23.21431 1.087043 0 23.21431 1.087043 3.048 26.2924 1.092096 0 26.2924 1.092096 3.048 13.51917 1.09215 0 32.66973 1.092155 0 32.66973 1.092155 3.048 3.930959 1.0922 3.048 3.930959 1.0922 0 7.12544 1.092198 3.048 7.12544 1.092198 0 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 0 -1 0 -0.2873479 0.9578263 0 0 0 -1 0.2873479 0.9578263 0 0 0 1 -1.97732e-7 0 1 -2.4327e-7 0 1 0.08491748 0.996388 0 -0.08081948 0.9967288 0 0.08491677 0.996388 0 -2.34984e-7 0 1 0 0 1 2.28672e-7 0 1 0.08486187 0.9963927 0 -0.08227831 0.9966094 0 -0.08227974 0.9966093 0 1.645e-7 0 1 0.08317631 0.996535 0 -0.08296698 0.9965524 0 2.26243e-7 0 1 0 0 1 0.0872718 0.9961845 0 -0.07972496 0.996817 0 -0.07972532 0.9968169 0 0.07067471 0.9974995 0 -0.1021783 0.9947661 0 -0.1021792 0.9947661 0 0 0 1 0.0588814 0.998265 0 -0.1072868 0.9942282 0 0.04500645 0.9989868 0 -0.1191 0.9928823 0 -0.1190981 0.9928825 0 0.04500561 0.9989868 0 0.03334873 0.9994438 0 -0.1275119 0.9918371 0 -0.1275108 0.9918372 0 0.03334903 0.9994438 0 1.34913e-7 0 1 0.1386226 0.9903454 0 -0.01651066 0.9998637 0 0.138622 0.9903454 0 0 0 1 0.01418262 0.9998995 0 -0.1454159 0.9893707 0 -0.1454206 0.9893699 0 0.1781871 0.9839967 0 0.1781883 0.9839964 0 0 0 1 -0.175046 0.9845603 0 -0.1750473 0.9845601 0 0.195837 0.9806365 0 0.1958383 0.9806363 0 0 0 1 0.2063849 0.978471 0 0.2063823 0.9784715 0 0.2185835 0.9758183 0 0.2185809 0.9758189 0 0 0 1 0.234199 0.9721887 0 0.2342002 0.9721884 0 0 0 1 5.43512e-7 0 1 -0.2237002 0.9746581 0 -0.2237017 0.9746577 0 -1.80812e-7 0 1 -0.2468889 0.9690438 0 -0.2260201 0.9741227 0 -0.2456558 0.9693571 0 -0.2456536 0.9693577 0 0.2413762 0.9704316 0 0.2413737 0.9704322 0 0.2424304 0.9701689 0 0.2424291 0.9701691 0 0 0 1 0.2425364 0.9701424 0 -1.29856e-7 0 1 0.2440243 0.9697691 0 -0.2549822 0.9669458 0 -0.2571578 0.9663695 0 2.51909e-7 0 1 -0.2595686 0.9657247 0 2.67655e-7 0 1 -0.2637746 0.9645844 0 -0.2637737 0.9645847 0 -2.76326e-7 0 1 0.2663908 0.9638652 0 0.2663897 0.9638655 0 -0.2664334 0.9638534 0 -0.2664369 0.9638525 0 3.23118e-7 0 1 -0.2748331 0.961492 0 -0.2748325 0.9614921 0 0.2685018 0.9632793 0 0.2684999 0.9632797 0 6.61889e-7 0 1 0.2739803 0.9617353 0 0.2739814 0.961735 0 0 0 1 0.275512 0.9612976 0 1.36114e-7 0 1 -0.2668777 0.9637305 0 3.93736e-7 0 1 -0.2661834 0.9639225 0 -3.89737e-7 0 1 0.2723131 0.9622088 0 0.2723106 0.9622094 0 0.2610613 0.9653223 0 0.2512133 0.9679318 0 0.2512177 0.9679307 0 -1.48964e-7 0 1 0.2494212 0.9683952 0 0.249237 0.9684426 0 0.2492413 0.9684414 0 0 0 1 0.2465026 0.9691422 0 0.2465023 0.9691423 0 -4.02266e-7 0 1 0 0 1 -0.2871135 0.9578967 0 -0.2871091 0.9578979 0 0 0 1 0.2509484 0.9680005 0 -0.2395771 0.9708774 0 -0.2426818 0.9701061 0 -0.242682 0.970106 0 -0.2416598 0.9703611 0 -0.2416592 0.9703612 0 -0.2390953 0.9709962 0 -0.2390978 0.9709955 0 -0.2389391 0.9710345 0 -0.2373737 0.9714184 0 -0.2373762 0.9714179 0 0.2253713 0.974273 0 0.2253705 0.9742732 0 -0.2007061 0.9796516 0 -0.2007042 0.979652 0 -0.1732795 0.9848728 0 -0.1732807 0.9848725 0 0.1764193 0.9843151 0 0.1764168 0.9843156 0 -3.56557e-7 0 1 0.172567 0.9849978 0 -3.63153e-7 0 1 -0.1674907 0.9858737 0 -0.1674931 0.9858733 0 0.1587683 0.9873159 0 0.1587659 0.9873163 0 0.1507011 0.9885794 0 0.1506999 0.9885796 0 -0.1405734 0.9900703 0 -0.1405722 0.9900705 0 -0.1378239 0.9904568 0 0.1235034 0.9923443 0 0.1235044 0.992344 0 0.1048195 0.9944913 0 0.104816 0.9944917 0 0.09353077 0.9956164 0 0.09352922 0.9956166 0 -4.9567e-7 0 1 0.08948588 0.9959881 0 0.08948665 0.995988 0 0.08908051 0.9960245 0 7.01267e-7 0 1 -0.08509659 0.9963727 0 -0.0836423 0.9964959 0 -1.06501e-6 0 1 -0.07922005 0.9968572 0 -0.07921874 0.9968574 0 -0.0789476 0.9968788 0 -0.07894694 0.9968789 0 0.08208113 0.9966257 0 0.08208131 0.9966257 0 -0.07625073 0.9970887 0 -0.07624948 0.9970888 0 0.08239096 0.9966001 0 -0.06560677 0.9978457 0 -0.06560891 0.9978454 0 -0.03751516 0.9992961 0 -0.03751534 0.9992961 0 0.01749712 0.9998469 0 0.01749682 0.9998469 0 0.01413315 0.9999002 0 0.01413291 0.9999002 0 -0.00891596 0.9999603 0 -0.00891602 0.9999603 0 -0.002692401 0.9999964 0 -0.002692461 0.9999964 0 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 |

0 0 1 0 2 0 3 0 0 0 2 0 1 1 4 1 2 1 5 2 6 2 2 2 4 2 7 2 2 2 7 2 8 2 2 2 8 2 9 2 2 2 10 2 5 2 2 2 11 2 10 2 2 2 9 2 11 2 2 2 12 2 3 2 2 2 13 2 12 2 2 2 14 2 13 2 2 2 15 2 14 2 2 2 6 2 16 2 2 2 16 2 17 2 2 2 17 2 15 2 2 2 18 3 0 3 3 3 19 3 18 3 3 3 20 2 21 2 3 2 22 2 23 2 3 2 23 2 24 2 3 2 24 2 19 2 3 2 12 2 20 2 3 2 25 2 22 2 3 2 21 2 25 2 3 2 26 1 4 1 1 1 27 4 26 4 1 4 28 4 29 4 1 4 0 4 28 4 1 4 30 4 31 4 1 4 31 4 32 4 1 4 32 4 33 4 1 4 33 5 34 5 1 5 34 4 35 4 1 4 35 4 27 4 1 4 36 4 37 4 1 4 29 6 36 6 1 6 38 4 30 4 1 4 39 4 38 4 1 4 37 4 39 4 1 4 18 4 40 4 0 4 40 4 41 4 0 4 41 4 42 4 0 4 43 4 28 4 0 4 44 4 43 4 0 4 42 4 44 4 0 4 16 7 30 7 17 7 30 8 45 8 17 8 45 8 46 8 17 8 46 2 15 2 17 2 16 9 47 9 30 9 47 10 48 10 30 10 48 11 31 11 30 11 38 12 45 12 30 12 49 13 42 13 22 13 42 14 41 14 22 14 41 15 23 15 22 15 25 2 49 2 22 2 49 13 50 13 42 13 50 16 44 16 42 16 51 17 43 17 21 17 43 18 52 18 21 18 52 18 53 18 21 18 20 2 51 2 21 2 54 2 25 2 21 2 53 2 54 2 21 2 51 17 55 17 43 17 56 19 52 19 43 19 44 4 56 4 43 4 55 20 28 20 43 20 8 21 34 21 9 21 34 22 57 22 9 22 57 23 58 23 9 23 58 2 11 2 9 2 8 21 35 21 34 21 33 4 57 4 34 4 5 24 31 24 6 24 31 25 48 25 6 25 48 26 59 26 6 26 59 2 16 2 6 2 5 24 60 24 31 24 60 27 32 27 31 27 61 28 28 28 20 28 28 29 62 29 20 29 62 29 63 29 20 29 12 2 61 2 20 2 63 2 51 2 20 2 61 28 29 28 28 28 55 4 62 4 28 4 54 30 44 30 25 30 44 31 64 31 25 31 64 32 65 32 25 32 65 2 49 2 25 2 54 33 56 33 44 33 50 4 64 4 44 4 15 34 39 34 14 34 39 35 66 35 14 35 66 36 67 36 14 36 67 2 13 2 14 2 15 37 38 37 39 37 37 38 66 38 39 38 68 39 33 39 11 39 33 40 32 40 11 40 32 40 10 40 11 40 58 2 68 2 11 2 68 41 69 41 33 41 69 42 57 42 33 42 13 43 36 43 12 43 36 44 70 44 12 44 70 45 71 45 12 45 71 2 61 2 12 2 13 43 37 43 36 43 29 4 70 4 36 4 72 46 37 46 13 46 67 2 72 2 13 2 72 47 73 47 37 47 73 48 66 48 37 48 32 49 74 49 10 49 74 50 75 50 10 50 75 2 5 2 10 2 60 4 74 4 32 4 76 51 38 51 15 51 46 2 76 2 15 2 76 52 77 52 38 52 77 53 45 53 38 53 78 54 56 54 54 54 53 2 78 2 54 2 78 55 79 55 56 55 79 4 52 4 56 4 80 56 29 56 61 56 71 2 80 2 61 2 80 57 81 57 29 57 81 58 70 58 29 58 82 59 60 59 5 59 75 2 82 2 5 2 82 60 83 60 60 60 84 61 74 61 60 61 83 4 85 4 60 4 85 4 86 4 60 4 86 62 84 62 60 62 45 63 87 63 46 63 87 64 88 64 46 64 88 2 76 2 46 2 77 65 87 65 45 65 57 66 89 66 58 66 89 66 90 66 58 66 90 2 68 2 58 2 69 4 89 4 57 4 52 67 91 67 53 67 91 67 92 67 53 67 92 2 78 2 53 2 79 4 91 4 52 4 41 68 40 68 23 68 40 69 24 69 23 69 93 70 55 70 51 70 63 2 93 2 51 2 93 71 94 71 55 71 94 4 62 4 55 4 95 72 47 72 16 72 59 2 95 2 16 2 95 73 96 73 47 73 97 74 48 74 47 74 96 4 98 4 47 4 98 4 99 4 47 4 99 4 97 4 47 4 100 75 50 75 49 75 65 2 100 2 49 2 100 75 101 75 50 75 101 76 64 76 50 76 7 77 35 77 8 77 7 77 27 77 35 77 48 78 97 78 59 78 97 78 102 78 59 78 102 2 95 2 59 2 62 79 103 79 63 79 103 79 104 79 63 79 104 2 93 2 63 2 94 80 103 80 62 80 64 81 105 81 65 81 105 81 106 81 65 81 106 2 100 2 65 2 101 82 105 82 64 82 66 83 107 83 67 83 107 84 108 84 67 84 108 2 72 2 67 2 73 85 107 85 66 85 109 86 69 86 68 86 90 2 109 2 68 2 109 87 110 87 69 87 110 4 89 4 69 4 70 88 111 88 71 88 111 89 112 89 71 89 112 2 80 2 71 2 81 90 111 90 70 90 74 91 84 91 75 91 84 92 113 92 75 92 113 2 82 2 75 2 114 93 73 93 72 93 108 2 114 2 72 2 114 94 115 94 73 94 115 95 107 95 73 95 116 96 77 96 76 96 88 2 116 2 76 2 116 97 117 97 77 97 117 98 87 98 77 98 118 99 79 99 78 99 92 2 118 2 78 2 118 99 119 99 79 99 119 100 91 100 79 100 87 101 120 101 88 101 120 101 121 101 88 101 121 2 116 2 88 2 117 102 120 102 87 102 91 103 122 103 92 103 122 103 123 103 92 103 123 2 118 2 92 2 119 104 122 104 91 104 124 105 81 105 80 105 112 2 124 2 80 2 124 106 125 106 81 106 125 4 111 4 81 4 126 107 83 107 82 107 113 2 126 2 82 2 126 107 127 107 83 107 127 4 85 4 83 4 128 108 94 108 93 108 104 2 128 2 93 2 128 109 129 109 94 109 129 110 103 110 94 110 130 111 96 111 95 111 102 2 131 2 95 2 131 2 130 2 95 2 130 111 132 111 96 111 132 4 98 4 96 4 133 112 101 112 100 112 106 2 134 2 100 2 134 2 133 2 100 2 133 113 135 113 101 113 136 114 105 114 101 114 135 4 136 4 101 4 137 115 27 115 7 115 4 2 138 2 7 2 138 2 139 2 7 2 139 2 137 2 7 2 137 116 140 116 27 116 141 117 26 117 27 117 142 118 141 118 27 118 140 4 142 4 27 4 26 119 141 119 4 119 141 120 138 120 4 120 24 2 143 2 19 2 144 121 40 121 18 121 143 122 18 122 19 122 143 122 144 122 18 122 40 123 145 123 24 123 145 123 146 123 24 123 146 2 147 2 24 2 147 2 143 2 24 2 144 4 148 4 40 4 148 4 145 4 40 4 141 124 142 124 138 124 142 125 139 125 138 125 89 126 149 126 90 126 149 127 150 127 90 127 151 2 109 2 90 2 150 2 151 2 90 2 152 4 149 4 89 4 110 4 152 4 89 4 105 128 136 128 106 128 136 129 134 129 106 129 97 130 99 130 102 130 99 130 131 130 102 130 103 131 153 131 104 131 153 132 154 132 104 132 154 2 128 2 104 2 129 4 153 4 103 4 151 133 110 133 109 133 151 134 152 134 110 134 84 135 86 135 113 135 86 136 155 136 113 136 155 2 156 2 113 2 156 2 126 2 113 2 107 137 157 137 108 137 157 138 158 138 108 138 158 2 159 2 108 2 159 2 114 2 108 2 160 4 157 4 107 4 115 4 160 4 107 4 161 139 119 139 118 139 162 2 161 2 118 2 123 2 162 2 118 2 161 140 163 140 119 140 163 4 164 4 119 4 164 141 122 141 119 141 165 142 117 142 116 142 166 2 165 2 116 2 121 2 166 2 116 2 165 142 167 142 117 142 167 4 168 4 117 4 168 143 120 143 117 143 111 144 169 144 112 144 169 145 170 145 112 145 170 2 171 2 112 2 171 2 124 2 112 2 172 4 169 4 111 4 125 4 172 4 111 4 171 146 125 146 124 146 171 147 172 147 125 147 159 148 115 148 114 148 159 149 160 149 115 149 120 150 168 150 121 150 168 151 166 151 121 151 122 152 164 152 123 152 164 152 162 152 123 152 156 153 127 153 126 153 156 154 85 154 127 154 147 155 144 155 143 155 147 156 148 156 144 156 173 157 129 157 128 157 154 2 173 2 128 2 173 158 174 158 129 158 174 159 153 159 129 159 175 160 132 160 130 160 131 2 175 2 130 2 175 161 98 161 132 161 176 162 135 162 133 162 134 2 176 2 133 2 176 162 177 162 135 162 177 163 136 163 135 163 142 164 178 164 139 164 178 164 179 164 139 164 179 2 137 2 139 2 140 4 178 4 142 4 149 165 180 165 150 165 180 165 181 165 150 165 181 2 151 2 150 2 152 166 180 166 149 166 136 167 177 167 134 167 177 168 176 168 134 168 99 169 98 169 131 169 98 170 175 170 131 170 179 171 140 171 137 171 179 172 178 172 140 172 153 173 174 173 154 173 174 174 173 174 154 174 181 175 152 175 151 175 181 175 180 175 152 175 145 176 148 176 146 176 148 177 147 177 146 177 86 178 85 178 155 178 85 179 156 179 155 179 162 180 163 180 161 180 162 181 164 181 163 181 166 182 167 182 165 182 166 183 168 183 167 183 157 184 160 184 158 184 160 185 159 185 158 185 169 186 172 186 170 186 172 187 171 187 170 187

229 |
230 |
231 |
232 | 233 | 234 | 235 | 99.19562 0 3.048 0 0 3.048 0 0 0 99.19562 0 0 7.704667 2.3114 0 28.93596 1.98884 0 29.69312 1.930633 0 45.68569 1.931113 0 44.91629 1.985525 0 11.78664 2.283778 0 12.94389 1.99418 0 13.68978 1.9304 0 22.08632 1.950781 0 21.40028 1.9389 0 37.35188 1.939391 0 38.03767 1.950018 0 91.49095 2.3114 3.048 91.49095 2.3114 0 53.37662 1.935647 0 54.06636 1.95715 0 85.52392 1.930437 0 86.23821 1.991953 0 87.5549 2.32753 0 61.67502 1.93177 0 69.55827 1.930415 0 77.68445 1.933341 0 7.704667 2.3114 3.048 11.78664 2.283778 3.048 45.68569 1.931113 3.048 44.91629 1.985525 3.048 22.08632 1.950781 3.048 21.40028 1.9389 3.048 29.69312 1.930633 3.048 13.68978 1.9304 3.048 12.94389 1.99418 3.048 37.35188 1.939391 3.048 38.03767 1.950018 3.048 87.5549 2.32753 3.048 54.06636 1.95715 3.048 53.37662 1.935647 3.048 61.67502 1.93177 3.048 69.55827 1.930415 3.048 77.68445 1.933341 3.048 86.23821 1.991953 3.048 85.52392 1.930437 3.048 14.40501 1.989301 3.048 14.40501 1.989301 0 68.8115 1.992513 0 70.26285 1.989351 3.048 70.26285 1.989351 0 76.99131 1.963741 0 68.8115 1.992513 3.048 76.99131 1.963741 3.048 84.77428 1.991944 0 84.77428 1.991944 3.048 30.41497 1.997673 3.048 30.41497 1.997673 0 28.93596 1.98884 3.048 46.42836 2.007165 3.048 46.42836 2.007165 0 60.97706 1.970809 0 62.44031 2.016934 3.048 62.44031 2.016934 0 60.97706 1.970809 3.048 78.44536 2.025832 3.048 78.44536 2.025832 0 52.66577 2.026442 0 52.66577 2.026442 3.048 20.694 2.037281 0 20.694 2.037281 3.048 36.64605 2.038793 0 36.64605 2.038793 3.048 38.84992 2.093475 3.048 38.84992 2.093475 0 22.90564 2.097183 3.048 22.90564 2.097183 0 54.97436 2.135839 3.048 54.97436 2.135839 0 76.03416 2.164552 0 76.03416 2.164552 3.048 59.97784 2.191813 0 59.97784 2.191813 3.048 43.82266 2.248809 0 43.82266 2.248809 3.048 27.81865 2.262079 0 27.81865 2.262079 3.048 24.19618 2.466433 3.048 25.79725 2.69014 3.048 25.14122 2.661186 3.048 15.79702 2.345168 3.048 15.79702 2.345168 0 71.14972 2.195626 3.048 71.14972 2.195626 0 83.63409 2.274621 0 83.63409 2.274621 3.048 67.6669 2.276979 0 67.6669 2.276979 3.048 31.74867 2.342885 3.048 31.74867 2.342885 0 47.74459 2.353821 3.048 47.74459 2.353821 0 63.73995 2.364557 3.048 63.73995 2.364557 0 79.70917 2.367502 3.048 79.70917 2.367502 0 51.29812 2.398989 0 51.29812 2.398989 3.048 19.27751 2.428462 0 19.27751 2.428462 3.048 35.22235 2.432581 0 35.22235 2.432581 3.048 40.19303 2.476658 3.048 40.19303 2.476658 0 24.19618 2.466433 0 56.42292 2.545514 3.048 56.42292 2.545514 0 58.76166 2.538427 0 58.76166 2.538427 3.048 74.78049 2.523838 0 74.78049 2.523838 3.048 72.56398 2.585991 3.048 72.56398 2.585991 0 42.64509 2.574484 0 42.64509 2.574484 3.048 26.51314 2.609407 0 26.51314 2.609407 3.048 82.30894 2.620588 0 82.30894 2.620588 3.048 66.33795 2.622626 0 66.33795 2.622626 3.048 10.4466 2.628368 0 7.850212 2.354968 0 8.977937 2.632529 0 10.4466 2.628368 3.048 7.850212 2.354968 3.048 8.977937 2.632529 3.048 90.32317 2.614411 0 90.32317 2.614411 3.048 88.82803 2.640899 3.048 88.82803 2.640899 0 89.60159 2.691085 0 89.60159 2.691085 3.048 32.89873 2.629568 3.048 32.89873 2.629568 0 34.34757 2.634546 0 34.34757 2.634546 3.048 16.94284 2.630127 3.048 16.94284 2.630127 0 18.3936 2.633698 0 18.3936 2.633698 3.048 48.87446 2.632255 3.048 48.87446 2.632255 0 50.33433 2.630105 0 50.33433 2.630105 3.048 64.85037 2.634914 3.048 64.85037 2.634914 0 80.81431 2.635648 3.048 80.81431 2.635648 0 25.14122 2.661186 0 25.79725 2.69014 0 41.12303 2.66381 3.048 41.12303 2.66381 0 73.95658 2.67177 0 73.2704 2.684052 0 73.95658 2.67177 3.048 73.2704 2.684052 3.048 57.94627 2.676447 0 57.94627 2.676447 3.048 57.26057 2.680601 3.048 57.26057 2.680601 0 41.81491 2.687837 0 41.81491 2.687837 3.048 81.57727 2.691962 0 81.57727 2.691962 3.048 65.61072 2.692061 0 65.61072 2.692061 3.048 9.730942 2.692284 0 9.730942 2.692284 3.048 33.64406 2.692396 3.048 33.64406 2.692396 0 49.62558 2.692309 0 49.62558 2.692309 3.048 17.68927 2.692388 3.048 17.68927 2.692388 0 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 0 -1 0 -0.2873479 0.9578263 0 0 0 -1 0.2873479 0.9578263 0 0 0 1 -8.86387e-7 0 1 0 0 1 -4.12314e-7 0 1 -1.02209e-6 0 1 0 0 1 -4.11e-7 0 1 0 0 1 0.08519881 0.9963641 0 -0.08207398 0.9966263 0 -0.08207339 0.9966264 0 0 0 1 0.0828706 0.9965603 0 -0.08335649 0.9965198 0 -0.0833553 0.9965199 0 0.08286952 0.9965605 0 0 0 1 0.0817734 0.9966511 0 -0.08580571 0.996312 0 -0.08580332 0.9963121 0 0 0 1 0.07664877 0.9970582 0 -0.09247457 0.9957152 0 0.07664924 0.9970582 0 0 0 1 0.07054364 0.9975088 0 -0.101871 0.9947977 0 0.07054454 0.9975087 0 0.0558446 0.9984395 0 -0.110601 0.993865 0 -0.1105995 0.9938651 0 0.04381543 0.9990397 0 -0.1206659 0.9926932 0 0.04381734 0.9990396 0 0.1266987 0.9919413 0 -0.03116118 0.9995144 0 -0.03116077 0.9995144 0 0.1379624 0.9904375 0 -0.01731526 0.9998501 0 0 0 1 0.1394546 0.9902285 0 -0.01549428 0.99988 0 0.1394526 0.9902287 0 -0.1739235 0.9847592 0 0 0 1 -0.1759013 0.9844079 0 -0.1759023 0.9844077 0 0 0 1 -0.1930909 0.9811809 0 0.2053297 0.9786929 0 0.2053318 0.9786924 0 0 0 1 0.2159571 0.9764029 0 0.2159591 0.9764024 0 0.2340564 0.9722231 0 0.2340545 0.9722236 0 0.23755 0.9713754 0 0.237549 0.9713756 0 0 0 1 -0.2476847 0.9688408 0 -0.2476842 0.9688408 0 -0.2265395 0.974002 0 0 0 1 0.2406333 0.9706162 0 0.2406392 0.9706147 0 0 0 1 -0.2469706 0.969023 0 -0.2469671 0.9690239 0 0.2411894 0.9704781 0 0.2411934 0.9704771 0 0 0 1 0.2427605 0.9700862 0 -0.2505785 0.9680963 0 -0.2546856 0.967024 0 0 0 1 -0.2583927 0.96604 0 -0.2609791 0.9653446 0 -0.260981 0.965344 0 0.2628225 0.9648443 0 0 0 1 0.2661994 0.963918 0 0.2661981 0.9639183 0 0 0 1 0.2665856 0.9638113 0 0.2665839 0.9638118 0 0 0 1 -0.2743489 0.9616303 0 -0.2750826 0.9614206 0 -0.2721418 0.9622573 0 -0.27214 0.9622577 0 0.2754943 0.9613028 0 0.2755004 0.961301 0 0 0 1 0.2740861 0.9617052 0 0.2740882 0.9617046 0 -0.2660729 0.9639529 0 0.2665585 0.9638189 0 1.30459e-7 0 1 0.257105 0.9663836 0 0.2526105 0.9675682 0 0.2526122 0.9675676 0 0.2517161 0.9678012 0 0.2490465 0.9684916 0 0.249046 0.9684917 0 0 0 1 0 0 1 -4.76351e-7 0 1 -0.2867726 0.9579987 0 -0.2867748 0.9579981 0 0 0 1 0.2511556 0.9679468 0 0.2511596 0.9679457 0 -0.2390077 0.9710177 0 -0.2418763 0.9703071 0 -0.2418753 0.9703074 0 -1.52828e-7 0 1 2.91014e-7 0 1 -0.2413438 0.9704397 0 -0.2392714 0.9709527 0 1.37845e-7 0 1 -0.2389926 0.9710215 0 -0.2365648 0.9716158 0 -0.2365627 0.9716163 0 -0.2357956 0.9718028 0 -0.2357916 0.9718037 0 0.2331863 0.9724321 0 0.2331909 0.9724311 0 0.2261731 0.9740872 0 0.2261713 0.9740876 0 0.2249556 0.9743691 0 0.2249581 0.9743685 0 -0.2018382 0.9794189 0 -0.1972843 0.9803463 0 -0.1972833 0.9803466 0 3.24e-7 0 1 0.176721 0.984261 0 0.1767231 0.9842606 0 0 0 1 0.1668959 0.9859746 0 0.1668938 0.9859749 0 0 0 1 -0.1592125 0.9872444 0 -0.1592143 0.9872441 0 -6.20169e-7 0 1 0.1352868 0.9908065 0 0.1352844 0.9908069 0 -0.1374935 0.9905027 0 -0.1374954 0.9905025 0 0.1120638 0.9937011 0 0.1120631 0.9937011 0 0.1056621 0.9944021 0 0.105665 0.9944019 0 0.09708738 0.995276 0 0.09709 0.9952757 0 -1.55773e-7 0 1 0.09504592 0.995473 0 -1.57929e-7 0 1 0.08895641 0.9960355 0 0.08895611 0.9960356 0 2.2542e-7 0 1 -0.08399683 0.9964661 0 -0.08399742 0.9964661 0 3.41311e-7 0 1 0.08742952 0.9961708 0 0 0 1 -0.08312302 0.9965394 0 -0.08312273 0.9965394 0 -0.07969814 0.996819 0 -0.07969921 0.996819 0 -0.07910591 0.9968662 0 -0.07910573 0.9968662 0 0.08304065 0.9965462 0 0.08304035 0.9965463 0 0.08195596 0.996636 0 0.08195483 0.996636 0 -0.07494652 0.9971876 0 -0.07494747 0.9971875 0 -0.07361096 0.9972871 0 -0.07360905 0.9972872 0 -0.06474107 0.9979022 0 -0.0647394 0.9979022 0 -0.04409211 0.9990276 0 -0.03470635 0.9993976 0 -0.03470683 0.9993976 0 0.01789659 0.9998399 0 0.006058871 0.9999817 0 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 |

0 0 1 0 2 0 3 0 0 0 2 0 1 1 4 1 2 1 5 2 6 2 2 2 7 2 3 2 2 2 8 2 7 2 2 2 4 2 9 2 2 2 9 2 10 2 2 2 10 2 11 2 2 2 12 2 5 2 2 2 13 2 12 2 2 2 11 2 13 2 2 2 6 2 14 2 2 2 14 2 15 2 2 2 15 2 8 2 2 2 16 3 0 3 3 3 17 3 16 3 3 3 18 2 19 2 3 2 20 2 21 2 3 2 21 2 22 2 3 2 22 2 17 2 3 2 19 2 23 2 3 2 23 2 24 2 3 2 7 2 18 2 3 2 25 2 20 2 3 2 24 2 25 2 3 2 26 1 4 1 1 1 27 4 26 4 1 4 28 4 29 4 1 4 0 4 28 4 1 4 30 5 31 5 1 5 32 4 30 4 1 4 31 6 33 6 1 6 33 7 34 7 1 7 34 4 27 4 1 4 35 4 32 4 1 4 36 8 35 8 1 8 29 9 36 9 1 9 16 4 37 4 0 4 38 10 39 10 0 10 40 4 38 4 0 4 39 4 28 4 0 4 41 11 40 11 0 11 42 4 41 4 0 4 37 4 43 4 0 4 43 4 44 4 0 4 44 4 42 4 0 4 10 12 33 12 11 12 33 13 45 13 11 13 45 14 46 14 11 14 46 2 13 2 11 2 10 12 34 12 33 12 31 15 45 15 33 15 47 16 41 16 24 16 41 17 48 17 24 17 48 18 49 18 24 18 23 2 47 2 24 2 50 2 25 2 24 2 49 2 50 2 24 2 47 19 51 19 41 19 52 4 48 4 41 4 42 4 52 4 41 4 51 20 40 20 41 20 53 21 44 21 20 21 44 22 43 22 20 22 43 23 21 23 20 23 25 2 53 2 20 2 53 21 54 21 44 21 54 24 42 24 44 24 5 25 32 25 6 25 32 26 55 26 6 26 55 26 56 26 6 26 56 2 14 2 6 2 5 27 57 27 32 27 57 28 30 28 32 28 35 4 55 4 32 4 8 29 28 29 7 29 28 30 58 30 7 30 58 30 59 30 7 30 59 2 18 2 7 2 8 31 29 31 28 31 39 4 58 4 28 4 60 32 40 32 23 32 40 33 61 33 23 33 61 34 62 34 23 34 19 2 60 2 23 2 62 2 47 2 23 2 60 32 63 32 40 32 63 4 38 4 40 4 51 4 61 4 40 4 50 35 42 35 25 35 42 36 64 36 25 36 64 36 65 36 25 36 65 2 53 2 25 2 50 37 52 37 42 37 54 4 64 4 42 4 66 38 39 38 18 38 39 39 38 39 18 39 38 40 19 40 18 40 59 2 66 2 18 2 66 38 67 38 39 38 67 4 58 4 39 4 68 41 31 41 13 41 31 42 30 42 13 42 30 42 12 42 13 42 46 2 68 2 13 2 68 41 69 41 31 41 69 43 45 43 31 43 70 44 35 44 14 44 35 45 36 45 14 45 36 45 15 45 14 45 56 2 70 2 14 2 70 46 71 46 35 46 71 4 55 4 35 4 36 47 72 47 15 47 72 47 73 47 15 47 73 2 8 2 15 2 29 48 72 48 36 48 30 49 74 49 12 49 74 50 75 50 12 50 75 2 5 2 12 2 57 51 74 51 30 51 38 52 76 52 19 52 76 52 77 52 19 52 77 2 60 2 19 2 63 4 76 4 38 4 78 53 52 53 50 53 49 2 78 2 50 2 78 54 79 54 52 54 79 55 48 55 52 55 80 56 63 56 60 56 77 2 80 2 60 2 80 57 81 57 63 57 81 4 76 4 63 4 82 58 29 58 8 58 73 2 82 2 8 2 82 59 83 59 29 59 83 4 72 4 29 4 84 60 57 60 5 60 75 2 84 2 5 2 84 61 85 61 57 61 86 62 74 62 57 62 85 4 87 4 57 4 87 4 88 4 57 4 88 4 86 4 57 4 45 63 89 63 46 63 89 64 90 64 46 64 90 2 68 2 46 2 69 4 89 4 45 4 48 65 91 65 49 65 91 65 92 65 49 65 92 2 78 2 49 2 79 66 91 66 48 66 93 67 54 67 53 67 65 2 93 2 53 2 93 68 94 68 54 68 94 69 64 69 54 69 43 70 37 70 21 70 37 71 22 71 21 71 95 72 51 72 47 72 62 2 95 2 47 2 95 73 96 73 51 73 96 74 61 74 51 74 9 75 34 75 10 75 9 75 27 75 34 75 55 76 97 76 56 76 97 76 98 76 56 76 98 2 70 2 56 2 71 4 97 4 55 4 58 77 99 77 59 77 99 77 100 77 59 77 100 2 66 2 59 2 67 78 99 78 58 78 61 79 101 79 62 79 101 79 102 79 62 79 102 2 95 2 62 2 96 4 101 4 61 4 64 80 103 80 65 80 103 81 104 81 65 81 104 2 93 2 65 2 94 4 103 4 64 4 105 82 67 82 66 82 100 2 105 2 66 2 105 82 106 82 67 82 106 83 99 83 67 83 107 84 69 84 68 84 90 2 107 2 68 2 107 85 108 85 69 85 108 86 89 86 69 86 109 87 71 87 70 87 98 2 109 2 70 2 109 88 110 88 71 88 110 89 97 89 71 89 72 90 111 90 73 90 111 90 112 90 73 90 112 2 82 2 73 2 83 4 111 4 72 4 74 91 86 91 75 91 86 91 113 91 75 91 113 2 84 2 75 2 76 92 114 92 77 92 114 93 115 93 77 93 115 2 116 2 77 2 116 2 80 2 77 2 81 4 117 4 76 4 117 4 114 4 76 4 118 94 79 94 78 94 92 2 118 2 78 2 118 95 119 95 79 95 119 96 91 96 79 96 116 97 81 97 80 97 116 98 117 98 81 98 91 99 120 99 92 99 120 99 121 99 92 99 121 2 118 2 92 2 119 4 120 4 91 4 122 100 83 100 82 100 112 2 122 2 82 2 122 100 123 100 83 100 123 101 111 101 83 101 124 102 85 102 84 102 113 2 124 2 84 2 124 102 125 102 85 102 125 4 87 4 85 4 126 103 94 103 93 103 104 2 126 2 93 2 126 104 127 104 94 104 127 4 103 4 94 4 128 105 96 105 95 105 102 2 128 2 95 2 128 105 129 105 96 105 129 4 101 4 96 4 130 106 27 106 9 106 4 2 131 2 9 2 131 2 132 2 9 2 132 2 130 2 9 2 130 107 133 107 27 107 134 108 26 108 27 108 135 109 134 109 27 109 133 110 135 110 27 110 26 111 134 111 4 111 134 112 131 112 4 112 22 2 136 2 17 2 137 113 37 113 16 113 136 114 16 114 17 114 136 115 137 115 16 115 37 116 138 116 22 116 138 116 139 116 22 116 139 2 140 2 22 2 140 2 136 2 22 2 137 4 141 4 37 4 141 4 138 4 37 4 97 117 142 117 98 117 142 118 143 118 98 118 144 2 109 2 98 2 143 2 144 2 98 2 110 119 145 119 97 119 145 120 142 120 97 120 89 121 146 121 90 121 146 121 147 121 90 121 148 2 107 2 90 2 147 2 148 2 90 2 149 4 146 4 89 4 108 4 149 4 89 4 99 122 150 122 100 122 150 122 151 122 100 122 152 2 105 2 100 2 151 2 152 2 100 2 106 123 153 123 99 123 153 4 150 4 99 4 134 124 135 124 131 124 135 124 132 124 131 124 101 125 154 125 102 125 154 126 155 126 102 126 155 2 128 2 102 2 129 4 154 4 101 4 103 127 156 127 104 127 156 128 157 128 104 128 157 2 126 2 104 2 127 4 156 4 103 4 152 129 106 129 105 129 152 130 153 130 106 130 148 131 108 131 107 131 148 132 149 132 108 132 144 133 110 133 109 133 144 134 145 134 110 134 86 135 88 135 113 135 88 135 158 135 113 135 158 2 159 2 113 2 159 2 124 2 113 2 111 136 160 136 112 136 160 137 161 137 112 137 161 2 122 2 112 2 123 138 160 138 111 138 162 139 119 139 118 139 163 2 162 2 118 2 121 2 163 2 118 2 162 140 164 140 119 140 164 4 165 4 119 4 165 141 120 141 119 141 166 142 117 142 116 142 115 2 166 2 116 2 166 143 167 143 117 143 167 144 114 144 117 144 114 145 168 145 115 145 168 146 169 146 115 146 169 2 166 2 115 2 167 147 168 147 114 147 170 148 123 148 122 148 161 2 170 2 122 2 170 149 171 149 123 149 171 4 160 4 123 4 120 150 165 150 121 150 165 151 163 151 121 151 159 152 125 152 124 152 159 153 87 153 125 153 140 154 137 154 136 154 140 155 141 155 137 155 172 156 127 156 126 156 157 2 172 2 126 2 172 157 173 157 127 157 173 158 156 158 127 158 174 159 129 159 128 159 155 2 174 2 128 2 174 159 175 159 129 159 175 160 154 160 129 160 176 161 133 161 130 161 132 2 176 2 130 2 176 162 177 162 133 162 177 163 135 163 133 163 142 164 178 164 143 164 178 165 179 165 143 165 179 2 144 2 143 2 145 166 178 166 142 166 180 167 153 167 152 167 151 2 180 2 152 2 180 167 181 167 153 167 181 168 150 168 153 168 146 169 182 169 147 169 182 170 183 170 147 170 183 2 148 2 147 2 149 4 182 4 146 4 150 171 181 171 151 171 181 172 180 172 151 172 135 173 177 173 132 173 177 174 176 174 132 174 183 175 149 175 148 175 183 176 182 176 149 176 179 177 145 177 144 177 179 178 178 178 145 178 154 179 175 179 155 179 175 180 174 180 155 180 156 181 173 181 157 181 173 182 172 182 157 182 138 183 141 183 139 183 141 184 140 184 139 184 88 185 87 185 158 185 87 185 159 185 158 185 160 186 171 186 161 186 171 187 170 187 161 187 163 188 164 188 162 188 163 188 165 188 164 188 169 189 167 189 166 189 169 189 168 189 167 189

261 |
262 |
263 |
264 |
265 | 266 | 267 | 268 | 269 | 0.6859207 -0.3240135 0.6515582 7.481132 0.7276763 0.3054208 -0.6141704 -6.50764 0 0.8953956 0.4452714 5.343665 0 0 0 1 270 | 271 | 272 | 273 | -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 274 | 275 | 276 | 277 | 1 0 0 0 0 -4.37114e-8 -1 0 0 1 -4.37114e-8 0 0 0 0 1 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 1 0 0 0 0 -4.37114e-8 -1 5 0 1 -4.37114e-8 0 0 0 0 1 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 1 0 0 0 0 -4.37114e-8 -1 10 0 1 -4.37114e-8 0 0 0 0 1 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 |
-------------------------------------------------------------------------------- /tractor_sim_gazebo/models/terrain_test/model.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | terrain_test 5 | 1.0 6 | model.sdf 7 | 8 | 9 | Amy Phung 10 | amy.phung@students.olin.edu 11 | 12 | 13 | 14 | A model of the test sinusoids. 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/terrain_test/model.sdf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | true 5 | 6 | 7 | 8 | 9 | 1 1 1 10 | model://terrain_test/meshes/terrain_test.dae 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 1 1 1 19 | model://terrain_test/meshes/terrain_test.dae 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /tractor_sim_gazebo/models/terrain_test/model.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olinrobotics/tractor_sim/a7bbe82c8f44e5b96d2f60d5940ec8986f82b09c/tractor_sim_gazebo/models/terrain_test/model.tar.gz -------------------------------------------------------------------------------- /tractor_sim_gazebo/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | tractor_sim_gazebo 4 | 0.1.3 5 | 6 | tractor_sim_gazebo is used with Gazebo to simulate a tractor with 7 | Ackermann steering. 8 | 9 | 10 | Amy Phung 11 | 12 | 13 | Apache 2.0 14 | 28 | 29 | https://github.com/olinrobotics/gravl/wiki/Gazebo-Simulation 30 | https://github.com/olinrobotics/tractor_sim 31 | 32 | Amy Phung 33 | 34 | catkin 35 | 36 | ackermann_msgs 37 | tractor_sim_description 38 | controller_manager 39 | controller_manager_msgs 40 | effort_controllers 41 | gazebo_ros 42 | joint_state_controller 43 | rospy 44 | std_msgs 45 | tf 46 | 47 | 48 | 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /tractor_sim_gazebo/scripts/ackermann_controller: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | """ 3 | Things changed from original: 4 | disabled auto stopping 5 | changed units from degrees to radians 6 | changed subscribed topic 7 | """ 8 | 9 | 10 | """ackermann_controller 11 | Control the wheels of a vehicle with Ackermann steering. 12 | Subscribed Topics: 13 | cmd_vel (ackermann_msgs/AckermannDrive) 14 | Ackermann command. It contains the vehicle's desired speed and steering 15 | angle. 16 | /softestop (std_msgs/Bool) 17 | Estop command. Abruptly stops tractor when estopped. 18 | /state_controller/cmd_activate (std_msgs/Bool) 19 | Activate command. Sends stop command to tractor upon disactivation. 20 | Published Topics: 21 | /command (std_msgs/Float64) 22 | Command for the left steering controller. 23 | /command (std_msgs/Float64) 24 | Command for the right steering controller. 25 | /command (std_msgs/Float64) 26 | Command for the left front axle controller. 27 | /command (std_msgs/Float64) 28 | Command for the right front axle controller. 29 | /command (std_msgs/Float64) 30 | Command for the left rear axle controller. 31 | /command (std_msgs/Float64) 32 | Command for the right rear axle controller. 33 | /command (std_msgs/Float64) 34 | One of these topics exists for each shock absorber. They are latched 35 | topics. 36 | Services Called: 37 | controller_manager/list_controllers (controller_manager_msgs/ 38 | ListControllers) 39 | List the states of the controllers. 40 | Parameters: 41 | ~left_front_wheel/steering_link_name (string, default: left_steering_link) 42 | ~right_front_wheel/steering_link_name (string, 43 | default: right_steering_link) 44 | Names of links that have origins coincident with the origins of the 45 | left and right steering joints, respectively. The steering links are 46 | used to compute the distance between the steering joints, as well as 47 | the vehicle's wheelbase. 48 | ~left_front_wheel/steering_controller_name (string, default: 49 | left_steering_controller) 50 | ~right_front_wheel/steering_controller_name (string, default: 51 | right_steering_controller) 52 | Steering controller names. 53 | ~left_rear_wheel/link_name (string, default: left_wheel) 54 | ~right_rear_wheel/link_name (string, default: right_wheel) 55 | Names of links that have origins coincident with the centers of the 56 | left and right wheels, respectively. The rear wheel links are used to 57 | compute the vehicle's wheelbase. 58 | ~left_front_wheel/axle_controller_name (string) 59 | ~right_front_wheel/axle_controller_name 60 | ~left_rear_wheel/axle_controller_name 61 | ~right_rear_wheel/axle_controller_name 62 | Axle controller names. If no controller name is specified for an axle, 63 | that axle will not have a controller. This allows the control of 64 | front-wheel, rear-wheel, and four-wheel drive vehicles. 65 | ~left_front_wheel/diameter (double, default: 1.0) 66 | ~right_front_wheel/diameter 67 | ~left_rear_wheel/diameter 68 | ~right_rear_wheel/diameter 69 | Wheel diameters. Each diameter must be greater than zero. Unit: meter. 70 | ~shock_absorbers (sequence of mappings, default: empty) 71 | Zero or more shock absorbers. 72 | Key-Value Pairs: 73 | controller_name (string) 74 | Controller name. 75 | equilibrium_position (double, default: 0.0) 76 | Equilibrium position. Unit: meter. 77 | ~cmd_timeout (double, default: 0.5) 78 | If ~cmd_timeout is greater than zero and this node does not receive a 79 | command for more than ~cmd_timeout seconds, vehicle motion is paused 80 | until a command is received. If ~cmd_timeout is less than or equal to 81 | zero, the command timeout is disabled. 82 | ~publishing_frequency (double, default: 30.0) 83 | Joint command publishing frequency. It must be greater than zero. 84 | Unit: hertz. 85 | Required tf Transforms: 86 | <~left_front_wheel/steering_link_name> to <~right_rear_wheel/link_name> 87 | Specifies the position of the left front wheel's steering link in the 88 | right rear wheel's frame. 89 | <~right_front_wheel/steering_link_name> to <~right_rear_wheel/link_name> 90 | Specifies the position of the right front wheel's steering link in the 91 | right rear wheel's frame. 92 | <~left_rear_wheel/link_name> to <~right_rear_wheel/link_name> 93 | Specifies the position of the left rear wheel in the right rear 94 | wheel's frame. 95 | Copyright (c) 2013-2015 Wunderkammer Laboratory 96 | Licensed under the Apache License, Version 2.0 (the "License"); 97 | you may not use this file except in compliance with the License. 98 | You may obtain a copy of the License at 99 | http://www.apache.org/licenses/LICENSE-2.0 100 | Unless required by applicable law or agreed to in writing, software 101 | distributed under the License is distributed on an "AS IS" BASIS, 102 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 103 | See the License for the specific language governing permissions and 104 | limitations under the License. 105 | """ 106 | 107 | import math 108 | import numpy 109 | import threading 110 | from math import pi 111 | 112 | import rospy 113 | import tf 114 | 115 | from ackermann_msgs.msg import AckermannDrive 116 | from std_msgs.msg import Float64 117 | from std_msgs.msg import Bool 118 | from controller_manager_msgs.srv import ListControllers 119 | 120 | 121 | class _AckermannCtrlr(object): 122 | """Ackermann controller 123 | An object of class _AckermannCtrlr is a node that controls the wheels of a 124 | vehicle with Ackermann steering. 125 | """ 126 | 127 | def __init__(self): 128 | """Initialize this _AckermannCtrlr.""" 129 | 130 | rospy.init_node("ackermann_controller") 131 | 132 | # Parameters 133 | self._tractor_delay = rospy.get_param("~tractor_delay") 134 | self._max_acceleration = rospy.get_param("~max_acceleration") 135 | self._max_steering_angle_velocity = rospy.get_param("~max_steering_angle_velocity") 136 | 137 | # Wheels 138 | (left_steer_link_name, left_steer_ctrlr_name, 139 | left_front_axle_ctrlr_name, self._left_front_inv_circ) = \ 140 | self._get_front_wheel_params("left") 141 | 142 | (right_steer_link_name, right_steer_ctrlr_name, 143 | right_front_axle_ctrlr_name, self._right_front_inv_circ) = \ 144 | self._get_front_wheel_params("right") 145 | 146 | (left_rear_link_name, left_rear_axle_ctrlr_name, 147 | self._left_rear_inv_circ) = \ 148 | self._get_rear_wheel_params("left") 149 | 150 | (self._right_rear_link_name, right_rear_axle_ctrlr_name, 151 | self._right_rear_inv_circ) = \ 152 | self._get_rear_wheel_params("right") 153 | 154 | list_ctrlrs = rospy.ServiceProxy("controller_manager/list_controllers", 155 | ListControllers) 156 | list_ctrlrs.wait_for_service() 157 | 158 | 159 | # Command timeout 160 | try: 161 | self._cmd_timeout = float(rospy.get_param("~cmd_timeout", 162 | self._DEF_CMD_TIMEOUT)) 163 | except: 164 | rospy.logwarn("The specified command timeout value is invalid. " 165 | "The default timeout value will be used instead.") 166 | self._cmd_timeout = self._DEF_CMD_TIMEOUT 167 | 168 | # Publishing frequency 169 | try: 170 | pub_freq = float(rospy.get_param("~publishing_frequency", 171 | self._DEF_PUB_FREQ)) 172 | if pub_freq <= 0.0: 173 | raise ValueError() 174 | except: 175 | rospy.logwarn("The specified publishing frequency is invalid. " 176 | "The default frequency will be used instead.") 177 | pub_freq = self._DEF_PUB_FREQ 178 | self._sleep_timer = rospy.Rate(pub_freq) 179 | 180 | # _last_cmd_time is the time at which the most recent Ackermann 181 | # driving command was received. 182 | self._last_cmd_time = rospy.get_time() 183 | 184 | # _ackermann_cmd_lock is used to control access to _steer_ang, 185 | # _steer_ang_vel, _speed, and _accel. 186 | self._ackermann_cmd_lock = threading.Lock() 187 | self._steer_ang = 0.0 # Steering angle 188 | self._steer_ang_vel = 0.0 # Steering angle velocity 189 | self._speed = 0.0 190 | self._accel = 0.0 # Acceleration 191 | 192 | self._last_steer_ang = 0.0 # Last steering angle 193 | self._theta_left = 0.0 # Left steering joint angle 194 | self._theta_right = 0.0 # Right steering joint angle 195 | 196 | self._last_speed = 0.0 197 | self._last_accel_limit = 0.0 # Last acceleration limit 198 | # Axle angular velocities 199 | self._left_front_ang_vel = 0.0 200 | self._right_front_ang_vel = 0.0 201 | self._left_rear_ang_vel = 0.0 202 | self._right_rear_ang_vel = 0.0 203 | 204 | self._estop = False 205 | self._cmd_activate = False 206 | 207 | # _joint_dist_div_2 is the distance between the steering joints, 208 | # divided by two. 209 | tfl = tf.TransformListener() 210 | ls_pos = self._get_link_pos(tfl, left_steer_link_name) 211 | rs_pos = self._get_link_pos(tfl, right_steer_link_name) 212 | self._joint_dist_div_2 = numpy.linalg.norm(ls_pos - rs_pos) / 2 213 | lrw_pos = self._get_link_pos(tfl, left_rear_link_name) 214 | rrw_pos = numpy.array([0.0] * 3) 215 | front_cent_pos = (ls_pos + rs_pos) / 2 # Front center position 216 | rear_cent_pos = (lrw_pos + rrw_pos) / 2 # Rear center position 217 | self._wheelbase = numpy.linalg.norm(front_cent_pos - rear_cent_pos) 218 | self._inv_wheelbase = 1 / self._wheelbase # Inverse of _wheelbase 219 | self._wheelbase_sqr = self._wheelbase ** 2 220 | 221 | # Publishers and subscribers 222 | 223 | self._left_steer_cmd_pub = \ 224 | _create_cmd_pub(list_ctrlrs, left_steer_ctrlr_name) 225 | self._right_steer_cmd_pub = \ 226 | _create_cmd_pub(list_ctrlrs, right_steer_ctrlr_name) 227 | 228 | self._left_front_axle_cmd_pub = \ 229 | _create_axle_cmd_pub(list_ctrlrs, left_front_axle_ctrlr_name) 230 | self._right_front_axle_cmd_pub = \ 231 | _create_axle_cmd_pub(list_ctrlrs, right_front_axle_ctrlr_name) 232 | self._left_rear_axle_cmd_pub = \ 233 | _create_axle_cmd_pub(list_ctrlrs, left_rear_axle_ctrlr_name) 234 | self._right_rear_axle_cmd_pub = \ 235 | _create_axle_cmd_pub(list_ctrlrs, right_rear_axle_ctrlr_name) 236 | 237 | self._ackermann_cmd_sub = \ 238 | rospy.Subscriber("/cmd_vel", AckermannDrive, #Changed from ackermann_cmd 239 | self._ackermann_cmd_cb, queue_size=1) 240 | self._softestop_sub = \ 241 | rospy.Subscriber("/softestop", Bool, 242 | self._softestop_cb, queue_size=1) 243 | self._cmd_activate_sub = \ 244 | rospy.Subscriber("/state_controller/cmd_activate", Bool, 245 | self._cmd_activate_cb, queue_size=1) 246 | 247 | 248 | def spin(self): 249 | """Control the vehicle.""" 250 | last_time = rospy.get_time() 251 | 252 | while not rospy.is_shutdown(): 253 | t = rospy.get_time() 254 | delta_t = t - last_time 255 | last_time = t 256 | """ 257 | #disable stopping 258 | if (self._cmd_timeout > 0.0 and 259 | t - self._last_cmd_time > self._cmd_timeout): 260 | # Too much time has elapsed since the last command. Stop the 261 | # vehicle. 262 | steer_ang_changed, center_y = \ 263 | self._ctrl_steering(self._last_steer_ang, 0.0, 0.001) 264 | self._ctrl_axles(0.0, 0.0, 0.0, steer_ang_changed, center_y) 265 | """ 266 | 267 | 268 | if delta_t > 0.0: 269 | with self._ackermann_cmd_lock: 270 | if self._estop == True: # Abruptly stop when estopped (simulate engine shut off) 271 | steer_ang = 0 272 | steer_ang_vel = 0 273 | speed = 0 274 | accel = 0 275 | elif self._cmd_activate == False: # Slow tractor to a stop (simulate disactivate command) 276 | steer_ang = 0 277 | steer_ang_vel = self._steer_ang_vel 278 | speed = 0 279 | accel = self._accel 280 | else: # If not estopped or disactivated, run tractor 281 | steer_ang = self._steer_ang*(3.14/180) # convert from degrees to rad 282 | steer_ang_vel = self._steer_ang_vel 283 | speed = self._speed 284 | accel = self._accel 285 | steer_ang_changed, center_y = \ 286 | self._ctrl_steering(steer_ang, steer_ang_vel, delta_t) 287 | self._ctrl_axles(speed, accel, delta_t, steer_ang_changed, 288 | center_y) 289 | 290 | # Publish the steering and axle joint commands. 291 | self._left_steer_cmd_pub.publish(self._theta_left) 292 | self._right_steer_cmd_pub.publish(self._theta_right) 293 | if self._left_front_axle_cmd_pub: 294 | self._left_front_axle_cmd_pub.publish(self._left_front_ang_vel) 295 | if self._right_front_axle_cmd_pub: 296 | self._right_front_axle_cmd_pub.\ 297 | publish(self._right_front_ang_vel) 298 | if self._left_rear_axle_cmd_pub: 299 | self._left_rear_axle_cmd_pub.publish(self._left_rear_ang_vel) 300 | if self._right_rear_axle_cmd_pub: 301 | self._right_rear_axle_cmd_pub.publish(self._right_rear_ang_vel) 302 | 303 | self._sleep_timer.sleep() 304 | 305 | def _ackermann_cmd_cb(self, ackermann_cmd): 306 | """Ackermann driving command callback 307 | :Parameters: 308 | ackermann_cmd : ackermann_msgs.msg.AckermannDrive 309 | Ackermann driving command. 310 | """ 311 | self._last_cmd_time = rospy.get_time() 312 | with self._ackermann_cmd_lock: 313 | if (self._tractor_delay == 0): 314 | self._steer_ang = ackermann_cmd.steering_angle 315 | self._steer_ang_vel = self._max_steering_angle_velocity 316 | self._speed = ackermann_cmd.speed 317 | self._accel = self._max_acceleration 318 | else: 319 | self._steer_ang = ackermann_cmd.steering_angle 320 | self._steer_ang_vel = ackermann_cmd.steering_angle_velocity 321 | self._speed = ackermann_cmd.speed 322 | self._accel = ackermann_cmd.acceleration 323 | 324 | def _softestop_cb(self, softestop): 325 | self._estop = softestop.data 326 | 327 | def _cmd_activate_cb(self, cmd_activate): 328 | self._cmd_activate = cmd_activate.data 329 | 330 | def _get_front_wheel_params(self, side): 331 | # Get front wheel parameters. Return a tuple containing the steering 332 | # link name, steering controller name, axle controller name (or None), 333 | # and inverse of the circumference. 334 | 335 | prefix = "~" + side + "_front_wheel/" 336 | steer_link_name = rospy.get_param(prefix + "steering_link_name", 337 | side + "_steering_link") 338 | steer_ctrlr_name = rospy.get_param(prefix + "steering_controller_name", 339 | side + "_steering_controller") 340 | axle_ctrlr_name, inv_circ = self._get_common_wheel_params(prefix) 341 | return steer_link_name, steer_ctrlr_name, axle_ctrlr_name, inv_circ 342 | 343 | def _get_rear_wheel_params(self, side): 344 | # Get rear wheel parameters. Return a tuple containing the link name, 345 | # axle controller name, and inverse of the circumference. 346 | 347 | prefix = "~" + side + "_rear_wheel/" 348 | link_name = rospy.get_param(prefix + "link_name", side + "_wheel") 349 | axle_ctrlr_name, inv_circ = self._get_common_wheel_params(prefix) 350 | return link_name, axle_ctrlr_name, inv_circ 351 | 352 | def _get_common_wheel_params(self, prefix): 353 | # Get parameters used by the front and rear wheels. Return a tuple 354 | # containing the axle controller name (or None) and the inverse of the 355 | # circumference. 356 | 357 | axle_ctrlr_name = rospy.get_param(prefix + "axle_controller_name", 358 | None) 359 | 360 | try: 361 | dia = float(rospy.get_param(prefix + "diameter", 362 | self._DEF_WHEEL_DIA)) 363 | if dia <= 0.0: 364 | raise ValueError() 365 | except: 366 | rospy.logwarn("The specified wheel diameter is invalid. " 367 | "The default diameter will be used instead.") 368 | dia = self._DEF_WHEEL_DIA 369 | 370 | return axle_ctrlr_name, 1 / (pi * dia) 371 | 372 | def _get_link_pos(self, tfl, link): 373 | # Return the position of the specified link, relative to the right 374 | # rear wheel link. 375 | 376 | while True: 377 | try: 378 | trans, not_used = \ 379 | tfl.lookupTransform(self._right_rear_link_name, link, 380 | rospy.Time(0)) 381 | return numpy.array(trans) 382 | except: 383 | pass 384 | 385 | def _ctrl_steering(self, steer_ang, steer_ang_vel_limit, delta_t): 386 | # Control the steering joints. 387 | 388 | # Compute theta, the virtual front wheel's desired steering angle. 389 | if steer_ang_vel_limit > 0.0: 390 | # Limit the steering velocity. 391 | ang_vel = (steer_ang - self._last_steer_ang) / delta_t 392 | ang_vel = max(-steer_ang_vel_limit, 393 | min(ang_vel, steer_ang_vel_limit)) 394 | theta = self._last_steer_ang + ang_vel * delta_t 395 | else: 396 | theta = steer_ang 397 | 398 | # Compute the desired steering angles for the left and right front 399 | # wheels. 400 | center_y = self._wheelbase * math.tan((pi / 2) - theta) 401 | steer_ang_changed = theta != self._last_steer_ang 402 | if steer_ang_changed: 403 | self._last_steer_ang = theta 404 | self._theta_left = \ 405 | _get_steer_ang(math.atan(self._inv_wheelbase * 406 | (center_y - self._joint_dist_div_2))) 407 | self._theta_right = \ 408 | _get_steer_ang(math.atan(self._inv_wheelbase * 409 | (center_y + self._joint_dist_div_2))) 410 | 411 | return steer_ang_changed, center_y 412 | 413 | def _ctrl_axles(self, speed, accel_limit, delta_t, steer_ang_changed, 414 | center_y): 415 | # Control the axle joints. 416 | 417 | # Compute veh_speed, the vehicle's desired speed. 418 | if accel_limit > 0.0: 419 | # Limit the vehicle's acceleration. 420 | self._last_accel_limit = accel_limit 421 | accel = (speed - self._last_speed) / delta_t 422 | accel = max(-accel_limit, min(accel, accel_limit)) 423 | veh_speed = self._last_speed + accel * delta_t 424 | else: 425 | self._last_accel_limit = accel_limit 426 | veh_speed = speed 427 | 428 | # Compute the desired angular velocities of the wheels. 429 | if veh_speed != self._last_speed or steer_ang_changed: 430 | self._last_speed = veh_speed 431 | left_dist = center_y - self._joint_dist_div_2 432 | right_dist = center_y + self._joint_dist_div_2 433 | 434 | # Front 435 | gain = (2 * pi) * veh_speed / abs(center_y) 436 | r = math.sqrt(left_dist ** 2 + self._wheelbase_sqr) 437 | self._left_front_ang_vel = gain * r * self._left_front_inv_circ 438 | r = math.sqrt(right_dist ** 2 + self._wheelbase_sqr) 439 | self._right_front_ang_vel = gain * r * self._right_front_inv_circ 440 | # Rear 441 | gain = (2 * pi) * veh_speed / center_y 442 | self._left_rear_ang_vel = \ 443 | gain * left_dist * self._left_rear_inv_circ 444 | self._right_rear_ang_vel = \ 445 | gain * right_dist * self._right_rear_inv_circ 446 | 447 | _DEF_WHEEL_DIA = 1.0 # Default wheel diameter. Unit: meter. 448 | _DEF_EQ_POS = 0.0 # Default equilibrium position. Unit: meter. 449 | _DEF_CMD_TIMEOUT = 0.5 # Default command timeout. Unit: second. 450 | _DEF_PUB_FREQ = 30.0 # Default publishing frequency. Unit: hertz. 451 | # end _AckermannCtrlr 452 | 453 | 454 | def _wait_for_ctrlr(list_ctrlrs, ctrlr_name): 455 | # Wait for the specified controller to be in the "running" state. 456 | # Commands can be lost if they are published before their controller is 457 | # running, even if a latched publisher is used. 458 | 459 | while True: 460 | response = list_ctrlrs() 461 | for ctrlr in response.controller: 462 | if ctrlr.name == ctrlr_name: 463 | if ctrlr.state == "running": 464 | return 465 | rospy.sleep(0.1) 466 | break 467 | 468 | 469 | def _create_axle_cmd_pub(list_ctrlrs, axle_ctrlr_name): 470 | # Create an axle command publisher. 471 | if not axle_ctrlr_name: 472 | return None 473 | return _create_cmd_pub(list_ctrlrs, axle_ctrlr_name) 474 | 475 | 476 | def _create_cmd_pub(list_ctrlrs, ctrlr_name): 477 | # Create a command publisher. 478 | _wait_for_ctrlr(list_ctrlrs, ctrlr_name) 479 | return rospy.Publisher(ctrlr_name + "/command", Float64, queue_size=1) 480 | 481 | 482 | def _get_steer_ang(phi): 483 | # Return the desired steering angle for a front wheel. 484 | if phi >= 0.0: 485 | return (pi / 2) - phi 486 | return (-pi / 2) - phi 487 | 488 | 489 | # main 490 | if __name__ == "__main__": 491 | ctrlr = _AckermannCtrlr() 492 | ctrlr.spin() 493 | -------------------------------------------------------------------------------- /tractor_sim_gazebo/scripts/gazebo_link_pose: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import rospy 4 | from gazebo_msgs.msg import LinkStates 5 | from geometry_msgs.msg import Pose 6 | 7 | class GazeboLinkPose: 8 | link_name = '' 9 | link_pose = Pose() 10 | def __init__(self, link_name): 11 | self.link_name = link_name 12 | self.link_name_rectified = link_name.replace("::", "_") 13 | 14 | if not self.link_name: 15 | raise ValueError("'link_name' is an empty string") 16 | 17 | self.states_sub = rospy.Subscriber("/gazebo/link_states", LinkStates, self.callback) 18 | self.pose_pub = rospy.Publisher("/gazebo/" + self.link_name_rectified, Pose, queue_size = 10) 19 | 20 | def callback(self, data): 21 | try: 22 | ind = data.name.index(self.link_name) 23 | self.link_pose = data.pose[ind] 24 | except ValueError: 25 | pass 26 | 27 | if __name__ == '__main__': 28 | try: 29 | rospy.init_node('gazebo_link_pose', anonymous=True) 30 | gp_hitch = GazeboLinkPose('tractor_sim::hitch') 31 | gp_base_link = GazeboLinkPose('tractor_sim::base_link') 32 | publish_rate = 100 33 | 34 | rate = rospy.Rate(publish_rate) 35 | while not rospy.is_shutdown(): 36 | gp_hitch.pose_pub.publish(gp_hitch.link_pose) 37 | gp_base_link.pose_pub.publish(gp_base_link.link_pose) 38 | rate.sleep() 39 | 40 | except rospy.ROSInterruptException: 41 | pass 42 | -------------------------------------------------------------------------------- /tractor_sim_gazebo/scripts/hitch_controller: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import rospy 4 | import threading 5 | from geometry_msgs.msg import Point 6 | from geometry_msgs.msg import Pose 7 | from std_msgs.msg import Float32 8 | 9 | class _HitchCtrlr: 10 | def __init__(self): 11 | """Initialize this _HitchCtrlr""" 12 | 13 | rospy.init_node("hitch_controller") 14 | 15 | # Publishers and subscribers 16 | self._base_link_sub = \ 17 | rospy.Subscriber("/gazebo/tractor_sim_base_link", Pose, 18 | self._base_link_cb, queue_size=1) 19 | self._hitch_sub = \ 20 | rospy.Subscriber("/gazebo/tractor_sim_hitch", Pose, 21 | self._hitch_cb, queue_size=1) 22 | self._hitch_cmd_sub = \ 23 | rospy.Subscriber("/cmd_hitch", Pose, 24 | self._hitch_cmd_cb, queue_size=1) 25 | self._hitch_vel_pub = \ 26 | rospy.Publisher("/hitch_velocity", Float32, queue_size=1) 27 | 28 | self._pub_freq = 100; 29 | self._sleep_timer = rospy.Rate(self._pub_freq) 30 | 31 | #TODO: Make height more accurate (use trig + full msg, not just z) 32 | self._base_link_pose = 0; 33 | self._hitch_pose = 0; 34 | self._hitch_cmd = 0; 35 | 36 | 37 | def spin(self): 38 | """Control the hitch""" 39 | while not rospy.is_shutdown(): 40 | hitch_vel = \ 41 | self._ctrl_hitch(self._hitch_cmd, self._hitch_pose, 42 | self._base_link_pose) 43 | 44 | # Publish the hitch force command 45 | self._hitch_vel_pub.publish(hitch_vel) 46 | 47 | self._sleep_timer.sleep() 48 | 49 | 50 | 51 | def _base_link_cb(self, base_link_pose): 52 | self._base_link_pose = base_link_pose.position.z 53 | 54 | def _hitch_cb(self, hitch_pose): 55 | self._hitch_pose = hitch_pose.position.z 56 | 57 | def _hitch_cmd_cb(self, hitch_cmd): 58 | self._hitch_cmd = hitch_cmd.position.z 59 | 60 | def _ctrl_hitch(self, hitch_cmd, hitch_pose, base_link_pose): 61 | 62 | curr_height = hitch_pose - base_link_pose 63 | 64 | hitch_velocity = Float32() 65 | # TODO: Tune this 66 | hitch_velocity.data = -((hitch_cmd-curr_height)*0.6 + 0.058) 67 | return hitch_velocity 68 | 69 | 70 | if __name__ == '__main__': 71 | hitch_ctlr = _HitchCtrlr() 72 | hitch_ctlr.spin() 73 | -------------------------------------------------------------------------------- /tractor_sim_gazebo/scripts/hitch_plugin.cc: -------------------------------------------------------------------------------- 1 | //http://gazebosim.org/tutorials?tut=guided_i5 2 | #ifndef _HITCH_PLUGIN_HH_ 3 | #define _HITCH_PLUGIN_HH_ 4 | 5 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | #include 11 | #include "ros/ros.h" 12 | #include "ros/callback_queue.h" 13 | #include "ros/subscribe_options.h" 14 | #include "std_msgs/Float32.h" 15 | 16 | namespace gazebo 17 | { 18 | class HitchPlugin : public ModelPlugin 19 | { 20 | public: HitchPlugin() {} 21 | 22 | public: virtual void Load(physics::ModelPtr _model, sdf::ElementPtr _sdf) 23 | { 24 | if (_model->GetJointCount() == 0) 25 | { 26 | std::cerr << "Invalid joint count, hitch plugin not loaded\n"; 27 | return; 28 | } 29 | std::cerr << "\nThe hitch plugin is attached to model[" << 30 | _model->GetName() << "]\n"; 31 | 32 | this->model = _model; 33 | this->joint = model->GetJoint("base_link_to_hitch"); 34 | 35 | // // Apply the P-controller to the joint. 36 | // this->model->GetJointController()->SetVelocityPID( 37 | // this->joint->GetScopedName(), this->pid); 38 | // 39 | // // Set the joint's target velocity. This target velocity is just 40 | // // for demonstration purposes. 41 | // this->model->GetJointController()->SetVelocityTarget( 42 | // this->joint->GetScopedName(), 100.0); 43 | 44 | // Create the node 45 | this->node = transport::NodePtr(new transport::Node()); 46 | #if GAZEBO_MAJOR_VERSION < 8 47 | this->node->Init(this->model->GetWorld()->GetName()); 48 | #else 49 | this->node->Init(this->model->GetWorld()->Name()); 50 | #endif 51 | 52 | // Create a topic name 53 | std::string topicName = "/hitch_height"; 54 | 55 | // Subscribe to the topic, and register a callback 56 | this->sub = this->node->Subscribe(topicName, 57 | &HitchPlugin::OnMsg, this); 58 | 59 | 60 | // Initialize ros, if it has not already bee initialized. 61 | if (!ros::isInitialized()) 62 | { 63 | int argc = 0; 64 | char **argv = NULL; 65 | ros::init(argc, argv, "gazebo_client", 66 | ros::init_options::NoSigintHandler); 67 | } 68 | 69 | // Create our ROS node. This acts in a similar manner to 70 | // the Gazebo node 71 | this->rosNode.reset(new ros::NodeHandle("gazebo_client")); 72 | 73 | // Create a named topic, and subscribe to it. 74 | ros::SubscribeOptions so = 75 | ros::SubscribeOptions::create( 76 | "/hitch_velocity", 77 | 1, 78 | boost::bind(&HitchPlugin::OnRosMsg, this, _1), 79 | ros::VoidPtr(), &this->rosQueue); 80 | this->rosSub = this->rosNode->subscribe(so); 81 | 82 | // Spin up the queue helper thread. 83 | this->rosQueueThread = 84 | std::thread(std::bind(&HitchPlugin::QueueThread, this)); 85 | } 86 | 87 | /// \brief Handle an incoming message from ROS 88 | /// \param[in] _msg A float value that is used to set the velocity 89 | /// of the Velodyne. 90 | public: void OnRosMsg(const std_msgs::Float32ConstPtr &_msg) 91 | { 92 | this->SetHitchVelocity(_msg->data); 93 | } 94 | 95 | /// \brief ROS helper function that processes messages 96 | private: void QueueThread() 97 | { 98 | static const double timeout = 0.01; 99 | while (this->rosNode->ok()) 100 | { 101 | this->rosQueue.callAvailable(ros::WallDuration(timeout)); 102 | } 103 | } 104 | 105 | public: void SetHitchVelocity(const double &_vel) 106 | { 107 | this->joint->SetVelocity(0,_vel); // y axis, _vel 108 | } 109 | 110 | /// \brief Handle incoming message 111 | /// \param[in] _msg Repurpose a vector3 message. This function will 112 | /// only use the x component. 113 | private: void OnMsg(ConstVector3dPtr &_msg) 114 | { 115 | this->SetHitchVelocity(_msg->x()); 116 | } 117 | 118 | /// \brief Pointer to the model. 119 | private: physics::ModelPtr model; 120 | 121 | /// \brief Pointer to the joint. 122 | private: physics::JointPtr joint; 123 | 124 | /// \brief A PID controller for the joint. 125 | private: common::PID pid; 126 | 127 | /// \brief A node used for transport 128 | private: transport::NodePtr node; 129 | 130 | /// \brief A subscriber to a named topic. 131 | private: transport::SubscriberPtr sub; 132 | 133 | /// \brief A node use for ROS transport 134 | private: std::unique_ptr rosNode; 135 | 136 | /// \brief A ROS subscriber 137 | private: ros::Subscriber rosSub; 138 | 139 | /// \brief A ROS callbackqueue that helps process messages 140 | private: ros::CallbackQueue rosQueue; 141 | 142 | /// \brief A thread the keeps running the rosQueue 143 | private: std::thread rosQueueThread; 144 | 145 | }; 146 | GZ_REGISTER_MODEL_PLUGIN(HitchPlugin) 147 | } 148 | 149 | #endif 150 | -------------------------------------------------------------------------------- /tractor_sim_gazebo/worlds/gas_station.world: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | model://ground_plane 6 | 7 | 8 | model://sun 9 | 10 | 11 | 12 | 13 | model://asphalt_plane 14 | asphalt 15 | 0 0 0 0 0 0 16 | 17 | 18 | 19 | 20 | model://gas_station 21 | gas_station 22 | 0 10 0 0 0 0 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /tractor_sim_gazebo/worlds/lpb.world: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | model://ground_plane 6 | 7 | 8 | model://sun 9 | 10 | 11 | 12 | 13 | model://big_asphalt_plane 14 | asphalt 15 | 0 0 0 0 0 0 16 | 17 | 18 | 19 | 20 | 21 | 22 | true 23 | model://construction_barrel 24 | 25 | 26 | 0 0 0 0 0 0 27 | 28 | 30 30 0.01 29 | 30 | 10 31 | 32 | random 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | true 41 | model://construction_cone 42 | 43 | 44 | 0 0 0 0 0 0 45 | 46 | 30 30 0.01 47 | 48 | 10 49 | 50 | random 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | true 59 | model://person_standing 60 | 61 | 62 | 0 0 0 0 0 0 63 | 64 | 30 30 0.01 65 | 66 | 10 67 | 68 | random 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | true 77 | model://person_walking 78 | 79 | 80 | 0 0 0 0 0 0 81 | 82 | 30 30 0.01 83 | 84 | 10 85 | 86 | random 87 | 88 | 89 | 90 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /tractor_sim_gazebo/worlds/olin.world: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | model://ground_plane 6 | 7 | 8 | model://sun 9 | 10 | 11 | model://olin 12 | olin 13 | 10 10 -2 0 0 0 14 | 15 | 16 | 17 | --------------------------------------------------------------------------------