├── .github ├── CODEOWNERS └── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── README.md ├── fetch_calibration ├── CHANGELOG.rst ├── CMakeLists.txt ├── config │ ├── calibrate.yaml │ ├── calibrate_with_ground.yaml │ ├── calibration_poses.bag │ ├── calibration_poses_ground.bag │ ├── capture.yaml │ ├── capture_checkerboards.yaml │ ├── capture_with_ground.yaml │ └── checkerboard_poses.bag ├── launch │ ├── calibrate.launch │ ├── calibrate_with_ground.launch │ ├── capture.launch │ ├── capture_checkerboards.launch │ ├── capture_manual.launch │ └── capture_with_ground.launch ├── package.xml ├── scripts │ ├── calibrate_robot │ └── camera_reconfigure.py └── setup.py ├── fetch_depth_layer ├── CHANGELOG.rst ├── CMakeLists.txt ├── costmap_plugins.xml ├── include │ └── fetch_depth_layer │ │ └── depth_layer.h ├── package.xml └── src │ └── depth_layer.cpp ├── fetch_description ├── CHANGELOG.rst ├── CMakeLists.txt ├── meshes │ ├── base_link.dae │ ├── base_link_collision.STL │ ├── base_link_uv.png │ ├── bellows_link.STL │ ├── bellows_link_collision.STL │ ├── elbow_flex_link.dae │ ├── elbow_flex_link_collision.STL │ ├── elbow_flex_uv.png │ ├── estop_link.STL │ ├── estop_link.dae │ ├── forearm_roll_link.dae │ ├── forearm_roll_link_collision.STL │ ├── forearm_roll_uv.png │ ├── gripper_link.STL │ ├── gripper_link.dae │ ├── gripper_uv.png │ ├── head_pan_link.dae │ ├── head_pan_link_collision.STL │ ├── head_pan_uv.png │ ├── head_tilt_link.dae │ ├── head_tilt_link_collision.STL │ ├── head_tilt_uv.png │ ├── l_gripper_finger_link.STL │ ├── l_wheel_link.STL │ ├── l_wheel_link_collision.STL │ ├── laser_link.STL │ ├── r_gripper_finger_link.STL │ ├── r_wheel_link.STL │ ├── r_wheel_link_collision.STL │ ├── shoulder_lift_link.dae │ ├── shoulder_lift_link_collision.STL │ ├── shoulder_lift_uv.png │ ├── shoulder_pan_link.dae │ ├── shoulder_pan_link_collision.STL │ ├── shoulder_pan_uv.png │ ├── torso_fixed_link.STL │ ├── torso_fixed_link.dae │ ├── torso_fixed_uv.png │ ├── torso_lift_link.dae │ ├── torso_lift_link_collision.STL │ ├── torso_lift_uv.png │ ├── upperarm_roll_link.dae │ ├── upperarm_roll_link_collision.STL │ ├── upperarm_roll_uv.png │ ├── wrist_flex_link.dae │ ├── wrist_flex_link_collision.STL │ ├── wrist_flex_uv.png │ ├── wrist_roll_link.dae │ ├── wrist_roll_link_collision.STL │ └── wrist_roll_uv.png ├── package.xml └── robots │ ├── fetch.urdf │ └── freight.urdf ├── fetch_ikfast_plugin ├── CHANGELOG.rst ├── CMakeLists.txt ├── fetch_arm_moveit_ikfast_plugin_description.xml ├── include │ └── ikfast.h ├── package.xml ├── src │ ├── fetch_arm_ikfast_moveit_plugin.cpp │ └── fetch_arm_ikfast_solver.cpp └── update_ikfast_plugin.sh ├── fetch_maps ├── CHANGELOG.rst ├── CMakeLists.txt ├── maps │ ├── 3_1_16_keepout.png │ ├── 3_1_16_keepout.yaml │ ├── 3_1_16_limit.png │ ├── 3_1_16_limit.yaml │ ├── 3_1_16_localization.png │ ├── 3_1_16_localization.yaml │ ├── 4_26_15.pgm │ ├── 4_26_15.yaml │ ├── 4_26_15_keepout.pgm │ ├── 4_26_15_keepout.yaml │ ├── 9_16_15.png │ ├── 9_16_15.yaml │ ├── 9_16_15_keepout.png │ └── 9_16_15_keepout.yaml └── package.xml ├── fetch_moveit_config ├── CHANGELOG.rst ├── CMakeLists.txt ├── config │ ├── chomp_planning.yaml │ ├── controllers.yaml │ ├── fake_controllers.yaml │ ├── fetch.srdf │ ├── joint_limits.yaml │ ├── kinematics.yaml │ ├── ompl_planning.yaml │ └── sensors.yaml ├── launch │ ├── chomp_planning_pipeline.launch.xml │ ├── default_warehouse_db.launch │ ├── demo.launch │ ├── demo_chomp.launch │ ├── fake_moveit_controller_manager.launch.xml │ ├── fetch_moveit_controller_manager.launch.xml │ ├── fetch_moveit_sensor_manager.launch.xml │ ├── joystick_control.launch │ ├── move_group.launch │ ├── moveit.rviz │ ├── moveit_rviz.launch │ ├── ompl_planning_pipeline.launch.xml │ ├── planning_context.launch │ ├── planning_pipeline.launch.xml │ ├── sensor_manager.launch.xml │ ├── setup_assistant.launch │ ├── trajectory_execution.launch.xml │ ├── warehouse.launch │ └── warehouse_settings.launch.xml └── package.xml ├── fetch_navigation ├── CHANGELOG.rst ├── CMakeLists.txt ├── config │ ├── amcl.yaml │ ├── costmap_common.yaml │ ├── costmap_global.yaml │ ├── costmap_local.yaml │ ├── fetch │ │ ├── costmap_common.yaml │ │ ├── costmap_global.yaml │ │ ├── costmap_local.yaml │ │ └── move_base.yaml │ ├── freight │ │ ├── costmap_common.yaml │ │ ├── costmap_global.yaml │ │ ├── costmap_local.yaml │ │ └── move_base.yaml │ ├── move_base.yaml │ └── navigation.rviz ├── launch │ ├── build_map.launch │ ├── fetch_nav.launch │ ├── freight_nav.launch │ └── include │ │ ├── amcl.launch.xml │ │ └── move_base.launch.xml ├── package.xml └── scripts │ └── tilt_head.py ├── fetch_ros ├── CHANGELOG.rst ├── CMakeLists.txt └── package.xml └── fetch_teleop ├── CHANGELOG.rst ├── CMakeLists.txt ├── mesh ├── ground.stl └── keepout.stl ├── package.xml ├── scripts ├── gripper_keyboard.py └── tuck_arm.py └── src └── joystick_teleop.cpp /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | # This file allows changes in specific paths to automatically request review from individuals. 2 | # See https://help.github.com/articles/about-code-owners/ for details. 3 | 4 | # Default all changes to the fetchrobotics opensource team. 5 | * @fetchrobotics/opensource 6 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: "[BUG] short description" 5 | labels: bug 6 | assignees: moriarty 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | The steps to help us reproduce this error. 15 | We recommend using Docker to ensure your setup is as clean as possible, or using a new catkin workspace. 16 | 17 | **Expected behavior** 18 | A clear and concise description of what you expected to happen. 19 | 20 | **Screenshots** 21 | If applicable, add screenshots or links to YouTube. 22 | 23 | **catkin workspace (please complete the following information):** 24 | - fetch_ros version: 25 | - Ubuntu version: 26 | - ROS version: 27 | - current catkin workspace information `wstool info` 28 | 29 | **Additional context** 30 | Add any other context about the problem here. 31 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: "[feature] short description" 5 | labels: enhancement 6 | assignees: narora1 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # fetch_ros 2 | 3 | Open ROS Components for Robots from Fetch Robotics 4 | 5 | ## Documentation 6 | 7 | Please refer to our documentation page: http://docs.fetchrobotics.com/ 8 | 9 | ## ROS Buildfarm Development Branches 10 | 11 | Fetch Package | Indigo Devel | Kinetic Devel | Melodic Devel | ROS 1 (Noetic) | Dashing Devel 12 | ------------- | ------------ | ------------- | ------------- | -------------- | ------------- 13 | fetch_ros | EOL | :negative_squared_cross_mark: not supported | [![Build Status](http://build.ros.org/buildStatus/icon?job=Mdev__fetch_ros__ubuntu_bionic_amd64)](http://build.ros.org/job/Mdev__fetch_ros__ubuntu_bionic_amd64/) | :hammer_and_wrench: forthcoming :hammer_and_wrench: | :construction: in planning :construction: 14 | 15 | Kinetic support, has been skipped. Ubuntu 18.04 and 20.04 support both ROS1 and ROS2, so it was decided that effort will go towards ROS2 support in the future instead of supporting Kinetic. Noetic support is in the works, also. 16 | 17 | ## ROS Buildfarm Release 18 | 19 | Fetch Package | Indigo | Kinetic * | Melodic Source | Melodic Debian 20 | ------------- | ------ | --------- | -------------- | -------------- 21 | fetch_calibration | EOL | :negative_squared_cross_mark: | [![Build Status](http://build.ros.org/buildStatus/icon?job=Msrc_uB__fetch_calibration__ubuntu_bionic__source)](http://build.ros.org/job/Msrc_uB__fetch_calibration__ubuntu_bionic__source/) | [![Build Status](http://build.ros.org/buildStatus/icon?job=Mbin_uB64__fetch_calibration__ubuntu_bionic_amd64__binary)](http://build.ros.org/job/Mbin_uB64__fetch_calibration__ubuntu_bionic_amd64__binary/)| 22 | fetch_depth_layer | EOL | :negative_squared_cross_mark: | [![Build Status](http://build.ros.org/buildStatus/icon?job=Msrc_uB__fetch_depth_layer__ubuntu_bionic__source)](http://build.ros.org/job/Msrc_uB__fetch_depth_layer__ubuntu_bionic__source/) | [![Build Status](http://build.ros.org/buildStatus/icon?job=Mbin_uB64__fetch_depth_layer__ubuntu_bionic_amd64__binary)](http://build.ros.org/job/Mbin_uB64__fetch_depth_layer__ubuntu_bionic_amd64__binary/) | 23 | fetch_description | EOL | :negative_squared_cross_mark: | [![Build Status](http://build.ros.org/buildStatus/icon?job=Msrc_uB__fetch_description__ubuntu_bionic__source)](http://build.ros.org/job/Msrc_uB__fetch_description__ubuntu_bionic__source/) | [![Build Status](http://build.ros.org/buildStatus/icon?job=Mbin_uB64__fetch_description__ubuntu_bionic_amd64__binary)](http://build.ros.org/job/Mbin_uB64__fetch_description__ubuntu_bionic_amd64__binary/) | 24 | fetch_ikfast_plugin | EOL | :negative_squared_cross_mark: | [![Build Status](http://build.ros.org/buildStatus/icon?job=Msrc_uB__fetch_ikfast_plugin__ubuntu_bionic__source)](http://build.ros.org/job/Msrc_uB__fetch_ikfast_plugin__ubuntu_bionic__source/) | [![Build Status](http://build.ros.org/buildStatus/icon?job=Mbin_uB64__fetch_ikfast_plugin__ubuntu_bionic_amd64__binary)](http://build.ros.org/job/Mbin_uB64__fetch_ikfast_plugin__ubuntu_bionic_amd64__binary/) | 25 | fetch_maps | EOL | :negative_squared_cross_mark: | [![Build Status](http://build.ros.org/buildStatus/icon?job=Msrc_uB__fetch_maps__ubuntu_bionic__source)](http://build.ros.org/job/Msrc_uB__fetch_maps__ubuntu_bionic__source/) | [![Build Status](http://build.ros.org/buildStatus/icon?job=Mbin_uB64__fetch_maps__ubuntu_bionic_amd64__binary)](http://build.ros.org/job/Mbin_uB64__fetch_maps__ubuntu_bionic_amd64__binary/) | :negative_squared_cross_mark: | 26 | fetch_moveit_config | EOL | :negative_squared_cross_mark: | [![Build Status](http://build.ros.org/buildStatus/icon?job=Msrc_uB__fetch_moveit_config__ubuntu_bionic__source)](http://build.ros.org/job/Msrc_uB__fetch_moveit_config__ubuntu_bionic__source/) | [![Build Status](http://build.ros.org/buildStatus/icon?job=Mbin_uB64__fetch_moveit_config__ubuntu_bionic_amd64__binary)](http://build.ros.org/job/Mbin_uB64__fetch_moveit_config__ubuntu_bionic_amd64__binary/) | 27 | fetch_navigation | EOL | :negative_squared_cross_mark: | [![Build Status](http://build.ros.org/buildStatus/icon?job=Msrc_uB__fetch_navigation__ubuntu_bionic__source)](http://build.ros.org/job/Msrc_uB__fetch_navigation__ubuntu_bionic__source/) | [![Build Status](http://build.ros.org/buildStatus/icon?job=Mbin_uB64__fetch_navigation__ubuntu_bionic_amd64__binary)](http://build.ros.org/job/Mbin_uB64__fetch_navigation__ubuntu_bionic_amd64__binary/) | 28 | fetch_teleop | EOL | :negative_squared_cross_mark: | [![Build Status](http://build.ros.org/buildStatus/icon?job=Msrc_uB__fetch_teleop__ubuntu_bionic__source)](http://build.ros.org/job/Msrc_uB__fetch_teleop__ubuntu_bionic__source/) | [![Build Status](http://build.ros.org/buildStatus/icon?job=Mbin_uB64__fetch_teleop__ubuntu_bionic_amd64__binary)](http://build.ros.org/job/Mbin_uB64__fetch_teleop__ubuntu_bionic_amd64__binary/) | 29 | -------------------------------------------------------------------------------- /fetch_calibration/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package fetch_calibration 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 0.9.1 (2021-03-05) 6 | ------------------ 7 | 8 | 0.9.0 (2021-02-28) 9 | ------------------ 10 | * Initial noetic release 11 | * Update yaml parsing to avoid warnings 12 | * Updates for python3 and ROS Noetic 13 | * add velocity-factor in calibrate_robot (`#133 `_) 14 | Limit velocity factor so that it only can slow down calibration. 15 | * Updates maintainers 16 | * Contributors: Alex Moriarty, Eric Relson, Russell Toris, Shingo Kitagawa 17 | 18 | 0.8.2 (2019-08-06) 19 | ------------------ 20 | 21 | 0.8.1 (2019-04-04) 22 | ------------------ 23 | * sync cmake_minimum_required: 2.8.12 24 | * Contributors: Alexander Moriarty 25 | 26 | 0.8.0 (2019-02-13) 27 | ------------------ 28 | * [package.xml] REP-140 package format 2 (`#104 `_) 29 | closes `#83 `_ 30 | * Merge pull request `#100 `_ from aparker-fetch/distro-agnostic-calibration 31 | removed hardcoded ROS distro from calibrate_robot 32 | * removed hardcoded ROS distro from calibrate_robot 33 | * [Fetch Calibration] fix syntax error (`#96 `_) 34 | Noticed here https://index.ros.org/stats/errors/ 35 | Failed to parse launchfile launch/capture_manual.launch: 36 | Missing end tag for 'rosparam' (got "launch") 37 | Line: 16 Position: 668 Last 80 unconsumed characters: 38 | * [Docs] Add URL tags to package for wiki.ros.org (`#90 `_) 39 | The tag is required to automatically fill in at least some info 40 | on the wiki pages. The extra tags will create links to our docs. 41 | * Merge pull request `#81 `_ from moriarty/tf2-nav-melodic-devel 42 | [fetch_depth_layer][tf2] fixes for upstream navigation 43 | Changes for compatibility with `ros-planning/navigation#755 `_ 44 | * (fetch_calibration) updates for new finders 45 | * Contributors: Alex Moriarty, Andrew Parker, Eric Relson, Michael Ferguson 46 | 47 | 0.7.14 (2018-07-10) 48 | ------------------- 49 | * updates ownership 50 | * Contributors: Russell Toris 51 | 52 | 0.7.13 (2017-11-02) 53 | ------------------- 54 | 55 | 0.7.12 (2017-08-02) 56 | ------------------- 57 | 58 | 0.7.11 (2017-07-31) 59 | ------------------- 60 | 61 | 0.7.10 (2016-10-27) 62 | ------------------- 63 | 64 | 0.7.9 (2016-07-26) 65 | ------------------ 66 | 67 | 0.7.8 (2016-07-18) 68 | ------------------ 69 | 70 | 0.7.7 (2016-06-20) 71 | ------------------ 72 | 73 | 0.7.6 (2016-05-26) 74 | ------------------ 75 | 76 | 0.7.5 (2016-05-08) 77 | ------------------ 78 | 79 | 0.7.4 (2016-03-16) 80 | ------------------ 81 | 82 | 0.7.3 (2016-03-05) 83 | ------------------ 84 | 85 | 0.7.2 (2016-02-24) 86 | ------------------ 87 | 88 | 0.7.1 (2016-01-20) 89 | ------------------ 90 | 91 | 0.7.0 (2015-09-29) 92 | ------------------ 93 | * added support for ground plane calibration 94 | * Contributors: Niharika Arora 95 | 96 | 0.6.2 (2015-07-30) 97 | ------------------ 98 | * fix parameter delete 99 | * Contributors: Michael Ferguson 100 | 101 | 0.6.1 (2015-07-03) 102 | ------------------ 103 | * delete old parameters before reloading 104 | * use dated temp files to avoid permissions issues, fixes `#9 `_ 105 | * specify camera/chain names 106 | * add checkboard based calibration config 107 | * Contributors: Michael Ferguson 108 | 109 | 0.6.0 (2015-06-23) 110 | ------------------ 111 | * update capture for new multi_sensor branch of calibration 112 | * Contributors: Michael Ferguson 113 | 114 | 0.5.14 (2015-06-19) 115 | ------------------- 116 | 117 | 0.5.13 (2015-06-13) 118 | ------------------- 119 | 120 | 0.5.12 (2015-06-12) 121 | ------------------- 122 | 123 | 0.5.11 (2015-06-10) 124 | ------------------- 125 | * Update calibration poses bag file 126 | * Contributors: varunns 127 | 128 | 0.5.10 (2015-06-07) 129 | ------------------- 130 | 131 | 0.5.9 (2015-06-07) 132 | ------------------ 133 | * fix head camera parameter names 134 | * Contributors: Michael Ferguson 135 | 136 | 0.5.8 (2015-06-07) 137 | ------------------ 138 | * add script for disabling auto exposure/whitebalance of head camera 139 | * update calibration config 140 | * Contributors: Michael Ferguson 141 | 142 | 0.5.7 (2015-06-05) 143 | ------------------ 144 | 145 | 0.5.6 (2015-06-04) 146 | ------------------ 147 | 148 | 0.5.5 (2015-06-03) 149 | ------------------ 150 | 151 | 0.5.4 (2015-05-09) 152 | ------------------ 153 | * repository cleanup 154 | 155 | 0.5.3 (2015-05-03) 156 | ------------------ 157 | * add launch file argument for velocity_factor 158 | * Contributors: Michael Ferguson 159 | 160 | 0.5.2 (2015-04-19) 161 | ------------------ 162 | * update calibration configuration 163 | * Contributors: Michael Ferguson 164 | 165 | 0.5.1 (2015-04-09) 166 | ------------------ 167 | 168 | 0.5.0 (2015-04-04) 169 | ------------------ 170 | * First public release 171 | * Contributors: Michael Ferguson 172 | -------------------------------------------------------------------------------- /fetch_calibration/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.0.2) 2 | project(fetch_calibration) 3 | 4 | find_package(catkin) 5 | catkin_python_setup() 6 | catkin_package() 7 | 8 | install(DIRECTORY config 9 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 10 | ) 11 | 12 | install(DIRECTORY launch 13 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 14 | ) 15 | 16 | install( 17 | PROGRAMS scripts/camera_reconfigure.py 18 | DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 19 | ) 20 | -------------------------------------------------------------------------------- /fetch_calibration/config/calibrate.yaml: -------------------------------------------------------------------------------- 1 | verbose: true 2 | base_link: torso_lift_link 3 | models: 4 | - name: arm 5 | type: chain 6 | frame: wrist_roll_link 7 | - name: camera 8 | type: camera3d 9 | frame: head_camera_rgb_optical_frame 10 | topic: /head_camera/depth_registered/points 11 | free_params: 12 | - shoulder_pan_joint 13 | - shoulder_lift_joint 14 | - upperarm_roll_joint 15 | - elbow_flex_joint 16 | - forearm_roll_joint 17 | - wrist_flex_joint 18 | - wrist_roll_joint 19 | - head_tilt_joint 20 | - camera_fx 21 | - camera_fy 22 | - camera_cx 23 | - camera_cy 24 | - camera_z_offset 25 | - camera_z_scaling 26 | free_frames: 27 | - name: head_camera_rgb_joint 28 | x: true 29 | y: true 30 | z: true 31 | roll: true 32 | pitch: true 33 | yaw: true 34 | - name: head_pan_joint 35 | x: true 36 | y: true 37 | z: true 38 | roll: true 39 | pitch: true 40 | yaw: true 41 | - name: checkerboard 42 | x: true 43 | y: false 44 | z: true 45 | roll: false 46 | pitch: true 47 | yaw: false 48 | error_blocks: 49 | - name: hand_eye 50 | type: chain3d_to_chain3d 51 | model_a: camera 52 | model_b: arm 53 | - name: restrict_camera 54 | type: outrageous 55 | param: head_camera_rgb_joint 56 | joint_scale: 0.0 57 | position_scale: 0.1 58 | rotation_scale: 0.1 59 | -------------------------------------------------------------------------------- /fetch_calibration/config/calibrate_with_ground.yaml: -------------------------------------------------------------------------------- 1 | verbose: true 2 | base_link: base_link 3 | models: 4 | - name: arm 5 | type: chain 6 | frame: wrist_roll_link 7 | - name: camera 8 | type: camera3d 9 | frame: head_camera_rgb_optical_frame 10 | topic: /head_camera/depth_registered/points 11 | free_params: 12 | - shoulder_pan_joint 13 | - shoulder_lift_joint 14 | - upperarm_roll_joint 15 | - elbow_flex_joint 16 | - forearm_roll_joint 17 | - wrist_flex_joint 18 | - wrist_roll_joint 19 | - head_tilt_joint 20 | - camera_fx 21 | - camera_fy 22 | - camera_cx 23 | - camera_cy 24 | - camera_z_offset 25 | - camera_z_scaling 26 | free_frames: 27 | - name: head_camera_rgb_joint 28 | x: true 29 | y: true 30 | z: true 31 | roll: true 32 | pitch: false 33 | yaw: true 34 | - name: head_pan_joint 35 | x: true 36 | y: true 37 | z: true 38 | roll: true 39 | pitch: true 40 | yaw: true 41 | - name: checkerboard 42 | x: true 43 | y: false 44 | z: true 45 | roll: false 46 | pitch: true 47 | yaw: false 48 | error_blocks: 49 | - name: hand_eye 50 | type: chain3d_to_chain3d 51 | model_a: camera 52 | model_b: arm 53 | - name: ground_plane 54 | type: chain3d_to_plane 55 | model_a: camera 56 | a: 0.0 57 | b: 0.0 58 | c: 1.0 59 | d: 0.0 60 | scale: 1.0 61 | - name: restrict_camera 62 | type: outrageous 63 | param: head_camera_rgb_joint 64 | joint_scale: 0.0 65 | position_scale: 0.1 66 | rotation_scale: 0.1 67 | -------------------------------------------------------------------------------- /fetch_calibration/config/calibration_poses.bag: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_calibration/config/calibration_poses.bag -------------------------------------------------------------------------------- /fetch_calibration/config/calibration_poses_ground.bag: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_calibration/config/calibration_poses_ground.bag -------------------------------------------------------------------------------- /fetch_calibration/config/capture.yaml: -------------------------------------------------------------------------------- 1 | chains: 2 | - name: arm 3 | topic: /arm_controller/follow_joint_trajectory 4 | joints: 5 | - shoulder_pan_joint 6 | - shoulder_lift_joint 7 | - upperarm_roll_joint 8 | - elbow_flex_joint 9 | - forearm_roll_joint 10 | - wrist_flex_joint 11 | - wrist_roll_joint 12 | planning_group: arm 13 | - name: head 14 | topic: /head_controller/follow_joint_trajectory 15 | joints: 16 | - head_pan_joint 17 | - head_tilt_joint 18 | duration: 2.0 19 | features: 20 | led_finder: 21 | type: robot_calibration/LedFinder 22 | action: /gripper_controller/led_action 23 | topic: /head_camera/depth_registered/points 24 | camera_sensor_name: camera 25 | chain_sensor_name: arm 26 | threshold: 500.0 27 | max_iterations: 25 28 | debug_image: false 29 | gripper_led_frame: wrist_roll_link 30 | poses: 31 | - code: 1 32 | topic: led1 33 | x: 0.1044 34 | y: 0.0355 35 | z: 0.0396 36 | - code: 2 37 | topic: led2 38 | x: 0.0514 39 | y: 0.0355 40 | z: 0.0396 41 | - code: 4 42 | topic: led3 43 | x: 0.0514 44 | y: -0.0355 45 | z: 0.0396 46 | - code: 8 47 | topic: led4 48 | x: 0.1044 49 | y: -0.0355 50 | z: 0.0396 51 | -------------------------------------------------------------------------------- /fetch_calibration/config/capture_checkerboards.yaml: -------------------------------------------------------------------------------- 1 | chains: 2 | - name: arm 3 | topic: /arm_controller/follow_joint_trajectory 4 | joints: 5 | - shoulder_pan_joint 6 | - shoulder_lift_joint 7 | - upperarm_roll_joint 8 | - elbow_flex_joint 9 | - forearm_roll_joint 10 | - wrist_flex_joint 11 | - wrist_roll_joint 12 | planning_group: arm 13 | - name: head 14 | topic: /head_controller/follow_joint_trajectory 15 | joints: 16 | - head_pan_joint 17 | - head_tilt_joint 18 | duration: 2.0 19 | features: 20 | checkerboard_finder: 21 | type: robot_calibration/CheckerboardFinder 22 | topic: /head_camera/depth_registered/points 23 | camera_sensor_name: camera 24 | chain_sensor_name: arm 25 | -------------------------------------------------------------------------------- /fetch_calibration/config/capture_with_ground.yaml: -------------------------------------------------------------------------------- 1 | chains: 2 | - name: arm 3 | topic: /arm_with_torso_controller/follow_joint_trajectory 4 | joints: 5 | - torso_lift_joint 6 | - shoulder_pan_joint 7 | - shoulder_lift_joint 8 | - upperarm_roll_joint 9 | - elbow_flex_joint 10 | - forearm_roll_joint 11 | - wrist_flex_joint 12 | - wrist_roll_joint 13 | planning_group: arm_with_torso 14 | - name: head 15 | topic: /head_controller/follow_joint_trajectory 16 | joints: 17 | - head_pan_joint 18 | - head_tilt_joint 19 | duration: 2.0 20 | features: 21 | led_finder: 22 | type: robot_calibration/LedFinder 23 | action: /gripper_controller/led_action 24 | topic: /head_camera/depth_registered/points 25 | camera_sensor_name: camera 26 | chain_sensor_name: arm 27 | threshold: 500.0 28 | max_iterations: 25 29 | debug_image: false 30 | gripper_led_frame: wrist_roll_link 31 | poses: 32 | - code: 1 33 | topic: led1 34 | x: 0.1044 35 | y: 0.0355 36 | z: 0.0396 37 | - code: 2 38 | topic: led2 39 | x: 0.0514 40 | y: 0.0355 41 | z: 0.0396 42 | - code: 4 43 | topic: led3 44 | x: 0.0514 45 | y: -0.0355 46 | z: 0.0396 47 | - code: 8 48 | topic: led4 49 | x: 0.1044 50 | y: -0.0355 51 | z: 0.0396 52 | ground_plane_finder: 53 | type: robot_calibration/PlaneFinder 54 | topic: /head_camera/depth_registered/points 55 | camera_sensor_name: camera 56 | transform_frame: base_link 57 | min_z: -2.0 58 | max_z: 2.0 59 | -------------------------------------------------------------------------------- /fetch_calibration/config/checkerboard_poses.bag: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_calibration/config/checkerboard_poses.bag -------------------------------------------------------------------------------- /fetch_calibration/launch/calibrate.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /fetch_calibration/launch/calibrate_with_ground.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /fetch_calibration/launch/capture.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 12 | 13 | 14 | 15 | 16 | 17 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /fetch_calibration/launch/capture_checkerboards.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 12 | 13 | 14 | 15 | 16 | 17 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /fetch_calibration/launch/capture_manual.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /fetch_calibration/launch/capture_with_ground.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 12 | 13 | 14 | 15 | 16 | 17 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /fetch_calibration/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | fetch_calibration 4 | 0.9.1 5 | 6 | Launch and configuration files for calibrating Fetch using the 'robot_calibration' package. 7 | 8 | 9 | Michael Ferguson 10 | Eric Relson 11 | Carl Saldanha 12 | Sarah Elliott 13 | Russell Toris 14 | Fetch Robotics Open Source Team 15 | 16 | Apache2 17 | http://ros.org/wiki/fetch_calibration 18 | http://docs.fetchrobotics.com/calibration.html 19 | https://github.com/fetchrobotics/fetch_ros/issues 20 | https://github.com/fetchrobotics/fetch_ros 21 | 22 | catkin 23 | python-setuptools 24 | python3-setuptools 25 | 26 | robot_calibration 27 | 28 | -------------------------------------------------------------------------------- /fetch_calibration/scripts/calibrate_robot: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | # Copyright (C) 2015 Fetch Robotics Inc 4 | # Copyright (C) 2014 Unbounded Robotics Inc. 5 | # 6 | # Licensed under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. 8 | # You may obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, 14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | # See the License for the specific language governing permissions and 16 | # limitations under the License. 17 | 18 | # Author: Michael Ferguson 19 | 20 | import argparse 21 | import os 22 | import rospkg 23 | import rospkg.distro 24 | import subprocess 25 | import time 26 | import yaml 27 | from lxml import etree 28 | from sys import exit 29 | from time import strftime 30 | 31 | 32 | def stop_drivers(rosdistro): 33 | return (subprocess.call(["sudo", "service", "robot", "stop"]) == 0) 34 | 35 | def start_drivers(rosdistro): 36 | return (subprocess.call(["sudo", "service", "robot", "start"]) == 0) 37 | 38 | def restart_drivers(rosdistro): 39 | ok = stop_drivers(rosdistro) 40 | time.sleep(1.0) # nodelet unload/load needs time 41 | return (ok and start_drivers(rosdistro)) 42 | 43 | def copy_file(current, new): 44 | if new.startswith("/etc"): 45 | return (subprocess.call(["sudo", "cp", current, new]) == 0) 46 | else: 47 | return (subprocess.call(["cp", current, new]) == 0) 48 | 49 | ## @brief Updates the robot launch file 50 | ## @param launch The current robot launch file 51 | ## @param calibration The calibration data (a dictionary) 52 | ## @param install_dir The directory to install to 53 | def update_robot_launch(launch, calibration, install_dir): 54 | # backup robot.launch 55 | if not copy_file(launch, "%s.bk" % launch): 56 | print("Failed to backup %s" % launch) 57 | 58 | launch_xml = etree.parse(launch) 59 | for child in launch_xml.getroot(): 60 | try: 61 | if child.tag == "param": 62 | if child.get("name") == "calibration_date": 63 | child.set("value", strftime("%Y-%m-%d %H:%M:%S")) 64 | 65 | elif child.get("name") == "robot_description": 66 | child.set("textfile", os.path.join(install_dir, calibration["robot_description"])) 67 | 68 | elif child.get("name") in calibration.keys(): 69 | child.set("value", calibration[child.get("name")]) 70 | 71 | if child.tag == "arg": 72 | if child.get("name") == "rgb_camera_info_url": 73 | child.set("default", "file://%s" % os.path.join(install_dir, calibration["depth_camera_info_url"])) 74 | 75 | elif child.get("name") == "depth_camera_info_url": 76 | child.set("default", "file://%s" % os.path.join(install_dir, calibration["depth_camera_info_url"])) 77 | 78 | except KeyError: 79 | pass 80 | 81 | # Generate output to a local temp file 82 | temp_launch = "/tmp/robot" + strftime("%Y_%m_%d_%H_%M_%S") + ".launch" 83 | launch_xml.write(temp_launch) 84 | 85 | # Copy to system (using sudo if necessary) 86 | copy_file(temp_launch, os.path.join(install_dir, "robot.launch")) 87 | 88 | def get_calibration_dict(directory, calibration = None): 89 | if calibration == None: 90 | calibration = dict() 91 | # Load file 92 | try: 93 | # Get name of latest file 94 | files = [f for f in os.listdir(directory) if f.startswith("calibration_") and f.endswith(".yaml")] 95 | files.sort() 96 | # Open it 97 | calfile = open(os.path.join(directory, files[-1])) 98 | except (IndexError, IOError): 99 | print("Cannot open calibration.yaml") 100 | return calibration 101 | # Parse YAML 102 | try: 103 | calyaml = yaml.load(calfile, Loader=yaml.FullLoader) 104 | except: 105 | print("Cannot parse calibration.yaml") 106 | return calibration 107 | # Get dictionary data 108 | try: 109 | calibration["head_camera/driver/z_offset_mm"] = str(int(calyaml["camera_z_offset"]*1000.0)) 110 | except KeyError: 111 | calibration["head_camera/driver/z_offset_mm"] = "0" 112 | try: 113 | calibration["head_camera/driver/z_scaling"] = str(1.0 + calyaml["camera_z_scaling"]) 114 | except KeyError: 115 | calibration["head_camera/driver/z_scaling"] = "1.0" 116 | calibration["depth_camera_info_url"] = calyaml["depth_info"] 117 | calibration["rgb_camera_info_url"] = calyaml["rgb_info"] 118 | calibration["robot_description"] = calyaml["urdf"] 119 | return calibration 120 | 121 | def get_base_calibration_dict(directory, calibration = None): 122 | if calibration == None: 123 | calibration = dict() 124 | # Load file 125 | try: 126 | # Get name of latest file 127 | files = [f for f in os.listdir(directory) if f.startswith("base_calibration_") and f.endswith(".yaml")] 128 | files.sort() 129 | # Open it 130 | calfile = open(os.path.join(directory, files[-1])) 131 | except (IndexError, IOError): 132 | print("Cannot open base_calibration.yaml") 133 | return calibration 134 | # Parse YAML 135 | try: 136 | calyaml = yaml.load(calfile, Loader=yaml.FullLoader) 137 | except: 138 | print("Cannot parse base_calibration.yaml") 139 | return calibration 140 | # Get dictionary data 141 | calibration["/base_controller/track_width"] = str(calyaml["odom"]) 142 | calibration["/imu/gyro_scale"] = str(calyaml["imu"]) 143 | return calibration 144 | 145 | def move_calibration(current_directory, new_directory): 146 | calibration = get_calibration_dict(current_directory) 147 | calibration = get_base_calibration_dict(current_directory, calibration) 148 | 149 | # install urdf, depth, rgb files 150 | for name in ["depth_camera_info_url", "rgb_camera_info_url", "robot_description"]: 151 | try: 152 | copy_file(os.path.join(current_directory, calibration[name]), 153 | os.path.join(new_directory, calibration[name])) 154 | except: 155 | print("Unable to copy %s" % name) 156 | 157 | # update the robot.launch 158 | update_robot_launch(os.path.join(new_directory, "robot.launch"), calibration, new_directory) 159 | 160 | def get_calibration_date(rosdistro): 161 | launch_xml = etree.parse("/etc/ros/%s/robot.launch" % rosdistro) 162 | for child in launch_xml.getroot(): 163 | if child.tag == "param" and child.get("name") == "calibration_date": 164 | return child.get("value") 165 | return "Calibration date not found in robot.launch" 166 | 167 | if __name__ == "__main__": 168 | # Parse the arguments 169 | parser = argparse.ArgumentParser(description="Calibrate the robot, update files in /etc/ros") 170 | parser.add_argument("--arm", action="store_true", 171 | help="Capture arm/head calibration data") 172 | parser.add_argument("--base", action="store_true", 173 | help="Capture base calibration data") 174 | parser.add_argument("--install", action="store_true", 175 | help="Install new calibration to /etc/ros (restarts drivers)") 176 | parser.add_argument("--reset", action="store_true", 177 | help="Reset the calibration to factory defaults (restarts drivers)") 178 | parser.add_argument("--restore", action="store_true", 179 | help="Restore the previous calibration") 180 | parser.add_argument("--date", action="store_true", 181 | help="Get the timestamp of the current calibration") 182 | parser.add_argument("--directory", default="/tmp", 183 | help="Directory to load calibration from or backup to") 184 | parser.add_argument("--velocity-factor", type=float, default="1.0", 185 | help="Velocity scaling factor for fetch calibration. Max/default: 1.0") 186 | 187 | args = parser.parse_args() 188 | 189 | restart = False 190 | rosdistro = rospkg.distro.current_distro_codename() 191 | etc_launch = "/etc/ros/%s/robot.launch" % rosdistro 192 | 193 | if args.date: 194 | print(get_calibration_date(rosdistro)) 195 | exit(0) 196 | 197 | if args.restore: 198 | print("Calibration date: %s" % get_calibration_date(rosdistro)) 199 | if subprocess.call(["sudo", "cp", "%s.bk" % etc_launch, etc_launch]) != 0: 200 | print("Failed to restore calibration") 201 | exit(-1) 202 | print("Restored calibration to %s" % get_calibration_date(rosdistro)) 203 | restart = True 204 | 205 | if args.reset: 206 | # Can we get to fetch_bringup? 207 | try: 208 | rp = rospkg.RosPack() 209 | bringup = rp.get_path("fetch_bringup") 210 | except: 211 | print("\nCould not find fetch_bringup package, is your ROS path correct?\n") 212 | exit(-1) 213 | # Reset the robot.launch to factory defaults 214 | copy_file(os.path.join(bringup, "launch/fetch.launch"), etc_launch) 215 | restart = True 216 | 217 | if args.arm: 218 | try: 219 | rp = rospkg.RosPack() 220 | cal_pkg = rp.get_path("robot_calibration") 221 | except: 222 | print("\nCould not find robot_calibration package, is your ROS path correct?") 223 | exit(-1) 224 | if subprocess.call(["roslaunch", "fetch_calibration", "capture.launch", 225 | "velocity_factor:={}".format(min(1.0, args.velocity_factor))]) != 0: 226 | print("Failed to run calibrate") 227 | exit(-1) 228 | 229 | if args.base: 230 | if subprocess.call(["rosrun", "robot_calibration", "calibrate_base"]) != 0: 231 | print("Failed to run calibrate_Base") 232 | exit(-1) 233 | 234 | if args.install or args.arm or args.base: 235 | move_calibration(args.directory, "/etc/ros/%s" % rosdistro) 236 | restart = True 237 | 238 | if restart: 239 | print("Restarting drivers so that calibration will take effect...") 240 | if not restart_drivers(rosdistro): 241 | print("\nWARNING: drivers may not have restarted\n") 242 | exit(0) 243 | 244 | parser.print_help() 245 | -------------------------------------------------------------------------------- /fetch_calibration/scripts/camera_reconfigure.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | # Copyright (C) 2015 Fetch Robotics Inc 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | # Author: Michael Ferguson 18 | 19 | import sys 20 | import rospy 21 | import dynamic_reconfigure.client 22 | from sys import exit 23 | 24 | 25 | class CameraReconfigure(object): 26 | 27 | def __init__(self): 28 | self.client = dynamic_reconfigure.client.Client("head_camera/driver", 29 | timeout=30, 30 | config_callback=self.callback) 31 | 32 | def disable_auto(self): 33 | self.client.update_configuration({"auto_exposure": False, 34 | "auto_white_balance": False}) 35 | 36 | def enable_auto(self): 37 | self.client.update_configuration({"auto_exposure": True, 38 | "auto_white_balance": True}) 39 | 40 | def callback(self, config): 41 | rospy.loginfo("camera configured") 42 | 43 | 44 | if __name__ == "__main__": 45 | if len(sys.argv) < 2: 46 | print("Usage: camera_reconfigure --enable/disable") 47 | exit(-1) 48 | 49 | rospy.init_node("camera_reconfigure") 50 | reconfigure = CameraReconfigure() 51 | 52 | if sys.argv[1] == "--enable": 53 | reconfigure.enable_auto() 54 | else: 55 | reconfigure.disable_auto() 56 | 57 | rospy.sleep(1) 58 | -------------------------------------------------------------------------------- /fetch_calibration/setup.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | from setuptools import setup 4 | from catkin_pkg.python_setup import generate_distutils_setup 5 | 6 | d = generate_distutils_setup( 7 | scripts=['scripts/calibrate_robot'], 8 | ) 9 | 10 | setup(**d) 11 | -------------------------------------------------------------------------------- /fetch_depth_layer/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package fetch_depth_layer 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 0.9.1 (2021-03-05) 6 | ------------------ 7 | * Fixup: Remove version specification for OpenCV 8 | Debian Buster only has 3.x available, while Ubuntu 20.04 has 4.x available. 9 | This package works with either. 10 | * Contributors: Eric Relson 11 | 12 | 0.9.0 (2021-02-28) 13 | ------------------ 14 | * Initial noetic release 15 | * Update OpenCV version for fetch_depth_layer 16 | * Updates maintainers 17 | * Contributors: Alex Moriarty, Eric Relson, Russell Toris 18 | 19 | 0.8.2 (2019-08-06) 20 | ------------------ 21 | 22 | 0.8.1 (2019-04-04) 23 | ------------------ 24 | * sync cmake_minimum_required: 2.8.12 25 | * [fetch_depth_layer][OpenCV-4] operator= compile error (`#108 `_) 26 | This fixes no match for ‘operator=’ error with OpenCV4 and how the cv::Ptr was being set. 27 | Fixed by setting the normals_estimator\_ pointer similarly to how the plane_estimator\_ pointer is being set. 28 | This closes `#82 `_ 29 | * [upstream change] pluginlib includes: h -> hpp (`#106 `_) 30 | pluginlib provided a script for this change, and it's been backported 31 | to Indigo, Kinetic- but not Jade. 32 | * Contributors: Alexander Moriarty 33 | 34 | 0.8.0 (2019-02-13) 35 | ------------------ 36 | * [package.xml] REP-140 package format 2 (`#104 `_) 37 | closes `#83 `_ 38 | * [Docs] Add URL tags to package for wiki.ros.org (`#90 `_) 39 | The tag is required to automatically fill in at least some info 40 | on the wiki pages. The extra tags will create links to our docs. 41 | * Merge pull request `#81 `_ from moriarty/tf2-nav-melodic-devel 42 | [fetch_depth_layer][tf2] fixes for upstream navigation 43 | Changes for compatibility with `ros-planning/navigation#755 `_ 44 | * [fetch_depth_layer][tf2] `ros-planning/navigation#755 `_ 45 | Don't merge this until `ros-planning/navigation#755 `_ 46 | Updates fetch_depth_layer for tf2 changes coming upstream. 47 | * Merge pull request `#80 `_ from moriarty/opencv3-runtime-symbols-not-found 48 | [Depth Layer] Fixes OpenCV3 symbol lookup error 49 | Originally we depended on opencv_candidate which found the OpenCV libs for us. 50 | * Merge pull request `#78 `_ from fetchrobotics/build-on-melodic 51 | fetch_depth_layer is now full OpenCV3 support 52 | * Contributors: Alex Moriarty, Alexander Moriarty, Russell Toris 53 | 54 | 0.7.14 (2018-07-10) 55 | ------------------- 56 | * updates ownership 57 | * Contributors: Russell Toris 58 | 59 | 0.7.13 (2017-11-02) 60 | ------------------- 61 | 62 | 0.7.12 (2017-08-02) 63 | ------------------- 64 | 65 | 0.7.11 (2017-07-31) 66 | ------------------- 67 | * scoped 'isnan' with 'std' 68 | Fixes compilation errors while compiling with c++11 flags 69 | * Contributors: Priyam Parashar 70 | 71 | 0.7.10 (2016-10-27) 72 | ------------------- 73 | * updates to handle OpenCV3 changes 74 | * Contributors: Michael Ferguson 75 | 76 | 0.7.9 (2016-07-26) 77 | ------------------ 78 | 79 | 0.7.8 (2016-07-18) 80 | ------------------ 81 | 82 | 0.7.7 (2016-06-20) 83 | ------------------ 84 | 85 | 0.7.6 (2016-05-26) 86 | ------------------ 87 | * Allow FetchDepthLayer to send empty clouds 88 | This keeps the "current"-ness of observationbuffers up-to-date even when 89 | sensors return zero points due to being in a large open area. 90 | * Contributors: Aaron Hoy 91 | 92 | 0.7.5 (2016-05-08) 93 | ------------------ 94 | * Fixed activate and deactivate to avoid errors 95 | * Parameterizing inputs for ObservationBuffer to match parent layers. 96 | * Contributors: Aaron Hoy, Alex Henning, Michael Ferguson 97 | 98 | 0.7.4 (2016-03-16) 99 | ------------------ 100 | * activate/deactivate for fetch depth layer 101 | * Added transform filtering to depth layer depth data callback 102 | * Contributors: Levon Avagyan 103 | 104 | 0.7.3 (2016-03-05) 105 | ------------------ 106 | 107 | 0.7.2 (2016-02-24) 108 | ------------------ 109 | * Add option to clear with NANs 110 | * Add ROS param clear_with_skipped_rays to re-enable clearing with edge rays 111 | * Add ROS param to control size of skip region on edges 112 | * Change min_clearing_height to -infinity 113 | * Change max_clearing_height to +infinity 114 | * Contributors: Aaron Hoy, Michael Ferguson 115 | 116 | 0.7.1 (2016-01-20) 117 | ------------------ 118 | * add parameters for topic names 119 | * add support for static camera based on tf transform 120 | * Improved local costmap clearing by considering all points for clearance. 121 | * re-license fetch_depth_layer as BSD 122 | * Contributors: Marek Fiser, Michael Ferguson 123 | 124 | 0.7.0 (2015-09-29) 125 | ------------------ 126 | 127 | 0.6.2 (2015-07-30) 128 | ------------------ 129 | 130 | 0.6.1 (2015-07-03) 131 | ------------------ 132 | 133 | 0.6.0 (2015-06-23) 134 | ------------------ 135 | 136 | 0.5.14 (2015-06-19) 137 | ------------------- 138 | 139 | 0.5.13 (2015-06-13) 140 | ------------------- 141 | 142 | 0.5.12 (2015-06-12) 143 | ------------------- 144 | 145 | 0.5.11 (2015-06-10) 146 | ------------------- 147 | 148 | 0.5.10 (2015-06-07) 149 | ------------------- 150 | 151 | 0.5.9 (2015-06-07) 152 | ------------------ 153 | 154 | 0.5.8 (2015-06-07) 155 | ------------------ 156 | 157 | 0.5.7 (2015-06-05) 158 | ------------------ 159 | 160 | 0.5.6 (2015-06-04) 161 | ------------------ 162 | 163 | 0.5.5 (2015-06-03) 164 | ------------------ 165 | * release fetch_depth_layer 166 | * Contributors: Michael Ferguson 167 | -------------------------------------------------------------------------------- /fetch_depth_layer/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.0.2) 2 | project(fetch_depth_layer) 3 | 4 | find_package(catkin REQUIRED 5 | COMPONENTS 6 | pluginlib 7 | roscpp 8 | image_transport 9 | cv_bridge 10 | sensor_msgs 11 | geometry_msgs 12 | tf2_ros 13 | costmap_2d 14 | nav_msgs 15 | ) 16 | 17 | find_package(OpenCV REQUIRED) 18 | 19 | catkin_package( 20 | INCLUDE_DIRS 21 | include 22 | LIBRARIES 23 | fech_depth_layer 24 | CATKIN_DEPENDS 25 | image_transport 26 | cv_bridge 27 | roscpp 28 | sensor_msgs 29 | tf2_ros 30 | geometry_msgs 31 | costmap_2d 32 | nav_msgs 33 | DEPENDS 34 | OpenCV 35 | ) 36 | 37 | include_directories( 38 | include 39 | ${catkin_INCLUDE_DIRS} 40 | ${OpenCV_INCLUDE_DIRS} 41 | ) 42 | 43 | add_library(fetch_depth_layer src/depth_layer.cpp) 44 | 45 | target_link_libraries(fetch_depth_layer 46 | ${catkin_LIBRARIES} 47 | ${OpenCV_LIBRARIES} 48 | ) 49 | 50 | install(FILES costmap_plugins.xml 51 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 52 | ) 53 | 54 | install(TARGETS fetch_depth_layer 55 | LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 56 | ) 57 | 58 | -------------------------------------------------------------------------------- /fetch_depth_layer/costmap_plugins.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | A costmap layer that extracts ground plane and clears it. 4 | 5 | 6 | -------------------------------------------------------------------------------- /fetch_depth_layer/include/fetch_depth_layer/depth_layer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015-2016, Fetch Robotics Inc. 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * * Redistributions of source code must retain the above copyright 9 | * notice, this list of conditions and the following disclaimer. 10 | * * Redistributions in binary form must reproduce the above copyright 11 | * notice, this list of conditions and the following disclaimer in the 12 | * documentation and/or other materials provided with the distribution. 13 | * * Neither the name of the Fetch Robotics Inc. nor the names of its 14 | * contributors may be used to endorse or promote products derived from 15 | * this software without specific prior written permission. 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 | * ARE DISCLAIMED. IN NO EVENT SHALL FETCH ROBOTICS INC. BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | 29 | // Author: Anuj Pasricha, Michael Ferguson 30 | 31 | #ifndef FETCH_DEPTH_LAYER_DEPTH_LAYER_H 32 | #define FETCH_DEPTH_LAYER_DEPTH_LAYER_H 33 | 34 | #include 35 | #include 36 | #include 37 | #include 38 | #include 39 | #include 40 | #include 41 | #include 42 | 43 | #include 44 | using cv::rgbd::DepthCleaner; 45 | using cv::rgbd::RgbdNormals; 46 | using cv::rgbd::RgbdPlane; 47 | using cv::rgbd::depthTo3d; 48 | 49 | namespace costmap_2d 50 | { 51 | 52 | /** 53 | * @class FetchDepthLayer 54 | * @brief A costmap layer that extracts ground plane and clears it. 55 | */ 56 | class FetchDepthLayer : public VoxelLayer 57 | { 58 | public: 59 | /** 60 | * @brief Constructor 61 | */ 62 | FetchDepthLayer(); 63 | 64 | /** 65 | * @brief Destructor for the depth costmap layer 66 | */ 67 | virtual ~FetchDepthLayer(); 68 | 69 | /** 70 | * @brief Initialization function for the DepthLayer 71 | */ 72 | virtual void onInitialize(); 73 | 74 | private: 75 | void cameraInfoCallback( 76 | const sensor_msgs::CameraInfo::ConstPtr& msg); 77 | void depthImageCallback( 78 | const sensor_msgs::Image::ConstPtr& msg); 79 | 80 | boost::shared_ptr marking_buf_; 81 | boost::shared_ptr clearing_buf_; 82 | 83 | // should we publish the marking/clearing observations 84 | bool publish_observations_; 85 | 86 | // distance away from ground plane at which 87 | // something is considered an obstacle 88 | double observations_threshold_; 89 | 90 | // should we dynamically find the ground plane? 91 | bool find_ground_plane_; 92 | 93 | // if finding ground plane, limit the tilt 94 | // with respect to base_link frame 95 | double ground_threshold_; 96 | 97 | // should NANs be treated as +inf and used for clearing 98 | bool clear_nans_; 99 | 100 | // skipping of potentially noisy rays near the edge of the image 101 | int skip_rays_bottom_; 102 | int skip_rays_top_; 103 | int skip_rays_left_; 104 | int skip_rays_right_; 105 | 106 | // should skipped edge rays be used for clearing? 107 | bool clear_with_skipped_rays_; 108 | 109 | // retrieves depth image from head_camera 110 | // used to fit ground plane to 111 | boost::shared_ptr< message_filters::Subscriber > depth_image_sub_; 112 | boost::shared_ptr< tf2_ros::MessageFilter > depth_image_filter_; 113 | 114 | // retrieves camera matrix for head_camera 115 | // used in calculating ground plane 116 | ros::Subscriber camera_info_sub_; 117 | 118 | // publishes clearing observations 119 | ros::Publisher clearing_pub_; 120 | 121 | // publishes marking observations 122 | ros::Publisher marking_pub_; 123 | 124 | // camera intrinsics 125 | boost::mutex mutex_K_; 126 | cv::Mat K_; 127 | 128 | // clean the depth image 129 | cv::Ptr depth_cleaner_; 130 | 131 | // depth image estimation 132 | cv::Ptr normals_estimator_; 133 | cv::Ptr plane_estimator_; 134 | }; 135 | 136 | } // namespace costmap_2d 137 | 138 | #endif // FETCH_DEPTH_LAYER_DEPTH_LAYER_H 139 | -------------------------------------------------------------------------------- /fetch_depth_layer/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | fetch_depth_layer 4 | 0.9.1 5 | The fetch_depth_layer package 6 | 7 | Michael Ferguson 8 | Carl Saldanha 9 | Eric Relson 10 | Sarah Elliott 11 | Russell Toris 12 | Fetch Robotics Open Source Team 13 | 14 | BSD 15 | http://ros.org/wiki/fetch_depth_layer 16 | http://docs.fetchrobotics.com/perception.html 17 | https://github.com/fetchrobotics/fetch_ros/issues 18 | https://github.com/fetchrobotics/fetch_ros 19 | 20 | catkin 21 | 22 | costmap_2d 23 | cv_bridge 24 | geometry_msgs 25 | image_transport 26 | nav_msgs 27 | pluginlib 28 | roscpp 29 | sensor_msgs 30 | tf2_ros 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /fetch_description/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package fetch_description 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 0.9.1 (2021-03-05) 6 | ------------------ 7 | 8 | 0.9.0 (2021-02-28) 9 | ------------------ 10 | * Initial noetic release 11 | * Manually revert textures on URDF models 12 | See fetch_ros/issues/`#138 `_ 13 | * Updates for python3 and ROS Noetic 14 | * Updates maintainers 15 | * Contributors: Alex Moriarty, Eric Relson, Russell Toris 16 | 17 | 0.8.2 (2019-08-06) 18 | ------------------ 19 | * License: CC BY-NC-SA 4.0 (Remove ND) (`#123 `_) 20 | This addresses https://github.com/fetchrobotics/fetch_ros/issues/93 21 | It still does not address all points raised, but we believe this is 22 | better than CC-BY-NC-ND as it allows derivatives to be shared. 23 | * Contributors: Alex Moriarty 24 | 25 | 0.8.1 (2019-04-04) 26 | ------------------ 27 | * sync cmake_minimum_required: 2.8.12 28 | * Added fixed dae models compatible with OpenWebGL (`#105 `_) 29 | * Contributors: Alexander Moriarty, Miguel Angel Rodríguez 30 | 31 | 0.8.0 (2019-02-13) 32 | ------------------ 33 | * [package.xml] REP-140 package format 2 (`#104 `_) 34 | closes `#83 `_ 35 | * [Docs] Add URL tags to package for wiki.ros.org (`#90 `_) 36 | The tag is required to automatically fill in at least some info 37 | on the wiki pages. The extra tags will create links to our docs. 38 | * Contributors: Alex Moriarty 39 | 40 | 0.7.14 (2018-07-10) 41 | ------------------- 42 | * updates ownership 43 | * Contributors: Russell Toris 44 | 45 | 0.7.13 (2017-11-02) 46 | ------------------- 47 | 48 | 0.7.12 (2017-08-02) 49 | ------------------- 50 | 51 | 0.7.11 (2017-07-31) 52 | ------------------- 53 | 54 | 0.7.10 (2016-10-27) 55 | ------------------- 56 | 57 | 0.7.9 (2016-07-26) 58 | ------------------ 59 | 60 | 0.7.8 (2016-07-18) 61 | ------------------ 62 | 63 | 0.7.7 (2016-06-20) 64 | ------------------ 65 | * add base camera links to freight URDF 66 | * Contributors: Michael Ferguson 67 | 68 | 0.7.6 (2016-05-26) 69 | ------------------ 70 | 71 | 0.7.5 (2016-05-08) 72 | ------------------ 73 | 74 | 0.7.4 (2016-03-16) 75 | ------------------ 76 | 77 | 0.7.3 (2016-03-05) 78 | ------------------ 79 | 80 | 0.7.2 (2016-02-24) 81 | ------------------ 82 | 83 | 0.7.1 (2016-01-20) 84 | ------------------ 85 | * update torso throw to match rev2 hardware 86 | * make laser actually level 87 | * update gripper model 88 | * Contributors: Michael Ferguson 89 | 90 | 0.7.0 (2015-09-29) 91 | ------------------ 92 | * update limits of wrist flex 93 | * remove duplicated inertia entries, fixes `#14 `_ 94 | * Contributors: Michael Ferguson 95 | 96 | 0.6.2 (2015-07-30) 97 | ------------------ 98 | 99 | 0.6.1 (2015-07-03) 100 | ------------------ 101 | * specify a license 102 | * Contributors: Michael Ferguson 103 | 104 | 0.6.0 (2015-06-23) 105 | ------------------ 106 | 107 | 0.5.14 (2015-06-19) 108 | ------------------- 109 | 110 | 0.5.13 (2015-06-13) 111 | ------------------- 112 | * add dynamics to arm joints for simulation 113 | * Contributors: Michael Ferguson 114 | 115 | 0.5.12 (2015-06-12) 116 | ------------------- 117 | 118 | 0.5.11 (2015-06-10) 119 | ------------------- 120 | * remove laser opening from collision mesh 121 | * Contributors: Michael Ferguson 122 | 123 | 0.5.10 (2015-06-07) 124 | ------------------- 125 | 126 | 0.5.9 (2015-06-07) 127 | ------------------ 128 | 129 | 0.5.8 (2015-06-07) 130 | ------------------ 131 | 132 | 0.5.7 (2015-06-05) 133 | ------------------ 134 | 135 | 0.5.6 (2015-06-04) 136 | ------------------ 137 | 138 | 0.5.5 (2015-06-03) 139 | ------------------ 140 | 141 | 0.5.4 (2015-05-09) 142 | ------------------ 143 | * repository cleanup 144 | 145 | 0.5.3 (2015-05-03) 146 | ------------------ 147 | * Update head tilt range 148 | * Contributors: Aaron Blasdel 149 | 150 | 0.5.2 (2015-04-19) 151 | ------------------ 152 | 153 | 0.5.1 (2015-04-09) 154 | ------------------ 155 | 156 | 0.5.0 (2015-04-04) 157 | ------------------ 158 | 159 | 0.4.2 (2015-03-23) 160 | ------------------ 161 | 162 | 0.4.1 (2015-03-23) 163 | ------------------ 164 | * update velocity limits of base motors 165 | * Contributors: Michael Ferguson 166 | 167 | 0.4.0 (2015-03-22) 168 | ------------------ 169 | 170 | 0.3.2 (2015-03-21) 171 | ------------------ 172 | * update limits of shoulder lift joint 173 | * Contributors: Michael Ferguson 174 | 175 | 0.3.1 (2015-03-13 19:53) 176 | ------------------------ 177 | * fixup install 178 | * Contributors: Michael Ferguson 179 | 180 | 0.3.0 (2015-03-13 18:59) 181 | ------------------------ 182 | * first release 183 | * Contributors: Michael Ferguson 184 | -------------------------------------------------------------------------------- /fetch_description/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.0.2) 2 | project(fetch_description) 3 | 4 | find_package(catkin) 5 | catkin_package() 6 | 7 | install(DIRECTORY meshes 8 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 9 | ) 10 | 11 | install(DIRECTORY robots 12 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 13 | ) 14 | -------------------------------------------------------------------------------- /fetch_description/meshes/base_link_collision.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_description/meshes/base_link_collision.STL -------------------------------------------------------------------------------- /fetch_description/meshes/base_link_uv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_description/meshes/base_link_uv.png -------------------------------------------------------------------------------- /fetch_description/meshes/bellows_link.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_description/meshes/bellows_link.STL -------------------------------------------------------------------------------- /fetch_description/meshes/bellows_link_collision.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_description/meshes/bellows_link_collision.STL -------------------------------------------------------------------------------- /fetch_description/meshes/elbow_flex_link_collision.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_description/meshes/elbow_flex_link_collision.STL -------------------------------------------------------------------------------- /fetch_description/meshes/elbow_flex_uv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_description/meshes/elbow_flex_uv.png -------------------------------------------------------------------------------- /fetch_description/meshes/estop_link.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_description/meshes/estop_link.STL -------------------------------------------------------------------------------- /fetch_description/meshes/forearm_roll_link_collision.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_description/meshes/forearm_roll_link_collision.STL -------------------------------------------------------------------------------- /fetch_description/meshes/forearm_roll_uv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_description/meshes/forearm_roll_uv.png -------------------------------------------------------------------------------- /fetch_description/meshes/gripper_link.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_description/meshes/gripper_link.STL -------------------------------------------------------------------------------- /fetch_description/meshes/gripper_uv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_description/meshes/gripper_uv.png -------------------------------------------------------------------------------- /fetch_description/meshes/head_pan_link_collision.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_description/meshes/head_pan_link_collision.STL -------------------------------------------------------------------------------- /fetch_description/meshes/head_pan_uv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_description/meshes/head_pan_uv.png -------------------------------------------------------------------------------- /fetch_description/meshes/head_tilt_link_collision.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_description/meshes/head_tilt_link_collision.STL -------------------------------------------------------------------------------- /fetch_description/meshes/head_tilt_uv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_description/meshes/head_tilt_uv.png -------------------------------------------------------------------------------- /fetch_description/meshes/l_gripper_finger_link.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_description/meshes/l_gripper_finger_link.STL -------------------------------------------------------------------------------- /fetch_description/meshes/l_wheel_link.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_description/meshes/l_wheel_link.STL -------------------------------------------------------------------------------- /fetch_description/meshes/l_wheel_link_collision.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_description/meshes/l_wheel_link_collision.STL -------------------------------------------------------------------------------- /fetch_description/meshes/laser_link.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_description/meshes/laser_link.STL -------------------------------------------------------------------------------- /fetch_description/meshes/r_gripper_finger_link.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_description/meshes/r_gripper_finger_link.STL -------------------------------------------------------------------------------- /fetch_description/meshes/r_wheel_link.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_description/meshes/r_wheel_link.STL -------------------------------------------------------------------------------- /fetch_description/meshes/r_wheel_link_collision.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_description/meshes/r_wheel_link_collision.STL -------------------------------------------------------------------------------- /fetch_description/meshes/shoulder_lift_link_collision.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_description/meshes/shoulder_lift_link_collision.STL -------------------------------------------------------------------------------- /fetch_description/meshes/shoulder_lift_uv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_description/meshes/shoulder_lift_uv.png -------------------------------------------------------------------------------- /fetch_description/meshes/shoulder_pan_link_collision.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_description/meshes/shoulder_pan_link_collision.STL -------------------------------------------------------------------------------- /fetch_description/meshes/shoulder_pan_uv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_description/meshes/shoulder_pan_uv.png -------------------------------------------------------------------------------- /fetch_description/meshes/torso_fixed_link.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_description/meshes/torso_fixed_link.STL -------------------------------------------------------------------------------- /fetch_description/meshes/torso_fixed_uv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_description/meshes/torso_fixed_uv.png -------------------------------------------------------------------------------- /fetch_description/meshes/torso_lift_link_collision.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_description/meshes/torso_lift_link_collision.STL -------------------------------------------------------------------------------- /fetch_description/meshes/torso_lift_uv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_description/meshes/torso_lift_uv.png -------------------------------------------------------------------------------- /fetch_description/meshes/upperarm_roll_link_collision.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_description/meshes/upperarm_roll_link_collision.STL -------------------------------------------------------------------------------- /fetch_description/meshes/upperarm_roll_uv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_description/meshes/upperarm_roll_uv.png -------------------------------------------------------------------------------- /fetch_description/meshes/wrist_flex_link_collision.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_description/meshes/wrist_flex_link_collision.STL -------------------------------------------------------------------------------- /fetch_description/meshes/wrist_flex_uv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_description/meshes/wrist_flex_uv.png -------------------------------------------------------------------------------- /fetch_description/meshes/wrist_roll_link_collision.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_description/meshes/wrist_roll_link_collision.STL -------------------------------------------------------------------------------- /fetch_description/meshes/wrist_roll_uv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_description/meshes/wrist_roll_uv.png -------------------------------------------------------------------------------- /fetch_description/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | fetch_description 4 | 0.9.1 5 | 6 | URDF for Fetch Robot. 7 | 8 | 9 | Michael Ferguson 10 | Melonee Wise 11 | Eric Relson 12 | Carl Saldanha 13 | Sarah Elliott 14 | Russell Toris 15 | Fetch Robotics Open Source Team 16 | 17 | CreativeCommons-Attribution-NonCommercial-ShareAlike-4.0-International 18 | http://ros.org/wiki/fetch_description 19 | http://docs.fetchrobotics.com/robot_hardware.html 20 | https://github.com/fetchrobotics/fetch_ros/issues 21 | https://github.com/fetchrobotics/fetch_ros 22 | 23 | catkin 24 | urdf 25 | xacro 26 | 27 | -------------------------------------------------------------------------------- /fetch_description/robots/freight.urdf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | -------------------------------------------------------------------------------- /fetch_ikfast_plugin/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package fetch_ikfast_plugin 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 0.9.1 (2021-03-05) 6 | ------------------ 7 | 8 | 0.9.0 (2021-02-28) 9 | ------------------ 10 | * Initial noetic release 11 | * Updates maintainers 12 | * Contributors: Alex Moriarty, Eric Relson, Russell Toris 13 | 14 | 0.8.2 (2019-08-06) 15 | ------------------ 16 | 17 | 0.8.1 (2019-04-04) 18 | ------------------ 19 | * fix Error in latest IK_Fast Plugin `#113 `_ (`#114 `_) 20 | * fix Error in latest IK_Fast Plugin `#113 `_ with moveit 1.0 interface 21 | * Related to the fix for issue `#103 `_ PR `#107 `_ used the wrong link 22 | * Merge pull request `#107 `_ from moriarty/update-ikfast-plugin 23 | [IKFast Plugin] Regenerate fetch_ikfast_plugin 24 | * Contributors: Alexander Moriarty, Carl Saldanha, I-Chen Jwo 25 | 26 | 0.8.0 (2019-02-13) 27 | ------------------ 28 | * [package.xml] REP-140 package format 2 (`#104 `_) 29 | closes `#83 `_ 30 | * [Docs] Add URL tags to package for wiki.ros.org (`#90 `_) 31 | The tag is required to automatically fill in at least some info 32 | on the wiki pages. The extra tags will create links to our docs. 33 | * Contributors: Alex Moriarty 34 | 35 | 0.7.14 (2018-07-10) 36 | ------------------- 37 | * updates ownership 38 | * Contributors: Russell Toris 39 | 40 | 0.7.13 (2017-11-02) 41 | ------------------- 42 | * use std::isnan for c++11 support 43 | * Contributors: Shingo Kitagawa 44 | 45 | 0.7.12 (2017-08-02) 46 | ------------------- 47 | 48 | 0.7.11 (2017-07-31) 49 | ------------------- 50 | 51 | 0.7.10 (2016-10-27) 52 | ------------------- 53 | * fix build with urdf on kinetic 54 | * update package.xmls, add depend on fetch_ikfast_plugin 55 | * get a version of ikfast plugin working on fetch 56 | * Contributors: Di Sun, Michael Ferguson 57 | 58 | 0.7.9 (2016-07-26) 59 | ------------------ 60 | 61 | 0.7.8 (2016-07-18) 62 | ------------------ 63 | 64 | 0.7.7 (2016-06-20) 65 | ------------------ 66 | 67 | 0.7.6 (2016-05-26) 68 | ------------------ 69 | 70 | 0.7.5 (2016-05-08) 71 | ------------------ 72 | 73 | 0.7.4 (2016-03-16) 74 | ------------------ 75 | 76 | 0.7.3 (2016-03-05) 77 | ------------------ 78 | 79 | 0.7.2 (2016-02-24) 80 | ------------------ 81 | 82 | 0.7.1 (2016-01-20) 83 | ------------------ 84 | 85 | 0.7.0 (2015-09-29) 86 | ------------------ 87 | 88 | 0.6.2 (2015-07-30) 89 | ------------------ 90 | 91 | 0.6.1 (2015-07-03) 92 | ------------------ 93 | 94 | 0.6.0 (2015-06-23 19:47) 95 | ------------------------ 96 | 97 | 0.5.15 (2015-06-23 19:44) 98 | ------------------------- 99 | 100 | 0.5.14 (2015-06-19) 101 | ------------------- 102 | 103 | 0.5.13 (2015-06-13) 104 | ------------------- 105 | 106 | 0.5.12 (2015-06-12) 107 | ------------------- 108 | 109 | 0.5.11 (2015-06-10) 110 | ------------------- 111 | 112 | 0.5.10 (2015-06-07 12:48) 113 | ------------------------- 114 | 115 | 0.5.9 (2015-06-07 12:28) 116 | ------------------------ 117 | 118 | 0.5.8 (2015-06-07 00:16) 119 | ------------------------ 120 | 121 | 0.5.7 (2015-06-05) 122 | ------------------ 123 | 124 | 0.5.6 (2015-06-04) 125 | ------------------ 126 | 127 | 0.5.5 (2015-06-03) 128 | ------------------ 129 | 130 | 0.5.4 (2015-05-09) 131 | ------------------ 132 | 133 | 0.5.2 (2015-04-19) 134 | ------------------ 135 | 136 | 0.5.1 (2015-04-09) 137 | ------------------ 138 | 139 | 0.5.0 (2015-04-04) 140 | ------------------ 141 | 142 | 0.4.2 (2015-03-23 18:57) 143 | ------------------------ 144 | 145 | 0.4.1 (2015-03-23 14:50) 146 | ------------------------ 147 | 148 | 0.4.0 (2015-03-22) 149 | ------------------ 150 | 151 | 0.3.2 (2015-03-21) 152 | ------------------ 153 | 154 | 0.3.1 (2015-03-13 19:53) 155 | ------------------------ 156 | 157 | 0.3.0 (2015-03-13 18:59) 158 | ------------------------ 159 | -------------------------------------------------------------------------------- /fetch_ikfast_plugin/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.0.2) 2 | project(fetch_ikfast_plugin) 3 | 4 | add_compile_options(-std=c++14) 5 | 6 | find_package(catkin REQUIRED COMPONENTS 7 | moveit_core 8 | pluginlib 9 | roscpp 10 | tf2_kdl 11 | tf2_eigen 12 | eigen_conversions 13 | ) 14 | find_package(LAPACK REQUIRED) 15 | 16 | include_directories(${catkin_INCLUDE_DIRS} include) 17 | 18 | catkin_package() 19 | 20 | set(IKFAST_LIBRARY_NAME fetch_arm_moveit_ikfast_plugin) 21 | add_library(${IKFAST_LIBRARY_NAME} src/fetch_arm_ikfast_moveit_plugin.cpp) 22 | target_link_libraries(${IKFAST_LIBRARY_NAME} ${catkin_LIBRARIES} ${Boost_LIBRARIES} ${LAPACK_LIBRARIES}) 23 | # suppress warnings about unused variables in OpenRave's solver code 24 | target_compile_options(${IKFAST_LIBRARY_NAME} PRIVATE -Wno-unused-variable) 25 | 26 | install(TARGETS 27 | ${IKFAST_LIBRARY_NAME} 28 | LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}) 29 | 30 | install( 31 | FILES 32 | fetch_arm_moveit_ikfast_plugin_description.xml 33 | DESTINATION 34 | ${CATKIN_PACKAGE_SHARE_DESTINATION} 35 | ) 36 | -------------------------------------------------------------------------------- /fetch_ikfast_plugin/fetch_arm_moveit_ikfast_plugin_description.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | IKFast61 plugin for closed-form kinematics of fetch arm 5 | 6 | 7 | -------------------------------------------------------------------------------- /fetch_ikfast_plugin/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | fetch_ikfast_plugin 4 | 0.9.1 5 | 6 | Kinematics plugin for Fetch robot, generated through IKFast 7 | 8 | Michael Ferguson 9 | Sarah Elliott 10 | Carl Saldanha 11 | Eric Relson 12 | Russell Toris 13 | Fetch Robotics Open Source Team 14 | Apache2 15 | http://ros.org/wiki/fetch_ikfast_plugin 16 | http://docs.fetchrobotics.com/manipulation.html 17 | https://github.com/fetchrobotics/fetch_ros/issues 18 | https://github.com/fetchrobotics/fetch_ros 19 | catkin 20 | tf2_kdl 21 | tf2_eigen 22 | eigen_conversions 23 | liblapack-dev 24 | moveit_core 25 | pluginlib 26 | roscpp 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /fetch_ikfast_plugin/update_ikfast_plugin.sh: -------------------------------------------------------------------------------- 1 | rosrun moveit_kinematics create_ikfast_moveit_plugin.py --search_mode=OPTIMIZE_MAX_JOINT --srdf_filename=fetch.srdf --robot_name_in_srdf=fetch --moveit_config_pkg=fetch_moveit_config fetch arm fetch_ikfast_plugin torso_lift_link wrist_roll_link /home/ijwo/ros/melodic/fetch-sim-test/src/fetch_ros/fetch_ikfast_plugin/src/fetch_arm_ikfast_solver.cpp -------------------------------------------------------------------------------- /fetch_maps/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package fetch_maps 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 0.9.1 (2021-03-05) 6 | ------------------ 7 | 8 | 0.9.0 (2021-02-28) 9 | ------------------ 10 | * Initial noetic release 11 | * updates maintainers 12 | * Contributors: Alex Moriarty, Eric Relson, Russell Toris 13 | 14 | 0.8.2 (2019-08-06) 15 | ------------------ 16 | 17 | 0.8.1 (2019-04-04) 18 | ------------------ 19 | * sync cmake_minimum_required: 2.8.12 20 | * Contributors: Alexander Moriarty 21 | 22 | 0.8.0 (2019-02-13) 23 | ------------------ 24 | * [package.xml] REP-140 package format 2 (`#104 `_) 25 | closes `#83 `_ 26 | * [Docs] Add URL tags to package for wiki.ros.org (`#90 `_) 27 | The tag is required to automatically fill in at least some info 28 | on the wiki pages. The extra tags will create links to our docs. 29 | * Contributors: Alex Moriarty 30 | 31 | 0.7.14 (2018-07-10) 32 | ------------------- 33 | * updates ownership 34 | * Contributors: Russell Toris 35 | 36 | 0.7.13 (2017-11-02) 37 | ------------------- 38 | 39 | 0.7.12 (2017-08-02) 40 | ------------------- 41 | 42 | 0.7.11 (2017-07-31) 43 | ------------------- 44 | 45 | 0.7.10 (2016-10-27) 46 | ------------------- 47 | 48 | 0.7.9 (2016-07-26) 49 | ------------------ 50 | 51 | 0.7.8 (2016-07-18) 52 | ------------------ 53 | 54 | 0.7.7 (2016-06-20) 55 | ------------------ 56 | 57 | 0.7.6 (2016-05-26) 58 | ------------------ 59 | 60 | 0.7.5 (2016-05-08) 61 | ------------------ 62 | 63 | 0.7.4 (2016-03-16) 64 | ------------------ 65 | 66 | 0.7.3 (2016-03-05) 67 | ------------------ 68 | * 3_1_16 new map 69 | * Contributors: Aaron Blasdel 70 | 71 | 0.7.2 (2016-02-24) 72 | ------------------ 73 | 74 | 0.7.1 (2016-01-20) 75 | ------------------ 76 | 77 | 0.7.0 (2015-09-29) 78 | ------------------ 79 | * Create fetch_maps package 80 | * Contributors: Aaron Blasdel, Michael Ferguson 81 | -------------------------------------------------------------------------------- /fetch_maps/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.0.2) 2 | project(fetch_maps) 3 | 4 | find_package(catkin REQUIRED) 5 | catkin_package() 6 | 7 | install( 8 | DIRECTORY maps 9 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 10 | ) 11 | -------------------------------------------------------------------------------- /fetch_maps/maps/3_1_16_keepout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_maps/maps/3_1_16_keepout.png -------------------------------------------------------------------------------- /fetch_maps/maps/3_1_16_keepout.yaml: -------------------------------------------------------------------------------- 1 | free_thresh: 0.196 2 | image: 3_1_16_keepout.png 3 | negate: 0 4 | occupied_thresh: 0.65 5 | origin: [0.0, 0.0, 0.0] 6 | resolution: 0.05 7 | -------------------------------------------------------------------------------- /fetch_maps/maps/3_1_16_limit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_maps/maps/3_1_16_limit.png -------------------------------------------------------------------------------- /fetch_maps/maps/3_1_16_limit.yaml: -------------------------------------------------------------------------------- 1 | free_thresh: 0.196 2 | image: 3_1_16_limit.png 3 | negate: 0 4 | mode: raw 5 | occupied_thresh: 0.65 6 | origin: [0.0, 0.0, 0.0] 7 | resolution: 0.05 8 | -------------------------------------------------------------------------------- /fetch_maps/maps/3_1_16_localization.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_maps/maps/3_1_16_localization.png -------------------------------------------------------------------------------- /fetch_maps/maps/3_1_16_localization.yaml: -------------------------------------------------------------------------------- 1 | free_thresh: 0.196 2 | image: 3_1_16_localization.png 3 | negate: 0 4 | occupied_thresh: 0.65 5 | origin: [0.0, 0.0, 0.0] 6 | resolution: 0.05 7 | -------------------------------------------------------------------------------- /fetch_maps/maps/4_26_15.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_maps/maps/4_26_15.pgm -------------------------------------------------------------------------------- /fetch_maps/maps/4_26_15.yaml: -------------------------------------------------------------------------------- 1 | image: 4_26_15.pgm 2 | resolution: 0.050000 3 | origin: [-25.367399, -15.544381, 0.000000] 4 | negate: 0 5 | occupied_thresh: 0.65 6 | free_thresh: 0.196 7 | 8 | -------------------------------------------------------------------------------- /fetch_maps/maps/4_26_15_keepout.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_maps/maps/4_26_15_keepout.pgm -------------------------------------------------------------------------------- /fetch_maps/maps/4_26_15_keepout.yaml: -------------------------------------------------------------------------------- 1 | image: 4_26_15_keepout.pgm 2 | resolution: 0.050000 3 | origin: [-25.367399, -15.544381, 0.000000] 4 | negate: 0 5 | occupied_thresh: 0.65 6 | free_thresh: 0.196 7 | 8 | -------------------------------------------------------------------------------- /fetch_maps/maps/9_16_15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_maps/maps/9_16_15.png -------------------------------------------------------------------------------- /fetch_maps/maps/9_16_15.yaml: -------------------------------------------------------------------------------- 1 | free_thresh: 0.196 2 | image: 9_16_15.png 3 | negate: 0 4 | occupied_thresh: 0.65 5 | origin: [0.0, 0.0, 0.0] 6 | resolution: 0.05 7 | -------------------------------------------------------------------------------- /fetch_maps/maps/9_16_15_keepout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZebraDevs/fetch_ros/d22b98f6c21577895f4d2e3a8bd54e329083732b/fetch_maps/maps/9_16_15_keepout.png -------------------------------------------------------------------------------- /fetch_maps/maps/9_16_15_keepout.yaml: -------------------------------------------------------------------------------- 1 | free_thresh: 0.196 2 | image: 9_16_15_keepout.png 3 | negate: 0 4 | occupied_thresh: 0.65 5 | origin: [0.0, 0.0, 0.0] 6 | resolution: 0.05 7 | -------------------------------------------------------------------------------- /fetch_maps/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | fetch_maps 4 | 0.9.1 5 | The fetch_maps package 6 | 7 | Michael Ferguson 8 | Michael Gregg 9 | Aaron Blasdel 10 | Sarah Elliott 11 | Carl Saldanha 12 | Eric Relson 13 | Russell Toris 14 | Fetch Robotics Open Source Team 15 | 16 | BSD 17 | http://ros.org/wiki/fetch_maps 18 | http://docs.fetchrobotics.com/navigation.html 19 | https://github.com/fetchrobotics/fetch_ros/issues 20 | https://github.com/fetchrobotics/fetch_ros 21 | 22 | catkin 23 | 24 | -------------------------------------------------------------------------------- /fetch_moveit_config/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package fetch_moveit_config 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 0.9.1 (2021-03-05) 6 | ------------------ 7 | 8 | 0.9.0 (2021-02-28) 9 | ------------------ 10 | * Initial noetic release 11 | * Updates maintainers 12 | * Contributors: Eric Relson 13 | 14 | 0.8.2 (2019-08-06) 15 | ------------------ 16 | * Fixed chomp configuration for porting to moveit melodic-devel (`#124 `_) 17 | * Merge pull request `#122 `_ from dekent/melodic-devel 18 | Much more collision checking = much safer robot with minimal planning time increases 19 | * Merge pull request `#116 `_ from umhan35/moveit-costomap 20 | [moveit_config] allow moveit octomap params to be overridden 21 | * add default moveit_octomap_sensor_params_file to move_group.launch 22 | * allow moveit octomap params to be overridden 23 | * Contributors: Carl Saldanha, David Kent, Yuma Hijioka, Zhao Han 24 | 25 | 0.8.1 (2019-04-04) 26 | ------------------ 27 | * sync cmake_minimum_required: 2.8.12 28 | * Merge pull request `#107 `_ from moriarty/update-ikfast-plugin 29 | [IKFast Plugin] Regenerate fetch_ikfast_plugin 30 | Fixes `#103 `_ 31 | * Contributors: Alexander Moriarty, Carl Saldanha 32 | 33 | 0.8.0 (2019-02-13) 34 | ------------------ 35 | * [package.xml] REP-140 package format 2 (`#104 `_) 36 | closes `#83 `_ 37 | * [MoveIt][Melodic]: MoveGroupExecuteService -> MoveGroupExecuteTrajectoryAction (`#94 `_) 38 | * [Docs] Add URL tags to package for wiki.ros.org (`#90 `_) 39 | The tag is required to automatically fill in at least some info 40 | on the wiki pages. The extra tags will create links to our docs. 41 | * Contributors: Alex Moriarty, ivandariojr 42 | 43 | 0.7.14 (2018-07-10) 44 | ------------------- 45 | * updates ownership 46 | * Contributors: Russell Toris 47 | 48 | 0.7.13 (2017-11-02) 49 | ------------------- 50 | * add apply_planning_scene 51 | * [moveit_config] Add CHOMP planner demo launch. 52 | Enabling `CHOMP` on RViz by following the [tutorial](http://docs.ros.org/kinetic/api/moveit_tutorials/html/doc/chomp_interface_tutorial.html) (which currently included false information. I'll open a PR right after this). 53 | Tested on Xenial-Kinetic 54 | This commit is not necessarily intended to merged in. But would be nice to be kept for the entire MoveIt! community as a reference if possible. At least this will remain on the fork of @130s. 55 | *This PR is sponsored by [PlusOne Robotics](http://plusonerobotics.com) as part of [World MoveIt! Day 2017 hackathon](http://moveit.ros.org/events/world-moveit-day-2017)* 56 | * Contributors: Isaac I.Y. Saito, Shingo Kitagawa 57 | 58 | 0.7.12 (2017-08-02) 59 | ------------------- 60 | * add dependency for moveit 61 | * Contributors: Michael Ferguson 62 | 63 | 0.7.11 (2017-07-31) 64 | ------------------- 65 | 66 | 0.7.10 (2016-10-27) 67 | ------------------- 68 | * update package.xmls, add depend on fetch_ikfast_plugin 69 | * load the ikfast kinematics plugin 70 | * Contributors: Di Sun, Michael Ferguson 71 | 72 | 0.7.9 (2016-07-26) 73 | ------------------ 74 | 75 | 0.7.8 (2016-07-18) 76 | ------------------ 77 | 78 | 0.7.7 (2016-06-20) 79 | ------------------ 80 | 81 | 0.7.6 (2016-05-26) 82 | ------------------ 83 | 84 | 0.7.5 (2016-05-08) 85 | ------------------ 86 | 87 | 0.7.4 (2016-03-16) 88 | ------------------ 89 | 90 | 0.7.3 (2016-03-05) 91 | ------------------ 92 | 93 | 0.7.2 (2016-02-24) 94 | ------------------ 95 | 96 | 0.7.1 (2016-01-20) 97 | ------------------ 98 | 99 | 0.7.0 (2015-09-29) 100 | ------------------ 101 | * fix dependency issue with run/test duplication 102 | * add missing moveit_python depend 103 | * fix name of gripper fingers in fake controllers 104 | * Contributors: Michael Ferguson 105 | 106 | 0.6.2 (2015-07-30) 107 | ------------------ 108 | 109 | 0.6.1 (2015-07-03) 110 | ------------------ 111 | * add (optional) octomap configuration 112 | * Contributors: Michael Ferguson 113 | 114 | 0.6.0 (2015-06-23) 115 | ------------------ 116 | 117 | 0.5.14 (2015-06-19) 118 | ------------------- 119 | 120 | 0.5.13 (2015-06-13) 121 | ------------------- 122 | 123 | 0.5.12 (2015-06-12) 124 | ------------------- 125 | 126 | 0.5.11 (2015-06-10) 127 | ------------------- 128 | 129 | 0.5.10 (2015-06-07) 130 | ------------------- 131 | 132 | 0.5.9 (2015-06-07) 133 | ------------------ 134 | 135 | 0.5.8 (2015-06-07) 136 | ------------------ 137 | 138 | 0.5.7 (2015-06-05) 139 | ------------------ 140 | * bump joint limits used for moveit 141 | * Contributors: Michael Ferguson 142 | 143 | 0.5.6 (2015-06-04) 144 | ------------------ 145 | 146 | 0.5.5 (2015-06-03) 147 | ------------------ 148 | 149 | 0.5.4 (2015-05-09) 150 | ------------------ 151 | * repository cleanup 152 | 153 | 0.5.3 (2015-05-03) 154 | ------------------ 155 | 156 | 0.5.2 (2015-04-19) 157 | ------------------ 158 | 159 | 0.5.1 (2015-04-09) 160 | ------------------ 161 | 162 | 0.5.0 (2015-04-04) 163 | ------------------ 164 | * First public release 165 | * Contributors: Michael Ferguson 166 | -------------------------------------------------------------------------------- /fetch_moveit_config/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.0.2) 2 | project(fetch_moveit_config) 3 | 4 | find_package(catkin REQUIRED) 5 | 6 | catkin_package() 7 | 8 | install( 9 | DIRECTORY launch config 10 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 11 | ) 12 | -------------------------------------------------------------------------------- /fetch_moveit_config/config/chomp_planning.yaml: -------------------------------------------------------------------------------- 1 | planning_time_limit: 10.0 2 | max_iterations: 200 3 | max_iterations_after_collision_free: 5 4 | smoothness_cost_weight: 0.1 5 | obstacle_cost_weight: 1.0 6 | learning_rate: 0.01 7 | animate_path: true 8 | add_randomness: false 9 | smoothness_cost_velocity: 0.0 10 | smoothness_cost_acceleration: 1.0 11 | smoothness_cost_jerk: 0.0 12 | hmc_discretization: 0.01 13 | hmc_stochasticity: 0.01 14 | hmc_annealing_factor: 0.99 15 | use_hamiltonian_monte_carlo: false 16 | ridge_factor: 0.0 17 | use_pseudo_inverse: false 18 | pseudo_inverse_ridge_factor: 1e-4 19 | animate_endeffector: false 20 | animate_endeffector_segment: "r_gripper_tool_frame" 21 | joint_update_limit: 0.1 22 | collision_clearence: 0.2 23 | collision_threshold: 0.07 24 | random_jump_amount: 1.0 25 | use_stochastic_descent: true 26 | enable_failure_recovery: false 27 | max_recovery_attepmts: 5 28 | trajectory_initialization_method: "quintic-spline" 29 | -------------------------------------------------------------------------------- /fetch_moveit_config/config/controllers.yaml: -------------------------------------------------------------------------------- 1 | controller_list: 2 | - name: arm_controller 3 | action_ns: follow_joint_trajectory 4 | type: FollowJointTrajectory 5 | default: true 6 | joints: 7 | - shoulder_pan_joint 8 | - shoulder_lift_joint 9 | - upperarm_roll_joint 10 | - elbow_flex_joint 11 | - forearm_roll_joint 12 | - wrist_flex_joint 13 | - wrist_roll_joint 14 | - name: arm_with_torso_controller 15 | action_ns: follow_joint_trajectory 16 | type: FollowJointTrajectory 17 | joints: 18 | - torso_lift_joint 19 | - shoulder_pan_joint 20 | - shoulder_lift_joint 21 | - upperarm_roll_joint 22 | - elbow_flex_joint 23 | - forearm_roll_joint 24 | - wrist_flex_joint 25 | - wrist_roll_joint 26 | - name: gripper_controller 27 | type: GripperCommand 28 | action_ns: gripper_action 29 | default: true 30 | parallel: true 31 | joints: 32 | - l_gripper_finger_joint 33 | - r_gripper_finger_joint -------------------------------------------------------------------------------- /fetch_moveit_config/config/fake_controllers.yaml: -------------------------------------------------------------------------------- 1 | controller_list: 2 | - name: fake_arm_controller 3 | joints: 4 | - shoulder_pan_joint 5 | - shoulder_lift_joint 6 | - upperarm_roll_joint 7 | - elbow_flex_joint 8 | - forearm_roll_joint 9 | - wrist_flex_joint 10 | - wrist_roll_joint 11 | - name: fake_arm_with_torso_controller 12 | joints: 13 | - torso_lift_joint 14 | - shoulder_pan_joint 15 | - shoulder_lift_joint 16 | - upperarm_roll_joint 17 | - elbow_flex_joint 18 | - forearm_roll_joint 19 | - wrist_flex_joint 20 | - wrist_roll_joint 21 | - name: fake_gripper_controller 22 | joints: 23 | - l_gripper_finger_joint 24 | - r_gripper_finger_joint 25 | -------------------------------------------------------------------------------- /fetch_moveit_config/config/joint_limits.yaml: -------------------------------------------------------------------------------- 1 | joint_limits: 2 | elbow_flex_joint: 3 | has_velocity_limits: true 4 | max_velocity: 1.5 5 | has_acceleration_limits: true 6 | max_acceleration: 1.5 7 | forearm_roll_joint: 8 | has_velocity_limits: true 9 | max_velocity: 1.57 10 | has_acceleration_limits: true 11 | max_acceleration: 1.5 12 | left_gripper_joint: 13 | has_velocity_limits: false 14 | max_velocity: 0 15 | has_acceleration_limits: false 16 | max_acceleration: 0 17 | right_gripper_joint: 18 | has_velocity_limits: false 19 | max_velocity: 0 20 | has_acceleration_limits: false 21 | max_acceleration: 0 22 | shoulder_lift_joint: 23 | has_velocity_limits: true 24 | max_velocity: 1.0 25 | has_acceleration_limits: true 26 | max_acceleration: 1.0 27 | shoulder_pan_joint: 28 | has_velocity_limits: true 29 | max_velocity: 1.256 30 | has_acceleration_limits: true 31 | max_acceleration: 1.5 32 | torso_lift_joint: 33 | has_velocity_limits: true 34 | max_velocity: 0.1 35 | has_acceleration_limits: true 36 | max_acceleration: 0.5 37 | upperarm_roll_joint: 38 | has_velocity_limits: true 39 | max_velocity: 1.57 40 | has_acceleration_limits: true 41 | max_acceleration: 1.5 42 | wrist_flex_joint: 43 | has_velocity_limits: true 44 | max_velocity: 2.26 45 | has_acceleration_limits: true 46 | max_acceleration: 2.5 47 | wrist_roll_joint: 48 | has_velocity_limits: true 49 | max_velocity: 2.26 50 | has_acceleration_limits: true 51 | max_acceleration: 2.5 52 | -------------------------------------------------------------------------------- /fetch_moveit_config/config/kinematics.yaml: -------------------------------------------------------------------------------- 1 | arm: 2 | kinematics_solver: fetch_arm/IKFastKinematicsPlugin 3 | kinematics_solver_attempts: 3 4 | kinematics_solver_search_resolution: 0.005 5 | kinematics_solver_timeout: 0.005 6 | arm_with_torso: 7 | kinematics_solver: kdl_kinematics_plugin/KDLKinematicsPlugin 8 | kinematics_solver_attempts: 3 9 | kinematics_solver_search_resolution: 0.005 10 | kinematics_solver_timeout: 0.005 11 | -------------------------------------------------------------------------------- /fetch_moveit_config/config/ompl_planning.yaml: -------------------------------------------------------------------------------- 1 | planner_configs: 2 | SBLkConfigDefault: 3 | type: geometric::SBL 4 | ESTkConfigDefault: 5 | type: geometric::EST 6 | LBKPIECEkConfigDefault: 7 | type: geometric::LBKPIECE 8 | BKPIECEkConfigDefault: 9 | type: geometric::BKPIECE 10 | KPIECEkConfigDefault: 11 | type: geometric::KPIECE 12 | RRTkConfigDefault: 13 | type: geometric::RRT 14 | RRTConnectkConfigDefault: 15 | type: geometric::RRTConnect 16 | RRTstarkConfigDefault: 17 | type: geometric::RRTstar 18 | TRRTkConfigDefault: 19 | type: geometric::TRRT 20 | PRMkConfigDefault: 21 | type: geometric::PRM 22 | PRMstarkConfigDefault: 23 | type: geometric::PRMstar 24 | arm: 25 | planner_configs: 26 | - SBLkConfigDefault 27 | - ESTkConfigDefault 28 | - LBKPIECEkConfigDefault 29 | - BKPIECEkConfigDefault 30 | - KPIECEkConfigDefault 31 | - RRTkConfigDefault 32 | - RRTConnectkConfigDefault 33 | - RRTstarkConfigDefault 34 | - TRRTkConfigDefault 35 | - PRMkConfigDefault 36 | - PRMstarkConfigDefault 37 | projection_evaluator: joints(shoulder_pan_joint,shoulder_lift_joint) 38 | longest_valid_segment_fraction: 0.005 39 | arm_with_torso: 40 | planner_configs: 41 | - SBLkConfigDefault 42 | - ESTkConfigDefault 43 | - LBKPIECEkConfigDefault 44 | - BKPIECEkConfigDefault 45 | - KPIECEkConfigDefault 46 | - RRTkConfigDefault 47 | - RRTConnectkConfigDefault 48 | - RRTstarkConfigDefault 49 | - TRRTkConfigDefault 50 | - PRMkConfigDefault 51 | - PRMstarkConfigDefault 52 | projection_evaluator: joints(torso_lift_joint,shoulder_pan_joint) 53 | longest_valid_segment_fraction: 0.05 54 | gripper: 55 | planner_configs: 56 | - SBLkConfigDefault 57 | - ESTkConfigDefault 58 | - LBKPIECEkConfigDefault 59 | - BKPIECEkConfigDefault 60 | - KPIECEkConfigDefault 61 | - RRTkConfigDefault 62 | - RRTConnectkConfigDefault 63 | - RRTstarkConfigDefault 64 | - TRRTkConfigDefault 65 | - PRMkConfigDefault 66 | - PRMstarkConfigDefault 67 | -------------------------------------------------------------------------------- /fetch_moveit_config/config/sensors.yaml: -------------------------------------------------------------------------------- 1 | sensors: 2 | - sensor_plugin: occupancy_map_monitor/PointCloudOctomapUpdater 3 | point_cloud_topic: /head_camera/depth_downsample/points 4 | max_range: 1.5 5 | point_subsample: 1 6 | padding_offset: 0.05 7 | padding_scale: 1.0 8 | -------------------------------------------------------------------------------- /fetch_moveit_config/launch/chomp_planning_pipeline.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /fetch_moveit_config/launch/default_warehouse_db.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /fetch_moveit_config/launch/demo.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | [/move_group/fake_controller_joint_states] 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 | -------------------------------------------------------------------------------- /fetch_moveit_config/launch/demo_chomp.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | [/move_group/fake_controller_joint_states] 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 | -------------------------------------------------------------------------------- /fetch_moveit_config/launch/fake_moveit_controller_manager.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /fetch_moveit_config/launch/fetch_moveit_controller_manager.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /fetch_moveit_config/launch/fetch_moveit_sensor_manager.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /fetch_moveit_config/launch/joystick_control.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /fetch_moveit_config/launch/move_group.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /fetch_moveit_config/launch/moveit.rviz: -------------------------------------------------------------------------------- 1 | Panels: 2 | - Class: rviz/Displays 3 | Help Height: 84 4 | Name: Displays 5 | Property Tree Widget: 6 | Expanded: 7 | - /MotionPlanning1 8 | - /MotionPlanning1/Planning Request1 9 | - /MarkerArray1 10 | Splitter Ratio: 0.74256 11 | Tree Height: 370 12 | - Class: rviz/Help 13 | Name: Help 14 | - Class: rviz/Views 15 | Expanded: 16 | - /Current View1 17 | Name: Views 18 | Splitter Ratio: 0.5 19 | Visualization Manager: 20 | Class: "" 21 | Displays: 22 | - Alpha: 0.5 23 | Cell Size: 1 24 | Class: rviz/Grid 25 | Color: 160; 160; 164 26 | Enabled: true 27 | Line Style: 28 | Line Width: 0.03 29 | Value: Lines 30 | Name: Grid 31 | Normal Cell Count: 0 32 | Offset: 33 | X: 0 34 | Y: 0 35 | Z: 0 36 | Plane: XY 37 | Plane Cell Count: 10 38 | Reference Frame: 39 | Value: true 40 | - Class: moveit_rviz_plugin/MotionPlanning 41 | Enabled: true 42 | MoveIt_Goal_Tolerance: 0 43 | MoveIt_Planning_Time: 5 44 | MoveIt_Use_Constraint_Aware_IK: true 45 | MoveIt_Warehouse_Host: 127.0.0.1 46 | MoveIt_Warehouse_Port: 33829 47 | Name: MotionPlanning 48 | Planned Path: 49 | Links: 50 | All Links Enabled: true 51 | Expand Joint Details: false 52 | Expand Link Details: false 53 | Expand Tree: false 54 | Link Tree Style: Links in Alphabetic Order 55 | base_link: 56 | Alpha: 1 57 | Show Axes: false 58 | Show Trail: false 59 | Value: true 60 | elbow_flex_link: 61 | Alpha: 1 62 | Show Axes: false 63 | Show Trail: false 64 | Value: true 65 | forearm_roll_link: 66 | Alpha: 1 67 | Show Axes: false 68 | Show Trail: false 69 | Value: true 70 | gripper_link: 71 | Alpha: 1 72 | Show Axes: false 73 | Show Trail: false 74 | Value: true 75 | head_pan_link: 76 | Alpha: 1 77 | Show Axes: false 78 | Show Trail: false 79 | Value: true 80 | laser_link: 81 | Alpha: 1 82 | Show Axes: false 83 | Show Trail: false 84 | left_gripper_finger_link: 85 | Alpha: 1 86 | Show Axes: false 87 | Show Trail: false 88 | Value: true 89 | right_gripper_finger_link: 90 | Alpha: 1 91 | Show Axes: false 92 | Show Trail: false 93 | Value: true 94 | shoulder_lift_link: 95 | Alpha: 1 96 | Show Axes: false 97 | Show Trail: false 98 | Value: true 99 | shoulder_mount_link: 100 | Alpha: 1 101 | Show Axes: false 102 | Show Trail: false 103 | Value: true 104 | shoulder_pan_link: 105 | Alpha: 1 106 | Show Axes: false 107 | Show Trail: false 108 | Value: true 109 | torso_lift_link: 110 | Alpha: 1 111 | Show Axes: false 112 | Show Trail: false 113 | Value: true 114 | upperarm_roll_link: 115 | Alpha: 1 116 | Show Axes: false 117 | Show Trail: false 118 | Value: true 119 | wrist_flex_link: 120 | Alpha: 1 121 | Show Axes: false 122 | Show Trail: false 123 | Value: true 124 | wrist_roll_link: 125 | Alpha: 1 126 | Show Axes: false 127 | Show Trail: false 128 | Value: true 129 | Loop Animation: true 130 | Robot Alpha: 0.5 131 | Show Robot Collision: false 132 | Show Robot Visual: true 133 | Show Trail: false 134 | State Display Time: 0.05 s 135 | Trajectory Topic: /move_group/display_planned_path 136 | Planning Metrics: 137 | Payload: 1 138 | Show Joint Torques: false 139 | Show Manipulability: false 140 | Show Manipulability Index: false 141 | Show Weight Limit: false 142 | TextHeight: 0.08 143 | Planning Request: 144 | Colliding Link Color: 255; 0; 0 145 | Goal State Alpha: 1 146 | Goal State Color: 250; 128; 0 147 | Interactive Marker Size: 0 148 | Joint Violation Color: 255; 0; 255 149 | Planning Group: arm 150 | Query Goal State: false 151 | Query Start State: false 152 | Show Workspace: false 153 | Start State Alpha: 1 154 | Start State Color: 0; 255; 0 155 | Planning Scene Topic: /move_group/monitored_planning_scene 156 | Robot Description: robot_description 157 | Scene Geometry: 158 | Scene Alpha: 1 159 | Scene Color: 50; 230; 50 160 | Scene Display Time: 0.2 161 | Show Scene Geometry: true 162 | Voxel Coloring: Z-Axis 163 | Voxel Rendering: Occupied Voxels 164 | Scene Robot: 165 | Attached Body Color: 150; 50; 150 166 | Links: 167 | All Links Enabled: true 168 | Expand Joint Details: false 169 | Expand Link Details: false 170 | Expand Tree: false 171 | Link Tree Style: Links in Alphabetic Order 172 | base_link: 173 | Alpha: 1 174 | Show Axes: false 175 | Show Trail: false 176 | Value: true 177 | elbow_flex_link: 178 | Alpha: 1 179 | Show Axes: false 180 | Show Trail: false 181 | Value: true 182 | forearm_roll_link: 183 | Alpha: 1 184 | Show Axes: false 185 | Show Trail: false 186 | Value: true 187 | gripper_link: 188 | Alpha: 1 189 | Show Axes: false 190 | Show Trail: false 191 | Value: true 192 | head_pan_link: 193 | Alpha: 1 194 | Show Axes: false 195 | Show Trail: false 196 | Value: true 197 | laser_link: 198 | Alpha: 1 199 | Show Axes: false 200 | Show Trail: false 201 | left_gripper_finger_link: 202 | Alpha: 1 203 | Show Axes: false 204 | Show Trail: false 205 | Value: true 206 | right_gripper_finger_link: 207 | Alpha: 1 208 | Show Axes: false 209 | Show Trail: false 210 | Value: true 211 | shoulder_lift_link: 212 | Alpha: 1 213 | Show Axes: false 214 | Show Trail: false 215 | Value: true 216 | shoulder_mount_link: 217 | Alpha: 1 218 | Show Axes: false 219 | Show Trail: false 220 | Value: true 221 | shoulder_pan_link: 222 | Alpha: 1 223 | Show Axes: false 224 | Show Trail: false 225 | Value: true 226 | torso_lift_link: 227 | Alpha: 1 228 | Show Axes: false 229 | Show Trail: false 230 | Value: true 231 | upperarm_roll_link: 232 | Alpha: 1 233 | Show Axes: false 234 | Show Trail: false 235 | Value: true 236 | wrist_flex_link: 237 | Alpha: 1 238 | Show Axes: false 239 | Show Trail: false 240 | Value: true 241 | wrist_roll_link: 242 | Alpha: 1 243 | Show Axes: false 244 | Show Trail: false 245 | Value: true 246 | Robot Alpha: 0.5 247 | Show Robot Collision: false 248 | Show Robot Visual: true 249 | Value: true 250 | - Class: rviz/MarkerArray 251 | Enabled: true 252 | Marker Topic: visualization_marker_array 253 | Name: MarkerArray 254 | Namespaces: 255 | {} 256 | Queue Size: 100 257 | Value: true 258 | Enabled: true 259 | Global Options: 260 | Background Color: 48; 48; 48 261 | Fixed Frame: base_link 262 | Frame Rate: 30 263 | Name: root 264 | Tools: 265 | - Class: rviz/Interact 266 | Hide Inactive Objects: true 267 | - Class: rviz/MoveCamera 268 | - Class: rviz/Select 269 | Value: true 270 | Views: 271 | Current: 272 | Class: rviz/XYOrbit 273 | Distance: 2.9965 274 | Enable Stereo Rendering: 275 | Stereo Eye Separation: 0.06 276 | Stereo Focal Distance: 1 277 | Swap Stereo Eyes: false 278 | Value: false 279 | Focal Point: 280 | X: 0.113567 281 | Y: 0.10592 282 | Z: 2.23518e-07 283 | Name: Current View 284 | Near Clip Distance: 0.01 285 | Pitch: 0.194797 286 | Target Frame: base_link 287 | Value: XYOrbit (rviz) 288 | Yaw: 1.16176 289 | Saved: ~ 290 | Window Geometry: 291 | Displays: 292 | collapsed: false 293 | Height: 1003 294 | Help: 295 | collapsed: false 296 | Hide Left Dock: false 297 | Hide Right Dock: false 298 | Motion Planning: 299 | collapsed: false 300 | QMainWindow State: 000000ff00000000fd0000000100000000000002a20000038cfc0200000005fb000000100044006900730070006c006100790073010000004100000207000000dd00fffffffb0000000800480065006c00700000000342000000bb0000007600fffffffb0000000a0056006900650077007300000003b0000000b0000000b000fffffffb0000000c00430061006d00650072006100000002ff000001610000000000000000fb0000001e004d006f00740069006f006e00200050006c0061006e006e0069006e0067010000024e0000017f0000017400ffffff0000047c0000038c00000001000000020000000100000002fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 301 | Views: 302 | collapsed: false 303 | Width: 1828 304 | X: 189 305 | Y: 24 306 | -------------------------------------------------------------------------------- /fetch_moveit_config/launch/moveit_rviz.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /fetch_moveit_config/launch/ompl_planning_pipeline.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /fetch_moveit_config/launch/planning_context.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 | -------------------------------------------------------------------------------- /fetch_moveit_config/launch/planning_pipeline.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /fetch_moveit_config/launch/sensor_manager.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /fetch_moveit_config/launch/setup_assistant.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /fetch_moveit_config/launch/trajectory_execution.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /fetch_moveit_config/launch/warehouse.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /fetch_moveit_config/launch/warehouse_settings.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /fetch_moveit_config/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | fetch_moveit_config 5 | 0.9.1 6 | 7 | An automatically generated package with all the configuration and launch files for using the fetch_urdf with the MoveIt Motion Planning Framework 8 | 9 | MoveIt Setup Assistant 10 | 11 | Sarah Elliott 12 | Carl Saldanha 13 | Eric Relson 14 | Russell Toris 15 | Fetch Robotics Open Source Team 16 | 17 | BSD 18 | http://ros.org/wiki/fetch_moveit_config 19 | http://moveit.ros.org/ 20 | https://github.com/ros-planning/moveit_setup_assistant/issues 21 | https://github.com/ros-planning/moveit_setup_assistant 22 | 23 | catkin 24 | 25 | fetch_description 26 | 27 | fetch_ikfast_plugin 28 | joint_state_publisher 29 | moveit_fake_controller_manager 30 | moveit_kinematics 31 | moveit_ros_move_group 32 | moveit_planners_ompl 33 | moveit_python 34 | moveit_ros_visualization 35 | moveit_simple_controller_manager 36 | robot_state_publisher 37 | rospy 38 | xacro 39 | 40 | rostest 41 | 42 | 43 | -------------------------------------------------------------------------------- /fetch_navigation/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package fetch_navigation 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 0.9.1 (2021-03-05) 6 | ------------------ 7 | 8 | 0.9.0 (2021-02-28) 9 | ------------------ 10 | * Initial noetic release 11 | * Updates for python3 and ROS Noetic 12 | * Add use_map_topic arg in fetch_nav.launch (`#145 `_) 13 | * Update bias/scale params (`#141 `_) 14 | bias params are limited to 5.0, divided them all by 16 15 | so that our bias distances are close to the defaults 16 | * Add topicname args to navigation launch (`#136 `_) 17 | * add topic args for navigation launch files 18 | * Updates maintainers 19 | * Contributors: Alex Moriarty, Eric Relson, Koki Shinjo, Michael Ferguson, Russell Toris, Shingo Kitagawa 20 | 21 | 0.8.2 (2019-08-06) 22 | ------------------ 23 | 24 | 0.8.1 (2019-04-04) 25 | ------------------ 26 | * sync cmake_minimum_required: 2.8.12 27 | * Contributors: Alexander Moriarty 28 | 29 | 0.8.0 (2019-02-13) 30 | ------------------ 31 | * [package.xml] REP-140 package format 2 (`#104 `_) 32 | closes `#83 `_ 33 | * [Docs] Add URL tags to package for wiki.ros.org (`#90 `_) 34 | The tag is required to automatically fill in at least some info 35 | on the wiki pages. The extra tags will create links to our docs. 36 | * Contributors: Alex Moriarty 37 | 38 | 0.7.14 (2018-07-10) 39 | ------------------- 40 | * updates ownership 41 | * Merge pull request `#76 `_ from 708yamaguchi/change-amcl-param 42 | Localized position of fetch often jumps 43 | * change odom model type and params for amcl 44 | * Contributors: Derek, Naoya Yamaguchi, Russell Toris 45 | 46 | 0.7.13 (2017-11-02) 47 | ------------------- 48 | 49 | 0.7.12 (2017-08-02) 50 | ------------------- 51 | 52 | 0.7.11 (2017-07-31) 53 | ------------------- 54 | 55 | 0.7.10 (2016-10-27) 56 | ------------------- 57 | 58 | 0.7.9 (2016-07-26) 59 | ------------------ 60 | 61 | 0.7.8 (2016-07-18) 62 | ------------------ 63 | 64 | 0.7.7 (2016-06-20) 65 | ------------------ 66 | * remove run_depend on metapackage 67 | * Contributors: Michael Ferguson 68 | 69 | 0.7.6 (2016-05-26) 70 | ------------------ 71 | 72 | 0.7.5 (2016-05-08) 73 | ------------------ 74 | 75 | 0.7.4 (2016-03-16) 76 | ------------------ 77 | 78 | 0.7.3 (2016-03-05) 79 | ------------------ 80 | * Update to new maps 81 | * Contributors: Aaron Blasdel 82 | 83 | 0.7.2 (2016-02-24) 84 | ------------------ 85 | * Fix location of recovery behavior parameters in yaml configs 86 | * Contributors: Kei Okada, Michael Ferguson 87 | 88 | 0.7.1 (2016-01-20) 89 | ------------------ 90 | 91 | 0.7.0 (2015-09-29) 92 | ------------------ 93 | * Use fetch_maps package for maps 94 | * Allow overriding of move base & amcl param files 95 | * Contributors: Aaron Blasdel, Ian Danforth 96 | 97 | 0.6.2 (2015-07-30) 98 | ------------------ 99 | 100 | 0.6.1 (2015-07-03) 101 | ------------------ 102 | 103 | 0.6.0 (2015-06-23) 104 | ------------------ 105 | 106 | 0.5.14 (2015-06-19) 107 | ------------------- 108 | * fetch_navigation depends fetch_depth_layer 109 | * Contributors: Michael Ferguson 110 | 111 | 0.5.13 (2015-06-13) 112 | ------------------- 113 | 114 | 0.5.12 (2015-06-12) 115 | ------------------- 116 | * Slam_karto node rename in launch 117 | * Contributors: Aaron Blasdel 118 | 119 | 0.5.11 (2015-06-10) 120 | ------------------- 121 | 122 | 0.5.10 (2015-06-07) 123 | ------------------- 124 | 125 | 0.5.9 (2015-06-07) 126 | ------------------ 127 | 128 | 0.5.8 (2015-06-07) 129 | ------------------ 130 | 131 | 0.5.7 (2015-06-05) 132 | ------------------ 133 | * display whole global plan 134 | * Contributors: Michael Ferguson 135 | 136 | 0.5.6 (2015-06-04) 137 | ------------------ 138 | * remap static_map service for keepout server 139 | * Contributors: Michael Ferguson 140 | 141 | 0.5.5 (2015-06-03) 142 | ------------------ 143 | * import navigation 144 | * Contributors: Michael Ferguson 145 | -------------------------------------------------------------------------------- /fetch_navigation/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.0.2) 2 | project(fetch_navigation) 3 | 4 | find_package(catkin REQUIRED) 5 | catkin_package() 6 | 7 | install( 8 | DIRECTORY config 9 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 10 | ) 11 | 12 | install( 13 | DIRECTORY launch 14 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 15 | ) 16 | 17 | install( 18 | PROGRAMS scripts/tilt_head.py 19 | DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 20 | ) 21 | 22 | if(CATKIN_ENABLE_TESTING) 23 | find_package(catkin REQUIRED COMPONENTS roslaunch) 24 | roslaunch_add_file_check(launch/fetch_nav.launch) 25 | roslaunch_add_file_check(launch/freight_nav.launch) 26 | endif() 27 | -------------------------------------------------------------------------------- /fetch_navigation/config/amcl.yaml: -------------------------------------------------------------------------------- 1 | # Filter 2 | min_particles: 500 3 | max_particles: 2000 4 | kld_err: 0.01 5 | kld_z: 0.99 6 | # minimum distance between particle updates 7 | update_min_d: 0.1 8 | update_min_a: 0.25 9 | # number of filter updates before resampling 10 | resample_interval: 2 11 | # disable filter recovery 12 | recovery_alpha_slow: 0.0 13 | recovery_alpha_fast: 0.0 14 | # debug 15 | gui_publish_rate: 10.0 16 | # rates 17 | save_pose_rate: 0.5 18 | 19 | # Laser model 20 | laser_model_type: "likelihood_field" 21 | laser_likelihood_max_dist: 2.0 22 | laser_max_beams: 30 23 | laser_min_range: -1.0 24 | laser_max_range: -1.0 25 | laser_z_hit: 0.95 26 | laser_z_rand: 0.05 27 | laser_sigma_hit: 0.2 28 | 29 | # Odometry model 30 | odom_model_type: "diff-corrected" 31 | odom_alpha1: 0.15 # rotation noise per rotation 32 | odom_alpha2: 0.5 # rotation noise per translation 33 | odom_alpha3: 0.5 # translation noise per translation 34 | odom_alpha4: 0.15 # translation noise per rotation 35 | odom_frame_id: "odom" 36 | base_frame_id: "base_link" 37 | global_frame_id: "map" 38 | transform_tolerance: 0.5 39 | -------------------------------------------------------------------------------- /fetch_navigation/config/costmap_common.yaml: -------------------------------------------------------------------------------- 1 | robot_base_frame: base_link 2 | 3 | transform_tolerance: 0.5 4 | 5 | robot_radius: 0.30 6 | inflater: 7 | robot_radius: 0.30 8 | inflation_radius: 0.70 9 | 10 | # Obstacles are defined in robot folders 11 | -------------------------------------------------------------------------------- /fetch_navigation/config/costmap_global.yaml: -------------------------------------------------------------------------------- 1 | global_frame: map 2 | 3 | update_frequency: 5.0 4 | publish_frequency: 0.0 5 | static_map: true 6 | 7 | # plugins for global costmap are in robot folder 8 | -------------------------------------------------------------------------------- /fetch_navigation/config/costmap_local.yaml: -------------------------------------------------------------------------------- 1 | global_frame: odom 2 | 3 | rolling_window: true 4 | publish_frequency: 2.0 5 | 6 | # size of costmap is specified in robot folder 7 | 8 | # plugins for local costmap are in robot folder 9 | -------------------------------------------------------------------------------- /fetch_navigation/config/fetch/costmap_common.yaml: -------------------------------------------------------------------------------- 1 | obstacles: 2 | observation_sources: base_scan 3 | base_scan: 4 | data_type: LaserScan 5 | topic: base_scan 6 | marking: true 7 | clearing: true 8 | obstacle_range: 4.0 9 | raytrace_range: 5.0 10 | min_obstacle_height: 0.25 11 | max_obstacle_height: 0.3 12 | z_voxels: 16 13 | z_resolution: 0.125 14 | max_obstacle_height: 2.0 15 | -------------------------------------------------------------------------------- /fetch_navigation/config/fetch/costmap_global.yaml: -------------------------------------------------------------------------------- 1 | plugins: 2 | - {name: static_map, type: "costmap_2d::StaticLayer"} 3 | - {name: obstacles, type: "costmap_2d::FetchDepthLayer"} 4 | - {name: inflater, type: "costmap_2d::InflationLayer"} 5 | -------------------------------------------------------------------------------- /fetch_navigation/config/fetch/costmap_local.yaml: -------------------------------------------------------------------------------- 1 | width: 4.0 2 | height: 4.0 3 | resolution: 0.025 4 | 5 | plugins: 6 | - {name: obstacles, type: "costmap_2d::FetchDepthLayer"} 7 | - {name: inflater, type: "costmap_2d::InflationLayer"} 8 | 9 | obstacles: 10 | publish_observations: false 11 | -------------------------------------------------------------------------------- /fetch_navigation/config/fetch/move_base.yaml: -------------------------------------------------------------------------------- 1 | # Base profile 2 | TrajectoryPlannerROS: 3 | acc_lim_x: 0.35 4 | acc_lim_y: 0.0 5 | acc_lim_theta: 0.8 6 | max_vel_x: 1.0 7 | min_vel_x: 0.15 8 | max_vel_y: 0.0 9 | min_vel_y: 0.0 10 | max_vel_theta: 1.5 11 | min_vel_theta: -1.5 12 | min_in_place_vel_theta: 0.3 13 | holonomic_robot: false 14 | 15 | # Recovery behaviors 16 | recovery_behavior_enabled: true 17 | recovery_behaviors: 18 | - name: "conservative_reset" 19 | type: "clear_costmap_recovery/ClearCostmapRecovery" 20 | - name: "rotate_recovery" 21 | type: "rotate_recovery/RotateRecovery" 22 | - name: "aggressive_reset" 23 | type: "clear_costmap_recovery/ClearCostmapRecovery" 24 | conservative_reset: 25 | reset_distance: 3.0 26 | rotate_recovery: 27 | frequency: 20.0 28 | sim_granularity: 0.017 29 | aggressive_reset: 30 | reset_distance: 0.5 31 | -------------------------------------------------------------------------------- /fetch_navigation/config/freight/costmap_common.yaml: -------------------------------------------------------------------------------- 1 | obstacles: 2 | observation_sources: base_scan 3 | base_scan: 4 | data_type: LaserScan 5 | topic: base_scan 6 | marking: true 7 | clearing: true 8 | obstacle_range: 6.0 9 | raytrace_range: 10.0 10 | min_obstacle_height: 0.1 11 | max_obstacle_height: 0.3 12 | -------------------------------------------------------------------------------- /fetch_navigation/config/freight/costmap_global.yaml: -------------------------------------------------------------------------------- 1 | plugins: 2 | - {name: static_map, type: "costmap_2d::StaticLayer"} 3 | - {name: obstacles, type: "costmap_2d::VoxelLayer"} 4 | - {name: inflater, type: "costmap_2d::InflationLayer"} 5 | -------------------------------------------------------------------------------- /fetch_navigation/config/freight/costmap_local.yaml: -------------------------------------------------------------------------------- 1 | width: 4.0 2 | height: 4.0 3 | resolution: 0.025 4 | 5 | plugins: 6 | - {name: obstacles, type: "costmap_2d::VoxelLayer"} 7 | - {name: inflater, type: "costmap_2d::InflationLayer"} 8 | -------------------------------------------------------------------------------- /fetch_navigation/config/freight/move_base.yaml: -------------------------------------------------------------------------------- 1 | # Base profile 2 | TrajectoryPlannerROS: 3 | acc_lim_x: 0.35 4 | acc_lim_y: 0.0 5 | acc_lim_theta: 0.8 6 | max_vel_x: 2.0 7 | min_vel_x: 0.15 8 | max_vel_y: 0.0 9 | min_vel_y: 0.0 10 | max_vel_theta: 1.5 11 | min_vel_theta: -1.5 12 | min_in_place_vel_theta: 0.3 13 | holonomic_robot: false 14 | 15 | # Recovery behaviors 16 | recovery_behavior_enabled: true 17 | recovery_behaviors: 18 | - name: "conservative_reset" 19 | type: "clear_costmap_recovery/ClearCostmapRecovery" 20 | - name: "rotate_recovery" 21 | type: "rotate_recovery/RotateRecovery" 22 | - name: "aggressive_reset" 23 | type: "clear_costmap_recovery/ClearCostmapRecovery" 24 | conservative_reset: 25 | reset_distance: 3.0 26 | rotate_recovery: 27 | frequency: 20.0 28 | sim_granularity: 0.017 29 | aggressive_reset: 30 | reset_distance: 0.5 31 | -------------------------------------------------------------------------------- /fetch_navigation/config/move_base.yaml: -------------------------------------------------------------------------------- 1 | # Planner selection 2 | base_global_planner: "navfn/NavfnROS" 3 | base_local_planner: "base_local_planner/TrajectoryPlannerROS" 4 | 5 | # Recovery behaviors are defined in robot folders 6 | 7 | # Oscillation 8 | oscillation_timeout: 10.0 9 | oscillation_distance: 0.5 10 | 11 | # Global planner 12 | planner_frequency: 0.0 13 | planner_patience: 5.0 14 | NavfnROS: 15 | allow_unknown: true # TODO: investigate this 16 | default_tolerance: 0.0 17 | # do not restrict planner 18 | planner_window_x: 0.0 19 | planner_window_y: 0.0 20 | # debug 21 | visualize_potential: false 22 | 23 | # Local planner 24 | controller_frequency: 25.0 25 | controller_patience: 15.0 26 | TrajectoryPlannerROS: 27 | # base vel/accel profile is in robot folders 28 | # tolerances (defaults) 29 | yaw_goal_tolerance: 0.1 30 | xy_goal_tolerance: 0.1 31 | latch_xy_goal_tolerance: true 32 | # forward simulation 33 | sim_time: 1.0 34 | sim_granularity: 0.025 35 | angular_sim_granularity: 0.025 36 | vx_samples: 3 37 | vtheta_samples: 10 38 | # scoring (defaults) 39 | meter_scoring: true 40 | path_distance_bias: 0.5 41 | goal_distance_bias: 0.75 42 | occdist_scale: 0.00625 43 | heading_lookahead: 0.325 44 | heading_scoring_timestep: 0.8 45 | heading_scoring: true 46 | dwa: false 47 | # other 48 | oscillation_reset_dist: 0.05 49 | # debug 50 | publish_cost_grid_pc: false 51 | -------------------------------------------------------------------------------- /fetch_navigation/config/navigation.rviz: -------------------------------------------------------------------------------- 1 | Panels: 2 | - Class: rviz/Displays 3 | Help Height: 78 4 | Name: Displays 5 | Property Tree Widget: 6 | Expanded: 7 | - /Global Options1 8 | Splitter Ratio: 0.5 9 | Tree Height: 691 10 | - Class: rviz/Selection 11 | Name: Selection 12 | - Class: rviz/Tool Properties 13 | Expanded: 14 | - /2D Pose Estimate1 15 | - /2D Nav Goal1 16 | - /Publish Point1 17 | Name: Tool Properties 18 | Splitter Ratio: 0.588679 19 | - Class: rviz/Views 20 | Expanded: 21 | - /Current View1 22 | Name: Views 23 | Splitter Ratio: 0.5 24 | - Class: rviz/Time 25 | Experimental: false 26 | Name: Time 27 | SyncMode: 0 28 | SyncSource: LaserScan 29 | Visualization Manager: 30 | Class: "" 31 | Displays: 32 | - Alpha: 0.5 33 | Cell Size: 1 34 | Class: rviz/Grid 35 | Color: 160; 160; 164 36 | Enabled: true 37 | Line Style: 38 | Line Width: 0.03 39 | Value: Lines 40 | Name: Grid 41 | Normal Cell Count: 0 42 | Offset: 43 | X: 0 44 | Y: 0 45 | Z: 0 46 | Plane: XY 47 | Plane Cell Count: 40 48 | Reference Frame: 49 | Value: true 50 | - Alpha: 1 51 | Class: rviz/RobotModel 52 | Collision Enabled: false 53 | Enabled: true 54 | Links: 55 | All Links Enabled: true 56 | Expand Joint Details: false 57 | Expand Link Details: false 58 | Expand Tree: false 59 | Link Tree Style: Links in Alphabetic Order 60 | base_link: 61 | Alpha: 1 62 | Show Axes: false 63 | Show Trail: false 64 | Value: true 65 | bellows_link: 66 | Alpha: 1 67 | Show Axes: false 68 | Show Trail: false 69 | Value: true 70 | bellows_link2: 71 | Alpha: 1 72 | Show Axes: false 73 | Show Trail: false 74 | Value: true 75 | elbow_flex_link: 76 | Alpha: 1 77 | Show Axes: false 78 | Show Trail: false 79 | Value: true 80 | estop_link: 81 | Alpha: 1 82 | Show Axes: false 83 | Show Trail: false 84 | Value: true 85 | forearm_roll_link: 86 | Alpha: 1 87 | Show Axes: false 88 | Show Trail: false 89 | Value: true 90 | gripper_link: 91 | Alpha: 1 92 | Show Axes: false 93 | Show Trail: false 94 | Value: true 95 | head_camera_depth_frame: 96 | Alpha: 1 97 | Show Axes: false 98 | Show Trail: false 99 | head_camera_depth_optical_frame: 100 | Alpha: 1 101 | Show Axes: false 102 | Show Trail: false 103 | head_camera_link: 104 | Alpha: 1 105 | Show Axes: false 106 | Show Trail: false 107 | head_camera_rgb_frame: 108 | Alpha: 1 109 | Show Axes: false 110 | Show Trail: false 111 | head_camera_rgb_optical_frame: 112 | Alpha: 1 113 | Show Axes: false 114 | Show Trail: false 115 | head_pan_link: 116 | Alpha: 1 117 | Show Axes: false 118 | Show Trail: false 119 | Value: true 120 | head_tilt_link: 121 | Alpha: 1 122 | Show Axes: false 123 | Show Trail: false 124 | Value: true 125 | l_gripper_finger_link: 126 | Alpha: 1 127 | Show Axes: false 128 | Show Trail: false 129 | Value: true 130 | l_wheel_link: 131 | Alpha: 1 132 | Show Axes: false 133 | Show Trail: false 134 | Value: true 135 | laser_link: 136 | Alpha: 1 137 | Show Axes: false 138 | Show Trail: false 139 | Value: true 140 | r_gripper_finger_link: 141 | Alpha: 1 142 | Show Axes: false 143 | Show Trail: false 144 | Value: true 145 | r_wheel_link: 146 | Alpha: 1 147 | Show Axes: false 148 | Show Trail: false 149 | Value: true 150 | shoulder_lift_link: 151 | Alpha: 1 152 | Show Axes: false 153 | Show Trail: false 154 | Value: true 155 | shoulder_pan_link: 156 | Alpha: 1 157 | Show Axes: false 158 | Show Trail: false 159 | Value: true 160 | torso_fixed_link: 161 | Alpha: 1 162 | Show Axes: false 163 | Show Trail: false 164 | Value: true 165 | torso_lift_link: 166 | Alpha: 1 167 | Show Axes: false 168 | Show Trail: false 169 | Value: true 170 | upperarm_roll_link: 171 | Alpha: 1 172 | Show Axes: false 173 | Show Trail: false 174 | Value: true 175 | wrist_flex_link: 176 | Alpha: 1 177 | Show Axes: false 178 | Show Trail: false 179 | Value: true 180 | wrist_roll_link: 181 | Alpha: 1 182 | Show Axes: false 183 | Show Trail: false 184 | Value: true 185 | Name: RobotModel 186 | Robot Description: robot_description 187 | TF Prefix: "" 188 | Update Interval: 0 189 | Value: true 190 | Visual Enabled: true 191 | - Alpha: 1 192 | Autocompute Intensity Bounds: true 193 | Autocompute Value Bounds: 194 | Max Value: 10 195 | Min Value: -10 196 | Value: true 197 | Axis: Z 198 | Channel Name: intensity 199 | Class: rviz/LaserScan 200 | Color: 255; 0; 0 201 | Color Transformer: FlatColor 202 | Decay Time: 0 203 | Enabled: true 204 | Invert Rainbow: false 205 | Max Color: 255; 255; 255 206 | Max Intensity: 999999 207 | Min Color: 0; 0; 0 208 | Min Intensity: -999999 209 | Name: LaserScan 210 | Position Transformer: XYZ 211 | Queue Size: 10 212 | Selectable: true 213 | Size (Pixels): 3 214 | Size (m): 0.01 215 | Style: Points 216 | Topic: /base_scan 217 | Use Fixed Frame: true 218 | Use rainbow: true 219 | Value: true 220 | - Alpha: 0.7 221 | Class: rviz/Map 222 | Color Scheme: map 223 | Draw Behind: false 224 | Enabled: true 225 | Name: Map 226 | Topic: /map 227 | Value: true 228 | - Alpha: 0.7 229 | Class: rviz/Map 230 | Color Scheme: costmap 231 | Draw Behind: false 232 | Enabled: true 233 | Name: Local Costmap 234 | Topic: /move_base/local_costmap/costmap 235 | Value: true 236 | - Alpha: 1 237 | Buffer Length: 1 238 | Class: rviz/Path 239 | Color: 25; 255; 0 240 | Enabled: true 241 | Name: Global Plan 242 | Topic: /move_base/NavfnROS/plan 243 | Value: true 244 | - Alpha: 1 245 | Buffer Length: 1 246 | Class: rviz/Path 247 | Color: 0; 0; 255 248 | Enabled: true 249 | Name: Local Plan 250 | Topic: /move_base/TrajectoryPlannerROS/local_plan 251 | Value: true 252 | Enabled: true 253 | Global Options: 254 | Background Color: 48; 48; 48 255 | Fixed Frame: map 256 | Frame Rate: 30 257 | Name: root 258 | Tools: 259 | - Class: rviz/Interact 260 | Hide Inactive Objects: true 261 | - Class: rviz/MoveCamera 262 | - Class: rviz/Select 263 | - Class: rviz/FocusCamera 264 | - Class: rviz/Measure 265 | - Class: rviz/SetInitialPose 266 | Topic: /initialpose 267 | - Class: rviz/SetGoal 268 | Topic: /move_base_simple/goal 269 | - Class: rviz/PublishPoint 270 | Single click: true 271 | Topic: /clicked_point 272 | Value: true 273 | Views: 274 | Current: 275 | Class: rviz/Orbit 276 | Distance: 56.3469 277 | Enable Stereo Rendering: 278 | Stereo Eye Separation: 0.06 279 | Stereo Focal Distance: 1 280 | Swap Stereo Eyes: false 281 | Value: false 282 | Focal Point: 283 | X: 0.745996 284 | Y: -0.698994 285 | Z: -4.48734 286 | Name: Current View 287 | Near Clip Distance: 0.01 288 | Pitch: 1.4298 289 | Target Frame: 290 | Value: Orbit (rviz) 291 | Yaw: 3.15043 292 | Saved: ~ 293 | Window Geometry: 294 | Displays: 295 | collapsed: true 296 | Height: 996 297 | Hide Left Dock: true 298 | Hide Right Dock: true 299 | QMainWindow State: 000000ff00000000fd00000004000000000000018900000342fc0200000009fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000006400fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073000000004100000342000000dd00fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb0000001e004d006f00740069006f006e00200050006c0061006e006e0069006e0067000000036f000000160000000000000000000000010000010f00000344fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073000000004100000344000000b000fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000005000000003dfc0100000002fb0000000800540069006d0065010000000000000500000002f600fffffffb0000000800540069006d00650100000000000004500000000000000000000005000000034200000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 300 | Selection: 301 | collapsed: false 302 | Time: 303 | collapsed: false 304 | Tool Properties: 305 | collapsed: false 306 | Views: 307 | collapsed: true 308 | Width: 1280 309 | X: 1920 310 | Y: 0 311 | -------------------------------------------------------------------------------- /fetch_navigation/launch/build_map.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /fetch_navigation/launch/fetch_nav.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /fetch_navigation/launch/freight_nav.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 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 | -------------------------------------------------------------------------------- /fetch_navigation/launch/include/amcl.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /fetch_navigation/launch/include/move_base.launch.xml: -------------------------------------------------------------------------------- 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 | -------------------------------------------------------------------------------- /fetch_navigation/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | fetch_navigation 4 | 0.9.1 5 | Configuration and launch files for running ROS navigation on Fetch. 6 | 7 | Michael Ferguson 8 | Carl Saldanha 9 | Eric Relson 10 | Sarah Elliott 11 | Russell Toris 12 | Fetch Robotics Open Source Team 13 | 14 | BSD 15 | http://ros.org/wiki/fetch_navigation 16 | http://docs.fetchrobotics.com/navigation.html 17 | https://github.com/fetchrobotics/fetch_ros/issues 18 | https://github.com/fetchrobotics/fetch_ros 19 | 20 | catkin 21 | 22 | amcl 23 | base_local_planner 24 | clear_costmap_recovery 25 | costmap_2d 26 | fetch_depth_layer 27 | fetch_maps 28 | map_server 29 | move_base 30 | move_base_msgs 31 | navfn 32 | rotate_recovery 33 | slam_karto 34 | voxel_grid 35 | 36 | roslaunch 37 | 38 | 39 | -------------------------------------------------------------------------------- /fetch_navigation/scripts/tilt_head.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | # Copyright (c) 2015 Fetch Robotics Inc. 4 | # Copyright (c) 2013-2014 Unbounded Robotics Inc. 5 | # All right reserved. 6 | # 7 | # Redistribution and use in source and binary forms, with or without 8 | # modification, are permitted provided that the following conditions are met: 9 | # 10 | # * Redistributions of source code must retain the above copyright 11 | # notice, this list of conditions and the following disclaimer. 12 | # * Redistributions in binary form must reproduce the above copyright 13 | # notice, this list of conditions and the following disclaimer in the 14 | # documentation and/or other materials provided with the distribution. 15 | # * Neither the name of Unbounded Robotics Inc. nor the names of its 16 | # contributors may be used to endorse or promote products derived 17 | # from this software without specific prior written permission. 18 | # 19 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 20 | # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 21 | # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 22 | # DISCLAIMED. IN NO EVENT SHALL UNBOUNDED ROBOTICS INC. BE LIABLE FOR ANY DIRECT, INDIRECT, 23 | # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 25 | # OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 26 | # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 27 | # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 28 | # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | 30 | # 31 | # Tilt head for navigation obstacle avoidance. 32 | # 33 | 34 | from threading import Lock 35 | 36 | import rospy 37 | import actionlib 38 | 39 | from tf.listener import TransformListener 40 | from tf.transformations import quaternion_matrix 41 | 42 | from actionlib_msgs.msg import GoalStatus, GoalStatusArray 43 | from control_msgs.msg import PointHeadAction, PointHeadGoal 44 | from geometry_msgs.msg import PointStamped 45 | from nav_msgs.msg import Path 46 | 47 | 48 | class NavHeadController: 49 | 50 | def __init__(self): 51 | self.has_goal = False 52 | 53 | # pose and lock 54 | self.x = 1.0 55 | self.y = 0.0 56 | self.mutex = Lock() 57 | 58 | self.listener = TransformListener() 59 | 60 | self.client = actionlib.SimpleActionClient("head_controller/point_head", PointHeadAction) 61 | self.client.wait_for_server() 62 | 63 | self.plan_sub = rospy.Subscriber("move_base/TrajectoryPlannerROS/local_plan", Path, self.planCallback) 64 | self.stat_sub = rospy.Subscriber("move_base/status", GoalStatusArray, self.statCallback) 65 | 66 | def statCallback(self, msg): 67 | goal = False 68 | for status in msg.status_list: 69 | if status.status == GoalStatus.ACTIVE: 70 | goal = True 71 | break 72 | self.has_goal = goal 73 | 74 | def planCallback(self, msg): 75 | # get the goal 76 | pose_stamped = msg.poses[-1] 77 | pose = pose_stamped.pose 78 | 79 | # look ahead one meter 80 | R = quaternion_matrix([pose.orientation.x, pose.orientation.y, pose.orientation.z, pose.orientation.w]) 81 | point = [1, 0, 0, 1] 82 | M = R*point 83 | 84 | p = PointStamped() 85 | p.header.frame_id = pose_stamped.header.frame_id 86 | p.header.stamp = rospy.Time(0) 87 | p.point.x += pose_stamped.pose.position.x + M[0,0] 88 | p.point.y += pose_stamped.pose.position.y + M[1,0] 89 | p.point.z += pose_stamped.pose.position.z + M[2,0] 90 | 91 | # transform to base_link 92 | p = self.listener.transformPoint("base_link", p) 93 | 94 | # update 95 | with self.mutex: 96 | if p.point.x < 0.65: 97 | self.x = 0.65 98 | else: 99 | self.x = p.point.x 100 | if p.point.y > 0.5: 101 | self.y = 0.5 102 | elif p.point.y < -0.5: 103 | self.y = -0.5 104 | else: 105 | self.y = p.point.y 106 | 107 | def loop(self): 108 | while not rospy.is_shutdown(): 109 | if self.has_goal: 110 | goal = PointHeadGoal() 111 | goal.target.header.stamp = rospy.Time.now() 112 | goal.target.header.frame_id = "base_link" 113 | with self.mutex: 114 | goal.target.point.x = self.x 115 | goal.target.point.y = self.y 116 | self.x = 1 117 | self.y = 0 118 | goal.target.point.z = 0.0 119 | goal.min_duration = rospy.Duration(1.0) 120 | 121 | self.client.send_goal(goal) 122 | self.client.wait_for_result() 123 | 124 | with self.mutex: 125 | goal.target.point.x = self.x 126 | goal.target.point.y = self.y 127 | self.x = 1 128 | self.y = 0 129 | goal.target.point.z = 0.75 130 | 131 | self.client.send_goal(goal) 132 | self.client.wait_for_result() 133 | else: 134 | rospy.sleep(1.0) 135 | 136 | 137 | if __name__=="__main__": 138 | rospy.init_node("tilt_head_node") 139 | h = NavHeadController() 140 | h.loop() 141 | -------------------------------------------------------------------------------- /fetch_ros/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package fetch_ros 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 0.9.1 (2021-03-05) 6 | ------------------ 7 | 8 | 0.9.0 (2021-02-28) 9 | ------------------ 10 | * Initial noetic release 11 | * Updates for python3 and ROS Noetic 12 | * Updates maintainers 13 | * Contributors: Alex Moriarty, Eric Relson, Russell Toris 14 | 15 | 0.8.2 (2019-08-06) 16 | ------------------ 17 | 18 | 0.8.1 (2019-04-04) 19 | ------------------ 20 | * catkin_make only supports cmake 2.8.3 for meta-pkg (`#115 `_) 21 | * sync cmake_minimum_required: 2.8.12 22 | * [fetch_ros] new meta-package (`#110 `_) 23 | * Contributors: Alexander Moriarty 24 | 25 | 0.8.0 (2019-02-13) 26 | ------------------ 27 | * Meta-package fetch_ros was newly added after 0.8.0 28 | -------------------------------------------------------------------------------- /fetch_ros/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.0.2) 2 | project(fetch_ros) 3 | find_package(catkin REQUIRED) 4 | catkin_metapackage() 5 | -------------------------------------------------------------------------------- /fetch_ros/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | fetch_ros 5 | 0.9.1 6 | Fetch ROS, packages for working with Fetch and Freight 7 | Sarah Elliott 8 | Carl Saldanha 9 | Eric Relson 10 | Fetch Robotics Open Source Team 11 | 12 | BSD 13 | https://docs.fetchrobotics.com/ 14 | https://github.com/fetchrobotics/fetch_ros 15 | https://github.com/fetchrobotics/fetch_ros/issues 16 | https://wiki.ros.org/fetch_ros 17 | 18 | Alex Moriarty 19 | 20 | catkin 21 | 22 | fetch_calibration 23 | fetch_depth_layer 24 | fetch_description 25 | fetch_ikfast_plugin 26 | fetch_maps 27 | fetch_moveit_config 28 | fetch_navigation 29 | fetch_teleop 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /fetch_teleop/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package fetch_teleop 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 0.9.1 (2021-03-05) 6 | ------------------ 7 | 8 | 0.9.0 (2021-02-28) 9 | ------------------ 10 | * Initial noetic release 11 | * Update maintainers 12 | * Use mesh for tuck arm collision 13 | * Move collision objects to avoid collision 14 | * Fix tuck_arm.py moveit check 15 | * Updates for python3 and ROS Noetic 16 | * Tuck arm script: Add ground collision for melodic (`#130 `_) 17 | * add ground as collision object 18 | * make robot base keepout larger 19 | * Contributors: Alex Moriarty, Eric Relson, Russell Toris, Shingo Kitagawa 20 | 21 | 0.8.2 (2019-08-06) 22 | ------------------ 23 | * Merge pull request `#118 `_ from 708yamaguchi/add-teleop-rosparam-melodic 24 | Select teleop part by rosparam for melodic 25 | * select teleop part by rosparam 26 | * Contributors: Carl Saldanha, Naoya Yamaguchi 27 | 28 | 0.8.1 (2019-04-04) 29 | ------------------ 30 | * sync cmake_minimum_required: 2.8.12 31 | * Contributors: Alexander Moriarty 32 | 33 | 0.8.0 (2019-02-13) 34 | ------------------ 35 | * [package.xml] REP-140 package format 2 (`#104 `_) 36 | closes `#83 `_ 37 | * [Docs] Add URL tags to package for wiki.ros.org (`#90 `_) 38 | The tag is required to automatically fill in at least some info 39 | on the wiki pages. The extra tags will create links to our docs. 40 | * [teleop] Require primary dead-man for arm motion (`#92 `_) 41 | * Require primary dead-man for arm teleop, along with with the angular or linear selector button. 42 | * Fixup to add missing variable definition. 43 | * Also require primary deadman for arm teleop 44 | * Contributors: Alex Moriarty, Eric Relson 45 | 46 | 0.7.14 (2018-07-10) 47 | ------------------- 48 | * updates ownership 49 | * Merge pull request `#68 `_ from BillWSY/indigo-devel 50 | Fixes an issue that tuck_arm.py spawns new roscore. 51 | * Fixes an issue that tuck_arm.py spawns new roscore. 52 | tuck_arm.py calls roslaunch without --wait flag, which may spawn new ROS 53 | master in a racing condition. 54 | * Contributors: Michael Ferguson, Russell Toris, Shengye Wang 55 | 56 | 0.7.13 (2017-11-02) 57 | ------------------- 58 | 59 | 0.7.12 (2017-08-02) 60 | ------------------- 61 | 62 | 0.7.11 (2017-07-31) 63 | ------------------- 64 | * simpified with easier controls 65 | * add joystick teleop for arm control 66 | * Contributors: Hanjun Song, Michael Ferguson 67 | 68 | 0.7.10 (2016-10-27) 69 | ------------------- 70 | 71 | 0.7.9 (2016-07-26) 72 | ------------------ 73 | 74 | 0.7.8 (2016-07-18) 75 | ------------------ 76 | 77 | 0.7.7 (2016-06-20) 78 | ------------------ 79 | 80 | 0.7.6 (2016-05-26) 81 | ------------------ 82 | * fix attribute error when moveit does not return 83 | * Contributors: Michael Ferguson 84 | 85 | 0.7.5 (2016-05-08) 86 | ------------------ 87 | * Control gripper via keyboard 88 | * Contributors: Kentaro Wada 89 | 90 | 0.7.4 (2016-03-16) 91 | ------------------ 92 | 93 | 0.7.3 (2016-03-05) 94 | ------------------ 95 | 96 | 0.7.2 (2016-02-24) 97 | ------------------ 98 | 99 | 0.7.1 (2016-01-20) 100 | ------------------ 101 | 102 | 0.7.0 (2015-09-29) 103 | ------------------ 104 | * Require deadman to be held while tucking 105 | * add missing moveit_python depend 106 | * Contributors: Alex Henning, Michael Ferguson 107 | 108 | 0.6.2 (2015-07-30) 109 | ------------------ 110 | 111 | 0.6.1 (2015-07-03) 112 | ------------------ 113 | * make pan/tilt acceleration parameterized 114 | * update head tilt joint limits in teleop 115 | * Contributors: Michael Ferguson 116 | 117 | 0.6.0 (2015-06-23) 118 | ------------------ 119 | * install tuck_arm.py 120 | * add a keepout zone for extra margin around base 121 | * add ability to run tuck arm script without joystick 122 | * Contributors: Michael Ferguson 123 | 124 | 0.5.14 (2015-06-19) 125 | ------------------- 126 | * add script to tuck arm 127 | * Contributors: Michael Ferguson 128 | 129 | 0.5.13 (2015-06-13) 130 | ------------------- 131 | 132 | 0.5.12 (2015-06-12) 133 | ------------------- 134 | 135 | 0.5.11 (2015-06-10) 136 | ------------------- 137 | 138 | 0.5.10 (2015-06-07) 139 | ------------------- 140 | * fix random glitches due to having two joint states publishers 141 | * Contributors: Michael Ferguson 142 | 143 | 0.5.9 (2015-06-07) 144 | ------------------ 145 | 146 | 0.5.8 (2015-06-07) 147 | ------------------ 148 | 149 | 0.5.7 (2015-06-05) 150 | ------------------ 151 | 152 | 0.5.6 (2015-06-04) 153 | ------------------ 154 | 155 | 0.5.5 (2015-06-03) 156 | ------------------ 157 | 158 | 0.5.4 (2015-05-09) 159 | ------------------ 160 | * repository cleanup 161 | 162 | 0.5.3 (2015-05-03) 163 | ------------------ 164 | * set a slower reverse speed for teleop 165 | * Contributors: Michael Ferguson 166 | 167 | 0.5.2 (2015-04-19) 168 | ------------------ 169 | * prevent teleop command from winding up ahead of actual velocity 170 | * use -Wall, publish should return void 171 | * stop supressed components 172 | * Contributors: Michael Ferguson 173 | 174 | 0.5.1 (2015-04-09) 175 | ------------------ 176 | 177 | 0.5.0 (2015-04-04) 178 | ------------------ 179 | 180 | 0.4.2 (2015-03-23) 181 | ------------------ 182 | 183 | 0.4.1 (2015-03-23) 184 | ------------------ 185 | 186 | 0.4.0 (2015-03-22) 187 | ------------------ 188 | * initial release 189 | * Contributors: Michael Ferguson 190 | -------------------------------------------------------------------------------- /fetch_teleop/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.0.2) 2 | project(fetch_teleop) 3 | 4 | if (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) 5 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") 6 | endif() 7 | 8 | find_package(Boost REQUIRED) 9 | find_package(catkin REQUIRED 10 | COMPONENTS 11 | actionlib 12 | control_msgs 13 | geometry_msgs 14 | nav_msgs 15 | roscpp 16 | sensor_msgs 17 | topic_tools 18 | ) 19 | catkin_package() 20 | 21 | include_directories( 22 | ${Boost_INCLUDE_DIRS} 23 | ${catkin_INCLUDE_DIRS} 24 | ) 25 | 26 | add_executable(joystick_teleop src/joystick_teleop.cpp) 27 | target_link_libraries(joystick_teleop 28 | ${Boost_LIBRARIES} 29 | ${catkin_LIBRARIES} 30 | ) 31 | 32 | install( 33 | TARGETS joystick_teleop 34 | DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 35 | ) 36 | 37 | install( 38 | PROGRAMS scripts/tuck_arm.py 39 | DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 40 | ) 41 | 42 | install(DIRECTORY mesh 43 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 44 | USE_SOURCE_PERMISSIONS 45 | ) 46 | -------------------------------------------------------------------------------- /fetch_teleop/mesh/ground.stl: -------------------------------------------------------------------------------- 1 | solid AssimpScene 2 | facet normal 0.965926 0.258819 0 3 | outer loop 4 | vertex 0.866025 0.5 -0.025 5 | vertex 1 0 0.025 6 | vertex 1 0 -0.025 7 | endloop 8 | endfacet 9 | 10 | facet normal 0.965926 0.258819 0 11 | outer loop 12 | vertex 1 0 0.025 13 | vertex 0.866025 0.5 -0.025 14 | vertex 0.866025 0.5 0.025 15 | endloop 16 | endfacet 17 | 18 | facet normal 0.707107 0.707107 0 19 | outer loop 20 | vertex 0.5 0.866025 0.025 21 | vertex 0.866025 0.5 -0.025 22 | vertex 0.5 0.866025 -0.025 23 | endloop 24 | endfacet 25 | 26 | facet normal 0.707107 0.707107 0 27 | outer loop 28 | vertex 0.866025 0.5 -0.025 29 | vertex 0.5 0.866025 0.025 30 | vertex 0.866025 0.5 0.025 31 | endloop 32 | endfacet 33 | 34 | facet normal 0.258819 0.965926 0 35 | outer loop 36 | vertex 4.996e-16 1 0.025 37 | vertex 0.5 0.866025 -0.025 38 | vertex 4.996e-16 1 -0.025 39 | endloop 40 | endfacet 41 | 42 | facet normal 0.258819 0.965926 0 43 | outer loop 44 | vertex 0.5 0.866025 -0.025 45 | vertex 4.996e-16 1 0.025 46 | vertex 0.5 0.866025 0.025 47 | endloop 48 | endfacet 49 | 50 | facet normal -0.258819 0.965926 0 51 | outer loop 52 | vertex -0.5 0.866025 0.025 53 | vertex 4.996e-16 1 -0.025 54 | vertex -0.5 0.866025 -0.025 55 | endloop 56 | endfacet 57 | 58 | facet normal -0.258819 0.965926 0 59 | outer loop 60 | vertex 4.996e-16 1 -0.025 61 | vertex -0.5 0.866025 0.025 62 | vertex 4.996e-16 1 0.025 63 | endloop 64 | endfacet 65 | 66 | facet normal -0.707107 0.707107 0 67 | outer loop 68 | vertex -0.866025 0.5 0.025 69 | vertex -0.5 0.866025 -0.025 70 | vertex -0.866025 0.5 -0.025 71 | endloop 72 | endfacet 73 | 74 | facet normal -0.707107 0.707107 0 75 | outer loop 76 | vertex -0.5 0.866025 -0.025 77 | vertex -0.866025 0.5 0.025 78 | vertex -0.5 0.866025 0.025 79 | endloop 80 | endfacet 81 | 82 | facet normal -0.965926 0.258819 0 83 | outer loop 84 | vertex -1 1.05471e-15 0.025 85 | vertex -0.866025 0.5 -0.025 86 | vertex -1 1.05471e-15 -0.025 87 | endloop 88 | endfacet 89 | 90 | facet normal -0.965926 0.258819 0 91 | outer loop 92 | vertex -0.866025 0.5 -0.025 93 | vertex -1 1.05471e-15 0.025 94 | vertex -0.866025 0.5 0.025 95 | endloop 96 | endfacet 97 | 98 | facet normal -0.965926 -0.258819 0 99 | outer loop 100 | vertex -0.866025 -0.5 0.025 101 | vertex -1 1.05471e-15 -0.025 102 | vertex -0.866025 -0.5 -0.025 103 | endloop 104 | endfacet 105 | 106 | facet normal -0.965926 -0.258819 0 107 | outer loop 108 | vertex -1 1.05471e-15 -0.025 109 | vertex -0.866025 -0.5 0.025 110 | vertex -1 1.05471e-15 0.025 111 | endloop 112 | endfacet 113 | 114 | facet normal -0.707107 -0.707107 0 115 | outer loop 116 | vertex -0.5 -0.866025 0.025 117 | vertex -0.866025 -0.5 -0.025 118 | vertex -0.5 -0.866025 -0.025 119 | endloop 120 | endfacet 121 | 122 | facet normal -0.707107 -0.707107 0 123 | outer loop 124 | vertex -0.866025 -0.5 -0.025 125 | vertex -0.5 -0.866025 0.025 126 | vertex -0.866025 -0.5 0.025 127 | endloop 128 | endfacet 129 | 130 | facet normal -0.258819 -0.965926 0 131 | outer loop 132 | vertex -1.72085e-15 -1 0.025 133 | vertex -0.5 -0.866025 -0.025 134 | vertex -1.72085e-15 -1 -0.025 135 | endloop 136 | endfacet 137 | 138 | facet normal -0.258819 -0.965926 0 139 | outer loop 140 | vertex -0.5 -0.866025 -0.025 141 | vertex -1.72085e-15 -1 0.025 142 | vertex -0.5 -0.866025 0.025 143 | endloop 144 | endfacet 145 | 146 | facet normal 0.258819 -0.965926 0 147 | outer loop 148 | vertex 0.5 -0.866025 0.025 149 | vertex -1.72085e-15 -1 -0.025 150 | vertex 0.5 -0.866025 -0.025 151 | endloop 152 | endfacet 153 | 154 | facet normal 0.258819 -0.965926 0 155 | outer loop 156 | vertex -1.72085e-15 -1 -0.025 157 | vertex 0.5 -0.866025 0.025 158 | vertex -1.72085e-15 -1 0.025 159 | endloop 160 | endfacet 161 | 162 | facet normal 0.707107 -0.707107 0 163 | outer loop 164 | vertex 0.866025 -0.5 0.025 165 | vertex 0.5 -0.866025 -0.025 166 | vertex 0.866025 -0.5 -0.025 167 | endloop 168 | endfacet 169 | 170 | facet normal 0.707107 -0.707107 0 171 | outer loop 172 | vertex 0.5 -0.866025 -0.025 173 | vertex 0.866025 -0.5 0.025 174 | vertex 0.5 -0.866025 0.025 175 | endloop 176 | endfacet 177 | 178 | facet normal 0 0 1 179 | outer loop 180 | vertex 1 0 0.025 181 | vertex 0.5 -0.866025 0.025 182 | vertex 0.866025 -0.5 0.025 183 | endloop 184 | endfacet 185 | 186 | facet normal 0 0 1 187 | outer loop 188 | vertex 1 0 0.025 189 | vertex -1.72085e-15 -1 0.025 190 | vertex 0.5 -0.866025 0.025 191 | endloop 192 | endfacet 193 | 194 | facet normal 0 0 1 195 | outer loop 196 | vertex 1 0 0.025 197 | vertex -0.5 -0.866025 0.025 198 | vertex -1.72085e-15 -1 0.025 199 | endloop 200 | endfacet 201 | 202 | facet normal 0 0 1 203 | outer loop 204 | vertex 1 0 0.025 205 | vertex -0.866025 -0.5 0.025 206 | vertex -0.5 -0.866025 0.025 207 | endloop 208 | endfacet 209 | 210 | facet normal 0 0 1 211 | outer loop 212 | vertex 0.5 0.866025 0.025 213 | vertex 1 0 0.025 214 | vertex 0.866025 0.5 0.025 215 | endloop 216 | endfacet 217 | 218 | facet normal 0 0 1 219 | outer loop 220 | vertex -0.866025 -0.5 0.025 221 | vertex -0.866025 0.5 0.025 222 | vertex -1 1.05471e-15 0.025 223 | endloop 224 | endfacet 225 | 226 | facet normal 0 0 1 227 | outer loop 228 | vertex -0.866025 -0.5 0.025 229 | vertex -0.22 0.175 0.025 230 | vertex -0.866025 0.5 0.025 231 | endloop 232 | endfacet 233 | 234 | facet normal 0 0 1 235 | outer loop 236 | vertex -0.866025 -0.5 0.025 237 | vertex -0.22 -0.175 0.025 238 | vertex -0.22 0.175 0.025 239 | endloop 240 | endfacet 241 | 242 | facet normal 0 0 1 243 | outer loop 244 | vertex -0.866025 -0.5 0.025 245 | vertex -0.02 -0.175 0.025 246 | vertex -0.22 -0.175 0.025 247 | endloop 248 | endfacet 249 | 250 | facet normal 0 1.89127e-17 1 251 | outer loop 252 | vertex 1 0 0.025 253 | vertex -0.02 -0.175 0.025 254 | vertex -0.866025 -0.5 0.025 255 | endloop 256 | endfacet 257 | 258 | facet normal 0 0 1 259 | outer loop 260 | vertex 1 0 0.025 261 | vertex -0.02 0.175 0.025 262 | vertex -0.02 -0.175 0.025 263 | endloop 264 | endfacet 265 | 266 | facet normal 0 0 1 267 | outer loop 268 | vertex -0.02 0.175 0.025 269 | vertex -0.866025 0.5 0.025 270 | vertex -0.22 0.175 0.025 271 | endloop 272 | endfacet 273 | 274 | facet normal 0 0 1 275 | outer loop 276 | vertex -0.02 0.175 0.025 277 | vertex -0.5 0.866025 0.025 278 | vertex -0.866025 0.5 0.025 279 | endloop 280 | endfacet 281 | 282 | facet normal 0 5.29111e-19 1 283 | outer loop 284 | vertex -0.02 0.175 0.025 285 | vertex 4.996e-16 1 0.025 286 | vertex -0.5 0.866025 0.025 287 | endloop 288 | endfacet 289 | 290 | facet normal 0 0 1 291 | outer loop 292 | vertex -0.02 0.175 0.025 293 | vertex 0.5 0.866025 0.025 294 | vertex 4.996e-16 1 0.025 295 | endloop 296 | endfacet 297 | 298 | facet normal 0 0 1 299 | outer loop 300 | vertex 0.5 0.866025 0.025 301 | vertex -0.02 0.175 0.025 302 | vertex 1 0 0.025 303 | endloop 304 | endfacet 305 | 306 | facet normal 0.965926 -0.258819 0 307 | outer loop 308 | vertex 1 0 0.025 309 | vertex 0.866025 -0.5 -0.025 310 | vertex 1 0 -0.025 311 | endloop 312 | endfacet 313 | 314 | facet normal 0.965926 -0.258819 0 315 | outer loop 316 | vertex 0.866025 -0.5 -0.025 317 | vertex 1 0 0.025 318 | vertex 0.866025 -0.5 0.025 319 | endloop 320 | endfacet 321 | 322 | facet normal 0 0 -1 323 | outer loop 324 | vertex 0.866025 -0.5 -0.025 325 | vertex 0.866025 0.5 -0.025 326 | vertex 1 0 -0.025 327 | endloop 328 | endfacet 329 | 330 | facet normal 0 0 -1 331 | outer loop 332 | vertex 0.866025 -0.5 -0.025 333 | vertex 0.5 0.866025 -0.025 334 | vertex 0.866025 0.5 -0.025 335 | endloop 336 | endfacet 337 | 338 | facet normal 0 -5.47253e-18 -1 339 | outer loop 340 | vertex 0.866025 -0.5 -0.025 341 | vertex 4.996e-16 1 -0.025 342 | vertex 0.5 0.866025 -0.025 343 | endloop 344 | endfacet 345 | 346 | facet normal 0 0 -1 347 | outer loop 348 | vertex 0.866025 -0.5 -0.025 349 | vertex -0.5 0.866025 -0.025 350 | vertex 4.996e-16 1 -0.025 351 | endloop 352 | endfacet 353 | 354 | facet normal 0 2.58963e-17 -1 355 | outer loop 356 | vertex -1.72085e-15 -1 -0.025 357 | vertex 0.866025 -0.5 -0.025 358 | vertex 0.5 -0.866025 -0.025 359 | endloop 360 | endfacet 361 | 362 | facet normal 2.58963e-17 0 -1 363 | outer loop 364 | vertex -0.5 0.866025 -0.025 365 | vertex -1 1.05471e-15 -0.025 366 | vertex -0.866025 0.5 -0.025 367 | endloop 368 | endfacet 369 | 370 | facet normal 0 0 -1 371 | outer loop 372 | vertex -0.5 0.866025 -0.025 373 | vertex -0.866025 -0.5 -0.025 374 | vertex -1 1.05471e-15 -0.025 375 | endloop 376 | endfacet 377 | 378 | facet normal 0 0 -1 379 | outer loop 380 | vertex -0.5 0.866025 -0.025 381 | vertex -0.22 -0.175 -0.025 382 | vertex -0.866025 -0.5 -0.025 383 | endloop 384 | endfacet 385 | 386 | facet normal 0 0 -1 387 | outer loop 388 | vertex -0.5 0.866025 -0.025 389 | vertex -0.22 0.175 -0.025 390 | vertex -0.22 -0.175 -0.025 391 | endloop 392 | endfacet 393 | 394 | facet normal 0 0 -1 395 | outer loop 396 | vertex -0.5 0.866025 -0.025 397 | vertex -0.02 0.175 -0.025 398 | vertex -0.22 0.175 -0.025 399 | endloop 400 | endfacet 401 | 402 | facet normal 0 0 -1 403 | outer loop 404 | vertex 0.866025 -0.5 -0.025 405 | vertex -0.02 0.175 -0.025 406 | vertex -0.5 0.866025 -0.025 407 | endloop 408 | endfacet 409 | 410 | facet normal 0 0 -1 411 | outer loop 412 | vertex 0.866025 -0.5 -0.025 413 | vertex -0.02 -0.175 -0.025 414 | vertex -0.02 0.175 -0.025 415 | endloop 416 | endfacet 417 | 418 | facet normal 0 0 -1 419 | outer loop 420 | vertex -0.02 -0.175 -0.025 421 | vertex -0.866025 -0.5 -0.025 422 | vertex -0.22 -0.175 -0.025 423 | endloop 424 | endfacet 425 | 426 | facet normal 0 0 -1 427 | outer loop 428 | vertex -0.02 -0.175 -0.025 429 | vertex -0.5 -0.866025 -0.025 430 | vertex -0.866025 -0.5 -0.025 431 | endloop 432 | endfacet 433 | 434 | facet normal 0 -5.29111e-19 -1 435 | outer loop 436 | vertex -0.02 -0.175 -0.025 437 | vertex -1.72085e-15 -1 -0.025 438 | vertex -0.5 -0.866025 -0.025 439 | endloop 440 | endfacet 441 | 442 | facet normal 0 -2.09516e-18 -1 443 | outer loop 444 | vertex -1.72085e-15 -1 -0.025 445 | vertex -0.02 -0.175 -0.025 446 | vertex 0.866025 -0.5 -0.025 447 | endloop 448 | endfacet 449 | 450 | facet normal 1 0 0 451 | outer loop 452 | vertex -0.22 -0.175 0.025 453 | vertex -0.22 0.175 -0.025 454 | vertex -0.22 0.175 0.025 455 | endloop 456 | endfacet 457 | 458 | facet normal 1 0 0 459 | outer loop 460 | vertex -0.22 0.175 -0.025 461 | vertex -0.22 -0.175 0.025 462 | vertex -0.22 -0.175 -0.025 463 | endloop 464 | endfacet 465 | 466 | facet normal 0 1 0 467 | outer loop 468 | vertex -0.22 -0.175 0.025 469 | vertex -0.02 -0.175 -0.025 470 | vertex -0.22 -0.175 -0.025 471 | endloop 472 | endfacet 473 | 474 | facet normal 0 1 0 475 | outer loop 476 | vertex -0.02 -0.175 -0.025 477 | vertex -0.22 -0.175 0.025 478 | vertex -0.02 -0.175 0.025 479 | endloop 480 | endfacet 481 | 482 | facet normal -1 0 0 483 | outer loop 484 | vertex -0.02 -0.175 0.025 485 | vertex -0.02 0.175 -0.025 486 | vertex -0.02 -0.175 -0.025 487 | endloop 488 | endfacet 489 | 490 | facet normal -1 0 0 491 | outer loop 492 | vertex -0.02 0.175 -0.025 493 | vertex -0.02 -0.175 0.025 494 | vertex -0.02 0.175 0.025 495 | endloop 496 | endfacet 497 | 498 | facet normal 0 -1 0 499 | outer loop 500 | vertex -0.02 0.175 0.025 501 | vertex -0.22 0.175 -0.025 502 | vertex -0.02 0.175 -0.025 503 | endloop 504 | endfacet 505 | 506 | facet normal 0 -1 0 507 | outer loop 508 | vertex -0.22 0.175 -0.025 509 | vertex -0.02 0.175 0.025 510 | vertex -0.22 0.175 0.025 511 | endloop 512 | endfacet 513 | 514 | endsolid AssimpScene 515 | -------------------------------------------------------------------------------- /fetch_teleop/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | fetch_teleop 4 | 0.9.1 5 | 6 | Teleoperation for fetch and freight. 7 | 8 | 9 | Michael Ferguson 10 | Carl Saldanha 11 | Eric Relson 12 | Sarah Elliott 13 | Russell Toris 14 | Fetch Robotics Open Source Team 15 | 16 | BSD 17 | http://ros.org/wiki/fetch_teleop 18 | http://docs.fetchrobotics.com/teleop.html 19 | https://github.com/fetchrobotics/fetch_ros/issues 20 | https://github.com/fetchrobotics/fetch_ros 21 | 22 | catkin 23 | 24 | actionlib 25 | control_msgs 26 | geometry_msgs 27 | nav_msgs 28 | roscpp 29 | sensor_msgs 30 | topic_tools 31 | 32 | 33 | -------------------------------------------------------------------------------- /fetch_teleop/scripts/gripper_keyboard.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | # Copyright (c) 2015-2022, Fetch Robotics Inc. 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 Fetch Robotics Inc. 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 FETCH ROBOTICS INC. BE LIABLE FOR ANY 22 | # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 24 | # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 25 | # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | 29 | # Author: Kentaro Wada 30 | 31 | import select 32 | import sys 33 | import termios 34 | from threading import Lock 35 | import tty 36 | 37 | import actionlib 38 | from control_msgs.msg import GripperCommandAction 39 | from control_msgs.msg import GripperCommandGoal 40 | import rospy 41 | from sensor_msgs.msg import JointState 42 | 43 | 44 | def getch(): 45 | tty.setraw(sys.stdin.fileno()) 46 | select.select([sys.stdin], [], [], 0) 47 | key = sys.stdin.read(1) 48 | termios.tcsetattr(sys.stdin, termios.TCSADRAIN, settings) 49 | return key 50 | 51 | 52 | class GripperKeyboard(object): 53 | 54 | OPEN_POSITION = 0.095 # meters; 0.1 is maximum; constrained to avoid hitting bumpers, to reduce wear 55 | CLOSED_POSITION = 0 56 | MAX_EFFORT = 122.0 # Internal drivers code limit 57 | MIN_EFFORT = 40.0 # Observed practical minimum is ~40 58 | 59 | def __init__(self): 60 | self._lock = Lock() 61 | 62 | self.max_effort = 100.0 63 | self.position = None 64 | self._sub_pos = rospy.Subscriber('joint_states', JointState, 65 | self._set_state) 66 | 67 | self.action_name = 'gripper_controller/gripper_action' 68 | self.client = actionlib.SimpleActionClient(self.action_name, 69 | GripperCommandAction) 70 | rospy.loginfo('Waiting for gripper_controller...') 71 | self.client.wait_for_server() 72 | rospy.loginfo('...connected.') 73 | 74 | def _set_state(self, joint_state): 75 | l_gripper_finger_pos = None 76 | r_gripper_finger_pos = None 77 | for joint, pos in zip(joint_state.name, joint_state.position): 78 | if joint == 'l_gripper_finger_joint': 79 | l_gripper_finger_pos = pos 80 | if joint == 'r_gripper_finger_joint': 81 | r_gripper_finger_pos = pos 82 | if l_gripper_finger_pos is not None and r_gripper_finger_pos is not None: 83 | with self._lock: 84 | self.position = l_gripper_finger_pos + r_gripper_finger_pos 85 | 86 | def set_position(self, position): 87 | goal = GripperCommandGoal() 88 | goal.command.max_effort = self.max_effort 89 | goal.command.position = position 90 | # Fill in the goal here 91 | self.client.send_goal(goal) 92 | self.client.wait_for_result(rospy.Duration.from_sec(5.0)) 93 | res = self.client.get_result() 94 | with self._lock: 95 | self.position = res.position 96 | 97 | def open(self): 98 | self.set_position(self.OPEN_POSITION) 99 | 100 | def close(self): 101 | self.set_position(self.CLOSED_POSITION) 102 | 103 | 104 | if __name__ == '__main__': 105 | settings = termios.tcgetattr(sys.stdin) 106 | 107 | rospy.init_node('gripper_keyboard') 108 | 109 | gripper_keyboard = GripperKeyboard() 110 | 111 | gripper_bindings = { 112 | 'o': 'Open gripper', 113 | 'c': 'Close gripper', 114 | 'E': 'Increase max_effort', 115 | 'e': 'Decrease max_effort', 116 | 's': 'Show status', 117 | '?': 'Show help', 118 | } 119 | usage = 'Usage: ' 120 | usage += ''.join('\n {}: {}'.format(k, v) 121 | for k, v in gripper_bindings.items()) 122 | usage += '\n Ctrl-C to quit' 123 | 124 | try: 125 | print(usage) 126 | while True: 127 | c = getch() 128 | if c.lower() in gripper_bindings: 129 | if c.lower() == 'o': 130 | gripper_keyboard.open() 131 | rospy.loginfo('Opened gripper') 132 | elif c.lower() == 'c': 133 | gripper_keyboard.close() 134 | rospy.loginfo('Closed gripper') 135 | elif c.lower() == 's': 136 | rospy.loginfo('''State: 137 | position: {} 138 | max_effort: {}'''.format(gripper_keyboard.position, 139 | gripper_keyboard.max_effort)) 140 | elif c == 'e': 141 | if gripper_keyboard.max_effort > gripper_keyboard.MIN_EFFORT: 142 | gripper_keyboard.max_effort -= 1 143 | rospy.loginfo('Decrease max_effort to: {}' 144 | .format(gripper_keyboard.max_effort)) 145 | else: 146 | rospy.loginfo('max_effort already at minimum') 147 | elif c == 'E': 148 | if gripper_keyboard.max_effort < gripper_keyboard.MAX_EFFORT: 149 | gripper_keyboard.max_effort += 1 150 | rospy.loginfo('Increase max_effort to: {}' 151 | .format(gripper_keyboard.max_effort)) 152 | else: 153 | rospy.loginfo('max_effort already at maximum') 154 | elif c == '?': 155 | print(usage) 156 | else: 157 | if c == '\x03': 158 | break 159 | finally: 160 | termios.tcsetattr(sys.stdin, termios.TCSADRAIN, settings) 161 | -------------------------------------------------------------------------------- /fetch_teleop/scripts/tuck_arm.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | # Copyright (c) 2015-2020, Fetch Robotics Inc. 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 Fetch Robotics Inc. 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 FETCH ROBOTICS INC. BE LIABLE FOR ANY 22 | # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 24 | # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 25 | # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | 29 | # Author: Michael Ferguson, Eric Relson 30 | 31 | import argparse 32 | import os 33 | import subprocess 34 | import sys 35 | from threading import Thread 36 | 37 | import rospkg 38 | import rospy 39 | from sensor_msgs.msg import Joy 40 | from geometry_msgs.msg import Pose 41 | from moveit_python import MoveGroupInterface, PlanningSceneInterface 42 | from moveit_msgs.msg import MoveItErrorCodes, PlanningScene 43 | 44 | 45 | class MoveItThread(Thread): 46 | 47 | def __init__(self): 48 | Thread.__init__(self) 49 | self.start() 50 | 51 | def run(self): 52 | self.process = subprocess.Popen(["roslaunch", "fetch_moveit_config", "move_group.launch", "--wait"]) 53 | _, _ = self.process.communicate() 54 | 55 | def stop(self): 56 | self.process.send_signal(subprocess.signal.SIGINT) 57 | self.process.wait() 58 | 59 | def is_moveit_running(): 60 | try: 61 | output = subprocess.check_output(["rosnode", "info", "move_group"], stderr=subprocess.STDOUT) 62 | except subprocess.CalledProcessError: 63 | return False 64 | if isinstance(output, bytes): 65 | output = output.decode('utf-8') 66 | if "unknown node" in output: 67 | return False 68 | if "Communication with node" in output: 69 | return False 70 | return True 71 | 72 | class TuckThread(Thread): 73 | 74 | def __init__(self): 75 | Thread.__init__(self) 76 | self.client = None 77 | self.start() 78 | 79 | def run(self): 80 | move_thread = None 81 | if not is_moveit_running(): 82 | rospy.loginfo("Starting MoveIt...") 83 | move_thread = MoveItThread() 84 | else: 85 | rospy.loginfo("MoveIt already started...") 86 | 87 | rospy.loginfo("Waiting for MoveIt...") 88 | self.client = MoveGroupInterface("arm_with_torso", "base_link") 89 | rospy.loginfo("...connected") 90 | 91 | # Padding does not work (especially for self collisions) 92 | # So we are adding a box above the base of the robot 93 | scene = PlanningSceneInterface("base_link") 94 | keepout_pose = Pose() 95 | keepout_pose.position.z = 0.375 96 | keepout_pose.orientation.w = 1.0 97 | ground_pose = Pose() 98 | ground_pose.position.z = -0.03 99 | ground_pose.orientation.w = 1.0 100 | rospack = rospkg.RosPack() 101 | mesh_dir = os.path.join(rospack.get_path('fetch_teleop'), 'mesh') 102 | scene.addMesh( 103 | 'keepout', keepout_pose, os.path.join(mesh_dir, 'keepout.stl')) 104 | scene.addMesh( 105 | 'ground', ground_pose, os.path.join(mesh_dir, 'ground.stl')) 106 | 107 | joints = ["torso_lift_joint", "shoulder_pan_joint", "shoulder_lift_joint", "upperarm_roll_joint", 108 | "elbow_flex_joint", "forearm_roll_joint", "wrist_flex_joint", "wrist_roll_joint"] 109 | pose = [0.05, 1.32, 1.40, -0.2, 1.72, 0.0, 1.66, 0.0] 110 | while not rospy.is_shutdown(): 111 | result = self.client.moveToJointPosition(joints, 112 | pose, 113 | 0.0, 114 | max_velocity_scaling_factor=0.5) 115 | if result and result.error_code.val == MoveItErrorCodes.SUCCESS: 116 | scene.removeCollisionObject("keepout") 117 | scene.removeCollisionObject("ground") 118 | if move_thread: 119 | move_thread.stop() 120 | 121 | # On success quit 122 | # Stopping the MoveIt thread works, however, the action client 123 | # does not get shut down, and future tucks will not work. 124 | # As a work-around, we die and roslaunch will respawn us. 125 | rospy.signal_shutdown("done") 126 | sys.exit(0) 127 | return 128 | 129 | def stop(self): 130 | if self.client: 131 | self.client.get_move_action().cancel_goal() 132 | # Stopping the MoveIt thread works, however, the action client 133 | # does not get shut down, and future tucks will not work. 134 | # As a work-around, we die and roslaunch will respawn us. 135 | rospy.signal_shutdown("failed") 136 | sys.exit(0) 137 | 138 | class TuckArmTeleop: 139 | 140 | def __init__(self): 141 | self.tuck_button = rospy.get_param("~tuck_button", 6) # default button is the down button 142 | self.deadman = rospy.get_param("~deadman_button", 10) 143 | self.tucking = False 144 | 145 | self.pressed = False 146 | self.pressed_last = None 147 | 148 | self.joy_sub = rospy.Subscriber("joy", Joy, self.joy_callback) 149 | 150 | def joy_callback(self, msg): 151 | if self.tucking: 152 | # Only run once 153 | if msg.buttons[self.deadman] <= 0: 154 | # Deadman has been released, don't tuck 155 | rospy.loginfo("Stopping tuck thread") 156 | self.tuck_thread.stop() 157 | return 158 | try: 159 | if msg.buttons[self.tuck_button] > 0 and msg.buttons[self.deadman] > 0: 160 | if not self.pressed: 161 | self.pressed_last = rospy.Time.now() 162 | self.pressed = True 163 | elif self.pressed_last and rospy.Time.now() > self.pressed_last + rospy.Duration(1.0): 164 | # Tuck the arm 165 | self.tucking = True 166 | rospy.loginfo("Starting tuck thread") 167 | self.tuck_thread = TuckThread() 168 | else: 169 | self.pressed = False 170 | except KeyError: 171 | rospy.logwarn("tuck_button is out of range") 172 | 173 | if __name__ == "__main__": 174 | parser = argparse.ArgumentParser(description="Tuck the arm, either immediately or as a joystck-controlled server.") 175 | parser.add_argument("--joystick", action="store_true", help="Run as server that tucks on command from joystick.") 176 | args, unknown = parser.parse_known_args() 177 | 178 | rospy.init_node("tuck_arm") 179 | rospy.loginfo("New tuck script running") 180 | 181 | if args.joystick: 182 | t = TuckArmTeleop() 183 | rospy.spin() 184 | else: 185 | rospy.loginfo("Tucking the arm") 186 | TuckThread() 187 | --------------------------------------------------------------------------------