├── .gitignore ├── .rosinstall ├── README.md ├── agvs.rosinstall ├── agvs ├── CMakeLists.txt └── package.xml ├── agvs_complete ├── CMakeLists.txt ├── launch │ ├── agvs_complete.launch │ ├── agvs_gmapping.launch │ ├── agvs_hector_mapping.launch │ ├── amcl_diff.launch │ ├── amcl_diff_2.launch │ ├── map_server.launch │ ├── purepursuit_nav.rviz │ └── robot_pose_ekf.launch ├── maps │ ├── willow.pgm │ └── willow.yaml ├── package.xml └── scripts │ └── save_map.sh ├── agvs_control ├── CMakeLists.txt ├── config │ ├── agvs_control.yaml │ └── agvs_control.yaml~ ├── launch │ └── agvs_control.launch └── package.xml ├── agvs_description ├── CMakeLists.txt ├── launch │ ├── agvs.launch │ ├── agvs_state.launch │ ├── rviz_agvs.launch │ └── rviz_agvs_alone.launch ├── meshes │ ├── agvs_top.dae │ ├── agvs_top.stl │ ├── agvs_wheel.dae │ ├── agvs_wheel.stl │ ├── chassis_agvs.dae │ ├── chassis_agvs.stl │ ├── coordinate_systems.bmp │ ├── motor_wheel.dae │ ├── motor_wheel.stl │ ├── side_wheel_agvs.dae │ ├── side_wheel_agvs.stl │ ├── tfs_1.bmp │ └── tfs_2.bmp ├── package.xml ├── urdf │ ├── agvs.gazebo │ ├── agvs.urdf │ ├── agvs.urdf.xacro │ ├── vrep │ │ ├── agvs_vrep.urdf │ │ ├── agvs_vrep.urdf.xacro │ │ └── xacro2urdf.sh │ └── xacro2urdf.sh └── vrep │ ├── AGVS.ttm │ └── AGVS.ttt ├── agvs_gazebo ├── CMakeLists.txt ├── CMakeLists.txt~ ├── launch │ ├── agvs.launch │ ├── agvs_office.launch │ └── agvs_sim_complete.launch ├── package.xml └── worlds │ ├── agvs.world │ ├── agvs.world~ │ ├── agvs_office.world │ └── agvs_office.world~ ├── agvs_pad ├── .rosinstall ├── CMakeLists.txt ├── launch │ ├── agvs_pad.launch │ ├── agvs_pad.launch~ │ └── agvs_pad.yaml ├── package.xml └── src │ └── agvs_pad_node.cpp ├── agvs_robot_control ├── .rosinstall ├── CMakeLists.txt ├── launch │ ├── agvs_robot_control.launch │ ├── agvs_robot_control.yaml │ └── agvs_robot_control.yaml~ ├── msg │ ├── AckermannDrive.msg │ └── AckermannDriveStamped.msg ├── package.xml └── src │ └── agvs_robot_control.cpp ├── planner_msgs ├── CMakeLists.txt ├── action │ └── GoTo.action ├── generate_msgs.sh ├── msg │ ├── GoToAction.msg │ ├── GoToActionFeedback.msg │ ├── GoToActionGoal.msg │ ├── GoToActionResult.msg │ ├── GoToFeedback.msg │ ├── GoToGoal.msg │ ├── GoToResult.msg │ └── goal.msg └── package.xml └── purepursuit_planner ├── CMakeLists.txt ├── action └── GoTo.action ├── generate_msgs.sh ├── include └── purepursuit_planner │ └── Component.h ├── launch ├── purepursuit.launch ├── purepursuit.launch~ ├── purepursuit_marker.launch └── purepursuit_marker.launch~ ├── msg ├── GoToAction.msg ├── GoToActionFeedback.msg ├── GoToActionGoal.msg ├── GoToActionResult.msg ├── GoToFeedback.msg ├── GoToGoal.msg ├── GoToResult.msg └── goal.msg ├── package.xml ├── scripts └── purepursuit_planner │ ├── __init__.py │ ├── path_marker_1.py │ ├── path_marker_2.py │ ├── planner_test_client.py │ ├── purepursuit_client.py │ └── waypoints.txt ├── setup.py └── src ├── Component.cc └── purepursuit_planner.cpp /.gitignore: -------------------------------------------------------------------------------- 1 | # Backup files 2 | *~ 3 | -------------------------------------------------------------------------------- /.rosinstall: -------------------------------------------------------------------------------- 1 | # Robotnik stacks 2 | 3 | - git: {local-name: robotnik_msgs, version: master, uri: 'https://github.com/RobotnikAutomation/robotnik_msgs.git'} 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | agvs 2 | ==== 3 | 4 | ROS package for the robot AGVS, intended for indoor transportation tasks 5 | 6 | List of packages 7 | 8 | ### agvs_complete 9 | 10 | It contains multiple launch files to perform different tasks, from creating a map with gmapping to launching amcl. 11 | 12 | ### agvs_description 13 | 14 | Robot description. Urdf and mesh files. 15 | 16 | ### agvs_pad 17 | 18 | Component to move the robot by using a ps3 pad. 19 | 20 | ### planner_msgs 21 | 22 | Messages and actions for planning the autonomous movement of the robot. 23 | 24 | ### agvs_control 25 | 26 | Config files used for Gazebo motor controllers. 27 | 28 | ### agvs_gazebo 29 | 30 | Launch files and worlds to run Gazebo. 31 | 32 | ### agvs_robot_control 33 | 34 | Robot controller that interacts with Gazebo motor controllers. 35 | 36 | ### purepursuit_planner 37 | 38 | Planner to follow a list of waypoints implementing the PurePursuit algorithm. 39 | -------------------------------------------------------------------------------- /agvs.rosinstall: -------------------------------------------------------------------------------- 1 | # Robotnik stacks 2 | 3 | - git: {local-name: robotnik_msgs, version: master, uri: 'https://github.com/RobotnikAutomation/robotnik_msgs.git'} 4 | -------------------------------------------------------------------------------- /agvs/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(agvs) 3 | find_package(catkin REQUIRED) 4 | catkin_metapackage() 5 | -------------------------------------------------------------------------------- /agvs/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | agvs 4 | 0.1.0 5 | The agvs package. This package contains all the components to simulate the AGVS robot. An ackermann type robot intended for logistics transport. 6 | 7 | 8 | Román Navarro 9 | Roberto Guzmán 10 | 11 | Román Navarro 12 | 13 | BSD 14 | 15 | http://wiki.ros.org/agvs 16 | https://github.com/RobotnikAutomation/agvs 17 | https://github.com/RobotnikAutomation/agvs/issues 18 | 19 | catkin 20 | 21 | agvs_complete 22 | agvs_control 23 | agvs_description 24 | agvs_gazebo 25 | agvs_pad 26 | agvs_robot_control 27 | planner_msgs 28 | purepursuit_planner 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /agvs_complete/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(agvs_complete) 3 | 4 | ## Find catkin macros and libraries 5 | ## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) 6 | ## is used, also find other catkin packages 7 | find_package(catkin REQUIRED) 8 | 9 | ## System dependencies are found with CMake's conventions 10 | # find_package(Boost REQUIRED COMPONENTS system) 11 | 12 | 13 | ## Uncomment this if the package has a setup.py. This macro ensures 14 | ## modules and global scripts declared therein get installed 15 | ## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html 16 | # catkin_python_setup() 17 | 18 | ################################################ 19 | ## Declare ROS messages, services and actions ## 20 | ################################################ 21 | 22 | ## To declare and build messages, services or actions from within this 23 | ## package, follow these steps: 24 | ## * Let MSG_DEP_SET be the set of packages whose message types you use in 25 | ## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...). 26 | ## * In the file package.xml: 27 | ## * add a build_depend and a run_depend tag for each package in MSG_DEP_SET 28 | ## * If MSG_DEP_SET isn't empty the following dependencies might have been 29 | ## pulled in transitively but can be declared for certainty nonetheless: 30 | ## * add a build_depend tag for "message_generation" 31 | ## * add a run_depend tag for "message_runtime" 32 | ## * In this file (CMakeLists.txt): 33 | ## * add "message_generation" and every package in MSG_DEP_SET to 34 | ## find_package(catkin REQUIRED COMPONENTS ...) 35 | ## * add "message_runtime" and every package in MSG_DEP_SET to 36 | ## catkin_package(CATKIN_DEPENDS ...) 37 | ## * uncomment the add_*_files sections below as needed 38 | ## and list every .msg/.srv/.action file to be processed 39 | ## * uncomment the generate_messages entry below 40 | ## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...) 41 | 42 | ## Generate messages in the 'msg' folder 43 | # add_message_files( 44 | # FILES 45 | # Message1.msg 46 | # Message2.msg 47 | # ) 48 | 49 | ## Generate services in the 'srv' folder 50 | # add_service_files( 51 | # FILES 52 | # Service1.srv 53 | # Service2.srv 54 | # ) 55 | 56 | ## Generate actions in the 'action' folder 57 | # add_action_files( 58 | # FILES 59 | # Action1.action 60 | # Action2.action 61 | # ) 62 | 63 | ## Generate added messages and services with any dependencies listed here 64 | # generate_messages( 65 | # DEPENDENCIES 66 | # std_msgs # Or other packages containing msgs 67 | # ) 68 | 69 | ################################### 70 | ## catkin specific configuration ## 71 | ################################### 72 | ## The catkin_package macro generates cmake config files for your package 73 | ## Declare things to be passed to dependent projects 74 | ## INCLUDE_DIRS: uncomment this if you package contains header files 75 | ## LIBRARIES: libraries you create in this project that dependent projects also need 76 | ## CATKIN_DEPENDS: catkin_packages dependent projects also need 77 | ## DEPENDS: system dependencies of this project that dependent projects also need 78 | catkin_package( 79 | # INCLUDE_DIRS include 80 | # LIBRARIES agvs_complete 81 | # CATKIN_DEPENDS other_catkin_pkg 82 | # DEPENDS system_lib 83 | ) 84 | 85 | ########### 86 | ## Build ## 87 | ########### 88 | 89 | ## Specify additional locations of header files 90 | ## Your package locations should be listed before other locations 91 | # include_directories(include) 92 | 93 | ## Declare a cpp library 94 | # add_library(agvs_complete 95 | # src/${PROJECT_NAME}/agvs_complete.cpp 96 | # ) 97 | 98 | ## Declare a cpp executable 99 | # add_executable(agvs_complete_node src/agvs_complete_node.cpp) 100 | 101 | ## Add cmake target dependencies of the executable/library 102 | ## as an example, message headers may need to be generated before nodes 103 | # add_dependencies(agvs_complete_node agvs_complete_generate_messages_cpp) 104 | 105 | ## Specify libraries to link a library or executable target against 106 | # target_link_libraries(agvs_complete_node 107 | # ${catkin_LIBRARIES} 108 | # ) 109 | 110 | ############# 111 | ## Install ## 112 | ############# 113 | 114 | # all install targets should use catkin DESTINATION variables 115 | # See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html 116 | 117 | ## Mark executable scripts (Python etc.) for installation 118 | ## in contrast to setup.py, you can choose the destination 119 | # install(PROGRAMS 120 | # scripts/my_python_script 121 | # DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 122 | # ) 123 | 124 | ## Mark executables and/or libraries for installation 125 | # install(TARGETS agvs_complete agvs_complete_node 126 | # ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 127 | # LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 128 | # RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 129 | # ) 130 | 131 | ## Mark cpp header files for installation 132 | # install(DIRECTORY include/${PROJECT_NAME}/ 133 | # DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} 134 | # FILES_MATCHING PATTERN "*.h" 135 | # PATTERN ".svn" EXCLUDE 136 | # ) 137 | 138 | ## Mark other files for installation (e.g. launch and bag files, etc.) 139 | # install(FILES 140 | # # myfile1 141 | # # myfile2 142 | # DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 143 | # ) 144 | 145 | ############# 146 | ## Testing ## 147 | ############# 148 | 149 | ## Add gtest based cpp test target and link libraries 150 | # catkin_add_gtest(${PROJECT_NAME}-test test/test_agvs_complete.cpp) 151 | # if(TARGET ${PROJECT_NAME}-test) 152 | # target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME}) 153 | # endif() 154 | 155 | ## Add folders to be run by python nosetests 156 | # catkin_add_nosetests(test) 157 | -------------------------------------------------------------------------------- /agvs_complete/launch/agvs_complete.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /agvs_complete/launch/agvs_gmapping.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /agvs_complete/launch/agvs_hector_mapping.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 51 | 52 | 53 | 54 | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /agvs_complete/launch/amcl_diff.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /agvs_complete/launch/amcl_diff_2.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /agvs_complete/launch/map_server.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /agvs_complete/launch/purepursuit_nav.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 | - /InteractiveMarkers1 10 | - /PoseArray1 11 | Splitter Ratio: 0.5 12 | Tree Height: 669 13 | - Class: rviz/Selection 14 | Name: Selection 15 | - Class: rviz/Tool Properties 16 | Expanded: 17 | - /2D Pose Estimate1 18 | - /2D Nav Goal1 19 | - /Publish Point1 20 | Name: Tool Properties 21 | Splitter Ratio: 0.588679 22 | - Class: rviz/Views 23 | Expanded: 24 | - /Current View1 25 | Name: Views 26 | Splitter Ratio: 0.5 27 | - Class: rviz/Time 28 | Experimental: false 29 | Name: Time 30 | SyncMode: 0 31 | SyncSource: LaserScan 32 | Visualization Manager: 33 | Class: "" 34 | Displays: 35 | - Alpha: 0.5 36 | Cell Size: 1 37 | Class: rviz/Grid 38 | Color: 160; 160; 164 39 | Enabled: true 40 | Line Style: 41 | Line Width: 0.03 42 | Value: Lines 43 | Name: Grid 44 | Normal Cell Count: 0 45 | Offset: 46 | X: 0 47 | Y: 0 48 | Z: 0 49 | Plane: XY 50 | Plane Cell Count: 10 51 | Reference Frame: 52 | Value: true 53 | - Alpha: 1 54 | Class: rviz/RobotModel 55 | Collision Enabled: false 56 | Enabled: true 57 | Links: 58 | All Links Enabled: true 59 | Expand Joint Details: false 60 | Expand Link Details: false 61 | Expand Tree: false 62 | Link Tree Style: Links in Alphabetic Order 63 | back_motor_wheel: 64 | Alpha: 1 65 | Show Axes: false 66 | Show Trail: false 67 | Value: true 68 | back_wheel: 69 | Alpha: 1 70 | Show Axes: false 71 | Show Trail: false 72 | Value: true 73 | base_footprint: 74 | Alpha: 1 75 | Show Axes: false 76 | Show Trail: false 77 | Value: true 78 | base_link: 79 | Alpha: 1 80 | Show Axes: false 81 | Show Trail: false 82 | Value: true 83 | elevator_link: 84 | Alpha: 1 85 | Show Axes: false 86 | Show Trail: false 87 | Value: true 88 | front_motor_wheel: 89 | Alpha: 1 90 | Show Axes: false 91 | Show Trail: false 92 | Value: true 93 | front_wheel: 94 | Alpha: 1 95 | Show Axes: false 96 | Show Trail: false 97 | Value: true 98 | imu_link: 99 | Alpha: 1 100 | Show Axes: false 101 | Show Trail: false 102 | Value: true 103 | laser_back: 104 | Alpha: 1 105 | Show Axes: false 106 | Show Trail: false 107 | laser_front: 108 | Alpha: 1 109 | Show Axes: false 110 | Show Trail: false 111 | side_wheel_left: 112 | Alpha: 1 113 | Show Axes: false 114 | Show Trail: false 115 | Value: true 116 | side_wheel_right: 117 | Alpha: 1 118 | Show Axes: false 119 | Show Trail: false 120 | Value: true 121 | Name: RobotModel 122 | Robot Description: robot_description 123 | TF Prefix: "" 124 | Update Interval: 0 125 | Value: true 126 | Visual Enabled: true 127 | - Alpha: 0.7 128 | Class: rviz/Map 129 | Color Scheme: map 130 | Draw Behind: false 131 | Enabled: true 132 | Name: Map 133 | Topic: /map 134 | Value: true 135 | - Alpha: 1 136 | Autocompute Intensity Bounds: true 137 | Autocompute Value Bounds: 138 | Max Value: 10 139 | Min Value: -10 140 | Value: true 141 | Axis: Z 142 | Channel Name: intensity 143 | Class: rviz/LaserScan 144 | Color: 255; 255; 255 145 | Color Transformer: Intensity 146 | Decay Time: 0 147 | Enabled: true 148 | Invert Rainbow: false 149 | Max Color: 255; 255; 255 150 | Max Intensity: 2.70451e-43 151 | Min Color: 0; 0; 0 152 | Min Intensity: 0 153 | Name: LaserScan 154 | Position Transformer: XYZ 155 | Queue Size: 10 156 | Selectable: true 157 | Size (Pixels): 3 158 | Size (m): 0.01 159 | Style: Flat Squares 160 | Topic: /scan 161 | Use Fixed Frame: true 162 | Use rainbow: true 163 | Value: true 164 | - Class: rviz/InteractiveMarkers 165 | Enable Transparency: true 166 | Enabled: true 167 | Name: InteractiveMarkers 168 | Show Axes: false 169 | Show Descriptions: true 170 | Show Visual Aids: false 171 | Update Topic: /path_marker/update 172 | Value: true 173 | - Arrow Length: 0.3 174 | Class: rviz/PoseArray 175 | Color: 255; 25; 0 176 | Enabled: true 177 | Name: PoseArray 178 | Topic: /particlecloud 179 | Value: true 180 | Enabled: true 181 | Global Options: 182 | Background Color: 48; 48; 48 183 | Fixed Frame: map 184 | Frame Rate: 30 185 | Name: root 186 | Tools: 187 | - Class: rviz/Interact 188 | Hide Inactive Objects: true 189 | - Class: rviz/MoveCamera 190 | - Class: rviz/Select 191 | - Class: rviz/FocusCamera 192 | - Class: rviz/Measure 193 | - Class: rviz/SetInitialPose 194 | Topic: /initialpose 195 | - Class: rviz/SetGoal 196 | Topic: /move_base_simple/goal 197 | - Class: rviz/PublishPoint 198 | Single click: true 199 | Topic: /clicked_point 200 | Value: true 201 | Views: 202 | Current: 203 | Class: rviz/Orbit 204 | Distance: 10.1054 205 | Enable Stereo Rendering: 206 | Stereo Eye Separation: 0.06 207 | Stereo Focal Distance: 1 208 | Swap Stereo Eyes: false 209 | Value: false 210 | Focal Point: 211 | X: 0 212 | Y: 0 213 | Z: 0 214 | Name: Current View 215 | Near Clip Distance: 0.01 216 | Pitch: 0.645398 217 | Target Frame: 218 | Value: Orbit (rviz) 219 | Yaw: 3.1954 220 | Saved: ~ 221 | Window Geometry: 222 | Displays: 223 | collapsed: false 224 | Height: 950 225 | Hide Left Dock: false 226 | Hide Right Dock: false 227 | QMainWindow State: 000000ff00000000fd00000004000000000000013c0000032cfc0200000009fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000006400fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c00610079007301000000280000032c000000dd00fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb0000000a0049006d006100670065000000028f000000c50000000000000000000000010000010f0000032cfc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a0056006900650077007301000000280000032c000000b000fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000006af0000003efc0100000002fb0000000800540069006d00650100000000000006af000002f600fffffffb0000000800540069006d00650100000000000004500000000000000000000004580000032c00000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 228 | Selection: 229 | collapsed: false 230 | Time: 231 | collapsed: false 232 | Tool Properties: 233 | collapsed: false 234 | Views: 235 | collapsed: false 236 | Width: 1711 237 | X: 58 238 | Y: 60 239 | -------------------------------------------------------------------------------- /agvs_complete/launch/robot_pose_ekf.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /agvs_complete/maps/willow.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RobotnikAutomation/agvs/8f2f82aa288597085902a42d3dbf4514178feb8f/agvs_complete/maps/willow.pgm -------------------------------------------------------------------------------- /agvs_complete/maps/willow.yaml: -------------------------------------------------------------------------------- 1 | image: willow.pgm 2 | resolution: 0.050000 3 | origin: [-100.000000, -100.000000, 0.000000] 4 | negate: 0 5 | occupied_thresh: 0.65 6 | free_thresh: 0.196 7 | 8 | -------------------------------------------------------------------------------- /agvs_complete/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | agvs_complete 4 | 0.1.0 5 | The agvs_complete package. It contains multiple launch files to perform different tasks, from creating a map with gmapping to launching amcl. 6 | 7 | 8 | Roberto Guzmán 9 | Román Navarro 10 | 11 | BSD 12 | 13 | 14 | http://wiki.ros.org/agvs_complete 15 | https://github.com/RobotnikAutomation/agvs 16 | https://github.com/RobotnikAutomation/agvs/issues 17 | 18 | 19 | Román Navarro 20 | 21 | catkin 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /agvs_complete/scripts/save_map.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # parameter $1: name of the map 3 | 4 | rosrun map_server map_saver -f $1 5 | -------------------------------------------------------------------------------- /agvs_control/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(agvs_control) 3 | 4 | ## Find catkin macros and libraries 5 | ## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) 6 | ## is used, also find other catkin packages 7 | #find_package(catkin REQUIRED COMPONENTS 8 | # ros_control 9 | # ros_controllers 10 | #) 11 | 12 | ## System dependencies are found with CMake's conventions 13 | # find_package(Boost REQUIRED COMPONENTS system) 14 | 15 | 16 | ## Uncomment this if the package has a setup.py. This macro ensures 17 | ## modules and global scripts declared therein get installed 18 | ## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html 19 | # catkin_python_setup() 20 | 21 | ################################################ 22 | ## Declare ROS messages, services and actions ## 23 | ################################################ 24 | 25 | ## To declare and build messages, services or actions from within this 26 | ## package, follow these steps: 27 | ## * Let MSG_DEP_SET be the set of packages whose message types you use in 28 | ## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...). 29 | ## * In the file package.xml: 30 | ## * add a build_depend and a run_depend tag for each package in MSG_DEP_SET 31 | ## * If MSG_DEP_SET isn't empty the following dependencies might have been 32 | ## pulled in transitively but can be declared for certainty nonetheless: 33 | ## * add a build_depend tag for "message_generation" 34 | ## * add a run_depend tag for "message_runtime" 35 | ## * In this file (CMakeLists.txt): 36 | ## * add "message_generation" and every package in MSG_DEP_SET to 37 | ## find_package(catkin REQUIRED COMPONENTS ...) 38 | ## * add "message_runtime" and every package in MSG_DEP_SET to 39 | ## catkin_package(CATKIN_DEPENDS ...) 40 | ## * uncomment the add_*_files sections below as needed 41 | ## and list every .msg/.srv/.action file to be processed 42 | ## * uncomment the generate_messages entry below 43 | ## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...) 44 | 45 | ## Generate messages in the 'msg' folder 46 | # add_message_files( 47 | # FILES 48 | # Message1.msg 49 | # Message2.msg 50 | # ) 51 | 52 | ## Generate services in the 'srv' folder 53 | # add_service_files( 54 | # FILES 55 | # Service1.srv 56 | # Service2.srv 57 | # ) 58 | 59 | ## Generate actions in the 'action' folder 60 | # add_action_files( 61 | # FILES 62 | # Action1.action 63 | # Action2.action 64 | # ) 65 | 66 | ## Generate added messages and services with any dependencies listed here 67 | # generate_messages( 68 | # DEPENDENCIES 69 | # std_msgs # Or other packages containing msgs 70 | # ) 71 | 72 | ################################### 73 | ## catkin specific configuration ## 74 | ################################### 75 | ## The catkin_package macro generates cmake config files for your package 76 | ## Declare things to be passed to dependent projects 77 | ## INCLUDE_DIRS: uncomment this if you package contains header files 78 | ## LIBRARIES: libraries you create in this project that dependent projects also need 79 | ## CATKIN_DEPENDS: catkin_packages dependent projects also need 80 | ## DEPENDS: system dependencies of this project that dependent projects also need 81 | catkin_package( 82 | # INCLUDE_DIRS include 83 | # LIBRARIES agvs_control 84 | # CATKIN_DEPENDS ros_control ros_controllers 85 | # DEPENDS system_lib 86 | ) 87 | 88 | ########### 89 | ## Build ## 90 | ########### 91 | 92 | ## Specify additional locations of header files 93 | ## Your package locations should be listed before other locations 94 | # include_directories(include) 95 | include_directories( 96 | ${catkin_INCLUDE_DIRS} 97 | ) 98 | 99 | ## Declare a cpp library 100 | # add_library(agvs_control 101 | # src/${PROJECT_NAME}/agvs_control.cpp 102 | # ) 103 | 104 | ## Declare a cpp executable 105 | # add_executable(agvs_control_node src/agvs_control_node.cpp) 106 | 107 | ## Add cmake target dependencies of the executable/library 108 | ## as an example, message headers may need to be generated before nodes 109 | # add_dependencies(agvs_control_node agvs_control_generate_messages_cpp) 110 | 111 | ## Specify libraries to link a library or executable target against 112 | # target_link_libraries(agvs_control_node 113 | # ${catkin_LIBRARIES} 114 | # ) 115 | 116 | ############# 117 | ## Install ## 118 | ############# 119 | 120 | # all install targets should use catkin DESTINATION variables 121 | # See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html 122 | 123 | ## Mark executable scripts (Python etc.) for installation 124 | ## in contrast to setup.py, you can choose the destination 125 | # install(PROGRAMS 126 | # scripts/my_python_script 127 | # DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 128 | # ) 129 | 130 | ## Mark executables and/or libraries for installation 131 | # install(TARGETS agvs_control agvs_control_node 132 | # ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 133 | # LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 134 | # RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 135 | # ) 136 | 137 | ## Mark cpp header files for installation 138 | # install(DIRECTORY include/${PROJECT_NAME}/ 139 | # DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} 140 | # FILES_MATCHING PATTERN "*.h" 141 | # PATTERN ".svn" EXCLUDE 142 | # ) 143 | 144 | ## Mark other files for installation (e.g. launch and bag files, etc.) 145 | # install(FILES 146 | # # myfile1 147 | # # myfile2 148 | # DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 149 | # ) 150 | 151 | ############# 152 | ## Testing ## 153 | ############# 154 | 155 | ## Add gtest based cpp test target and link libraries 156 | # catkin_add_gtest(${PROJECT_NAME}-test test/test_agvs_control.cpp) 157 | # if(TARGET ${PROJECT_NAME}-test) 158 | # target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME}) 159 | # endif() 160 | 161 | ## Add folders to be run by python nosetests 162 | # catkin_add_nosetests(test) 163 | -------------------------------------------------------------------------------- /agvs_control/config/agvs_control.yaml: -------------------------------------------------------------------------------- 1 | agvs: 2 | # Velocity controllers 3 | # joint_back_wheel_effort_controller: 4 | # type: effort_controllers/JointEffortController 5 | # joint: joint_back_wheel 6 | # pid: {p: 1000.0, i: 500, d: 500.0} 7 | 8 | joint_back_wheel_controller: 9 | type: velocity_controllers/JointVelocityController 10 | joint: joint_back_wheel 11 | pid: {p: 1000.0, i: 0.01, d: 100.0} 12 | 13 | # joint_front_wheel_effort_controller: 14 | # type: effort_controllers/JointEffortController 15 | # joint: joint_front_wheel 16 | # pid: {p: 1000.0, i: 500, d: 500.0} 17 | 18 | joint_front_wheel_controller: 19 | type: velocity_controllers/JointVelocityController 20 | joint: joint_front_wheel 21 | pid: {p: 1000.0, i: 0.01, d: 100.0} 22 | 23 | # Position controllers 24 | joint_back_motor_wheel_controller: 25 | type: effort_controllers/JointPositionController 26 | joint: joint_back_motor_wheel 27 | pid: {p: 100.0, i: 0.01, d: 10.0} 28 | # Be careful with the selection of the pid values, e.g. d: 50.0 produces a nan in the velocity ??? 29 | 30 | joint_front_motor_wheel_controller: 31 | type: effort_controllers/JointPositionController 32 | joint: joint_front_motor_wheel 33 | pid: {p: 100.0, i: 0.01, d: 10.0} 34 | 35 | joint_elevator_controller: 36 | type: effort_controllers/JointPositionController 37 | joint: elevator_joint 38 | pid: {p: 10000.0, i: 10000.0, d: 500.0} 39 | 40 | joint_read_state_controller: 41 | type: joint_state_controller/JointStateController 42 | publish_rate: 100.0 43 | -------------------------------------------------------------------------------- /agvs_control/config/agvs_control.yaml~: -------------------------------------------------------------------------------- 1 | agvs: 2 | # Velocity controllers 3 | # joint_back_wheel_effort_controller: 4 | # type: effort_controllers/JointEffortController 5 | # joint: joint_back_wheel 6 | # pid: {p: 1000.0, i: 500, d: 500.0} 7 | 8 | joint_back_wheel_controller: 9 | type: velocity_controllers/JointVelocityController 10 | joint: joint_back_wheel 11 | pid: {p: 1000.0, i: 0.01, d: 100.0} 12 | 13 | # joint_front_wheel_effort_controller: 14 | # type: effort_controllers/JointEffortController 15 | # joint: joint_front_wheel 16 | # pid: {p: 1000.0, i: 500, d: 500.0} 17 | 18 | joint_front_wheel_controller: 19 | type: velocity_controllers/JointVelocityController 20 | joint: joint_front_wheel 21 | pid: {p: 1000.0, i: 0.01, d: 100.0} 22 | 23 | # Position controllers 24 | joint_back_motor_wheel_controller: 25 | type: effort_controllers/JointPositionController 26 | joint: joint_back_motor_wheel 27 | pid: {p: 100.0, i: 0.01, d: 10.0} 28 | # Be careful with the selection of the pid values, e.g. d: 50.0 produces a nan in the velocity ??? 29 | 30 | joint_front_motor_wheel_controller: 31 | type: effort_controllers/JointPositionController 32 | joint: joint_front_motor_wheel 33 | pid: {p: 100.0, i: 0.01, d: 10.0} 34 | 35 | joint_elevator_controller: 36 | type: effort_controllers/JointPositionController 37 | joint: elevator_joint 38 | pid: {p: 10000.0, i: 10000.0, d: 50.0} 39 | 40 | joint_read_state_controller: 41 | type: joint_state_controller/JointStateController 42 | publish_rate: 100.0 43 | -------------------------------------------------------------------------------- /agvs_control/launch/agvs_control.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /agvs_control/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | agvs_control 4 | 0.1.0 5 | The agvs_control package. Config files used for Gazebo motor controllers. 6 | 7 | Román Navarro 8 | Roberto Guzmán 9 | 10 | 11 | BSD 12 | 13 | http://wiki.ros.org/agvs_control 14 | https://github.com/RobotnikAutomation/agvs 15 | https://github.com/RobotnikAutomation/agvs/issues 16 | 17 | Roberto Guzmán 18 | 19 | 20 | catkin 21 | ros_controllers 22 | ros_control 23 | ros_controllers 24 | ros_control 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /agvs_description/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(agvs_description) 3 | 4 | ## Find catkin macros and libraries 5 | ## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) 6 | ## is used, also find other catkin packages 7 | find_package(catkin REQUIRED COMPONENTS 8 | message_runtime 9 | roscpp 10 | std_msgs 11 | std_srvs 12 | tf 13 | ) 14 | 15 | ## System dependencies are found with CMake's conventions 16 | # find_package(Boost REQUIRED COMPONENTS system) 17 | 18 | 19 | ## Uncomment this if the package has a setup.py. This macro ensures 20 | ## modules and global scripts declared therein get installed 21 | ## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html 22 | # catkin_python_setup() 23 | 24 | ################################################ 25 | ## Declare ROS messages, services and actions ## 26 | ################################################ 27 | 28 | ## To declare and build messages, services or actions from within this 29 | ## package, follow these steps: 30 | ## * Let MSG_DEP_SET be the set of packages whose message types you use in 31 | ## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...). 32 | ## * In the file package.xml: 33 | ## * add a build_depend and a run_depend tag for each package in MSG_DEP_SET 34 | ## * If MSG_DEP_SET isn't empty the following dependencies might have been 35 | ## pulled in transitively but can be declared for certainty nonetheless: 36 | ## * add a build_depend tag for "message_generation" 37 | ## * add a run_depend tag for "message_runtime" 38 | ## * In this file (CMakeLists.txt): 39 | ## * add "message_generation" and every package in MSG_DEP_SET to 40 | ## find_package(catkin REQUIRED COMPONENTS ...) 41 | ## * add "message_runtime" and every package in MSG_DEP_SET to 42 | ## catkin_package(CATKIN_DEPENDS ...) 43 | ## * uncomment the add_*_files sections below as needed 44 | ## and list every .msg/.srv/.action file to be processed 45 | ## * uncomment the generate_messages entry below 46 | ## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...) 47 | 48 | ## Generate messages in the 'msg' folder 49 | # add_message_files( 50 | # FILES 51 | # Message1.msg 52 | # Message2.msg 53 | # ) 54 | 55 | ## Generate services in the 'srv' folder 56 | # add_service_files( 57 | # FILES 58 | # Service1.srv 59 | # Service2.srv 60 | # ) 61 | 62 | ## Generate actions in the 'action' folder 63 | # add_action_files( 64 | # FILES 65 | # Action1.action 66 | # Action2.action 67 | # ) 68 | 69 | ## Generate added messages and services with any dependencies listed here 70 | # generate_messages( 71 | # DEPENDENCIES 72 | # std_msgs 73 | # ) 74 | 75 | ################################### 76 | ## catkin specific configuration ## 77 | ################################### 78 | ## The catkin_package macro generates cmake config files for your package 79 | ## Declare things to be passed to dependent projects 80 | ## INCLUDE_DIRS: uncomment this if you package contains header files 81 | ## LIBRARIES: libraries you create in this project that dependent projects also need 82 | ## CATKIN_DEPENDS: catkin_packages dependent projects also need 83 | ## DEPENDS: system dependencies of this project that dependent projects also need 84 | catkin_package( 85 | # INCLUDE_DIRS include 86 | # LIBRARIES agvs_description 87 | # CATKIN_DEPENDS gazebo_ros message_runtime roscpp std_msgs std_srvs tf 88 | # DEPENDS system_lib 89 | ) 90 | 91 | ########### 92 | ## Build ## 93 | ########### 94 | 95 | ## Specify additional locations of header files 96 | ## Your package locations should be listed before other locations 97 | # include_directories(include) 98 | include_directories( 99 | ${catkin_INCLUDE_DIRS} 100 | ) 101 | 102 | ## Declare a cpp library 103 | # add_library(agvs_description 104 | # src/${PROJECT_NAME}/agvs_description.cpp 105 | # ) 106 | 107 | ## Declare a cpp executable 108 | # add_executable(agvs_description_node src/agvs_description_node.cpp) 109 | 110 | ## Add cmake target dependencies of the executable/library 111 | ## as an example, message headers may need to be generated before nodes 112 | # add_dependencies(agvs_description_node agvs_description_generate_messages_cpp) 113 | 114 | ## Specify libraries to link a library or executable target against 115 | # target_link_libraries(agvs_description_node 116 | # ${catkin_LIBRARIES} 117 | # ) 118 | 119 | ############# 120 | ## Install ## 121 | ############# 122 | 123 | # all install targets should use catkin DESTINATION variables 124 | # See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html 125 | 126 | ## Mark executable scripts (Python etc.) for installation 127 | ## in contrast to setup.py, you can choose the destination 128 | # install(PROGRAMS 129 | # scripts/my_python_script 130 | # DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 131 | # ) 132 | 133 | ## Mark executables and/or libraries for installation 134 | # install(TARGETS agvs_description agvs_description_node 135 | # ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 136 | # LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 137 | # RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 138 | # ) 139 | 140 | ## Mark cpp header files for installation 141 | # install(DIRECTORY include/${PROJECT_NAME}/ 142 | # DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} 143 | # FILES_MATCHING PATTERN "*.h" 144 | # PATTERN ".svn" EXCLUDE 145 | # ) 146 | 147 | ## Mark other files for installation (e.g. launch and bag files, etc.) 148 | # install(FILES 149 | # # myfile1 150 | # # myfile2 151 | # DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 152 | # ) 153 | 154 | ############# 155 | ## Testing ## 156 | ############# 157 | 158 | ## Add gtest based cpp test target and link libraries 159 | # catkin_add_gtest(${PROJECT_NAME}-test test/test_agvs_description.cpp) 160 | # if(TARGET ${PROJECT_NAME}-test) 161 | # target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME}) 162 | # endif() 163 | 164 | ## Add folders to be run by python nosetests 165 | # catkin_add_nosetests(test) 166 | -------------------------------------------------------------------------------- /agvs_description/launch/agvs.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /agvs_description/launch/agvs_state.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /agvs_description/launch/rviz_agvs.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /agvs_description/launch/rviz_agvs_alone.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /agvs_description/meshes/agvs_top.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RobotnikAutomation/agvs/8f2f82aa288597085902a42d3dbf4514178feb8f/agvs_description/meshes/agvs_top.stl -------------------------------------------------------------------------------- /agvs_description/meshes/agvs_wheel.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RobotnikAutomation/agvs/8f2f82aa288597085902a42d3dbf4514178feb8f/agvs_description/meshes/agvs_wheel.stl -------------------------------------------------------------------------------- /agvs_description/meshes/chassis_agvs.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RobotnikAutomation/agvs/8f2f82aa288597085902a42d3dbf4514178feb8f/agvs_description/meshes/chassis_agvs.stl -------------------------------------------------------------------------------- /agvs_description/meshes/coordinate_systems.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RobotnikAutomation/agvs/8f2f82aa288597085902a42d3dbf4514178feb8f/agvs_description/meshes/coordinate_systems.bmp -------------------------------------------------------------------------------- /agvs_description/meshes/motor_wheel.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RobotnikAutomation/agvs/8f2f82aa288597085902a42d3dbf4514178feb8f/agvs_description/meshes/motor_wheel.stl -------------------------------------------------------------------------------- /agvs_description/meshes/side_wheel_agvs.dae: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | VCGLab 6 | VCGLib | MeshLab 7 | 8 | Y_UP 9 | Wed Feb 26 13:37:49 2014 10 | Wed Feb 26 13:37:49 2014 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -0.0112288 -0.01 0.0690935 -0.0221668 -0.01 0.0663975 -0.0167521 -0.01 -0.0679659 -0.0274377 -0.01 -0.0643986 -0.0325306 -0.01 0.0619819 -0.042052 -0.01 0.055961 -0.0464186 -0.01 -0.0523958 -0.0504842 -0.01 0.0484907 -0.0542223 -0.01 -0.0442712 -0.0606218 -0.01 -0.035 -0.0632415 -0.01 0.0300085 -0.0672363 -0.01 0.0194752 -0.00563266 -0.01 -0.069773 8.57253e-18 -0.01 -0.07 0 -0.01 0.07 0.00563266 -0.01 -0.069773 0.0167521 -0.01 -0.0679659 0.0221668 -0.01 0.0663975 0.0274377 -0.01 -0.0643986 0.0325306 -0.01 0.0619819 0.0464186 -0.01 -0.0523958 0.0606218 -0.01 -0.035 0.0654511 -0.01 -0.0248223 0.0685853 -0.01 -0.0140018 0.0672363 -0.01 0.0194752 2.57176e-17 -0.01 -0.07 8.57253e-18 0.01 -0.07 -0.00563266 0.01 -0.069773 0.00563266 0.01 -0.069773 0.0374126 -0.01 -0.0591633 0.0374126 0.01 -0.0591633 0.0464186 0.01 -0.0523958 0.0542223 -0.01 -0.0442712 0.0542223 0.01 -0.0442712 0.0654511 0.01 -0.0248223 0.0699432 0.01 -0.00281862 0.0699432 -0.01 -0.00281862 0.0694896 -0.01 0.00843757 0.0672363 0.01 0.0194752 0.0632415 -0.01 0.0300085 0.0576089 -0.01 0.0397645 0.0504842 -0.01 0.0484907 0.0504842 0.01 0.0484907 0.042052 0.01 0.055961 0.042052 -0.01 0.055961 0.0221668 0.01 0.0663975 0.0112288 -0.01 0.0690935 0.0112288 0.01 0.0690935 0 0.01 0.07 -0.0112288 0.01 0.0690935 -0.0325306 0.01 0.0619819 -0.0504842 0.01 0.0484907 -0.0576089 -0.01 0.0397645 -0.0632415 0.01 0.0300085 -0.0694896 -0.01 0.00843757 -0.0694896 0.01 0.00843757 -0.0699432 0.01 -0.00281862 -0.0699432 -0.01 -0.00281862 -0.0685853 -0.01 -0.0140018 -0.0654511 0.01 -0.0248223 -0.0654511 -0.01 -0.0248223 -0.0606218 0.01 -0.035 -0.0374126 0.01 -0.0591633 -0.0374126 -0.01 -0.0591633 -0.0274377 0.01 -0.0643986 -0.0167521 0.01 -0.0679659 0.0694896 0.01 0.00843757 0.0685853 0.01 -0.0140018 0.0632415 0.01 0.0300085 0.0606218 0.01 -0.035 0.0576089 0.01 0.0397645 0.0325306 0.01 0.0619819 0.0274377 0.01 -0.0643986 0.0167521 0.01 -0.0679659 2.57176e-17 0.01 -0.07 -0.0672363 0.01 0.0194752 -0.0464186 0.01 -0.0523958 -0.0542223 0.01 -0.0442712 -0.0685853 0.01 -0.0140018 -0.0576089 0.01 0.0397645 -0.042052 0.01 0.055961 -0.0221668 0.01 0.0663975 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0.0402661 0 -0.999189 -0.0402661 -3.45182e-17 -0.999189 0.0402661 0 -0.999189 0.160411 0 -0.98705 0.160411 0 -0.98705 0.316667 0 -0.948537 0.316667 0 -0.948537 0.464723 0 -0.885456 0.464723 0 -0.885456 0.600742 0 -0.799443 0.600742 0 -0.799443 0.721202 0 -0.692724 0.721202 0 -0.692724 0.822984 0 -0.568065 0.822984 0 -0.568065 0.90345 0 -0.428693 0.90345 0 -0.428693 0.960518 0 -0.278217 0.960518 0 -0.278217 0.992709 0 -0.120537 0.992709 0 -0.120537 0.999189 0 0.0402657 0.999189 0 0.0402657 0.979791 0 0.200026 0.979791 0 0.200026 0.935016 0 0.354604 0.935016 0 0.354604 0.866025 0 0.5 0.866025 0 0.5 0.774605 0 0.632445 0.774605 0 0.632445 0.663123 0 0.748511 0.663123 0 0.748511 0.534466 0 0.84519 0.534466 0 0.84519 0.391967 0 0.91998 0.391967 0 0.91998 0.239316 0 0.970942 0.239316 0 0.970942 0.0804666 0 0.996757 0.0804666 0 0.996757 -0.0804666 0 0.996757 -0.0804666 0 0.996757 -0.239316 0 0.970942 -0.239316 0 0.970942 -0.391967 0 0.91998 -0.391967 0 0.91998 -0.534466 0 0.84519 -0.534466 0 0.84519 -0.663123 0 0.748511 -0.663123 0 0.748511 -0.774605 0 0.632445 -0.774605 0 0.632445 -0.866025 0 0.5 -0.866025 0 0.5 -0.935016 0 0.354604 -0.935016 0 0.354604 -0.979791 0 0.200026 -0.979791 0 0.200026 -0.999189 0 0.0402657 -0.999189 0 0.0402657 -0.992709 0 -0.120537 -0.992709 0 -0.120537 -0.960518 0 -0.278217 -0.960518 0 -0.278217 -0.90345 0 -0.428693 -0.90345 0 -0.428693 -0.822984 0 -0.568065 -0.822984 0 -0.568065 -0.721202 0 -0.692724 -0.721202 0 -0.692724 -0.600742 0 -0.799443 -0.600742 0 -0.799443 -0.464723 0 -0.885456 -0.464723 0 -0.885456 -0.316667 0 -0.948537 -0.316667 0 -0.948537 -0.160411 0 -0.98705 -0.160411 0 -0.98705 -0.0402661 0 -0.999189 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 |

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

45 |
46 |
47 |
48 |
49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 |
64 | -------------------------------------------------------------------------------- /agvs_description/meshes/side_wheel_agvs.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RobotnikAutomation/agvs/8f2f82aa288597085902a42d3dbf4514178feb8f/agvs_description/meshes/side_wheel_agvs.stl -------------------------------------------------------------------------------- /agvs_description/meshes/tfs_1.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RobotnikAutomation/agvs/8f2f82aa288597085902a42d3dbf4514178feb8f/agvs_description/meshes/tfs_1.bmp -------------------------------------------------------------------------------- /agvs_description/meshes/tfs_2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RobotnikAutomation/agvs/8f2f82aa288597085902a42d3dbf4514178feb8f/agvs_description/meshes/tfs_2.bmp -------------------------------------------------------------------------------- /agvs_description/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | agvs_description 4 | 0.1.0 5 | The agvs_description package. Robot description. Urdf and mesh files. 6 | 7 | Roberto Guzmán 8 | Román Navarro 9 | 10 | BSD 11 | 12 | http://wiki.ros.org/agvs_description 13 | https://github.com/RobotnikAutomation/agvs 14 | https://github.com/RobotnikAutomation/agvs/issues 15 | 16 | Román Navarro 17 | Roberto Guzmán 18 | 19 | 20 | catkin 21 | roscpp 22 | std_msgs 23 | std_srvs 24 | tf 25 | message_runtime 26 | roscpp 27 | std_msgs 28 | std_srvs 29 | tf 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /agvs_description/urdf/agvs.gazebo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | /agvs 7 | 0.001 8 | gazebo_ros_control/DefaultRobotHWSim 9 | 10 | 11 | 12 | 13 | Gazebo/Green 14 | 15 | 16 | 17 | Gazebo/Red 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | Gazebo/Grey 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | Gazebo/Grey 36 | 37 | 38 | 39 | Gazebo/Blue 40 | 41 | 42 | 43 | Gazebo/Blue 44 | 45 | 46 | 47 | 48 | 49 | 50 | 52 | 53 | 55 | 56 | 57 | Gazebo/Grey 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | Gazebo/Grey 67 | 68 | 69 | 70 | Gazebo/Grey 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 0 0 0 0 0 0 80 | false 81 | 30 82 | 83 | 84 | 85 | 720 86 | 1 87 | -1.570796 88 | 1.570796 89 | 93 | 94 | 95 | 96 | 0.10 97 | 10.0 98 | 0.01 99 | 100 | 101 | gaussian 102 | 0.0 103 | 0.01 104 | 105 | 106 | 107 | 108 | /scan 109 | laser_front 110 | 111 | 112 | 113 | 114 | 115 | 116 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | /agvs 159 | imu_data 160 | imu_link 161 | /imu_service 162 | 0.005 163 | 164 | 165 | 166 | 167 | -------------------------------------------------------------------------------- /agvs_description/urdf/vrep/agvs_vrep.urdf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | transmission_interface/SimpleTransmission 85 | 86 | 87 | EffortJointInterface 88 | 100.0 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | transmission_interface/SimpleTransmission 124 | 125 | 126 | 127 | VelocityJointInterface 128 | 1.0 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | transmission_interface/SimpleTransmission 164 | 165 | 166 | EffortJointInterface 167 | 100.0 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | transmission_interface/SimpleTransmission 204 | 205 | 206 | 207 | VelocityJointInterface 208 | 1.0 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | transmission_interface/SimpleTransmission 244 | 245 | 246 | EffortJointInterface 247 | 1.0 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | transmission_interface/SimpleTransmission 283 | 284 | 285 | EffortJointInterface 286 | 1.0 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | transmission_interface/SimpleTransmission 318 | 319 | 320 | EffortJointInterface 321 | 100.0 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | -------------------------------------------------------------------------------- /agvs_description/urdf/vrep/agvs_vrep.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | transmission_interface/SimpleTransmission 110 | 111 | 112 | EffortJointInterface 113 | ${motor_wheel_mechanical_reduction} 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | transmission_interface/SimpleTransmission 153 | 154 | 155 | 156 | VelocityJointInterface 157 | ${wheel_mechanical_reduction} 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | transmission_interface/SimpleTransmission 196 | 197 | 198 | EffortJointInterface 199 | ${motor_wheel_mechanical_reduction} 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | transmission_interface/SimpleTransmission 239 | 240 | 241 | 242 | VelocityJointInterface 243 | ${wheel_mechanical_reduction} 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | transmission_interface/SimpleTransmission 283 | 284 | 285 | EffortJointInterface 286 | ${wheel_mechanical_reduction} 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | transmission_interface/SimpleTransmission 326 | 327 | 328 | EffortJointInterface 329 | ${wheel_mechanical_reduction} 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | transmission_interface/SimpleTransmission 365 | 366 | 367 | EffortJointInterface 368 | 100.0 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | -------------------------------------------------------------------------------- /agvs_description/urdf/vrep/xacro2urdf.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # usage xacro2urdf file1.xacro file2.urdf 3 | echo "Converting file $1 in $2" 4 | rosrun xacro xacro.py $1 > $2 5 | 6 | -------------------------------------------------------------------------------- /agvs_description/urdf/xacro2urdf.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # usage xacro2urdf file1.xacro file2.urdf 3 | echo "Converting file $1 in $2" 4 | rosrun xacro xacro.py $1 > $2 5 | 6 | -------------------------------------------------------------------------------- /agvs_description/vrep/AGVS.ttm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RobotnikAutomation/agvs/8f2f82aa288597085902a42d3dbf4514178feb8f/agvs_description/vrep/AGVS.ttm -------------------------------------------------------------------------------- /agvs_description/vrep/AGVS.ttt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RobotnikAutomation/agvs/8f2f82aa288597085902a42d3dbf4514178feb8f/agvs_description/vrep/AGVS.ttt -------------------------------------------------------------------------------- /agvs_gazebo/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(agvs_gazebo) 3 | 4 | ## Find catkin macros and libraries 5 | ## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) 6 | ## is used, also find other catkin packages 7 | find_package(catkin REQUIRED COMPONENTS 8 | agvs_description 9 | gazebo_ros 10 | roscpp 11 | std_msgs 12 | std_srvs 13 | tf 14 | joint_state_controller 15 | velocity_controllers 16 | effort_controllers 17 | ) 18 | 19 | ## System dependencies are found with CMake's conventions 20 | # find_package(Boost REQUIRED COMPONENTS system) 21 | 22 | 23 | ## Uncomment this if the package has a setup.py. This macro ensures 24 | ## modules and global scripts declared therein get installed 25 | ## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html 26 | # catkin_python_setup() 27 | 28 | ################################################ 29 | ## Declare ROS messages, services and actions ## 30 | ################################################ 31 | 32 | ## To declare and build messages, services or actions from within this 33 | ## package, follow these steps: 34 | ## * Let MSG_DEP_SET be the set of packages whose message types you use in 35 | ## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...). 36 | ## * In the file package.xml: 37 | ## * add a build_depend and a run_depend tag for each package in MSG_DEP_SET 38 | ## * If MSG_DEP_SET isn't empty the following dependencies might have been 39 | ## pulled in transitively but can be declared for certainty nonetheless: 40 | ## * add a build_depend tag for "message_generation" 41 | ## * add a run_depend tag for "message_runtime" 42 | ## * In this file (CMakeLists.txt): 43 | ## * add "message_generation" and every package in MSG_DEP_SET to 44 | ## find_package(catkin REQUIRED COMPONENTS ...) 45 | ## * add "message_runtime" and every package in MSG_DEP_SET to 46 | ## catkin_package(CATKIN_DEPENDS ...) 47 | ## * uncomment the add_*_files sections below as needed 48 | ## and list every .msg/.srv/.action file to be processed 49 | ## * uncomment the generate_messages entry below 50 | ## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...) 51 | 52 | ## Generate messages in the 'msg' folder 53 | # add_message_files( 54 | # FILES 55 | # Message1.msg 56 | # Message2.msg 57 | # ) 58 | 59 | ## Generate services in the 'srv' folder 60 | # add_service_files( 61 | # FILES 62 | # Service1.srv 63 | # Service2.srv 64 | # ) 65 | 66 | ## Generate actions in the 'action' folder 67 | # add_action_files( 68 | # FILES 69 | # Action1.action 70 | # Action2.action 71 | # ) 72 | 73 | ## Generate added messages and services with any dependencies listed here 74 | # generate_messages( 75 | # DEPENDENCIES 76 | # std_msgs 77 | # ) 78 | 79 | ################################### 80 | ## catkin specific configuration ## 81 | ################################### 82 | ## The catkin_package macro generates cmake config files for your package 83 | ## Declare things to be passed to dependent projects 84 | ## INCLUDE_DIRS: uncomment this if you package contains header files 85 | ## LIBRARIES: libraries you create in this project that dependent projects also need 86 | ## CATKIN_DEPENDS: catkin_packages dependent projects also need 87 | ## DEPENDS: system dependencies of this project that dependent projects also need 88 | catkin_package( 89 | # INCLUDE_DIRS include 90 | # LIBRARIES agvs_gazebo 91 | # CATKIN_DEPENDS agvs_description gazebo_ros roscpp std_msgs std_srvs tf 92 | # DEPENDS system_lib 93 | ) 94 | 95 | ########### 96 | ## Build ## 97 | ########### 98 | 99 | ## Specify additional locations of header files 100 | ## Your package locations should be listed before other locations 101 | # include_directories(include) 102 | include_directories( 103 | ${catkin_INCLUDE_DIRS} 104 | ) 105 | 106 | ## Declare a cpp library 107 | # add_library(agvs_gazebo 108 | # src/${PROJECT_NAME}/agvs_gazebo.cpp 109 | # ) 110 | 111 | ## Declare a cpp executable 112 | # add_executable(agvs_gazebo_node src/agvs_gazebo_node.cpp) 113 | 114 | ## Add cmake target dependencies of the executable/library 115 | ## as an example, message headers may need to be generated before nodes 116 | # add_dependencies(agvs_gazebo_node agvs_gazebo_generate_messages_cpp) 117 | 118 | ## Specify libraries to link a library or executable target against 119 | # target_link_libraries(agvs_gazebo_node 120 | # ${catkin_LIBRARIES} 121 | # ) 122 | 123 | ############# 124 | ## Install ## 125 | ############# 126 | 127 | # all install targets should use catkin DESTINATION variables 128 | # See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html 129 | 130 | ## Mark executable scripts (Python etc.) for installation 131 | ## in contrast to setup.py, you can choose the destination 132 | # install(PROGRAMS 133 | # scripts/my_python_script 134 | # DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 135 | # ) 136 | 137 | ## Mark executables and/or libraries for installation 138 | # install(TARGETS agvs_gazebo agvs_gazebo_node 139 | # ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 140 | # LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 141 | # RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 142 | # ) 143 | 144 | ## Mark cpp header files for installation 145 | # install(DIRECTORY include/${PROJECT_NAME}/ 146 | # DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} 147 | # FILES_MATCHING PATTERN "*.h" 148 | # PATTERN ".svn" EXCLUDE 149 | # ) 150 | 151 | ## Mark other files for installation (e.g. launch and bag files, etc.) 152 | # install(FILES 153 | # # myfile1 154 | # # myfile2 155 | # DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 156 | # ) 157 | 158 | ############# 159 | ## Testing ## 160 | ############# 161 | 162 | ## Add gtest based cpp test target and link libraries 163 | # catkin_add_gtest(${PROJECT_NAME}-test test/test_agvs_gazebo.cpp) 164 | # if(TARGET ${PROJECT_NAME}-test) 165 | # target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME}) 166 | # endif() 167 | 168 | ## Add folders to be run by python nosetests 169 | # catkin_add_nosetests(test) 170 | -------------------------------------------------------------------------------- /agvs_gazebo/CMakeLists.txt~: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(agvs_gazebo) 3 | 4 | ## Find catkin macros and libraries 5 | ## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) 6 | ## is used, also find other catkin packages 7 | find_package(catkin REQUIRED COMPONENTS 8 | agvs_description 9 | gazebo_ros 10 | roscpp 11 | std_msgs 12 | std_srvs 13 | tf 14 | joint_state_controller 15 | velocity_controllers 16 | effort_controllers 17 | ) 18 | 19 | ## System dependencies are found with CMake's conventions 20 | # find_package(Boost REQUIRED COMPONENTS system) 21 | 22 | 23 | ## Uncomment this if the package has a setup.py. This macro ensures 24 | ## modules and global scripts declared therein get installed 25 | ## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html 26 | # catkin_python_setup() 27 | 28 | ################################################ 29 | ## Declare ROS messages, services and actions ## 30 | ################################################ 31 | 32 | ## To declare and build messages, services or actions from within this 33 | ## package, follow these steps: 34 | ## * Let MSG_DEP_SET be the set of packages whose message types you use in 35 | ## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...). 36 | ## * In the file package.xml: 37 | ## * add a build_depend and a run_depend tag for each package in MSG_DEP_SET 38 | ## * If MSG_DEP_SET isn't empty the following dependencies might have been 39 | ## pulled in transitively but can be declared for certainty nonetheless: 40 | ## * add a build_depend tag for "message_generation" 41 | ## * add a run_depend tag for "message_runtime" 42 | ## * In this file (CMakeLists.txt): 43 | ## * add "message_generation" and every package in MSG_DEP_SET to 44 | ## find_package(catkin REQUIRED COMPONENTS ...) 45 | ## * add "message_runtime" and every package in MSG_DEP_SET to 46 | ## catkin_package(CATKIN_DEPENDS ...) 47 | ## * uncomment the add_*_files sections below as needed 48 | ## and list every .msg/.srv/.action file to be processed 49 | ## * uncomment the generate_messages entry below 50 | ## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...) 51 | 52 | ## Generate messages in the 'msg' folder 53 | # add_message_files( 54 | # FILES 55 | # Message1.msg 56 | # Message2.msg 57 | # ) 58 | 59 | ## Generate services in the 'srv' folder 60 | # add_service_files( 61 | # FILES 62 | # Service1.srv 63 | # Service2.srv 64 | # ) 65 | 66 | ## Generate actions in the 'action' folder 67 | # add_action_files( 68 | # FILES 69 | # Action1.action 70 | # Action2.action 71 | # ) 72 | 73 | ## Generate added messages and services with any dependencies listed here 74 | # generate_messages( 75 | # DEPENDENCIES 76 | # std_msgs 77 | # ) 78 | 79 | ################################### 80 | ## catkin specific configuration ## 81 | ################################### 82 | ## The catkin_package macro generates cmake config files for your package 83 | ## Declare things to be passed to dependent projects 84 | ## INCLUDE_DIRS: uncomment this if you package contains header files 85 | ## LIBRARIES: libraries you create in this project that dependent projects also need 86 | ## CATKIN_DEPENDS: catkin_packages dependent projects also need 87 | ## DEPENDS: system dependencies of this project that dependent projects also need 88 | catkin_package( 89 | # INCLUDE_DIRS include 90 | # LIBRARIES agvs_gazebo 91 | # CATKIN_DEPENDS agvs_description gazebo_ros roscpp std_msgs std_srvs tf 92 | # DEPENDS system_lib 93 | ) 94 | 95 | ########### 96 | ## Build ## 97 | ########### 98 | 99 | ## Specify additional locations of header files 100 | ## Your package locations should be listed before other locations 101 | # include_directories(include) 102 | include_directories( 103 | ${catkin_INCLUDE_DIRS} 104 | ) 105 | 106 | ## Declare a cpp library 107 | # add_library(agvs_gazebo 108 | # src/${PROJECT_NAME}/agvs_gazebo.cpp 109 | # ) 110 | 111 | ## Declare a cpp executable 112 | # add_executable(agvs_gazebo_node src/agvs_gazebo_node.cpp) 113 | 114 | ## Add cmake target dependencies of the executable/library 115 | ## as an example, message headers may need to be generated before nodes 116 | # add_dependencies(agvs_gazebo_node agvs_gazebo_generate_messages_cpp) 117 | 118 | ## Specify libraries to link a library or executable target against 119 | # target_link_libraries(agvs_gazebo_node 120 | # ${catkin_LIBRARIES} 121 | # ) 122 | 123 | ############# 124 | ## Install ## 125 | ############# 126 | 127 | # all install targets should use catkin DESTINATION variables 128 | # See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html 129 | 130 | ## Mark executable scripts (Python etc.) for installation 131 | ## in contrast to setup.py, you can choose the destination 132 | # install(PROGRAMS 133 | # scripts/my_python_script 134 | # DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 135 | # ) 136 | 137 | ## Mark executables and/or libraries for installation 138 | # install(TARGETS agvs_gazebo agvs_gazebo_node 139 | # ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 140 | # LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 141 | # RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 142 | # ) 143 | 144 | ## Mark cpp header files for installation 145 | # install(DIRECTORY include/${PROJECT_NAME}/ 146 | # DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} 147 | # FILES_MATCHING PATTERN "*.h" 148 | # PATTERN ".svn" EXCLUDE 149 | # ) 150 | 151 | ## Mark other files for installation (e.g. launch and bag files, etc.) 152 | # install(FILES 153 | # # myfile1 154 | # # myfile2 155 | # DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 156 | # ) 157 | 158 | ############# 159 | ## Testing ## 160 | ############# 161 | 162 | ## Add gtest based cpp test target and link libraries 163 | # catkin_add_gtest(${PROJECT_NAME}-test test/test_agvs_gazebo.cpp) 164 | # if(TARGET ${PROJECT_NAME}-test) 165 | # target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME}) 166 | # endif() 167 | 168 | ## Add folders to be run by python nosetests 169 | # catkin_add_nosetests(test) 170 | -------------------------------------------------------------------------------- /agvs_gazebo/launch/agvs.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 26 | 27 | 28 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /agvs_gazebo/launch/agvs_office.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 26 | 27 | 28 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /agvs_gazebo/launch/agvs_sim_complete.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /agvs_gazebo/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | agvs_gazebo 4 | 0.1.0 5 | The agvs_gazebo package. Launch files and worlds to run Gazebo. 6 | 7 | 8 | Roberto Guzmán 9 | Román Navarro 10 | 11 | BSD 12 | 13 | http://wiki.ros.org/agvs_gazebo 14 | https://github.com/RobotnikAutomation/agvs 15 | https://github.com/RobotnikAutomation/agvs/issues 16 | 17 | Roberto Guzmán 18 | 19 | 20 | 21 | catkin 22 | agvs_description 23 | gazebo_ros 24 | roscpp 25 | std_msgs 26 | std_srvs 27 | tf 28 | joint_state_controller 29 | velocity_controllers 30 | effort_controllers 31 | agvs_description 32 | gazebo_ros 33 | roscpp 34 | std_msgs 35 | std_srvs 36 | tf 37 | joint_state_controller 38 | velocity_controllers 39 | effort_controllers 40 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /agvs_gazebo/worlds/agvs.world: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 0 0 -9.8 6 | 7 | 8 | quick 9 |
0.001
10 | 20 11 | 1.0 12 |
13 | 14 | 0.0 15 | 0.2 16 | 100.0 17 | 0.001 18 | 19 |
20 |
21 | 22 | 23 | 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 24 | 25 | 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 26 | 27 | 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 28 | 29 | 30 | 0.000000 0.000000 1.000000 31 | 200 200 32 | 33 | 34 | 35 | 36 | 37 | 50.000000 38 | 50.000000 39 | 0.000000 0.000000 0.000000 40 | 0.000000 41 | 0.000000 42 | 43 | 44 | 45 | 0.000000 46 | 100000.000000 47 | 48 | 49 | 50 | 0.000000 51 | 0.200000 52 | 1000000000.000000 53 | 1.000000 54 | 100.000000 55 | 0.001000 56 | 57 | 58 | 59 | 0.000000 60 | 61 | 1 62 | 0 63 | 0 64 | 65 | 1 66 | 67 | 68 | 69 | 70 | model://sun 71 | 72 | 73 | 76 | 80 |
81 |
82 | -------------------------------------------------------------------------------- /agvs_gazebo/worlds/agvs.world~: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 0 0 -9.8 6 | 7 | 8 | 12 | 16 | quick 17 |
0.001
18 | 20 19 | 1.0 20 |
21 | 22 | 0.0 23 | 0.2 24 | 100.0 25 | 0.001 26 | 27 |
28 |
29 | 30 | 31 | 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 32 | 33 | 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 34 | 35 | 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 36 | 37 | 38 | 0.000000 0.000000 1.000000 39 | 200 200 40 | 41 | 42 | 43 | 44 | 45 | 50.000000 46 | 50.000000 47 | 0.000000 0.000000 0.000000 48 | 0.000000 49 | 0.000000 50 | 51 | 52 | 53 | 0.000000 54 | 100000.000000 55 | 56 | 57 | 58 | 0.000000 59 | 0.200000 60 | 1000000000.000000 61 | 1.000000 62 | 100.000000 63 | 0.001000 64 | 65 | 66 | 67 | 0.000000 68 | 69 | 1 70 | 0 71 | 0 72 | 73 | 1 74 | 75 | 76 | 77 | 78 | model://sun 79 | 80 | 81 | 84 | 88 |
89 |
90 | -------------------------------------------------------------------------------- /agvs_gazebo/worlds/agvs_office.world: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 0 0 -9.8 6 | 7 | 8 | quick 9 |
0.001
10 | 20 11 | 1.0 12 |
13 | 14 | 0.0 15 | 0.2 16 | 100.0 17 | 0.001 18 | 19 |
20 |
21 | 22 | 23 | 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 24 | 25 | 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 26 | 27 | 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 28 | 29 | 30 | 0 0 1 31 | 400 400 32 | 33 | 34 | 35 | 36 | 37 | 50.000000 38 | 50.000000 39 | 0.000000 0.000000 0.000000 40 | 0.000000 41 | 0.000000 42 | 43 | 44 | 45 | 0.000000 46 | 100000.000000 47 | 48 | 49 | 50 | 0.000000 51 | 0.200000 52 | 1000000000.000000 53 | 1.000000 54 | 100.000000 55 | 0.001000 56 | 57 | 58 | 59 | 0.000000 60 | 61 | 62 | false 63 | 64 | 65 | 0 0 1 66 | 400 400 67 | 68 | 69 | 70 | 74 | 75 | 76 | 1 77 | 0 78 | 0 79 | 80 | 1 81 | 82 | 83 | 84 | model://sun 85 | 86 | 87 | 88 | model://willowgarage 89 | -16 -24 -0.05 0 0 0 90 | 91 |
92 |
93 | -------------------------------------------------------------------------------- /agvs_gazebo/worlds/agvs_office.world~: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 0 0 -9.8 6 | 7 | 8 | quick 9 |
0.001
10 | 20 11 | 1.0 12 |
13 | 14 | 0.0 15 | 0.2 16 | 100.0 17 | 0.001 18 | 19 |
20 |
21 | 22 | 23 | 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 24 | 25 | 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 26 | 27 | 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 28 | 29 | 30 | 0 0 1 31 | 400 400 32 | 33 | 34 | 35 | 36 | 37 | 50.000000 38 | 50.000000 39 | 0.000000 0.000000 0.000000 40 | 0.000000 41 | 0.000000 42 | 43 | 44 | 45 | 0.000000 46 | 100000.000000 47 | 48 | 49 | 50 | 0.000000 51 | 0.200000 52 | 1000000000.000000 53 | 1.000000 54 | 100.000000 55 | 0.001000 56 | 57 | 58 | 59 | 0.000000 60 | 61 | 62 | false 63 | 64 | 65 | 0 0 1 66 | 400 400 67 | 68 | 69 | 70 | 74 | 75 | 76 | 1 77 | 0 78 | 0 79 | 80 | 1 81 | 82 | 83 | 84 | model://sun 85 | 86 | 87 | 88 | model://willowgarage 89 | -16 -24 -0.05 0 0 0 90 | 91 |
92 |
93 | -------------------------------------------------------------------------------- /agvs_pad/.rosinstall: -------------------------------------------------------------------------------- 1 | # Robotnik stacks 2 | 3 | - git: {local-name: robotnik_msgs, version: master, uri: 'https://github.com/RobotnikAutomation/robotnik_msgs.git'} 4 | -------------------------------------------------------------------------------- /agvs_pad/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(agvs_pad) 3 | 4 | ## Find catkin macros and libraries 5 | ## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) 6 | ## is used, also find other catkin packages 7 | find_package(catkin REQUIRED COMPONENTS 8 | geometry_msgs 9 | std_msgs 10 | sensor_msgs 11 | 12 | #agvs_controller 13 | agvs_robot_control 14 | 15 | diagnostic_msgs 16 | diagnostic_updater 17 | robotnik_msgs 18 | ackermann_msgs 19 | std_srvs 20 | ) 21 | 22 | ## System dependencies are found with CMake's conventions 23 | # find_package(Boost REQUIRED COMPONENTS system) 24 | 25 | 26 | ## Uncomment this if the package has a setup.py. This macro ensures 27 | ## modules and global scripts declared therein get installed 28 | ## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html 29 | # catkin_python_setup() 30 | 31 | ################################################ 32 | ## Declare ROS messages, services and actions ## 33 | ################################################ 34 | 35 | ## To declare and build messages, services or actions from within this 36 | ## package, follow these steps: 37 | ## * Let MSG_DEP_SET be the set of packages whose message types you use in 38 | ## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...). 39 | ## * In the file package.xml: 40 | ## * add a build_depend and a run_depend tag for each package in MSG_DEP_SET 41 | ## * If MSG_DEP_SET isn't empty the following dependencies might have been 42 | ## pulled in transitively but can be declared for certainty nonetheless: 43 | ## * add a build_depend tag for "message_generation" 44 | ## * add a run_depend tag for "message_runtime" 45 | ## * In this file (CMakeLists.txt): 46 | ## * add "message_generation" and every package in MSG_DEP_SET to 47 | ## find_package(catkin REQUIRED COMPONENTS ...) 48 | ## * add "message_runtime" and every package in MSG_DEP_SET to 49 | ## catkin_package(CATKIN_DEPENDS ...) 50 | ## * uncomment the add_*_files sections below as needed 51 | ## and list every .msg/.srv/.action file to be processed 52 | ## * uncomment the generate_messages entry below 53 | ## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...) 54 | 55 | ## Generate messages in the 'msg' folder 56 | # add_message_files( 57 | # FILES 58 | # Message1.msg 59 | # Message2.msg 60 | # ) 61 | 62 | ## Generate services in the 'srv' folder 63 | # add_service_files( 64 | # FILES 65 | # Service1.srv 66 | # Service2.srv 67 | # ) 68 | 69 | ## Generate actions in the 'action' folder 70 | # add_action_files( 71 | # FILES 72 | # Action1.action 73 | # Action2.action 74 | # ) 75 | 76 | ## Generate added messages and services with any dependencies listed here 77 | # generate_messages( 78 | # DEPENDENCIES 79 | # geometry_msgs# std_msgs 80 | # ) 81 | 82 | ################################### 83 | ## catkin specific configuration ## 84 | ################################### 85 | ## The catkin_package macro generates cmake config files for your package 86 | ## Declare things to be passed to dependent projects 87 | ## INCLUDE_DIRS: uncomment this if you package contains header files 88 | ## LIBRARIES: libraries you create in this project that dependent projects also need 89 | ## CATKIN_DEPENDS: catkin_packages dependent projects also need 90 | ## DEPENDS: system dependencies of this project that dependent projects also need 91 | catkin_package( 92 | # INCLUDE_DIRS include 93 | # LIBRARIES agvs_pad 94 | CATKIN_DEPENDS robotnik_msgs ackermann_msgs 95 | # DEPENDS system_lib 96 | ) 97 | 98 | ########### 99 | ## Build ## 100 | ########### 101 | 102 | ## Specify additional locations of header files 103 | ## Your package locations should be listed before other locations 104 | # include_directories(include) 105 | include_directories( 106 | ${catkin_INCLUDE_DIRS} 107 | ) 108 | 109 | ## Declare a cpp library 110 | # add_library(agvs_pad 111 | # src/${PROJECT_NAME}/agvs_pad.cpp 112 | # ) 113 | 114 | ## Declare a cpp executable 115 | add_executable(agvs_pad_node src/agvs_pad_node.cpp) 116 | 117 | ## Add cmake target dependencies of the executable/library 118 | ## as an example, message headers may need to be generated before nodes 119 | add_dependencies(agvs_pad_node agvs_pad_generate_messages_cpp) 120 | 121 | ## Specify libraries to link a library or executable target against 122 | target_link_libraries(agvs_pad_node 123 | ${catkin_LIBRARIES} 124 | ) 125 | 126 | ############# 127 | ## Install ## 128 | ############# 129 | 130 | # all install targets should use catkin DESTINATION variables 131 | # See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html 132 | 133 | ## Mark executable scripts (Python etc.) for installation 134 | ## in contrast to setup.py, you can choose the destination 135 | # install(PROGRAMS 136 | # scripts/my_python_script 137 | # DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 138 | # ) 139 | 140 | ## Mark executables and/or libraries for installation 141 | # install(TARGETS agvs_pad agvs_pad_node 142 | # ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 143 | # LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 144 | # RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 145 | # ) 146 | 147 | ## Mark cpp header files for installation 148 | # install(DIRECTORY include/${PROJECT_NAME}/ 149 | # DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} 150 | # FILES_MATCHING PATTERN "*.h" 151 | # PATTERN ".svn" EXCLUDE 152 | # ) 153 | 154 | ## Mark other files for installation (e.g. launch and bag files, etc.) 155 | # install(FILES 156 | # # myfile1 157 | # # myfile2 158 | # DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 159 | # ) 160 | 161 | ############# 162 | ## Testing ## 163 | ############# 164 | 165 | ## Add gtest based cpp test target and link libraries 166 | # catkin_add_gtest(${PROJECT_NAME}-test test/test_agvs_pad.cpp) 167 | # if(TARGET ${PROJECT_NAME}-test) 168 | # target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME}) 169 | # endif() 170 | 171 | ## Add folders to be run by python nosetests 172 | # catkin_add_nosetests(test) 173 | -------------------------------------------------------------------------------- /agvs_pad/launch/agvs_pad.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /agvs_pad/launch/agvs_pad.launch~: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /agvs_pad/launch/agvs_pad.yaml: -------------------------------------------------------------------------------- 1 | scale_linear: 2.25 2 | scale_angular: 2.0 3 | 4 | button_output_1: -1 5 | button_output_2: -1 6 | output_1: 1 7 | output_2: 2 8 | desired_freq: 10.0 9 | 10 | # m/s 11 | max_linear_speed: 10.0 12 | # rad/s 13 | max_angular_position: 1.57 14 | axis_linear_speed: 1 15 | axis_angular_position: 2 16 | 17 | # GENERAL 18 | #button_dead_man: 11 19 | #button_speed_up: 12 20 | #button_speed_down: 14 21 | 22 | button_dead_man: 10 23 | button_speed_up: 11 24 | button_speed_down: 9 25 | button_up_car: 12 26 | button_down_car: 14 27 | 28 | 29 | -------------------------------------------------------------------------------- /agvs_pad/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | agvs_pad 4 | 0.1.0 5 | The agvs_pad package.Component to control the robot by using a ps3 pad. 6 | 7 | Román Navarro 8 | 9 | 10 | BSD 11 | 12 | http://wiki.ros.org/agvs_pad 13 | https://github.com/RobotnikAutomation/agvs 14 | https://github.com/RobotnikAutomation/agvs/issues 15 | 16 | 17 | Román Navarro 18 | 19 | 20 | 21 | catkin 22 | geometry_msgs 23 | std_msgs 24 | sensor_msgs 25 | 26 | agvs_robot_control 27 | diagnostic_msgs 28 | diagnostic_updater 29 | robotnik_msgs 30 | ackermann_msgs 31 | std_srvs 32 | 33 | geometry_msgs 34 | std_msgs 35 | sensor_msgs 36 | agvs_robot_control 37 | diagnostic_msgs 38 | diagnostic_updater 39 | robotnik_msgs 40 | ackermann_msgs 41 | std_srvs 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /agvs_pad/src/agvs_pad_node.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * agvs_pad 3 | * Copyright (c) 2013, Robotnik Automation, SLL 4 | * All rights reserved. 5 | * 6 | * Redistribution and use in source and binary forms, with or without 7 | * modification, are permitted provided that the following conditions are met: 8 | * 9 | * * Redistributions of source code must retain the above copyright 10 | * notice, this list of conditions and the following disclaimer. 11 | * * Redistributions in binary form must reproduce the above copyright 12 | * notice, this list of conditions and the following disclaimer in the 13 | * documentation and/or other materials provided with the distribution. 14 | * * Neither the name of the Robotnik Automation, SLL. nor the names of its 15 | * contributors may be used to endorse or promote products derived from 16 | * this software without specific prior written permission. 17 | * 18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 19 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 21 | * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 22 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 23 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 24 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 25 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 26 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 27 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 28 | * POSSIBILITY OF SUCH DAMAGE. 29 | * 30 | * \author Robotnik Automation, SLL 31 | * \brief Allows to use a pad with the robot controller, sending the messages received from the joystick device 32 | */ 33 | 34 | 35 | #include 36 | #include 37 | #include 38 | #include 39 | #include 40 | #include 41 | #include 42 | #include 43 | #include "diagnostic_msgs/DiagnosticStatus.h" 44 | #include "diagnostic_updater/diagnostic_updater.h" 45 | #include "diagnostic_updater/update_functions.h" 46 | #include "diagnostic_updater/DiagnosticStatusWrapper.h" 47 | #include "diagnostic_updater/publisher.h" 48 | // #include 49 | //#include 50 | #include "ackermann_msgs/AckermannDriveStamped.h" 51 | #include 52 | 53 | #define DEFAULT_MAX_SKID_LINEAR_SPEED 2.0 //m/s 54 | #define DEFAULT_MAX_ANGULAR_POSITION 2.0 // rads/s 55 | 56 | #define MAX_NUM_OF_BUTTONS 16 57 | #define MAX_NUM_OF_AXES 8 58 | #define MAX_NUM_OF_BUTTONS_PS3 19 59 | #define MAX_NUM_OF_AXES_PS3 20 60 | 61 | #define DEFAULT_NUM_OF_BUTTONS 16 62 | #define DEFAULT_NUM_OF_AXES 8 63 | 64 | #define DEFAULT_AXIS_LINEAR_X 1 65 | #define DEFAULT_AXIS_ANGULAR 0 66 | #define DEFAULT_SCALE_LINEAR 1.0 67 | #define DEFAULT_SCALE_ANGULAR 1.0 68 | 69 | 70 | #define DEFAULT_JOY "/joy" 71 | 72 | #define DEFAULT_HZ 50.0 73 | 74 | //! Class to save the state of the buttons 75 | class Button{ 76 | int iPressed; 77 | bool bReleased; 78 | 79 | public: 80 | 81 | Button(){ 82 | iPressed = 0; 83 | bReleased = false; 84 | } 85 | //! Set the button as 'pressed'/'released' 86 | void Press(int value){ 87 | if(iPressed and !value){ 88 | bReleased = true; 89 | 90 | }else if(bReleased and value) 91 | bReleased = false; 92 | 93 | iPressed = value; 94 | 95 | } 96 | 97 | int IsPressed(){ 98 | return iPressed; 99 | } 100 | 101 | bool IsReleased(){ 102 | bool b = bReleased; 103 | bReleased = false; 104 | return b; 105 | } 106 | }; 107 | 108 | //////////////////////////////////////////////////////////////////////// 109 | // // 110 | //////////////////////////////////////////////////////////////////////// 111 | class AgvsPad 112 | { 113 | public: 114 | 115 | AgvsPad(); 116 | 117 | void ControlLoop(); 118 | int SetStateMode(int state, int arm_mode, int platform_mode); 119 | 120 | private: 121 | 122 | void joyCallback(const sensor_msgs::Joy::ConstPtr& joy); 123 | 124 | char * StateToString(int state); 125 | int SwitchToState(int new_state); 126 | 127 | void PublishState(); 128 | //! Enables/Disables the joystick 129 | bool EnableDisable(robotnik_msgs::enable_disable::Request &req, robotnik_msgs::enable_disable::Response &res ); 130 | void Update(); 131 | 132 | private: 133 | 134 | ros::NodeHandle nh_; 135 | 136 | int axis_linear_speed_, axis_angular_position_; 137 | double l_scale_, a_scale_; 138 | double current_speed_lvl; 139 | //! Set the max speed sent to the robot 140 | double max_linear_speed_, max_angular_position_; 141 | //! Desired component's freq 142 | double desired_freq_; 143 | 144 | // TOPICS 145 | //! It will publish into command velocity (for the robot) 146 | ros::Publisher vel_pub_; 147 | 148 | //! they will be suscribed to the joysticks 149 | ros::Subscriber joy_sub_; 150 | //! // Name of the joystick's topic 151 | std::string joy_topic_; 152 | //! Name of the topic where it will be publishing the velocity 153 | std::string cmd_topic_vel; 154 | //! Name of the service where it will be modifying the digital outputs 155 | std::string cmd_service_io_; 156 | //! topic name for the state 157 | std::string topic_state_; 158 | //! Topic to publish the state 159 | ros::Publisher state_pub_; 160 | 161 | //! Name of the service called to raise the elevator 162 | std::string service_raise_elevator_; 163 | //! Name of the service called to lower the elevator 164 | std::string service_lower_elevator_; 165 | 166 | // SERVICES 167 | //! Service clients 168 | ros::ServiceServer enable_disable_srv_; 169 | ros::ServiceClient set_digital_outputs_client_; 170 | ros::ServiceClient raise_elevator_client_; 171 | ros::ServiceClient lower_elevator_client_; 172 | 173 | 174 | // JOYSTICK 175 | //! Current number of buttons of the joystick 176 | int num_of_buttons_; 177 | int num_of_axes_; 178 | 179 | //! Vector to save the axis values 180 | std::vector fAxes; 181 | //! Vector to save and control the axis values 182 | std::vector