├── .gitignore ├── LICENSE ├── README.md ├── tiago_bringup ├── CHANGELOG.rst ├── CMakeLists.txt ├── config │ ├── joy_teleop │ │ ├── joy_config.yaml │ │ ├── joy_teleop_omni_base.yaml │ │ └── joy_teleop_pmb2.yaml │ ├── motion_planner │ │ ├── motion_planner.yaml.em │ │ ├── motion_planner_custom.yaml │ │ ├── motion_planner_no-arm.yaml │ │ ├── motion_planner_no-ee.yaml │ │ ├── motion_planner_pal-gripper.yaml │ │ ├── motion_planner_pal-hey5.yaml │ │ ├── motion_planner_robotiq-2f-140.yaml │ │ ├── motion_planner_robotiq-2f-85.yaml │ │ └── motion_planner_robotiq-epick.yaml │ ├── motions │ │ ├── tiago_motions.yaml.em │ │ ├── tiago_motions_custom.yaml │ │ ├── tiago_motions_general.yaml │ │ ├── tiago_motions_head.yaml │ │ ├── tiago_motions_no-arm.yaml │ │ ├── tiago_motions_pal-gripper.yaml │ │ ├── tiago_motions_pal-hey5.yaml │ │ ├── tiago_motions_robotiq-2f-140.yaml │ │ ├── tiago_motions_robotiq-2f-85.yaml │ │ └── tiago_motions_robotiq-epick.yaml │ └── twist_mux │ │ ├── joystick_omni_base.yaml │ │ ├── joystick_pmb2.yaml │ │ ├── twist_mux_locks.yaml │ │ └── twist_mux_topics.yaml ├── launch │ ├── joystick_teleop.launch.py │ ├── tiago_bringup.launch.py │ ├── tiago_play_motion2.launch.py │ └── twist_mux.launch.py ├── module │ ├── joystick.yaml │ ├── play_motion2.yaml │ └── twist_mux.yaml ├── package.xml └── scripts │ └── regen_em_file.py ├── tiago_controller_configuration ├── CHANGELOG.rst ├── CMakeLists.txt ├── config │ ├── arm_controller.yaml │ ├── ft_sensor_controller.yaml │ ├── gravity_compensation_controller_ilm.yaml │ ├── gravity_compensation_controller_parker.yaml │ ├── head_controller.yaml │ ├── joint_state_broadcaster.yaml │ └── torso_controller.yaml ├── launch │ ├── default_controllers.launch.py │ └── gravity_compensation_controller.launch.py ├── module │ └── 10_default_controllers.yaml └── package.xml ├── tiago_description ├── .gitignore ├── CHANGELOG.rst ├── CMakeLists.txt ├── config │ ├── tiago.rviz │ ├── tiago_configuration.yaml │ └── urdf.rviz ├── launch │ ├── robot_state_publisher.launch.py │ └── show.launch.py ├── meshes │ ├── arm │ │ ├── arm_1.stl │ │ ├── arm_1_collision.dae │ │ ├── arm_1_color.png │ │ ├── arm_1_normals.png │ │ ├── arm_1_specular.png │ │ ├── arm_2.stl │ │ ├── arm_2_collision.dae │ │ ├── arm_2_color.png │ │ ├── arm_2_normals.png │ │ ├── arm_2_specular.png │ │ ├── arm_3.stl │ │ ├── arm_3_collision.dae │ │ ├── arm_3_color.png │ │ ├── arm_3_normals.png │ │ ├── arm_3_specular.png │ │ ├── arm_4.stl │ │ ├── arm_4_collision.dae │ │ ├── arm_4_collision.stl │ │ ├── arm_4_color.png │ │ ├── arm_4_normals.png │ │ ├── arm_4_specular.png │ │ ├── arm_5-wrist-2010.stl │ │ ├── arm_5-wrist-2017.stl │ │ ├── arm_5_collision-wrist-2010.dae │ │ ├── arm_5_collision-wrist-2017.dae │ │ ├── arm_6-wrist-2010.stl │ │ ├── arm_6-wrist-2017.stl │ │ ├── arm_6_collision-wrist-2010.dae │ │ ├── arm_6_collision-wrist-2017.dae │ │ ├── arm_6_color.png │ │ ├── arm_6_normals.png │ │ └── arm_6_specular.png │ ├── head │ │ ├── head_1.stl │ │ ├── head_1_collision.dae │ │ ├── head_2.stl │ │ └── head_2_collision.dae │ └── torso │ │ ├── torso_fix.stl │ │ ├── torso_lift_collision.dae │ │ ├── torso_lift_collision_core.dae │ │ ├── torso_lift_collision_neck.dae │ │ ├── torso_lift_collision_shoulder.dae │ │ ├── torso_lift_with_arm.stl │ │ └── torso_lift_without_arm.stl ├── module │ └── 10_robot_state_publisher.yaml ├── package.xml ├── robots │ └── tiago.urdf.xacro ├── ros2_control │ ├── gazebo_controller_manager_cfg.yaml │ ├── ros2_control.urdf.xacro │ └── transmissions.urdf.xacro ├── test │ ├── test_description.launch.py │ └── test_xacro.py ├── tiago_description │ ├── __init__.py │ ├── launch_arguments.py │ └── tiago_launch_utils.py └── urdf │ ├── arm │ ├── arm.ros2_control.xacro │ ├── arm.urdf.xacro │ ├── wrist.ros2_control.xacro │ └── wrist.urdf.xacro │ ├── calibration │ ├── camera_extrinsic_calibration.urdf.xacro │ ├── camera_extrinsic_calibration.urdf.xacro.j2 │ ├── eye_hand_calibration.urdf.xacro │ └── eye_hand_calibration.urdf.xacro.j2 │ ├── end_effector │ └── end_effector.urdf.xacro │ ├── head │ ├── head.ros2_control.xacro │ └── head.urdf.xacro │ └── torso │ ├── torso.ros2_control.xacro │ └── torso.urdf.xacro └── tiago_robot ├── CHANGELOG.rst ├── CMakeLists.txt └── package.xml /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # TIAGo robot 2 | 3 | This package contains the description, controllers and bringup for all possible TIAGo configurations (end effectors, force torque sensors..). 4 | 5 | To make maintenance easier, the `tiago.urdf.xacro` takes arguments that specify whether the robot has an arm or not, the end effector type, force torque sensor, laser model and many other parameters. 6 | 7 | The other configuration files that differ between robot configurations are generated from template files. 8 | 9 | The templates are written using [empy](https://pypi.org/project/empy/) and have the extension `.em`. 10 | 11 | To regenerate a group of files, you must execute `ros2 run tiago_bringup regen_em_file.py EM_FILE_NAME` from the directory where the `.em` file is. 12 | -------------------------------------------------------------------------------- /tiago_bringup/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.8) 2 | project(tiago_bringup) 3 | 4 | find_package(ament_cmake_auto REQUIRED) 5 | ament_auto_find_build_dependencies() 6 | 7 | if(pal_module_cmake_FOUND) 8 | pal_register_modules( 9 | module/joystick.yaml 10 | module/play_motion2.yaml 11 | module/twist_mux.yaml 12 | ) 13 | elseif(DEFINED ENV{PAL_DISTRO}) 14 | message(FATAL_ERROR "The pal_module_cmake package was not found. Modules not registered.") 15 | endif() 16 | 17 | if(BUILD_TESTING) 18 | find_package(ament_lint_auto REQUIRED) 19 | ament_lint_auto_find_test_dependencies() 20 | endif() 21 | 22 | install( 23 | PROGRAMS scripts/regen_em_file.py 24 | DESTINATION lib/${PROJECT_NAME} 25 | ) 26 | 27 | ament_auto_package(INSTALL_TO_SHARE config launch) 28 | -------------------------------------------------------------------------------- /tiago_bringup/config/joy_teleop/joy_config.yaml: -------------------------------------------------------------------------------- 1 | /joystick: 2 | ros__parameters: 3 | device_id: 0 4 | device_name: "" 5 | dev: "/dev/joystick" 6 | deadzone: 0.5 7 | autorepeat_rate: 20.0 8 | sticky_buttons: false 9 | coalesce_interval_ms: 1 -------------------------------------------------------------------------------- /tiago_bringup/config/joy_teleop/joy_teleop_omni_base.yaml: -------------------------------------------------------------------------------- 1 | #Autogenerated file, don't edit this, edit joy_teleop.yaml.em instead 2 | /joy_teleop: 3 | ros__parameters: 4 | move: 5 | type: topic 6 | interface_type: geometry_msgs/msg/Twist 7 | topic_name: cmd_vel 8 | deadman_buttons: [5] 9 | axis_mappings: 10 | linear-x: 11 | axis: 1 12 | scale: 1.0 13 | offset: 0.0 14 | linear-y: 15 | axis: 0 16 | scale: 1.0 17 | offset: 0.0 18 | angular-z: 19 | axis: 2 20 | scale: 1.0 21 | offset: 0.0 22 | 23 | joy_priority: 24 | type: action 25 | interface_type: twist_mux_msgs/action/JoyPriority 26 | action_name: joy_priority_action 27 | buttons: [9] 28 | 29 | assisted_teleop_priority: 30 | type: action 31 | interface_type: twist_mux_msgs/action/JoyPriority 32 | action_name: assisted_teleop_priority_action 33 | buttons: [5,8] 34 | 35 | joy_turbo_decrease: 36 | type: action 37 | interface_type: twist_mux_msgs/action/JoyTurbo 38 | action_name: joy_turbo_decrease 39 | buttons: [8, 1] 40 | 41 | joy_turbo_increase: 42 | type: action 43 | interface_type: twist_mux_msgs/action/JoyTurbo 44 | action_name: joy_turbo_increase 45 | buttons: [8, 3] 46 | 47 | joy_turbo_angular_decrease: 48 | type: action 49 | interface_type: twist_mux_msgs/action/JoyTurbo 50 | action_name: joy_turbo_angular_decrease 51 | buttons: [8, 2] 52 | 53 | joy_turbo_angular_increase: 54 | type: action 55 | interface_type: twist_mux_msgs/action/JoyTurbo 56 | action_name: joy_turbo_angular_increase 57 | buttons: [8, 0] 58 | 59 | joy_turbo_reset: 60 | type: action 61 | interface_type: twist_mux_msgs/action/JoyTurbo 62 | action_name: joy_turbo_reset 63 | buttons: [10, 11] 64 | 65 | torso_up: 66 | type: action 67 | interface_type: teleop_tools_msgs/action/Increment 68 | action_name: /torso_controller/increment 69 | action_goal: 70 | increment_by: [0.05] 71 | buttons: [4] # right pad, top button 72 | 73 | torso_down: 74 | type: action 75 | interface_type: teleop_tools_msgs/action/Increment 76 | action_name: /torso_controller/increment 77 | action_goal: 78 | increment_by: [-0.05] 79 | buttons: [6] # right pad, bottom button 80 | 81 | head_down: 82 | type: action 83 | interface_type: teleop_tools_msgs/action/Increment 84 | action_name: /head_controller/increment 85 | action_goal: 86 | increment_by: [-0.1, 0.0] 87 | buttons: [2] # right pad, bottom button 88 | 89 | head_up: 90 | type: action 91 | interface_type: teleop_tools_msgs/action/Increment 92 | action_name: /head_controller/increment 93 | action_goal: 94 | increment_by: [0.1, 0.0] 95 | buttons: [0] # right pad, top button 96 | 97 | head_left: 98 | type: action 99 | interface_type: teleop_tools_msgs/action/Increment 100 | action_name: /head_controller/increment 101 | action_goal: 102 | increment_by: [0.0, 0.1] 103 | buttons: [3] # right pad, left button 104 | 105 | head_right: 106 | type: action 107 | interface_type: teleop_tools_msgs/action/Increment 108 | action_name: /head_controller/increment 109 | action_goal: 110 | increment_by: [0.0, -0.1] 111 | buttons: [1] # right pad, right button 112 | 113 | 114 | -------------------------------------------------------------------------------- /tiago_bringup/config/joy_teleop/joy_teleop_pmb2.yaml: -------------------------------------------------------------------------------- 1 | #Autogenerated file, don't edit this, edit joy_teleop.yaml.em instead 2 | /joy_teleop: 3 | ros__parameters: 4 | move: 5 | type: topic 6 | interface_type: geometry_msgs/msg/Twist 7 | topic_name: cmd_vel 8 | deadman_buttons: [5] 9 | axis_mappings: 10 | linear-x: 11 | axis: 1 12 | scale: 1.0 13 | offset: 0.0 14 | angular-z: 15 | axis: 2 16 | scale: 1.0 17 | offset: 0.0 18 | 19 | joy_priority: 20 | type: action 21 | interface_type: twist_mux_msgs/action/JoyPriority 22 | action_name: joy_priority_action 23 | buttons: [9] 24 | 25 | assisted_teleop_priority: 26 | type: action 27 | interface_type: twist_mux_msgs/action/JoyPriority 28 | action_name: assisted_teleop_priority_action 29 | buttons: [5,8] 30 | 31 | joy_turbo_decrease: 32 | type: action 33 | interface_type: twist_mux_msgs/action/JoyTurbo 34 | action_name: joy_turbo_decrease 35 | buttons: [8, 1] 36 | 37 | joy_turbo_increase: 38 | type: action 39 | interface_type: twist_mux_msgs/action/JoyTurbo 40 | action_name: joy_turbo_increase 41 | buttons: [8, 3] 42 | 43 | joy_turbo_angular_decrease: 44 | type: action 45 | interface_type: twist_mux_msgs/action/JoyTurbo 46 | action_name: joy_turbo_angular_decrease 47 | buttons: [8, 2] 48 | 49 | joy_turbo_angular_increase: 50 | type: action 51 | interface_type: twist_mux_msgs/action/JoyTurbo 52 | action_name: joy_turbo_angular_increase 53 | buttons: [8, 0] 54 | 55 | joy_turbo_reset: 56 | type: action 57 | interface_type: twist_mux_msgs/action/JoyTurbo 58 | action_name: joy_turbo_reset 59 | buttons: [10, 11] 60 | 61 | torso_up: 62 | type: action 63 | interface_type: teleop_tools_msgs/action/Increment 64 | action_name: /torso_controller/increment 65 | action_goal: 66 | increment_by: [0.05] 67 | buttons: [4] # right pad, top button 68 | 69 | torso_down: 70 | type: action 71 | interface_type: teleop_tools_msgs/action/Increment 72 | action_name: /torso_controller/increment 73 | action_goal: 74 | increment_by: [-0.05] 75 | buttons: [6] # right pad, bottom button 76 | 77 | head_down: 78 | type: action 79 | interface_type: teleop_tools_msgs/action/Increment 80 | action_name: /head_controller/increment 81 | action_goal: 82 | increment_by: [-0.1, 0.0] 83 | buttons: [2] # right pad, bottom button 84 | 85 | head_up: 86 | type: action 87 | interface_type: teleop_tools_msgs/action/Increment 88 | action_name: /head_controller/increment 89 | action_goal: 90 | increment_by: [0.1, 0.0] 91 | buttons: [0] # right pad, top button 92 | 93 | head_left: 94 | type: action 95 | interface_type: teleop_tools_msgs/action/Increment 96 | action_name: /head_controller/increment 97 | action_goal: 98 | increment_by: [0.0, 0.1] 99 | buttons: [3] # right pad, left button 100 | 101 | head_right: 102 | type: action 103 | interface_type: teleop_tools_msgs/action/Increment 104 | action_name: /head_controller/increment 105 | action_goal: 106 | increment_by: [0.0, -0.1] 107 | buttons: [1] # right pad, right button 108 | 109 | 110 | -------------------------------------------------------------------------------- /tiago_bringup/config/motion_planner/motion_planner.yaml.em: -------------------------------------------------------------------------------- 1 | /play_motion2: 2 | ros__parameters: 3 | motion_planner: 4 | disable_motion_planning: false 5 | planning_groups: # Sorted by order of preference 6 | @[if has_arm]@ 7 | - arm_torso 8 | @[else]@ 9 | - torso 10 | @[end if]@ 11 | exclude_from_planning_joints: 12 | - head_1_joint 13 | - head_2_joint 14 | @[if end_effector == "pal-hey5"]@ 15 | - hand_thumb_joint 16 | - hand_mrl_joint 17 | - hand_index_joint 18 | @[end if]@ 19 | @[if end_effector == "pal-gripper"]@ 20 | - gripper_left_finger_joint 21 | - gripper_right_finger_joint 22 | @[end if]@ 23 | @[if end_effector in ["robotiq-2f-85", "robotiq-2f-140"]]@ 24 | - gripper_finger_joint 25 | @[end if]@ 26 | joint_tolerance: 0.01 27 | 28 | # Parameters for non-planned approach 29 | approach_velocity: 0.5 30 | approach_min_duration: 0.5 31 | -------------------------------------------------------------------------------- /tiago_bringup/config/motion_planner/motion_planner_custom.yaml: -------------------------------------------------------------------------------- 1 | #Autogenerated file, don't edit this, edit motion_planner.yaml.em instead 2 | /play_motion2: 3 | ros__parameters: 4 | motion_planner: 5 | disable_motion_planning: false 6 | planning_groups: # Sorted by order of preference 7 | - arm_torso 8 | exclude_from_planning_joints: 9 | - head_1_joint 10 | - head_2_joint 11 | joint_tolerance: 0.01 12 | 13 | # Parameters for non-planned approach 14 | approach_velocity: 0.5 15 | approach_min_duration: 0.5 16 | -------------------------------------------------------------------------------- /tiago_bringup/config/motion_planner/motion_planner_no-arm.yaml: -------------------------------------------------------------------------------- 1 | #Autogenerated file, don't edit this, edit motion_planner.yaml.em instead 2 | /play_motion2: 3 | ros__parameters: 4 | motion_planner: 5 | disable_motion_planning: false 6 | planning_groups: # Sorted by order of preference 7 | - torso 8 | exclude_from_planning_joints: 9 | - head_1_joint 10 | - head_2_joint 11 | joint_tolerance: 0.01 12 | 13 | # Parameters for non-planned approach 14 | approach_velocity: 0.5 15 | approach_min_duration: 0.5 16 | -------------------------------------------------------------------------------- /tiago_bringup/config/motion_planner/motion_planner_no-ee.yaml: -------------------------------------------------------------------------------- 1 | #Autogenerated file, don't edit this, edit motion_planner.yaml.em instead 2 | /play_motion2: 3 | ros__parameters: 4 | motion_planner: 5 | disable_motion_planning: false 6 | planning_groups: # Sorted by order of preference 7 | - arm_torso 8 | exclude_from_planning_joints: 9 | - head_1_joint 10 | - head_2_joint 11 | joint_tolerance: 0.01 12 | 13 | # Parameters for non-planned approach 14 | approach_velocity: 0.5 15 | approach_min_duration: 0.5 16 | -------------------------------------------------------------------------------- /tiago_bringup/config/motion_planner/motion_planner_pal-gripper.yaml: -------------------------------------------------------------------------------- 1 | #Autogenerated file, don't edit this, edit motion_planner.yaml.em instead 2 | /play_motion2: 3 | ros__parameters: 4 | motion_planner: 5 | disable_motion_planning: false 6 | planning_groups: # Sorted by order of preference 7 | - arm_torso 8 | exclude_from_planning_joints: 9 | - head_1_joint 10 | - head_2_joint 11 | - gripper_left_finger_joint 12 | - gripper_right_finger_joint 13 | joint_tolerance: 0.01 14 | 15 | # Parameters for non-planned approach 16 | approach_velocity: 0.5 17 | approach_min_duration: 0.5 18 | -------------------------------------------------------------------------------- /tiago_bringup/config/motion_planner/motion_planner_pal-hey5.yaml: -------------------------------------------------------------------------------- 1 | #Autogenerated file, don't edit this, edit motion_planner.yaml.em instead 2 | /play_motion2: 3 | ros__parameters: 4 | motion_planner: 5 | disable_motion_planning: false 6 | planning_groups: # Sorted by order of preference 7 | - arm_torso 8 | exclude_from_planning_joints: 9 | - head_1_joint 10 | - head_2_joint 11 | - hand_thumb_joint 12 | - hand_mrl_joint 13 | - hand_index_joint 14 | joint_tolerance: 0.01 15 | 16 | # Parameters for non-planned approach 17 | approach_velocity: 0.5 18 | approach_min_duration: 0.5 19 | -------------------------------------------------------------------------------- /tiago_bringup/config/motion_planner/motion_planner_robotiq-2f-140.yaml: -------------------------------------------------------------------------------- 1 | #Autogenerated file, don't edit this, edit motion_planner.yaml.em instead 2 | /play_motion2: 3 | ros__parameters: 4 | motion_planner: 5 | disable_motion_planning: false 6 | planning_groups: # Sorted by order of preference 7 | - arm_torso 8 | exclude_from_planning_joints: 9 | - head_1_joint 10 | - head_2_joint 11 | - gripper_finger_joint 12 | joint_tolerance: 0.01 13 | 14 | # Parameters for non-planned approach 15 | approach_velocity: 0.5 16 | approach_min_duration: 0.5 17 | -------------------------------------------------------------------------------- /tiago_bringup/config/motion_planner/motion_planner_robotiq-2f-85.yaml: -------------------------------------------------------------------------------- 1 | #Autogenerated file, don't edit this, edit motion_planner.yaml.em instead 2 | /play_motion2: 3 | ros__parameters: 4 | motion_planner: 5 | disable_motion_planning: false 6 | planning_groups: # Sorted by order of preference 7 | - arm_torso 8 | exclude_from_planning_joints: 9 | - head_1_joint 10 | - head_2_joint 11 | - gripper_finger_joint 12 | joint_tolerance: 0.01 13 | 14 | # Parameters for non-planned approach 15 | approach_velocity: 0.5 16 | approach_min_duration: 0.5 17 | -------------------------------------------------------------------------------- /tiago_bringup/config/motion_planner/motion_planner_robotiq-epick.yaml: -------------------------------------------------------------------------------- 1 | #Autogenerated file, don't edit this, edit motion_planner.yaml.em instead 2 | /play_motion2: 3 | ros__parameters: 4 | motion_planner: 5 | disable_motion_planning: false 6 | planning_groups: # Sorted by order of preference 7 | - arm_torso 8 | exclude_from_planning_joints: 9 | - head_1_joint 10 | - head_2_joint 11 | joint_tolerance: 0.01 12 | 13 | # Parameters for non-planned approach 14 | approach_velocity: 0.5 15 | approach_min_duration: 0.5 16 | -------------------------------------------------------------------------------- /tiago_bringup/config/motions/tiago_motions.yaml.em: -------------------------------------------------------------------------------- 1 | /play_motion2: 2 | ros__parameters: 3 | @[if end_effector == "pal-hey5"]@ 4 | controllers: [arm_controller, head_controller, torso_controller, hand_controller] 5 | @[end if]@ 6 | @[if end_effector in ["pal-gripper", "robotiq-2f-85", "robotiq-2f-140"]]@ 7 | controllers: [arm_controller, head_controller, torso_controller, gripper_controller] 8 | @[end if]@ 9 | @[if end_effector == "custom"]@ 10 | controllers: [arm_controller, head_controller, torso_controller] 11 | @[end if]@ 12 | @[if not has_arm]@ 13 | controllers: [head_controller, torso_controller] 14 | @[end if] 15 | motions: 16 | @[if has_arm]@ 17 | @[if end_effector == "pal-gripper"]@ 18 | close: 19 | joints: [gripper_left_finger_joint, gripper_right_finger_joint] 20 | positions: [0.0, 0.0] 21 | times_from_start: [0.5] 22 | meta: 23 | name: Close Gripper 24 | usage: demo 25 | description: 'Close Gripper' 26 | 27 | close_half: 28 | joints: [gripper_left_finger_joint, gripper_right_finger_joint] 29 | positions: [0.024, 0.024] 30 | times_from_start: [0.5] 31 | meta: 32 | name: Close Gripper Half 33 | usage: demo 34 | description: 'Close Gripper Halfway' 35 | 36 | open: 37 | joints: [gripper_left_finger_joint, gripper_right_finger_joint] 38 | positions: [0.044, 0.044] 39 | times_from_start: [0.5] 40 | meta: 41 | name: Open Gripper 42 | usage: demo 43 | description: 'Open Gripper' 44 | 45 | point: 46 | joints: [gripper_left_finger_joint, gripper_right_finger_joint] 47 | positions: [0.0, 0.0] 48 | times_from_start: [0.5] 49 | meta: 50 | name: Point Gripper Pose 51 | usage: demo 52 | description: 'Close Gripper to point to something' 53 | @[end if]@ 54 | @[if end_effector == "pal-hey5"]@ 55 | open: 56 | joints: [hand_thumb_joint, hand_index_joint, hand_mrl_joint] 57 | positions: [-1.0, -1.0, -1.0, 58 | 0.0, 0.0, 0.0] 59 | times_from_start: [0.1, 2.5] 60 | meta: 61 | name: Open Hand 62 | usage: demo 63 | description: 'Opens hand' 64 | 65 | close: 66 | joints: [hand_thumb_joint, hand_index_joint, hand_mrl_joint] 67 | positions: [2.37, 0.0, 0.0, 68 | 6.2, 6.8, 9.2] 69 | times_from_start: [0.1, 2.5] 70 | meta: 71 | name: Close Hand 72 | usage: demo 73 | description: 'Closes hand' 74 | 75 | close_half: 76 | joints: [hand_thumb_joint, hand_index_joint, hand_mrl_joint] 77 | positions: [3.2, 3.8, 4.6] 78 | times_from_start: [2.5] 79 | meta: 80 | name: Close Hand Half 81 | usage: demo 82 | description: 'Closes hand halfway' 83 | 84 | point: 85 | joints: [hand_thumb_joint, hand_index_joint, hand_mrl_joint] 86 | positions: [2.37, -1.0, 0.0, 87 | 6.2, 0.0, 9.2] 88 | times_from_start: [0.1, 1.5] 89 | meta: 90 | name: Pointing Hand 91 | usage: demo 92 | description: 'Pointing Hand' 93 | 94 | thumb_up_hand: 95 | joints: [hand_thumb_joint, hand_index_joint, hand_mrl_joint] 96 | positions: [-1.0, 0.0, 0.0, 97 | 0.0, 6.8, 9.2] 98 | times_from_start: [0.1, 1.5] 99 | meta: 100 | name: Thumb Up Hand 101 | usage: demo 102 | description: 'thumb_up_hand' 103 | 104 | pinch_hand: 105 | joints: [hand_thumb_joint, hand_index_joint, hand_mrl_joint] 106 | positions: [0.0, -1.0, -1.0, 107 | 3.37, 4.0, 0.0] 108 | times_from_start: [0.1, 1.5] 109 | meta: 110 | name: Pinch Hand 111 | usage: demo 112 | description: 'pinch_hand' 113 | @[end if]@ 114 | @[if end_effector in ["robotiq-2f-85", "robotiq-2f-140"]]@ 115 | close: 116 | joints: [gripper_finger_joint] 117 | positions: [@[if end_effector == "robotiq-2f-85"]0.8@[else]0.7@[end if]] 118 | times_from_start: [0.5] 119 | meta: 120 | name: Close Gripper 121 | usage: demo 122 | description: 'Closes gripper' 123 | 124 | close_half: 125 | joints: [gripper_finger_joint] 126 | positions: [@[if end_effector == "robotiq-2f-85"]0.4@[else]0.35@[end if]] 127 | times_from_start: [0.5] 128 | meta: 129 | name: Close Gripper Half 130 | usage: demo 131 | description: 'Closes gripper halfway' 132 | 133 | open: 134 | joints: [gripper_finger_joint] 135 | positions: [0.0] 136 | times_from_start: [0.5] 137 | meta: 138 | name: Open Gripper 139 | usage: demo 140 | description: 'Open gripper' 141 | 142 | point: 143 | joints: [gripper_finger_joint] 144 | positions: [@[if end_effector == "robotiq-2f-85"]0.8@[else]0.7@[end if]] 145 | times_from_start: [0.5] 146 | meta: 147 | name: Point 148 | usage: demo 149 | description: 'Closes gripper to point to something' 150 | @[end if]@ 151 | @[else]@ 152 | home: 153 | joints: [torso_lift_joint] 154 | positions: [0.15] 155 | times_from_start: [3.0] 156 | meta: 157 | name: Home 158 | usage: demo 159 | description: 'Go home' 160 | 161 | head_tour: 162 | joints: [head_1_joint, head_2_joint] 163 | positions: [0.0, 0.0, 164 | 0.7, 0.0, 165 | 0.7, 0.3, 166 | 0.7, -0.3, 167 | 0.7, 0.3, 168 | -0.7, 0.3, 169 | -0.7, -0.3, 170 | 0.0, 0.0] 171 | times_from_start: [0.1, 3.0, 6.0, 9.0, 12.0, 15.0, 18.0, 21.0] 172 | meta: 173 | name: Head Tour 174 | usage: demo 175 | description: 'head_tour' 176 | 177 | inspect_surroundings: 178 | joints: ['head_1_joint', 'head_2_joint'] 179 | positions: [-1., -0.85, 180 | -1., -0.85, 181 | 1., -0.85, 182 | 1., -0.85, 183 | 0., -0.85] 184 | times_from_start: [1.5, 2.0, 4.5, 5.0, 7.0] 185 | meta: 186 | name: Inspect Surroundings 187 | usage: demo 188 | description: 'Inspect surroundings around the robot' 189 | @[end if]@ 190 | 191 | 192 | -------------------------------------------------------------------------------- /tiago_bringup/config/motions/tiago_motions_custom.yaml: -------------------------------------------------------------------------------- 1 | #Autogenerated file, don't edit this, edit tiago_motions.yaml.em instead 2 | /play_motion2: 3 | ros__parameters: 4 | controllers: [arm_controller, head_controller, torso_controller] 5 | 6 | motions: 7 | 8 | 9 | -------------------------------------------------------------------------------- /tiago_bringup/config/motions/tiago_motions_general.yaml: -------------------------------------------------------------------------------- 1 | play_motion2: 2 | ros__parameters: 3 | motions: 4 | unfold_arm: 5 | joints: [torso_lift_joint, arm_1_joint, 6 | arm_2_joint, arm_3_joint, arm_4_joint, arm_5_joint, 7 | arm_6_joint, arm_7_joint] 8 | positions: [0.30, 0.21, 0.35, -0.2, 0.8, -1.57, 1.37, 0.0, 9 | 0.30, 0.21, -0.2, -2.2, 1.15, -1.57, 0.2, 0.0] 10 | times_from_start: [0.5, 6.0] 11 | meta: 12 | name: Unfold arm 13 | usage: demo 14 | description: 'unfold_arm' 15 | 16 | reach_floor: 17 | joints: [torso_lift_joint, arm_1_joint, 18 | arm_2_joint, arm_3_joint, arm_4_joint, arm_5_joint, 19 | arm_6_joint, arm_7_joint] 20 | positions: [0.19, 1.6, -1.18, -3.16, 2.0, -1.57, -0.07, 0.0, 21 | 0.19, 1.6, -0.55, -1.35, 1.40, -1.57, -0.07, 0.0, 22 | 0.16, 1.6, -0.55, 0.0, 1.03, -1.57, -0.07, 0.0] 23 | times_from_start: [1.0, 3.0, 7.0] 24 | meta: 25 | name: Reach Floor 26 | usage: demo 27 | description: 'Reach floor' 28 | 29 | reach_max: 30 | joints: [torso_lift_joint, arm_1_joint, 31 | arm_2_joint, arm_3_joint, arm_4_joint, arm_5_joint, 32 | arm_6_joint, arm_7_joint] 33 | positions: [0.10, 1.6, -1.18, -3.16, 2.0, -1.57, -0.07, 0.0, 34 | 0.35, 0.9, 0.68, -3.16, 1.10, 2.05, 1.0, 0.0, 35 | 0.35, 0.9, 1.0, -3.45, 0.45, 2.05, 1.0, 0.0] 36 | times_from_start: [1.0, 4.0, 7.0] 37 | meta: 38 | name: Reach Max 39 | usage: demo 40 | description: 'Reach max' 41 | 42 | prepare_grasp: 43 | joints: ['torso_lift_joint', 'arm_1_joint', 'arm_2_joint', 'arm_3_joint', 'arm_4_joint', 'arm_5_joint', 'arm_6_joint', 'arm_7_joint'] 44 | positions: [0.34, 0.20, -1.34, -0.20, 1.94, -1.57, 1.37, 0.0, 45 | 0.34, 0.10, 0.47, -0.20, 1.56, -1.58, 0.25, 0.0, 46 | 0.34, 0.10, 0.47, -0.20, 1.56, 1.60, 0.25, 1.19] 47 | times_from_start: [3.0, 8.5, 10.5] 48 | meta: 49 | name: Prepare Grasp 50 | usage: demo 51 | description: 'Prepare grasp position' 52 | 53 | wave: 54 | joints: [arm_1_joint, 55 | arm_2_joint, arm_3_joint, arm_4_joint, 56 | arm_5_joint, arm_6_joint, arm_7_joint] 57 | positions: [0.09, -0.679638896132783, -3.1087325315620733, 2.0882339360702575, -1.1201172410014792, -0.031008601325809293, -2.0, 58 | 0.09, -0.7354151774072313, -2.939624246421942, 1.8341256735249563, -1.1201355028397157, -0.031008601325809293, -2.0, 59 | 0.09, -0.7231278283145929, -2.9385504456273295, 2.18, -1.1201355028397157, -0.031008601325809293, -2.04, 60 | 0.09, -0.7354151774072313, -2.939624246421942, 1.8341256735249563, -1.1201355028397157, -0.031008601325809293, -2.0] 61 | times_from_start: [0.0, 1.0, 2.0, 3.0] 62 | meta: 63 | name: Wave 64 | usage: demo 65 | description: 'wave' 66 | 67 | pregrasp_weight: 68 | joints: [torso_lift_joint, arm_1_joint, 69 | arm_2_joint, arm_3_joint, arm_4_joint, arm_5_joint, 70 | arm_6_joint, arm_7_joint] 71 | positions: [0.10, 1.6, -1.18, -3.16, 2.0, -1.57, -0.07, 0.0] 72 | times_from_start: [1.0] 73 | meta: 74 | name: Pregrasp Weight 75 | usage: demo 76 | description: 'Pregrasp weight' 77 | 78 | do_weights: 79 | joints: [arm_1_joint, 80 | arm_2_joint, arm_3_joint, arm_4_joint, arm_5_joint, 81 | arm_6_joint, arm_7_joint] 82 | positions: [1.6, -1.48, -3.16, 1.62, -1.57, -0.2, 0.0, 83 | 1.6, -1.57, -3.16, 1.62, -1.57, -0.2, 0.0, 84 | 1.6, -1.48, -3.16, 1.62, -1.57, -0.2, 0.0, 85 | 1.6, -1.57, -3.16, 1.62, -1.57, -0.2, 0.0, 86 | 1.6, -1.48, -3.16, 1.62, -1.57, -0.2, 0.0, 87 | 1.6, -1.57, -3.16, 1.62, -1.57, -0.2, 0.0, 88 | 1.6, -1.18, -3.16, 2.0, -1.57, -0.07, 0.0] 89 | times_from_start: [1.0, 2.0, 4.0, 6.0, 8.0, 10.0, 12.0] 90 | meta: 91 | name: Do Weights 92 | usage: demo 93 | description: 'Do weights' 94 | 95 | home: 96 | joints: [torso_lift_joint, arm_1_joint, 97 | arm_2_joint, arm_3_joint, arm_4_joint, arm_5_joint, 98 | arm_6_joint, arm_7_joint] 99 | positions: [0.25, 0.20, 0.35, -0.20, 1.94, -1.57, 1.37, -1.58, 100 | 0.18, 0.50, -1.34, -0.48, 1.94, -1.49, 1.37, -1.58, 101 | 0.15, 0.50, -1.34, -0.48, 1.94, -1.49, 1.37, 0.0] 102 | times_from_start: [0.5, 4.0, 7.0] 103 | meta: 104 | name: Home 105 | usage: demo 106 | description: 'Go home' 107 | 108 | offer: 109 | joints: ['torso_lift_joint', 'arm_1_joint', 'arm_2_joint', 'arm_3_joint', 'arm_4_joint', 'arm_5_joint', 'arm_6_joint', 'arm_7_joint'] 110 | positions: [0.296, 1.61, -0.93, -3.14, 1.83, -1.577, -0.62, -1.577] 111 | times_from_start: [0.0] 112 | meta: 113 | name: Offer Gripper 114 | usage: demo 115 | description: 'Offer Gripper' 116 | 117 | shake_hands: 118 | joints: ['torso_lift_joint', 'arm_1_joint', 'arm_2_joint', 'arm_3_joint', 'arm_4_joint', 'arm_5_joint', 'arm_6_joint', 'arm_7_joint'] 119 | positions: [0.296, 1.61, -0.93, -3.14, 1.83, -1.577, -0.53, -1.577, 120 | 0.296, 1.61, -0.93, -3.14, 1.83, -1.577, -0.53, -1.577, 121 | 0.296, 1.61, -0.93, -3.14, 1.40, -1.577, -0.2, -1.577, 122 | 0.296, 1.61, -0.93, -3.14, 1.83, -1.577, -0.53, -1.577, 123 | 0.296, 1.61, -0.93, -3.14, 1.40, -1.577, -0.2, -1.577, 124 | 0.296, 1.61, -0.93, -3.14, 1.83, -1.577, -0.53, -1.577, 125 | 0.296, 1.61, -0.93, -3.14, 1.83, -1.577, -0.53, -1.577] 126 | times_from_start: [0.0, 5.0, 6.0, 7.0, 8.0, 9.0, 11.0] 127 | meta: 128 | name: Shake Hands 129 | usage: demo 130 | description: 'shake_hands' -------------------------------------------------------------------------------- /tiago_bringup/config/motions/tiago_motions_head.yaml: -------------------------------------------------------------------------------- 1 | play_motion2: 2 | ros__parameters: 3 | motions: 4 | inspect_surroundings: 5 | joints: ['head_1_joint', 'head_2_joint'] 6 | positions: [-1., -0.85, 7 | -1., -0.85, 8 | 1., -0.85, 9 | 1., -0.85, 10 | 0., -0.85] 11 | times_from_start: [1.5, 2.0, 4.5, 5.0, 7.0] 12 | meta: 13 | name: Inspect Surroundings 14 | usage: demo 15 | description: 'Inspect surroundings around the robot' 16 | 17 | head_tour: 18 | joints: [head_1_joint, head_2_joint] 19 | positions: [0.0, 0.0, 20 | 0.7, 0.4, 21 | 0.7,-0.4, 22 | -0.7,-0.4, 23 | -0.7, 0.4, 24 | 0.0, 0.0] 25 | times_from_start: [0.1, 3.0, 6.0, 9.0, 12.0, 15.0] 26 | meta: 27 | name: Head Tour 28 | usage: demo 29 | description: 'head_tour' 30 | 31 | head_nod: 32 | joints: [head_1_joint, head_2_joint] 33 | times_from_start: [0.1, 0.8, 1.6] 34 | positions: [0.0, 0.0, 35 | 0.0, -0.4, 36 | 0.0, 0.0] 37 | meta: 38 | name: Head Nod 39 | usage: demo 40 | description: head_nod 41 | 42 | head_down: 43 | joints: [head_1_joint, head_2_joint] 44 | times_from_start: [0.1, 0.8] 45 | positions: [0.0, 0.0, 46 | 0.0, -0.4] 47 | meta: 48 | name: Head Down 49 | usage: demo 50 | description: head_down 51 | 52 | head_front: 53 | joints: [head_1_joint, head_2_joint] 54 | times_from_start: [0.8] 55 | positions: [0.0, 0.0] 56 | meta: 57 | name: Head Front 58 | usage: demo 59 | description: head_front 60 | 61 | head_shake: 62 | joints: [head_1_joint, head_2_joint] 63 | times_from_start: [0.1, 0.8, 1.5, 2.2, 2.9, 3.6, 4.3] 64 | positions: [0.0, 0.0, 65 | -0.4, 0.0, 66 | 0.0, 0.0, 67 | 0.4, 0.0, 68 | 0.0, 0.0, 69 | -0.4, 0.0, 70 | 0.0, 0.0] 71 | meta: 72 | name: Head Shake 73 | usage: demo 74 | description: head_shake 75 | -------------------------------------------------------------------------------- /tiago_bringup/config/motions/tiago_motions_no-arm.yaml: -------------------------------------------------------------------------------- 1 | #Autogenerated file, don't edit this, edit tiago_motions.yaml.em instead 2 | /play_motion2: 3 | ros__parameters: 4 | controllers: [head_controller, torso_controller] 5 | 6 | motions: 7 | home: 8 | joints: [torso_lift_joint] 9 | positions: [0.15] 10 | times_from_start: [3.0] 11 | meta: 12 | name: Home 13 | usage: demo 14 | description: 'Go home' 15 | 16 | head_tour: 17 | joints: [head_1_joint, head_2_joint] 18 | positions: [0.0, 0.0, 19 | 0.7, 0.0, 20 | 0.7, 0.3, 21 | 0.7, -0.3, 22 | 0.7, 0.3, 23 | -0.7, 0.3, 24 | -0.7, -0.3, 25 | 0.0, 0.0] 26 | times_from_start: [0.1, 3.0, 6.0, 9.0, 12.0, 15.0, 18.0, 21.0] 27 | meta: 28 | name: Head Tour 29 | usage: demo 30 | description: 'head_tour' 31 | 32 | inspect_surroundings: 33 | joints: ['head_1_joint', 'head_2_joint'] 34 | positions: [-1., -0.85, 35 | -1., -0.85, 36 | 1., -0.85, 37 | 1., -0.85, 38 | 0., -0.85] 39 | times_from_start: [1.5, 2.0, 4.5, 5.0, 7.0] 40 | meta: 41 | name: Inspect Surroundings 42 | usage: demo 43 | description: 'Inspect surroundings around the robot' 44 | 45 | 46 | -------------------------------------------------------------------------------- /tiago_bringup/config/motions/tiago_motions_pal-gripper.yaml: -------------------------------------------------------------------------------- 1 | #Autogenerated file, don't edit this, edit tiago_motions.yaml.em instead 2 | /play_motion2: 3 | ros__parameters: 4 | controllers: [arm_controller, head_controller, torso_controller, gripper_controller] 5 | 6 | motions: 7 | close: 8 | joints: [gripper_left_finger_joint, gripper_right_finger_joint] 9 | positions: [0.0, 0.0] 10 | times_from_start: [0.5] 11 | meta: 12 | name: Close Gripper 13 | usage: demo 14 | description: 'Close Gripper' 15 | 16 | close_half: 17 | joints: [gripper_left_finger_joint, gripper_right_finger_joint] 18 | positions: [0.024, 0.024] 19 | times_from_start: [0.5] 20 | meta: 21 | name: Close Gripper Half 22 | usage: demo 23 | description: 'Close Gripper Halfway' 24 | 25 | open: 26 | joints: [gripper_left_finger_joint, gripper_right_finger_joint] 27 | positions: [0.044, 0.044] 28 | times_from_start: [0.5] 29 | meta: 30 | name: Open Gripper 31 | usage: demo 32 | description: 'Open Gripper' 33 | 34 | point: 35 | joints: [gripper_left_finger_joint, gripper_right_finger_joint] 36 | positions: [0.0, 0.0] 37 | times_from_start: [0.5] 38 | meta: 39 | name: Point Gripper Pose 40 | usage: demo 41 | description: 'Close Gripper to point to something' 42 | 43 | 44 | -------------------------------------------------------------------------------- /tiago_bringup/config/motions/tiago_motions_pal-hey5.yaml: -------------------------------------------------------------------------------- 1 | #Autogenerated file, don't edit this, edit tiago_motions.yaml.em instead 2 | /play_motion2: 3 | ros__parameters: 4 | controllers: [arm_controller, head_controller, torso_controller, hand_controller] 5 | 6 | motions: 7 | open: 8 | joints: [hand_thumb_joint, hand_index_joint, hand_mrl_joint] 9 | positions: [-1.0, -1.0, -1.0, 10 | 0.0, 0.0, 0.0] 11 | times_from_start: [0.1, 2.5] 12 | meta: 13 | name: Open Hand 14 | usage: demo 15 | description: 'Opens hand' 16 | 17 | close: 18 | joints: [hand_thumb_joint, hand_index_joint, hand_mrl_joint] 19 | positions: [2.37, 0.0, 0.0, 20 | 6.2, 6.8, 9.2] 21 | times_from_start: [0.1, 2.5] 22 | meta: 23 | name: Close Hand 24 | usage: demo 25 | description: 'Closes hand' 26 | 27 | close_half: 28 | joints: [hand_thumb_joint, hand_index_joint, hand_mrl_joint] 29 | positions: [3.2, 3.8, 4.6] 30 | times_from_start: [2.5] 31 | meta: 32 | name: Close Hand Half 33 | usage: demo 34 | description: 'Closes hand halfway' 35 | 36 | point: 37 | joints: [hand_thumb_joint, hand_index_joint, hand_mrl_joint] 38 | positions: [2.37, -1.0, 0.0, 39 | 6.2, 0.0, 9.2] 40 | times_from_start: [0.1, 1.5] 41 | meta: 42 | name: Pointing Hand 43 | usage: demo 44 | description: 'Pointing Hand' 45 | 46 | thumb_up_hand: 47 | joints: [hand_thumb_joint, hand_index_joint, hand_mrl_joint] 48 | positions: [-1.0, 0.0, 0.0, 49 | 0.0, 6.8, 9.2] 50 | times_from_start: [0.1, 1.5] 51 | meta: 52 | name: Thumb Up Hand 53 | usage: demo 54 | description: 'thumb_up_hand' 55 | 56 | pinch_hand: 57 | joints: [hand_thumb_joint, hand_index_joint, hand_mrl_joint] 58 | positions: [0.0, -1.0, -1.0, 59 | 3.37, 4.0, 0.0] 60 | times_from_start: [0.1, 1.5] 61 | meta: 62 | name: Pinch Hand 63 | usage: demo 64 | description: 'pinch_hand' 65 | 66 | 67 | -------------------------------------------------------------------------------- /tiago_bringup/config/motions/tiago_motions_robotiq-2f-140.yaml: -------------------------------------------------------------------------------- 1 | #Autogenerated file, don't edit this, edit tiago_motions.yaml.em instead 2 | /play_motion2: 3 | ros__parameters: 4 | controllers: [arm_controller, head_controller, torso_controller, gripper_controller] 5 | 6 | motions: 7 | close: 8 | joints: [gripper_finger_joint] 9 | positions: [0.7] 10 | times_from_start: [0.5] 11 | meta: 12 | name: Close Gripper 13 | usage: demo 14 | description: 'Closes gripper' 15 | 16 | close_half: 17 | joints: [gripper_finger_joint] 18 | positions: [0.35] 19 | times_from_start: [0.5] 20 | meta: 21 | name: Close Gripper Half 22 | usage: demo 23 | description: 'Closes gripper halfway' 24 | 25 | open: 26 | joints: [gripper_finger_joint] 27 | positions: [0.0] 28 | times_from_start: [0.5] 29 | meta: 30 | name: Open Gripper 31 | usage: demo 32 | description: 'Open gripper' 33 | 34 | point: 35 | joints: [gripper_finger_joint] 36 | positions: [0.7] 37 | times_from_start: [0.5] 38 | meta: 39 | name: Point 40 | usage: demo 41 | description: 'Closes gripper to point to something' 42 | 43 | 44 | -------------------------------------------------------------------------------- /tiago_bringup/config/motions/tiago_motions_robotiq-2f-85.yaml: -------------------------------------------------------------------------------- 1 | #Autogenerated file, don't edit this, edit tiago_motions.yaml.em instead 2 | /play_motion2: 3 | ros__parameters: 4 | controllers: [arm_controller, head_controller, torso_controller, gripper_controller] 5 | 6 | motions: 7 | close: 8 | joints: [gripper_finger_joint] 9 | positions: [0.8] 10 | times_from_start: [0.5] 11 | meta: 12 | name: Close Gripper 13 | usage: demo 14 | description: 'Closes gripper' 15 | 16 | close_half: 17 | joints: [gripper_finger_joint] 18 | positions: [0.4] 19 | times_from_start: [0.5] 20 | meta: 21 | name: Close Gripper Half 22 | usage: demo 23 | description: 'Closes gripper halfway' 24 | 25 | open: 26 | joints: [gripper_finger_joint] 27 | positions: [0.0] 28 | times_from_start: [0.5] 29 | meta: 30 | name: Open Gripper 31 | usage: demo 32 | description: 'Open gripper' 33 | 34 | point: 35 | joints: [gripper_finger_joint] 36 | positions: [0.8] 37 | times_from_start: [0.5] 38 | meta: 39 | name: Point 40 | usage: demo 41 | description: 'Closes gripper to point to something' 42 | 43 | 44 | -------------------------------------------------------------------------------- /tiago_bringup/config/motions/tiago_motions_robotiq-epick.yaml: -------------------------------------------------------------------------------- 1 | #Autogenerated file, don't edit this, edit tiago_motions.yaml.em instead 2 | /play_motion2: 3 | ros__parameters: 4 | 5 | motions: 6 | 7 | 8 | -------------------------------------------------------------------------------- /tiago_bringup/config/twist_mux/joystick_omni_base.yaml: -------------------------------------------------------------------------------- 1 | /joystick_relay: 2 | ros__parameters: 3 | priority: False 4 | turbo: 5 | linear_forward_min : 0.10 6 | linear_forward_max : 1.00 7 | linear_backward_min : 0.10 8 | linear_backward_max : 1.00 9 | linear_lateral_min : 0.10 10 | linear_lateral_max : 0.60 11 | angular_min : 0.1745 # !degrees 10.0 (not supported) 12 | angular_max : 2.0944 # !degrees 120.0 (not supported) 13 | steps : 8 -------------------------------------------------------------------------------- /tiago_bringup/config/twist_mux/joystick_pmb2.yaml: -------------------------------------------------------------------------------- 1 | /joystick_relay: 2 | ros__parameters: 3 | priority: False 4 | turbo: 5 | linear_forward_min : 0.10 6 | linear_forward_max : 0.50 7 | linear_backward_min : 0.10 8 | linear_backward_max : 0.30 9 | angular_min : 0.2618 # !degrees 15.0 (not supported) 10 | angular_max : 1.3963 # !degrees 80.0 (not supported) 11 | steps : 6 12 | -------------------------------------------------------------------------------- /tiago_bringup/config/twist_mux/twist_mux_locks.yaml: -------------------------------------------------------------------------------- 1 | # Locks to stop the twist mux. 2 | # For each lock: 3 | # - topic : input topic that provides the lock; it must be of type std_msgs::Bool?!!! 4 | # - timeout : == 0.0 -> not used 5 | # > 0.0 -> the lock is supposed to published at a certain frequency in order 6 | # to detect that the publisher is alive; the timeout in seconds allows 7 | # to detect that, and if the publisher dies we will enable the lock 8 | # - priority: priority in the range [0, 255], so all the topics with priority lower than it 9 | # will be stopped/disabled 10 | 11 | /twist_mux: 12 | ros__parameters: 13 | locks: 14 | joystick: 15 | topic : joy_priority 16 | timeout : 0.0 17 | priority: 100 18 | assisted_teleop: 19 | topic : assisted_teleop_priority 20 | timeout : 0.0 21 | priority: 200 22 | charging: 23 | topic : power/is_charging 24 | timeout : 0.0 25 | priority: 210 -------------------------------------------------------------------------------- /tiago_bringup/config/twist_mux/twist_mux_topics.yaml: -------------------------------------------------------------------------------- 1 | # Input topics handled/muxed by the twist mux. 2 | # For each topic: 3 | # - name : name identifier to select the topic 4 | # - topic : input topic of geometry_msgs::Twist type 5 | # - timeout : timeout in seconds to start discarding old messages, and use 0.0 speed instead 6 | # - priority: priority in the range [0, 255]; the higher the more priority over other topics 7 | 8 | /twist_mux: 9 | ros__parameters: 10 | topics: 11 | navigation: 12 | topic : cmd_vel 13 | timeout : 0.5 14 | priority: 10 15 | keyboard: 16 | topic : key_vel 17 | timeout : 0.5 18 | priority: 90 19 | rviz: 20 | topic : rviz_joy_vel 21 | timeout : 0.5 22 | priority: 100 23 | joystick: 24 | topic : joy_vel 25 | timeout : 0.5 26 | priority: 100 27 | webgui_joystick: 28 | topic : tab_vel 29 | timeout : 0.5 30 | priority: 100 31 | assisted_teleop: 32 | topic : assisted_vel 33 | timeout : 0.5 34 | priority: 200 35 | docking: 36 | topic : docking_vel 37 | timeout : 0.5 38 | priority: 210 -------------------------------------------------------------------------------- /tiago_bringup/launch/joystick_teleop.launch.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2022 PAL Robotics S.L. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | import os 16 | from ament_index_python.packages import get_package_share_directory 17 | 18 | from launch import LaunchDescription 19 | from launch.substitutions import LaunchConfiguration 20 | from launch.actions import DeclareLaunchArgument, SetLaunchConfiguration, OpaqueFunction 21 | from launch_ros.actions import Node 22 | from launch.conditions import LaunchConfigurationNotEquals 23 | from launch_pal.arg_utils import LaunchArgumentsBase, read_launch_argument 24 | from tiago_description.launch_arguments import TiagoArgs 25 | 26 | from dataclasses import dataclass 27 | 28 | 29 | @dataclass(frozen=True) 30 | class LaunchArguments(LaunchArgumentsBase): 31 | 32 | arm_type: DeclareLaunchArgument = TiagoArgs.arm_type 33 | end_effector: DeclareLaunchArgument = TiagoArgs.end_effector 34 | ft_sensor: DeclareLaunchArgument = TiagoArgs.ft_sensor 35 | base_type: DeclareLaunchArgument = TiagoArgs.base_type 36 | 37 | cmd_vel: DeclareLaunchArgument = DeclareLaunchArgument( 38 | name="cmd_vel", 39 | default_value="input_joy/cmd_vel", 40 | description="Joystick cmd_vel topic", 41 | ) 42 | 43 | 44 | def generate_launch_description(): 45 | 46 | # Create the launch description 47 | ld = LaunchDescription() 48 | 49 | launch_arguments = LaunchArguments() 50 | 51 | launch_arguments.add_to_launch_description(ld) 52 | 53 | declare_actions(ld, launch_arguments) 54 | 55 | return ld 56 | 57 | 58 | def declare_actions( 59 | launch_description: LaunchDescription, launch_args: LaunchArguments 60 | ): 61 | launch_description.add_action(OpaqueFunction(function=create_joy_teleop_filename)) 62 | 63 | joy_teleop_node = Node( 64 | package="joy_teleop", 65 | executable="joy_teleop", 66 | parameters=[LaunchConfiguration("teleop_config")], 67 | remappings=[("cmd_vel", LaunchConfiguration("cmd_vel"))], 68 | ) 69 | 70 | launch_description.add_action(joy_teleop_node) 71 | 72 | pkg_dir = get_package_share_directory("tiago_bringup") 73 | 74 | joy_node = Node( 75 | package="joy_linux", 76 | executable="joy_linux_node", 77 | name="joystick", 78 | parameters=[os.path.join(pkg_dir, "config", "joy_teleop", "joy_config.yaml")], 79 | ) 80 | 81 | launch_description.add_action(joy_node) 82 | 83 | # starting safe command node for joystick teleop 84 | safe_command_head = Node( 85 | package='collision_aware_joint_trajectory_wrapper', 86 | executable='safe_command_node', 87 | name='safe_command_node', 88 | output='screen', 89 | parameters=[{ 90 | 'controller_name': 'head_controller' 91 | }] 92 | ) 93 | 94 | launch_description.add_action(safe_command_head) 95 | 96 | safe_command_torso = Node( 97 | package='collision_aware_joint_trajectory_wrapper', 98 | executable='safe_command_node', 99 | name='safe_command_node', 100 | output='screen', 101 | parameters=[{ 102 | 'controller_name': 'torso_controller' 103 | }] 104 | ) 105 | 106 | launch_description.add_action(safe_command_torso) 107 | 108 | torso_incrementer_server = Node( 109 | package="joy_teleop", 110 | executable="incrementer_server", 111 | name="incrementer", 112 | namespace="torso_controller", 113 | remappings=[('joint_trajectory', 'safe_command')] 114 | ) 115 | 116 | launch_description.add_action(torso_incrementer_server) 117 | 118 | head_incrementer_server = Node( 119 | package="joy_teleop", 120 | executable="incrementer_server", 121 | name="incrementer", 122 | namespace="head_controller", 123 | remappings=[('joint_trajectory', 'safe_command')] 124 | ) 125 | 126 | launch_description.add_action(head_incrementer_server) 127 | 128 | gripper_incrementer_server = Node( 129 | package="joy_teleop", 130 | executable="incrementer_server", 131 | name="incrementer", 132 | namespace="gripper_controller", 133 | condition=LaunchConfigurationNotEquals("end_effector", "no-end-effector"), 134 | ) 135 | 136 | launch_description.add_action(gripper_incrementer_server) 137 | 138 | return 139 | 140 | 141 | def create_joy_teleop_filename(context): 142 | 143 | base_type = read_launch_argument("base_type", context) 144 | pkg_dir = get_package_share_directory("tiago_bringup") 145 | 146 | joy_teleop_file = f"joy_teleop_{base_type}.yaml" 147 | 148 | joy_teleop_path = os.path.join( 149 | pkg_dir, 150 | "config", 151 | "joy_teleop", 152 | joy_teleop_file, 153 | ) 154 | 155 | return [SetLaunchConfiguration("teleop_config", joy_teleop_path)] 156 | -------------------------------------------------------------------------------- /tiago_bringup/launch/tiago_bringup.launch.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2022 PAL Robotics S.L. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from launch import LaunchDescription 16 | from launch.actions import DeclareLaunchArgument 17 | 18 | from launch_pal.include_utils import include_scoped_launch_py_description 19 | from launch_pal.arg_utils import LaunchArgumentsBase 20 | from launch_pal.robot_arguments import CommonArgs 21 | from tiago_description.launch_arguments import TiagoArgs 22 | 23 | from dataclasses import dataclass 24 | 25 | 26 | @dataclass(frozen=True) 27 | class LaunchArguments(LaunchArgumentsBase): 28 | 29 | base_type: DeclareLaunchArgument = TiagoArgs.base_type 30 | arm_type: DeclareLaunchArgument = TiagoArgs.arm_type 31 | arm_motor_model: DeclareLaunchArgument = TiagoArgs.arm_motor_model 32 | end_effector: DeclareLaunchArgument = TiagoArgs.end_effector 33 | ft_sensor: DeclareLaunchArgument = TiagoArgs.ft_sensor 34 | wrist_model: DeclareLaunchArgument = TiagoArgs.wrist_model 35 | camera_model: DeclareLaunchArgument = TiagoArgs.camera_model 36 | laser_model: DeclareLaunchArgument = TiagoArgs.laser_model 37 | has_screen: DeclareLaunchArgument = TiagoArgs.has_screen 38 | use_sim_time: DeclareLaunchArgument = CommonArgs.use_sim_time 39 | is_public_sim: DeclareLaunchArgument = CommonArgs.is_public_sim 40 | namespace: DeclareLaunchArgument = CommonArgs.namespace 41 | 42 | 43 | def generate_launch_description(): 44 | 45 | # Create the launch description 46 | ld = LaunchDescription() 47 | 48 | launch_arguments = LaunchArguments() 49 | 50 | launch_arguments.add_to_launch_description(ld) 51 | 52 | declare_actions(ld, launch_arguments) 53 | 54 | return ld 55 | 56 | 57 | def declare_actions( 58 | launch_description: LaunchDescription, launch_args: LaunchArguments 59 | ): 60 | 61 | default_controllers = include_scoped_launch_py_description( 62 | pkg_name="tiago_controller_configuration", 63 | paths=["launch", "default_controllers.launch.py"], 64 | launch_arguments={ 65 | "arm_type": launch_args.arm_type, 66 | "arm_motor_model": launch_args.arm_motor_model, 67 | "end_effector": launch_args.end_effector, 68 | "ft_sensor": launch_args.ft_sensor, 69 | "base_type": launch_args.base_type, 70 | "use_sim_time": launch_args.use_sim_time, 71 | "is_public_sim": launch_args.is_public_sim, 72 | }, 73 | ) 74 | 75 | launch_description.add_action(default_controllers) 76 | 77 | play_motion2 = include_scoped_launch_py_description( 78 | pkg_name="tiago_bringup", 79 | paths=["launch", "tiago_play_motion2.launch.py"], 80 | launch_arguments={ 81 | "arm_type": launch_args.arm_type, 82 | "end_effector": launch_args.end_effector, 83 | "ft_sensor": launch_args.ft_sensor, 84 | "use_sim_time": launch_args.use_sim_time, 85 | }, 86 | ) 87 | 88 | launch_description.add_action(play_motion2) 89 | 90 | twist_mux = include_scoped_launch_py_description( 91 | pkg_name="tiago_bringup", 92 | paths=["launch", "twist_mux.launch.py"], 93 | launch_arguments={ 94 | "base_type": launch_args.base_type, 95 | "use_sim_time": launch_args.use_sim_time, 96 | } 97 | ) 98 | 99 | launch_description.add_action(twist_mux) 100 | 101 | robot_state_publisher = include_scoped_launch_py_description( 102 | pkg_name="tiago_description", 103 | paths=["launch", "robot_state_publisher.launch.py"], 104 | launch_arguments={ 105 | "arm_type": launch_args.arm_type, 106 | "end_effector": launch_args.end_effector, 107 | "ft_sensor": launch_args.ft_sensor, 108 | "wrist_model": launch_args.wrist_model, 109 | "laser_model": launch_args.laser_model, 110 | "camera_model": launch_args.camera_model, 111 | "base_type": launch_args.base_type, 112 | "has_screen": launch_args.has_screen, 113 | "namespace": launch_args.namespace, 114 | "use_sim_time": launch_args.use_sim_time, 115 | "is_public_sim": launch_args.is_public_sim, 116 | }, 117 | ) 118 | 119 | launch_description.add_action(robot_state_publisher) 120 | 121 | return 122 | -------------------------------------------------------------------------------- /tiago_bringup/launch/tiago_play_motion2.launch.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023 PAL Robotics S.L. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from dataclasses import dataclass 16 | from ament_index_python.packages import get_package_share_directory 17 | 18 | from launch import LaunchDescription 19 | from launch_pal.arg_utils import LaunchArgumentsBase 20 | from launch.substitutions import PathJoinSubstitution, LaunchConfiguration 21 | from tiago_description.launch_arguments import TiagoArgs 22 | from launch.actions import DeclareLaunchArgument, SetLaunchConfiguration, OpaqueFunction 23 | from tiago_description.tiago_launch_utils import get_tiago_hw_suffix 24 | from launch_pal.include_utils import include_scoped_launch_py_description 25 | from launch_pal.arg_utils import read_launch_argument 26 | from launch_pal.robot_arguments import CommonArgs 27 | from launch_pal.param_utils import merge_param_files 28 | 29 | 30 | @dataclass(frozen=True) 31 | class LaunchArguments(LaunchArgumentsBase): 32 | 33 | arm_type: DeclareLaunchArgument = TiagoArgs.arm_type 34 | end_effector: DeclareLaunchArgument = TiagoArgs.end_effector 35 | ft_sensor: DeclareLaunchArgument = TiagoArgs.ft_sensor 36 | use_sim_time: DeclareLaunchArgument = CommonArgs.use_sim_time 37 | 38 | 39 | def generate_launch_description(): 40 | 41 | # Create the launch description and populate 42 | ld = LaunchDescription() 43 | launch_arguments = LaunchArguments() 44 | 45 | launch_arguments.add_to_launch_description(ld) 46 | 47 | declare_actions(ld, launch_arguments) 48 | 49 | return ld 50 | 51 | 52 | def declare_actions( 53 | launch_description: LaunchDescription, launch_args: LaunchArguments 54 | ): 55 | launch_description.add_action(OpaqueFunction(function=create_play_motion_params)) 56 | 57 | play_motion2 = include_scoped_launch_py_description( 58 | pkg_name="play_motion2", 59 | paths=["launch", "play_motion2.launch.py"], 60 | launch_arguments={ 61 | "use_sim_time": launch_args.use_sim_time, 62 | "motions_file": LaunchConfiguration("motions_file"), 63 | "motion_planner_config": LaunchConfiguration("motion_planner_config"), 64 | }, 65 | ) 66 | 67 | launch_description.add_action(play_motion2) 68 | 69 | return 70 | 71 | 72 | def create_play_motion_params(context): 73 | 74 | pkg_name = "tiago_bringup" 75 | pkg_share_dir = get_package_share_directory(pkg_name) 76 | arm = read_launch_argument("arm_type", context) 77 | end_effector = read_launch_argument("end_effector", context) 78 | 79 | hw_suffix = get_tiago_hw_suffix(arm=arm, end_effector=end_effector) 80 | 81 | head_motions = PathJoinSubstitution( 82 | [pkg_share_dir, "config", "motions", "tiago_motions_head.yaml"] 83 | ) 84 | 85 | if arm != 'no-arm': 86 | 87 | general_yaml = PathJoinSubstitution( 88 | [pkg_share_dir, "config", "motions", "tiago_motions_general.yaml"] 89 | ) 90 | if end_effector == 'no-end-effector': 91 | merged_yaml = general_yaml 92 | else: 93 | motions_yaml = PathJoinSubstitution( 94 | [pkg_share_dir, "config", "motions", f"tiago_motions{hw_suffix}.yaml"] 95 | ) 96 | merged_yaml = merge_param_files([motions_yaml.perform(context), 97 | general_yaml.perform(context), 98 | head_motions.perform(context)]) 99 | else: 100 | merged_yaml = PathJoinSubstitution( 101 | [pkg_share_dir, "config", "motions", f"tiago_motions{hw_suffix}.yaml"] 102 | ) 103 | 104 | motion_planner_file = f"motion_planner{hw_suffix}.yaml" 105 | motion_planner_config = PathJoinSubstitution( 106 | [pkg_share_dir, "config", "motion_planner", motion_planner_file] 107 | ) 108 | 109 | return [ 110 | SetLaunchConfiguration("motions_file", merged_yaml), 111 | SetLaunchConfiguration("motion_planner_config", motion_planner_config), 112 | ] 113 | -------------------------------------------------------------------------------- /tiago_bringup/launch/twist_mux.launch.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2022 PAL Robotics S.L. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | import os 16 | from launch import LaunchDescription 17 | from launch.actions import DeclareLaunchArgument, OpaqueFunction, SetLaunchConfiguration 18 | from ament_index_python.packages import get_package_share_directory 19 | from launch_pal.include_utils import include_scoped_launch_py_description 20 | from launch_pal.arg_utils import LaunchArgumentsBase, read_launch_argument 21 | from launch_pal.robot_arguments import CommonArgs 22 | from launch.substitutions import LaunchConfiguration 23 | from tiago_description.launch_arguments import TiagoArgs 24 | from dataclasses import dataclass 25 | 26 | 27 | @dataclass(frozen=True) 28 | class LaunchArguments(LaunchArgumentsBase): 29 | base_type: DeclareLaunchArgument = TiagoArgs.base_type 30 | use_sim_time: DeclareLaunchArgument = CommonArgs.use_sim_time 31 | 32 | 33 | def generate_launch_description(): 34 | 35 | # Create the launch description 36 | ld = LaunchDescription() 37 | 38 | launch_arguments = LaunchArguments() 39 | 40 | launch_arguments.add_to_launch_description(ld) 41 | 42 | declare_actions(ld, launch_arguments) 43 | 44 | return ld 45 | 46 | 47 | def declare_actions( 48 | launch_description: LaunchDescription, launch_args: LaunchArguments 49 | ): 50 | # Create the extra configs from the base_type LA 51 | launch_description.add_action(OpaqueFunction(function=create_joystick_file_config)) 52 | 53 | pkg_dir = get_package_share_directory("tiago_bringup") 54 | 55 | config_locks_file = os.path.join( 56 | pkg_dir, "config", "twist_mux", "twist_mux_locks.yaml" 57 | ) 58 | config_topics_file = os.path.join( 59 | pkg_dir, "config", "twist_mux", "twist_mux_topics.yaml" 60 | ) 61 | 62 | twist_mux = include_scoped_launch_py_description( 63 | 'twist_mux', ['launch', 'twist_mux_launch.py'], 64 | launch_arguments={ 65 | 'cmd_vel_out': 'mobile_base_controller/cmd_vel_unstamped', 66 | 'config_locks': config_locks_file, 67 | 'config_topics': config_topics_file, 68 | "config_joy": LaunchConfiguration("config_joy"), 69 | "use_sim_time": launch_args.use_sim_time, 70 | } 71 | ) 72 | 73 | launch_description.add_action(twist_mux) 74 | 75 | return 76 | 77 | 78 | def create_joystick_file_config(context, *args, **kwargs): 79 | 80 | base_type = read_launch_argument("base_type", context) 81 | pkg_dir = get_package_share_directory("tiago_bringup") 82 | 83 | joystick_file = os.path.join( 84 | pkg_dir, "config", "twist_mux", f"joystick_{base_type}.yaml" 85 | ) 86 | 87 | return [SetLaunchConfiguration("config_joy", joystick_file)] 88 | -------------------------------------------------------------------------------- /tiago_bringup/module/joystick.yaml: -------------------------------------------------------------------------------- 1 | joystick: 2 | launch: "tiago_bringup joystick_teleop.launch.py 3 | robot_name:=@robot_type@ 4 | arm_type:=@arm_type@ 5 | base_type:=@base_type@ 6 | end_effector:=@end_effector@ 7 | ft_sensor:=@ft_sensor@" 8 | -------------------------------------------------------------------------------- /tiago_bringup/module/play_motion2.yaml: -------------------------------------------------------------------------------- 1 | play_motion2: 2 | launch: "tiago_bringup tiago_play_motion2.launch.py 3 | arm_type:=@arm_type@ 4 | base_type:=@base_type@ 5 | end_effector:=@end_effector@ 6 | ft_sensor:=@ft_sensor@" 7 | -------------------------------------------------------------------------------- /tiago_bringup/module/twist_mux.yaml: -------------------------------------------------------------------------------- 1 | twist_mux: 2 | launch: "tiago_bringup twist_mux.launch.py 3 | base_type:=@base_type@" 4 | -------------------------------------------------------------------------------- /tiago_bringup/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | tiago_bringup 4 | 4.17.2 5 | Launch files to upload the robot description and start the controllers 6 | Jordi Pages 7 | Jordan Palacios 8 | Noel Jimenez 9 | Bence Magyar 10 | Apache License 2.0 11 | 12 | https://github.com/pal-robotics/tiago_simulation 13 | 14 | ament_cmake_auto 15 | 16 | pal_module_cmake 17 | 18 | geometry_msgs 19 | joy_linux 20 | joy_teleop 21 | launch_pal 22 | play_motion2 23 | teleop_tools_msgs 24 | tiago_controller_configuration 25 | tiago_description 26 | twist_mux 27 | twist_mux_msgs 28 | collision_aware_joint_trajectory_wrapper 29 | 30 | ament_lint_auto 31 | ament_lint_common 32 | 33 | 34 | ament_cmake 35 | 36 | 37 | -------------------------------------------------------------------------------- /tiago_bringup/scripts/regen_em_file.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | # Copyright (c) 2022 PAL Robotics S.L. All rights reserved. 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 | import os 18 | import sys 19 | 20 | import em 21 | 22 | from tiago_description.tiago_launch_utils import get_tiago_hw_suffix 23 | 24 | em_file_path = sys.argv[1] 25 | 26 | no_em_extension_path = os.path.splitext(em_file_path)[0] 27 | no_extension_path = os.path.splitext(no_em_extension_path)[0] 28 | extension = os.path.splitext(no_em_extension_path)[1] 29 | 30 | for arm in ['tiago-arm', 'no-arm']: 31 | if arm not in ['no-arm']: 32 | end_effectors = ['pal-hey5', 'pal-gripper', 'no-ee', 'robotiq-2f-85', 33 | 'robotiq-2f-140', 'robotiq-epick', 'custom'] 34 | else: 35 | end_effectors = ['no-ee'] 36 | for end_effector in end_effectors: 37 | 38 | if arm != 'no-arm' and end_effector == 'no-ee': 39 | continue 40 | 41 | cfg = { 42 | 'has_arm': arm not in ['no-arm'], 43 | 'end_effector': end_effector, 44 | } 45 | with open(em_file_path, 'r') as f: 46 | expanded_contents = em.expand(f.read(), cfg) 47 | 48 | suffix = get_tiago_hw_suffix(arm=arm, end_effector=end_effector) 49 | 50 | expanded_file_name = no_extension_path + suffix + extension 51 | with open(expanded_file_name, 'w') as f: 52 | msg = "Autogenerated file, don't edit this, edit {} instead".format( 53 | os.path.basename(em_file_path)) 54 | if extension == '.yaml': 55 | f.write('#' + msg + '\n') 56 | elif extension in ['.xacro', '.xml']: 57 | f.write('\n') 58 | 59 | f.write(expanded_contents) 60 | print('Generated ' + expanded_file_name) 61 | -------------------------------------------------------------------------------- /tiago_controller_configuration/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.8) 2 | project(tiago_controller_configuration) 3 | 4 | find_package(ament_cmake_auto REQUIRED) 5 | ament_auto_find_build_dependencies() 6 | 7 | if(pal_module_cmake_FOUND) 8 | pal_register_modules( 9 | module/10_default_controllers.yaml 10 | ) 11 | elseif(DEFINED ENV{PAL_DISTRO}) 12 | message(FATAL_ERROR "The pal_module_cmake package was not found. Modules not registered.") 13 | endif() 14 | 15 | if(BUILD_TESTING) 16 | find_package(ament_lint_auto REQUIRED) 17 | ament_lint_auto_find_test_dependencies() 18 | endif() 19 | 20 | ament_auto_package(INSTALL_TO_SHARE config launch) 21 | -------------------------------------------------------------------------------- /tiago_controller_configuration/config/arm_controller.yaml: -------------------------------------------------------------------------------- 1 | arm_controller: 2 | ros__parameters: 3 | type: joint_trajectory_controller/JointTrajectoryController 4 | joints: 5 | - arm_1_joint 6 | - arm_2_joint 7 | - arm_3_joint 8 | - arm_4_joint 9 | - arm_5_joint 10 | - arm_6_joint 11 | - arm_7_joint 12 | command_interfaces: 13 | - position 14 | state_interfaces: 15 | - position 16 | 17 | constraints: 18 | goal_time: 0.6 19 | stopped_velocity_tolerance: 5.0 20 | arm_1_joint: 21 | goal: 0.02 22 | arm_2_joint: 23 | goal: 0.02 24 | arm_3_joint: 25 | goal: 0.02 26 | arm_4_joint: 27 | goal: 0.02 28 | arm_5_joint: 29 | goal: 0.02 30 | arm_6_joint: 31 | goal: 0.02 32 | arm_7_joint: 33 | goal: 0.02 34 | 35 | arm_impedance_controller: 36 | ros__parameters: 37 | type: joint_trajectory_controller/JointTrajectoryController 38 | joints: 39 | - arm_1_joint 40 | - arm_2_joint 41 | - arm_3_joint 42 | - arm_4_joint 43 | - arm_5_joint 44 | - arm_6_joint 45 | - arm_7_joint 46 | command_joints: 47 | - gravity_compensation_controller/arm_1_joint 48 | - gravity_compensation_controller/arm_2_joint 49 | - gravity_compensation_controller/arm_3_joint 50 | - gravity_compensation_controller/arm_4_joint 51 | - gravity_compensation_controller/arm_5_joint 52 | - gravity_compensation_controller/arm_6_joint 53 | - gravity_compensation_controller/arm_7_joint 54 | command_interfaces: 55 | - position 56 | - velocity 57 | state_interfaces: 58 | - position 59 | - velocity 60 | 61 | constraints: 62 | goal_time: 0.6 63 | stopped_velocity_tolerance: 5.0 64 | arm_1_joint: 65 | goal: 0.02 66 | arm_2_joint: 67 | goal: 0.02 68 | arm_3_joint: 69 | goal: 0.02 70 | arm_4_joint: 71 | goal: 0.02 72 | arm_5_joint: 73 | goal: 0.02 74 | arm_6_joint: 75 | goal: 0.02 76 | arm_7_joint: 77 | goal: 0.02 78 | -------------------------------------------------------------------------------- /tiago_controller_configuration/config/ft_sensor_controller.yaml: -------------------------------------------------------------------------------- 1 | ft_sensor_controller: 2 | ros__parameters: 3 | type: force_torque_sensor_broadcaster/ForceTorqueSensorBroadcaster 4 | frame_id: wrist_ft_link 5 | sensor_name: wrist_ft_sensor 6 | -------------------------------------------------------------------------------- /tiago_controller_configuration/config/gravity_compensation_controller_ilm.yaml: -------------------------------------------------------------------------------- 1 | ${ARM_SIDE_PREFIX}_gravity_compensation_controller: 2 | ros__parameters: 3 | type: pal_controllers/GravityCompensationController 4 | command_joints: 5 | - ${ARM_SIDE_PREFIX}_1_joint 6 | - ${ARM_SIDE_PREFIX}_2_joint 7 | - ${ARM_SIDE_PREFIX}_3_joint 8 | - ${ARM_SIDE_PREFIX}_4_joint 9 | - ${ARM_SIDE_PREFIX}_5_joint 10 | - ${ARM_SIDE_PREFIX}_6_joint 11 | - ${ARM_SIDE_PREFIX}_7_joint 12 | root_link: "base_link" 13 | tip_links: 14 | - ${ARM_SIDE_PREFIX}_tool_link 15 | torque_gain: 1.0 16 | parameters: 17 | ${ARM_SIDE_PREFIX}_1_joint: 18 | command_interface: "${ARM_SIDE_PREFIX}_1_joint/effort" 19 | motor_torque_constant: 0.0 20 | reduction_ratio: 100.0 21 | kp: 6.0 22 | kd: 1.0 23 | ${ARM_SIDE_PREFIX}_2_joint: 24 | command_interface: "${ARM_SIDE_PREFIX}_2_joint/effort" 25 | motor_torque_constant: 0.12 26 | reduction_ratio: 100.0 27 | kp: 6.0 28 | kd: 0.8 29 | ${ARM_SIDE_PREFIX}_3_joint: 30 | command_interface: "${ARM_SIDE_PREFIX}_3_joint/effort" 31 | motor_torque_constant: -0.06 32 | reduction_ratio: 100.0 33 | kp: -6.0 34 | kd: -0.8 35 | ${ARM_SIDE_PREFIX}_4_joint: 36 | command_interface: "${ARM_SIDE_PREFIX}_4_joint/effort" 37 | motor_torque_constant: -0.06 38 | reduction_ratio: 100.0 39 | kp: -6.0 40 | kd: -0.8 41 | ${ARM_SIDE_PREFIX}_5_joint: 42 | command_interface: "${ARM_SIDE_PREFIX}_5_joint/effort" 43 | motor_torque_constant: -1.65 44 | reduction_ratio: 336.0 45 | kp: -0.02 46 | kd: -0.02 47 | ${ARM_SIDE_PREFIX}_6_joint: 48 | command_interface: "${ARM_SIDE_PREFIX}_6_joint/effort" 49 | motor_torque_constant: 0.0 50 | reduction_ratio: 336.0 51 | kp: 0.2 52 | kd: 0.02 53 | ${ARM_SIDE_PREFIX}_7_joint: 54 | command_interface: "${ARM_SIDE_PREFIX}_7_joint/effort" 55 | motor_torque_constant: 0.0 56 | reduction_ratio: 336.0 57 | kp: 0.2 58 | kd: 0.02 59 | -------------------------------------------------------------------------------- /tiago_controller_configuration/config/gravity_compensation_controller_parker.yaml: -------------------------------------------------------------------------------- 1 | ${ARM_SIDE_PREFIX}_gravity_compensation_controller: 2 | ros__parameters: 3 | type: pal_controllers/GravityCompensationController 4 | command_joints: 5 | - ${ARM_SIDE_PREFIX}_1_joint 6 | - ${ARM_SIDE_PREFIX}_2_joint 7 | - ${ARM_SIDE_PREFIX}_3_joint 8 | - ${ARM_SIDE_PREFIX}_4_joint 9 | - ${ARM_SIDE_PREFIX}_5_joint 10 | - ${ARM_SIDE_PREFIX}_6_joint 11 | - ${ARM_SIDE_PREFIX}_7_joint 12 | root_link: "base_link" 13 | tip_links: 14 | - ${ARM_SIDE_PREFIX}_tool_link 15 | torque_gain: 1.0 16 | parameters: 17 | ${ARM_SIDE_PREFIX}_1_joint: 18 | command_interface: "${ARM_SIDE_PREFIX}_1_joint/effort" 19 | motor_torque_constant: 0.0 20 | reduction_ratio: 100.0 21 | kp: 6.0 22 | kd: 1.0 23 | ${ARM_SIDE_PREFIX}_2_joint: 24 | command_interface: "${ARM_SIDE_PREFIX}_2_joint/effort" 25 | motor_torque_constant: 0.136 26 | reduction_ratio: 100.0 27 | kp: 6.0 28 | kd: 0.8 29 | ${ARM_SIDE_PREFIX}_3_joint: 30 | command_interface: "${ARM_SIDE_PREFIX}_3_joint/effort" 31 | motor_torque_constant: -0.087 32 | reduction_ratio: 100.0 33 | kp: -6.0 34 | kd: -0.8 35 | ${ARM_SIDE_PREFIX}_4_joint: 36 | command_interface: "${ARM_SIDE_PREFIX}_4_joint/effort" 37 | motor_torque_constant: -0.087 38 | reduction_ratio: 100.0 39 | kp: -6.0 40 | kd: -0.8 41 | ${ARM_SIDE_PREFIX}_5_joint: 42 | command_interface: "${ARM_SIDE_PREFIX}_5_joint/effort" 43 | motor_torque_constant: -1.0 44 | reduction_ratio: 336.0 45 | kp: -0.02 46 | kd: -0.02 47 | ${ARM_SIDE_PREFIX}_6_joint: 48 | command_interface: "${ARM_SIDE_PREFIX}_6_joint/effort" 49 | motor_torque_constant: 0.0 50 | reduction_ratio: 336.0 51 | kp: 0.2 52 | kd: 0.02 53 | ${ARM_SIDE_PREFIX}_7_joint: 54 | command_interface: "${ARM_SIDE_PREFIX}_7_joint/effort" 55 | motor_torque_constant: 0.0 56 | reduction_ratio: 336.0 57 | kp: 0.2 58 | kd: 0.02 59 | -------------------------------------------------------------------------------- /tiago_controller_configuration/config/head_controller.yaml: -------------------------------------------------------------------------------- 1 | head_controller: 2 | ros__parameters: 3 | type: joint_trajectory_controller/JointTrajectoryController 4 | joints: 5 | - head_1_joint 6 | - head_2_joint 7 | command_interfaces: 8 | - position 9 | state_interfaces: 10 | - position 11 | open_loop_control: true 12 | constraints: 13 | goal_time: 2.0 14 | stopped_velocity_tolerance: 5.0 15 | head_1_joint: 16 | goal: 0.5 17 | head_2_joint: 18 | goal: 0.5 19 | -------------------------------------------------------------------------------- /tiago_controller_configuration/config/joint_state_broadcaster.yaml: -------------------------------------------------------------------------------- 1 | joint_state_broadcaster: 2 | ros__parameters: 3 | type: joint_state_broadcaster/JointStateBroadcaster 4 | update_rate: 50 -------------------------------------------------------------------------------- /tiago_controller_configuration/config/torso_controller.yaml: -------------------------------------------------------------------------------- 1 | torso_controller: 2 | ros__parameters: 3 | type: joint_trajectory_controller/JointTrajectoryController 4 | joints: 5 | - torso_lift_joint 6 | command_interfaces: 7 | - position 8 | state_interfaces: 9 | - position 10 | 11 | constraints: 12 | goal_time: 0.6 13 | stopped_velocity_tolerance: 5.0 # FIXME: See #8429 14 | torso_lift_joint: 15 | goal: 0.02 16 | -------------------------------------------------------------------------------- /tiago_controller_configuration/launch/default_controllers.launch.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2022 PAL Robotics S.L. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | import os 16 | from dataclasses import dataclass 17 | from ament_index_python.packages import get_package_share_directory 18 | from launch import LaunchDescription 19 | from launch.actions import GroupAction, OpaqueFunction 20 | from launch_pal.arg_utils import read_launch_argument 21 | from controller_manager.launch_utils import generate_load_controller_launch_description 22 | from launch_pal.arg_utils import LaunchArgumentsBase 23 | from launch.actions import DeclareLaunchArgument 24 | from launch_pal.include_utils import include_scoped_launch_py_description 25 | from launch.substitutions import PythonExpression, LaunchConfiguration 26 | from launch_pal.robot_arguments import CommonArgs 27 | from tiago_description.launch_arguments import TiagoArgs 28 | from launch.conditions import ( 29 | LaunchConfigurationNotEquals, 30 | IfCondition, 31 | UnlessCondition 32 | ) 33 | 34 | 35 | @dataclass(frozen=True) 36 | class LaunchArguments(LaunchArgumentsBase): 37 | 38 | base_type: DeclareLaunchArgument = TiagoArgs.base_type 39 | arm_type: DeclareLaunchArgument = TiagoArgs.arm_type 40 | arm_motor_model: DeclareLaunchArgument = TiagoArgs.arm_motor_model 41 | end_effector: DeclareLaunchArgument = TiagoArgs.end_effector 42 | ft_sensor: DeclareLaunchArgument = TiagoArgs.ft_sensor 43 | is_public_sim: DeclareLaunchArgument = CommonArgs.is_public_sim 44 | use_sim_time: DeclareLaunchArgument = CommonArgs.use_sim_time 45 | 46 | 47 | def generate_launch_description(): 48 | 49 | # Create the launch description and populate 50 | ld = LaunchDescription() 51 | launch_arguments = LaunchArguments() 52 | 53 | launch_arguments.add_to_launch_description(ld) 54 | 55 | declare_actions(ld, launch_arguments) 56 | 57 | return ld 58 | 59 | 60 | def declare_actions( 61 | launch_description: LaunchDescription, launch_args: LaunchArguments 62 | ): 63 | # Create the extra configs from the LAs 64 | pkg_share_folder = get_package_share_directory( 65 | "tiago_controller_configuration") 66 | 67 | launch_description.add_action( 68 | OpaqueFunction(function=launch_mobile_base_controller)) 69 | 70 | joint_state_broadcaster = GroupAction( 71 | [ 72 | generate_load_controller_launch_description( 73 | controller_name="joint_state_broadcaster", 74 | controller_params_file=os.path.join( 75 | pkg_share_folder, "config", "joint_state_broadcaster.yaml" 76 | ), 77 | ) 78 | ], 79 | ) 80 | launch_description.add_action(joint_state_broadcaster) 81 | 82 | # Torso controller 83 | torso_controller = GroupAction( 84 | [ 85 | generate_load_controller_launch_description( 86 | controller_name="torso_controller", 87 | controller_params_file=os.path.join( 88 | pkg_share_folder, "config", "torso_controller.yaml" 89 | ), 90 | ) 91 | ], 92 | ) 93 | 94 | launch_description.add_action(torso_controller) 95 | 96 | # Head controller 97 | head_controller = GroupAction( 98 | [ 99 | generate_load_controller_launch_description( 100 | controller_name="head_controller", 101 | controller_params_file=os.path.join( 102 | pkg_share_folder, "config", "head_controller.yaml" 103 | ), 104 | ) 105 | ], 106 | forwarding=False, 107 | ) 108 | 109 | launch_description.add_action(head_controller) 110 | 111 | # Arm controller 112 | arm_controller = GroupAction( 113 | [ 114 | generate_load_controller_launch_description( 115 | controller_name='arm_controller', 116 | controller_params_file=os.path.join( 117 | pkg_share_folder, 'config', 'arm_controller.yaml')) 118 | ], 119 | forwarding=False, 120 | condition=LaunchConfigurationNotEquals("arm_type", "no-arm"), 121 | ) 122 | 123 | launch_description.add_action(arm_controller) 124 | 125 | # Gravity compensation controller 126 | gravity_compensation_controller = include_scoped_launch_py_description( 127 | pkg_name="tiago_controller_configuration", 128 | paths=["launch", "gravity_compensation_controller.launch.py"], 129 | launch_arguments={"arm_motor_model": launch_args.arm_motor_model}, 130 | condition=UnlessCondition(PythonExpression( 131 | [ 132 | "'", 133 | LaunchConfiguration("is_public_sim"), 134 | "' == 'True' or '", 135 | LaunchConfiguration("arm_type"), 136 | "' == 'no-arm'", 137 | ] 138 | ) 139 | ), 140 | ) 141 | 142 | launch_description.add_action(gravity_compensation_controller) 143 | 144 | # FT Sensor 145 | ft_sensor_controller = GroupAction( 146 | [ 147 | generate_load_controller_launch_description( 148 | controller_name="ft_sensor_controller", 149 | controller_params_file=os.path.join( 150 | pkg_share_folder, "config", "ft_sensor_controller.yaml" 151 | ), 152 | ) 153 | ], 154 | forwarding=False, 155 | condition=IfCondition( 156 | PythonExpression( 157 | [ 158 | "'", 159 | LaunchConfiguration("arm_type"), 160 | "' != 'no-arm' and '", 161 | LaunchConfiguration("ft_sensor"), 162 | "' != 'no-ft-sensor'", 163 | ] 164 | ) 165 | ), 166 | ) 167 | 168 | launch_description.add_action(ft_sensor_controller) 169 | 170 | # Configure LA dependant controllers 171 | launch_description.add_action(OpaqueFunction( 172 | function=configure_end_effector)) 173 | 174 | return 175 | 176 | 177 | def launch_mobile_base_controller(context, *args, **kwargs): 178 | 179 | base_type = read_launch_argument("base_type", context) 180 | use_sim_time = read_launch_argument("use_sim_time", context) 181 | is_public_sim = read_launch_argument("is_public_sim", context) 182 | 183 | base_controller_package = base_type + "_controller_configuration" 184 | 185 | mobile_base_controller = include_scoped_launch_py_description( 186 | pkg_name=base_controller_package, 187 | paths=["launch", "mobile_base_controller.launch.py"], 188 | launch_arguments={ 189 | "use_sim_time": use_sim_time, 190 | "is_public_sim": is_public_sim, 191 | } 192 | ) 193 | 194 | return [mobile_base_controller] 195 | 196 | 197 | def configure_end_effector(context, *args, **kwargs): 198 | 199 | end_effector = read_launch_argument("end_effector", context) 200 | end_effector_underscore = end_effector.replace('-', '_') 201 | 202 | if (end_effector == 'no-end-effector'): 203 | return [] 204 | 205 | if "robotiq" in end_effector: 206 | ee_pkg_name = "pal_robotiq_controller_configuration" 207 | ee_launch_file = "robotiq_gripper_controller.launch.py" 208 | else: 209 | ee_pkg_name = f"{end_effector_underscore}_controller_configuration" 210 | ee_launch_file = f"{end_effector_underscore}_controller.launch.py" 211 | 212 | end_effector_controller = include_scoped_launch_py_description( 213 | pkg_name=ee_pkg_name, 214 | paths=['launch', ee_launch_file], 215 | condition=IfCondition( 216 | PythonExpression( 217 | [ 218 | "'", 219 | LaunchConfiguration("arm_type"), 220 | "' != 'no-arm'", 221 | ] 222 | ) 223 | ), 224 | ) 225 | 226 | return [end_effector_controller] 227 | -------------------------------------------------------------------------------- /tiago_controller_configuration/launch/gravity_compensation_controller.launch.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024 PAL Robotics S.L. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | import os 16 | from dataclasses import dataclass 17 | from ament_index_python.packages import get_package_share_directory 18 | from launch import LaunchDescription 19 | from launch.actions import OpaqueFunction, DeclareLaunchArgument, SetLaunchConfiguration 20 | from launch.substitutions import LaunchConfiguration 21 | from launch.actions import GroupAction 22 | from launch import LaunchContext 23 | from launch_pal.arg_utils import read_launch_argument 24 | from launch_pal.arg_utils import LaunchArgumentsBase 25 | from controller_manager.launch_utils import generate_load_controller_launch_description 26 | from launch_pal.param_utils import parse_parametric_yaml 27 | from tiago_description.launch_arguments import TiagoArgs 28 | from launch_pal.robot_arguments import CommonArgs 29 | 30 | 31 | @dataclass(frozen=True) 32 | class LaunchArguments(LaunchArgumentsBase): 33 | arm_motor_model: DeclareLaunchArgument = TiagoArgs.arm_motor_model 34 | side: DeclareLaunchArgument = CommonArgs.side 35 | 36 | 37 | def declare_actions(launch_description: LaunchDescription, launch_args: LaunchArguments): 38 | 39 | launch_description.add_action(OpaqueFunction(function=setup_controller_configuration)) 40 | 41 | gravity_compensation_controller = GroupAction([generate_load_controller_launch_description( 42 | controller_name=LaunchConfiguration("controller_name"), 43 | controller_params_file=LaunchConfiguration("controller_config"), 44 | extra_spawner_args=["--inactive"])]) 45 | 46 | launch_description.add_action(gravity_compensation_controller) 47 | 48 | return 49 | 50 | 51 | def setup_controller_configuration(context: LaunchContext): 52 | 53 | arm_motor_model = read_launch_argument('arm_motor_model', context) 54 | side = read_launch_argument('side', context) 55 | 56 | arm_prefix = "arm" 57 | if side: 58 | arm_prefix = f"arm_{side}" 59 | 60 | controller_name = f"{arm_prefix}_gravity_compensation_controller" 61 | remappings = {"ARM_SIDE_PREFIX": arm_prefix} 62 | 63 | param_file = os.path.join( 64 | get_package_share_directory('tiago_controller_configuration'), 65 | "config", "gravity_compensation_controller_" + arm_motor_model + ".yaml") 66 | 67 | parsed_yaml = parse_parametric_yaml(source_files=[param_file], param_rewrites=remappings) 68 | 69 | return [SetLaunchConfiguration('controller_name', controller_name), 70 | SetLaunchConfiguration('controller_config', parsed_yaml)] 71 | 72 | 73 | def generate_launch_description(): 74 | 75 | # Create the launch description and populate 76 | ld = LaunchDescription() 77 | launch_arguments = LaunchArguments() 78 | 79 | launch_arguments.add_to_launch_description(ld) 80 | 81 | declare_actions(ld, launch_arguments) 82 | 83 | return ld 84 | -------------------------------------------------------------------------------- /tiago_controller_configuration/module/10_default_controllers.yaml: -------------------------------------------------------------------------------- 1 | default_controllers: 2 | launch: "tiago_controller_configuration default_controllers.launch.py 3 | robot_name:=@robot_type@ 4 | arm_motor_model:=@arm_motor_model@ 5 | arm_type:=@arm_type@ 6 | base_type:=@base_type@ 7 | end_effector:=@end_effector@ 8 | ft_sensor:=@ft_sensor@" 9 | finishes: True 10 | -------------------------------------------------------------------------------- /tiago_controller_configuration/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | tiago_controller_configuration 4 | 4.17.2 5 | Configuration and launch files of TIAGo's controllers 6 | Jordi Pages 7 | Jordan Palacios 8 | Noel Jimenez 9 | Bence Magyar 10 | Apache License 2.0 11 | 12 | https://github.com/pal-robotics/tiago_simulation 13 | 14 | ament_cmake_auto 15 | 16 | pal_module_cmake 17 | 18 | controller_manager 19 | diff_drive_controller 20 | omni_drive_controller 21 | force_torque_sensor_broadcaster 22 | joint_state_broadcaster 23 | joint_trajectory_controller 24 | launch 25 | launch_pal 26 | gravity_compensation_controller2 27 | pal_gripper_controller_configuration 28 | pal_hey5_controller_configuration 29 | pal_robotiq_controller_configuration 30 | ros2controlcli 31 | pmb2_controller_configuration 32 | omni_base_controller_configuration 33 | 34 | ament_lint_auto 35 | ament_lint_common 36 | 37 | 38 | ament_cmake 39 | 40 | 41 | -------------------------------------------------------------------------------- /tiago_description/.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | -------------------------------------------------------------------------------- /tiago_description/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.8) 2 | project(tiago_description) 3 | 4 | find_package(ament_cmake_auto REQUIRED) 5 | ament_auto_find_build_dependencies() 6 | 7 | if(pal_module_cmake_FOUND) 8 | pal_register_modules( 9 | module/10_robot_state_publisher.yaml 10 | ) 11 | elseif(DEFINED ENV{PAL_DISTRO}) 12 | message(FATAL_ERROR "The pal_module_cmake package was not found. Modules not registered.") 13 | endif() 14 | 15 | ############# 16 | ## Testing ## 17 | ############# 18 | 19 | if(BUILD_TESTING) 20 | find_package(ament_lint_auto REQUIRED) 21 | ament_lint_auto_find_test_dependencies() 22 | 23 | ament_add_pytest_test(test_xacro test/test_xacro.py TIMEOUT 1000) 24 | add_launch_test(test/test_description.launch.py) 25 | endif() 26 | 27 | # Install Python modules 28 | ament_python_install_package(${PROJECT_NAME}) 29 | 30 | ament_auto_package(INSTALL_TO_SHARE launch meshes robots ros2_control urdf config) 31 | -------------------------------------------------------------------------------- /tiago_description/config/tiago_configuration.yaml: -------------------------------------------------------------------------------- 1 | wheel_model: 2 | description: 'Wheel model' 3 | choices: ['nadia', 'moog'] 4 | default_value: 'moog' 5 | arm_type: 6 | description: 'Arm type' 7 | choices: ['tiago-arm', 'no-arm'] 8 | default_value: 'tiago-arm' 9 | arm_motor_model: 10 | description: 'Arm motor model' 11 | choices: ['parker', 'ilm'] 12 | default_value: 'parker' 13 | laser_model: 14 | description: 'Base laser model' 15 | choices: ['no-laser', 'sick-571', 'sick-561', 'sick-551', 'hokuyo'] 16 | default_value: 'sick-571' 17 | wrist_model: 18 | description: 'Wrist model' 19 | choices: ['wrist-2010', 'wrist-2017'] 20 | default_value: 'wrist-2017' 21 | end_effector: 22 | description: 'End effector model' 23 | choices: ['pal-gripper', 'pal-hey5', 'custom', 'no-end-effector', 'robotiq-2f-85','robotiq-2f-140'] 24 | default_value: 'pal-gripper' 25 | ft_sensor: 26 | description: 'FT sensor model' 27 | choices: ['schunk-ft', 'no-ft-sensor'] 28 | default_value: 'schunk-ft' 29 | has_screen: 30 | description: 'Has screen at torso' 31 | choices: ['False', 'True'] 32 | default_value: 'False' 33 | base_type: 34 | description: 'Base type' 35 | choices: ['pmb2', 'omni_base'] 36 | default_value: 'pmb2' 37 | camera_model: 38 | description: 'Head camera model' 39 | choices: ['orbbec-astra', 'orbbec-astra-pro', 'asus-xtion', 'no-camera'] 40 | default_value: 'orbbec-astra' 41 | -------------------------------------------------------------------------------- /tiago_description/launch/robot_state_publisher.launch.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024 PAL Robotics S.L. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | import os 16 | from pathlib import Path 17 | import tempfile 18 | 19 | from ament_index_python.packages import get_package_share_directory 20 | 21 | from launch import LaunchDescription 22 | from launch.actions import DeclareLaunchArgument, OpaqueFunction, SetLaunchConfiguration 23 | from launch.substitutions import LaunchConfiguration 24 | from launch_ros.actions import Node 25 | from launch_ros.parameter_descriptions import ParameterValue 26 | from launch_param_builder import load_xacro 27 | from launch_pal.arg_utils import read_launch_argument 28 | from launch_pal.arg_utils import LaunchArgumentsBase 29 | from dataclasses import dataclass 30 | from tiago_description.launch_arguments import TiagoArgs 31 | from launch_pal.robot_arguments import CommonArgs 32 | from launch_pal import calibration_utils 33 | 34 | 35 | @dataclass(frozen=True) 36 | class LaunchArguments(LaunchArgumentsBase): 37 | 38 | base_type: DeclareLaunchArgument = TiagoArgs.base_type 39 | arm_type: DeclareLaunchArgument = TiagoArgs.arm_type 40 | end_effector: DeclareLaunchArgument = TiagoArgs.end_effector 41 | ft_sensor: DeclareLaunchArgument = TiagoArgs.ft_sensor 42 | wrist_model: DeclareLaunchArgument = TiagoArgs.wrist_model 43 | camera_model: DeclareLaunchArgument = TiagoArgs.camera_model 44 | laser_model: DeclareLaunchArgument = TiagoArgs.laser_model 45 | has_screen: DeclareLaunchArgument = TiagoArgs.has_screen 46 | 47 | use_sim_time: DeclareLaunchArgument = CommonArgs.use_sim_time 48 | is_public_sim: DeclareLaunchArgument = CommonArgs.is_public_sim 49 | namespace: DeclareLaunchArgument = CommonArgs.namespace 50 | 51 | 52 | def generate_launch_description(): 53 | 54 | # Create the launch description and populate 55 | ld = LaunchDescription() 56 | launch_arguments = LaunchArguments() 57 | 58 | launch_arguments.add_to_launch_description(ld) 59 | 60 | declare_actions(ld, launch_arguments) 61 | 62 | return ld 63 | 64 | 65 | def declare_actions( 66 | launch_description: LaunchDescription, launch_args: LaunchArguments 67 | ): 68 | launch_description.add_action( 69 | OpaqueFunction(function=create_robot_description_param) 70 | ) 71 | 72 | # Using ParameterValue is needed so ROS knows the parameter type 73 | # Otherwise https://github.com/ros2/launch_ros/issues/136 74 | rsp = Node( 75 | package="robot_state_publisher", 76 | executable="robot_state_publisher", 77 | output="both", 78 | parameters=[ 79 | { 80 | "robot_description": ParameterValue( 81 | LaunchConfiguration("robot_description"), value_type=str 82 | ), 83 | } 84 | ], 85 | ) 86 | 87 | launch_description.add_action(rsp) 88 | 89 | return 90 | 91 | 92 | def create_robot_description_param(context, *args, **kwargs): 93 | 94 | xacro_file_path = Path( 95 | os.path.join( 96 | get_package_share_directory("tiago_description"), 97 | "robots", 98 | "tiago.urdf.xacro", 99 | ) 100 | ) 101 | 102 | xacro_input_args = { 103 | "arm_type": read_launch_argument("arm_type", context), 104 | "camera_model": read_launch_argument("camera_model", context), 105 | "end_effector": read_launch_argument("end_effector", context), 106 | "ft_sensor": read_launch_argument("ft_sensor", context), 107 | "laser_model": read_launch_argument("laser_model", context), 108 | "wrist_model": read_launch_argument("wrist_model", context), 109 | "base_type": read_launch_argument("base_type", context), 110 | "has_screen": read_launch_argument("has_screen", context), 111 | "use_sim_time": read_launch_argument("use_sim_time", context), 112 | "is_public_sim": read_launch_argument("is_public_sim", context), 113 | "namespace": read_launch_argument("namespace", context), 114 | } 115 | 116 | calibration_dir = tempfile.TemporaryDirectory() 117 | calibration_dir_path = Path(calibration_dir.name) 118 | 119 | input_dir = Path(get_package_share_directory( 120 | "tiago_description")) / "urdf" / "calibration" 121 | 122 | calibration_xacro_args = calibration_utils.apply_urdf_calibration( 123 | input_dir, calibration_dir_path) 124 | 125 | xacro_input_args.update(calibration_xacro_args) 126 | robot_description = load_xacro(xacro_file_path, xacro_input_args) 127 | 128 | return [SetLaunchConfiguration("robot_description", robot_description)] 129 | -------------------------------------------------------------------------------- /tiago_description/launch/show.launch.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2022 PAL Robotics S.L. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from dataclasses import dataclass 16 | from launch import LaunchDescription 17 | from launch.actions import DeclareLaunchArgument 18 | from launch.substitutions import PathJoinSubstitution, LaunchConfiguration 19 | from launch_pal.include_utils import include_scoped_launch_py_description 20 | from launch_ros.actions import Node 21 | from launch_ros.substitutions import FindPackageShare 22 | from launch_pal.arg_utils import LaunchArgumentsBase 23 | from tiago_description.launch_arguments import TiagoArgs 24 | from launch_pal.robot_arguments import CommonArgs 25 | 26 | 27 | @dataclass(frozen=True) 28 | class LaunchArguments(LaunchArgumentsBase): 29 | 30 | base_type: DeclareLaunchArgument = TiagoArgs.base_type 31 | has_screen: DeclareLaunchArgument = TiagoArgs.has_screen 32 | arm_type: DeclareLaunchArgument = TiagoArgs.arm_type 33 | end_effector: DeclareLaunchArgument = TiagoArgs.end_effector 34 | ft_sensor: DeclareLaunchArgument = TiagoArgs.ft_sensor 35 | wrist_model: DeclareLaunchArgument = TiagoArgs.wrist_model 36 | camera_model: DeclareLaunchArgument = TiagoArgs.camera_model 37 | laser_model: DeclareLaunchArgument = TiagoArgs.laser_model 38 | 39 | use_sim_time: DeclareLaunchArgument = CommonArgs.use_sim_time 40 | is_public_sim: DeclareLaunchArgument = CommonArgs.is_public_sim 41 | namespace: DeclareLaunchArgument = CommonArgs.namespace 42 | 43 | 44 | def generate_launch_description(): 45 | 46 | # Create the launch description and populate 47 | ld = LaunchDescription() 48 | launch_arguments = LaunchArguments() 49 | 50 | launch_arguments.add_to_launch_description(ld) 51 | 52 | declare_actions(ld, launch_arguments) 53 | 54 | return ld 55 | 56 | 57 | def declare_actions( 58 | launch_description: LaunchDescription, launch_args: LaunchArguments 59 | ): 60 | robot_state_publisher = include_scoped_launch_py_description( 61 | pkg_name="tiago_description", 62 | paths=["launch", "robot_state_publisher.launch.py"], 63 | launch_arguments={ 64 | "arm_type": launch_args.arm_type, 65 | "end_effector": launch_args.end_effector, 66 | "ft_sensor": launch_args.ft_sensor, 67 | "wrist_model": launch_args.wrist_model, 68 | "laser_model": launch_args.laser_model, 69 | "camera_model": launch_args.camera_model, 70 | "base_type": launch_args.base_type, 71 | "has_screen": launch_args.has_screen, 72 | "namespace": launch_args.namespace, 73 | "use_sim_time": launch_args.use_sim_time, 74 | "is_public_sim": launch_args.is_public_sim, 75 | }, 76 | ) 77 | 78 | launch_description.add_action(robot_state_publisher) 79 | 80 | start_joint_pub_gui = Node( 81 | package="joint_state_publisher_gui", 82 | executable="joint_state_publisher_gui", 83 | name="joint_state_publisher_gui", 84 | output="screen", 85 | ) 86 | 87 | launch_description.add_action(start_joint_pub_gui) 88 | 89 | rviz_config_file = PathJoinSubstitution( 90 | [FindPackageShare("tiago_description"), "config", "tiago.rviz"] 91 | ) 92 | 93 | start_rviz_cmd = Node( 94 | package="rviz2", 95 | executable="rviz2", 96 | name="rviz2", 97 | arguments=["-d", rviz_config_file], 98 | output="screen", 99 | parameters=[{"use_sim_time": LaunchConfiguration("use_sim_time")}], 100 | ) 101 | launch_description.add_action(start_rviz_cmd) 102 | 103 | return 104 | -------------------------------------------------------------------------------- /tiago_description/meshes/arm/arm_1.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pal-robotics/tiago_robot/fb63df431f35b64f1956504b4fd99d894fdbf6ac/tiago_description/meshes/arm/arm_1.stl -------------------------------------------------------------------------------- /tiago_description/meshes/arm/arm_1_collision.dae: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | VCGLab 6 | VCGLib | MeshLab 7 | 8 | Y_UP 9 | Thu Apr 7 16:05:24 2016 10 | Thu Apr 7 16:05:24 2016 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -0.0233805 0.0458868 -0.008 -0.0497177 -0.0134311 0.0187417 0.055 -0.0328774 -0.049 0.055 -0.0328774 -0.015 0.160975 0.0185 0.00585181 0.158511 0.076 0.00876188 0.175541 0.076 -0.0187704 0.176093 0.019 -0.0406678 0.175541 0.076 -0.0432296 0.0724895 0.0175 -0.0381867 0.0796442 0.0185 -0.0553947 0.145 0.0861179 -0.0664869 0.158511 0.076 -0.0707619 0.160529 0.087459 -0.0250202 0.059 0.0589651 -0.053 0.0840397 -0.0165518 0.00960628 0.052 -0.0379219 -0.012 -0.0438526 0.0190167 0.0242634 0.0351583 -0.0515 0.0308095 0.0748004 -0.0264211 -0.053 0.0751007 -0.0239885 -0.0131377 0.052 0.0534118 -0.012 0.0874382 0.0175 0.00752302 0.136626 0.076 0.0196837 0.122556 0.019 0.0209425 0.17412 0.0185 -0.0155243 0.159247 0.0185 -0.0694625 0.128492 0.076 -0.0828826 0.120177 0.019 -0.0827759 0.0944881 0.0733357 -0.0731073 0.0576163 -0.038805 -0.00881482 -0.0515 -1.67638e-08 -0.008 -0.0233805 -0.0458869 -0.008 -0.0441048 -0.0224725 -0.0114641 0.0351583 -0.0515 -0.008 0.055 0.0577859 -0.049 0.0399666 0.0512325 -0.01 7.45058e-09 0.0475 -0.012 0.0773997 0.074 -0.0510736 0.055 0.0577859 -0.015 -0.0328366 0.0396738 0.0232528 0.00980447 -0.0224887 0.038 0.0683718 -0.0310542 0.0327735 0.10084 0.056 0.0150469 0.0740075 0.0559561 0.0239338 0.0791341 0.074827 0.02135 0.037091 0.0515 0.0308095 0.00316839 0.047001 0.0357843 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -0.177982 0.984009 -0.00697402 -0.237812 0.963911 0.119669 -0.842692 0.516403 -0.152312 -0.881777 0.466992 -0.0662471 -0.978047 0.152647 0.141853 -0.950193 -0.299279 -0.0869844 -0.751764 -0.656968 0.0569536 -0.411207 -0.754788 0.511082 -0.095449 -0.995434 0 -1 0 0 -1 0 0 0.446385 -0.02614 0.894459 -0.162127 0.061769 0.984835 0.850415 0.00982018 0.526021 0.999953 0.00968373 0 0.863158 -0.0143256 -0.504731 0.850456 -0.00100189 -0.526046 -0.216247 0.956351 -0.196545 0.065948 -0.997356 -0.0305391 0.00474282 -0.999926 -0.0112385 0 -1 0 -0.00855223 -0.999899 0.0113567 -0.0141232 -0.999893 0.00389435 -0.180049 0.907754 -0.378899 0.279434 0.665554 -0.692066 0.504301 0.805219 -0.311934 0.606756 0.794888 0 0.49407 0.813941 0.305605 0.162517 0.931419 0.325649 -0.178979 -0.0331194 -0.983295 0.301967 -0.283018 0.910339 0.73543 -0.03199 0.676845 0 0 -1 -0.165526 0.0968169 -0.981442 -0.00618091 -0.00376259 -0.999974 -0.242341 0.00779085 0.97016 0.523069 -0.851966 0.0235053 0.651873 -0.757202 0.0412976 0.0396076 0.0791539 -0.996075 -0.789873 0.0157884 -0.613068 -0.707107 0 -0.707107 -0.707107 0 -0.707107 0.0487493 -0.998684 -0.0159428 0.94279 -0.126817 -0.308326 0.922089 -0.0792356 0.378779 0.363939 -0.0693228 0.928839 0.851797 0.00852017 0.523803 0.996762 -0.0202403 0.0778132 0.0560462 -0.998309 -0.0154543 0.374352 -0.0161601 -0.927146 0.321605 -0.0486849 -0.945622 -0.27889 0.0388875 -0.959535 -0.555026 -0.11583 -0.823729 0.936758 -0.113741 -0.330981 0.492097 -0.87054 0 0.998358 0.0562222 -0.0109519 0.317224 -0.607902 -0.72789 0.313068 -0.61605 -0.722821 -0.0428769 -0.233021 -0.971526 0.277151 -0.947772 -0.157847 -0.91485 -0.403793 0 -0.17484 0.107142 -0.97875 -0.0663036 0.997689 0.0148149 -0.0153014 -0.159577 -0.987067 -0.707107 0 -0.707107 -0.187042 -0.0346114 -0.981742 -0.570128 0.742718 -0.351174 -0.0937972 0.995453 0.0166146 -0.133751 0.990887 -0.0159198 -0.517545 0.855652 0.00262352 -0.491693 0.869834 -0.0403483 0.0948792 -0.904823 -0.415082 -0.104772 0.921569 0.373808 -0.586359 0.810052 0 0.862078 -0.324001 0.389673 -0.320287 -0.10237 0.941773 -0.362028 0.237165 0.901492 -0.334882 -0.491861 0.803696 0.0595299 -0.190824 0.979817 0.655623 -0.754534 -0.0289339 0.827334 0.00347836 0.5617 0.314026 0.0445401 0.948369 0.0335471 -0.2823 0.958739 0.172172 0.0875677 0.981167 -0.141617 0.989698 0.0210262 0.437407 0.87848 -0.192217 -0.0127854 0.970226 0.241863 -0.354125 -0.0591256 0.933327 0.645887 -0.763421 -0.00423183 0.172044 0.0885305 0.981103 0.134995 0.0746568 0.98803 0.0947248 0.0407612 0.994669 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 |

45 0 11 0 38 0 47 1 0 1 40 1 40 2 0 2 31 2 40 3 31 3 17 3 17 4 31 4 1 4 1 5 31 5 33 5 33 6 32 6 1 6 1 7 32 7 18 7 18 8 32 8 34 8 35 9 2 9 39 9 39 10 2 10 3 10 4 11 5 11 23 11 24 12 23 12 43 12 4 13 6 13 5 13 8 14 6 14 7 14 8 15 7 15 26 15 8 16 26 16 12 16 29 17 38 17 11 17 24 18 9 18 10 18 25 19 10 19 28 19 10 20 25 20 4 20 10 21 4 21 24 21 25 22 28 22 26 22 29 23 11 23 27 23 11 24 12 24 27 24 8 25 12 25 11 25 6 26 8 26 13 26 13 27 5 27 6 27 13 28 23 28 5 28 10 29 19 29 14 29 22 30 43 30 44 30 15 31 22 31 44 31 37 32 21 32 16 32 31 33 37 33 33 33 37 34 16 34 33 34 47 35 17 35 41 35 18 36 30 36 42 36 19 37 20 37 30 37 38 38 10 38 14 38 29 39 10 39 38 39 16 40 21 40 3 40 3 41 21 41 39 41 9 42 24 42 22 42 22 43 20 43 9 43 10 44 9 44 19 44 4 45 23 45 24 45 25 46 6 46 4 46 25 47 7 47 6 47 25 48 26 48 7 48 26 49 27 49 12 49 27 50 26 50 28 50 28 51 29 51 27 51 28 52 10 52 29 52 20 53 22 53 15 53 18 54 34 54 30 54 9 55 20 55 19 55 16 56 30 56 34 56 30 57 16 57 3 57 33 58 16 58 34 58 2 59 19 59 30 59 30 60 3 60 2 60 0 61 37 61 31 61 37 62 0 62 47 62 32 63 33 63 34 63 2 64 35 64 14 64 19 65 2 65 14 65 35 66 38 66 14 66 36 67 37 67 47 67 36 68 47 68 46 68 45 69 38 69 36 69 45 70 36 70 46 70 38 71 21 71 36 71 36 72 21 72 37 72 38 73 35 73 39 73 38 74 39 74 21 74 1 75 41 75 17 75 40 76 17 76 47 76 18 77 41 77 1 77 41 78 18 78 42 78 42 79 30 79 15 79 42 80 15 80 44 80 44 81 43 81 45 81 45 82 43 82 23 82 46 83 44 83 45 83 11 84 45 84 13 84 13 85 8 85 11 85 13 86 45 86 23 86 24 87 43 87 22 87 15 88 30 88 20 88 42 89 44 89 46 89 42 90 46 90 47 90 41 91 42 91 47 91

45 |
46 |
47 |
48 |
49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 |
64 | -------------------------------------------------------------------------------- /tiago_description/meshes/arm/arm_1_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pal-robotics/tiago_robot/fb63df431f35b64f1956504b4fd99d894fdbf6ac/tiago_description/meshes/arm/arm_1_color.png -------------------------------------------------------------------------------- /tiago_description/meshes/arm/arm_1_normals.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pal-robotics/tiago_robot/fb63df431f35b64f1956504b4fd99d894fdbf6ac/tiago_description/meshes/arm/arm_1_normals.png -------------------------------------------------------------------------------- /tiago_description/meshes/arm/arm_1_specular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pal-robotics/tiago_robot/fb63df431f35b64f1956504b4fd99d894fdbf6ac/tiago_description/meshes/arm/arm_1_specular.png -------------------------------------------------------------------------------- /tiago_description/meshes/arm/arm_2.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pal-robotics/tiago_robot/fb63df431f35b64f1956504b4fd99d894fdbf6ac/tiago_description/meshes/arm/arm_2.stl -------------------------------------------------------------------------------- /tiago_description/meshes/arm/arm_2_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pal-robotics/tiago_robot/fb63df431f35b64f1956504b4fd99d894fdbf6ac/tiago_description/meshes/arm/arm_2_color.png -------------------------------------------------------------------------------- /tiago_description/meshes/arm/arm_2_normals.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pal-robotics/tiago_robot/fb63df431f35b64f1956504b4fd99d894fdbf6ac/tiago_description/meshes/arm/arm_2_normals.png -------------------------------------------------------------------------------- /tiago_description/meshes/arm/arm_2_specular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pal-robotics/tiago_robot/fb63df431f35b64f1956504b4fd99d894fdbf6ac/tiago_description/meshes/arm/arm_2_specular.png -------------------------------------------------------------------------------- /tiago_description/meshes/arm/arm_3.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pal-robotics/tiago_robot/fb63df431f35b64f1956504b4fd99d894fdbf6ac/tiago_description/meshes/arm/arm_3.stl -------------------------------------------------------------------------------- /tiago_description/meshes/arm/arm_3_collision.dae: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | VCGLab 6 | VCGLib | MeshLab 7 | 8 | Y_UP 9 | Fri Apr 8 11:17:49 2016 10 | Fri Apr 8 11:17:49 2016 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -0.0485471 0.0119658 0.00799999 -0.0642882 0.000500012 -0.248283 -0.0598875 0.0528088 -0.24943 0.00306339 0.0548593 -0.204435 0.00602684 0.0496355 0.00799999 -0.0715576 0.00100001 -0.215231 -0.05 1.15398e-08 0.00799999 -0.0374255 0.0331561 0.00799999 -0.0719771 0.0472508 -0.220457 -0.0540768 0.0472515 -0.261278 -0.0250059 0.0528088 -0.270196 -0.0110019 0.0472524 -0.273216 0.0132972 0.0528088 -0.256888 0.0284032 -0.0411492 0.00799999 0.0177303 0.0467508 0.00799999 0.0374255 0.0331561 0.00799999 -0.0284032 0.0411492 0.00799999 -0.0679892 0.0528088 -0.217592 -0.0201545 0.0583852 -0.222369 -0.00602683 0.0496355 0.00799999 -0.0442728 -0.0232361 0.00799999 -0.0374255 -0.0331561 0.00799999 -0.0644297 -0.0251578 -0.188742 -0.0485471 -0.0119658 0.00799999 -0.0284032 -0.0411492 0.00799999 0.0485471 0.0119658 0.00799999 0.0442728 -0.0232361 0.00799999 0.0485471 -0.0119658 0.00799999 0.0470605 -0.0168911 -0.122 0.00602684 -0.0496354 0.008 -0.00602683 -0.0496354 0.008 0.000466813 -0.0495293 -0.143797 0.0313511 0.0479488 -0.221403 0.0481711 0.0122685 -0.139998 0.0442728 0.0232362 0.00799999 0.0484722 -0.00554659 -0.157892 0.038835 0.0256134 -0.214151 0.0280113 0.00457476 -0.244661 0.0332152 -0.0380496 -0.220925 0.0389846 -0.0347727 -0.190046 0.0297529 -0.046247 -0.199736 -0.0315757 -0.0470374 -0.169533 -0.0462832 0.000500011 -0.266288 -0.0218713 0.00100001 -0.273966 0.00302974 0.000500009 -0.268064 -0.0433873 0.0227714 0.00899999 0.0278352 0.0403262 0.00899999 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -0.896896 0.41385 0.155902 -0.985588 0.119671 0.119563 -0.251418 0.0305274 0.967397 0.133086 0.990849 0.0225086 0.156265 0.987682 -0.00812265 0.24263 0.970073 0.00941603 0.229734 -0.0382184 -0.972503 0.989853 -0.141971 -0.0059405 -0.706481 -0.042064 -0.706481 -0.356928 -0.858738 -0.367657 -0.368617 -0.853372 -0.368617 -0.976228 -0.0330587 -0.21421 -0.882822 -0.430594 -0.187653 -0.995367 0.00183397 0.0961316 -0.883753 0.0641854 -0.463531 -0.925316 0.0696728 -0.372742 -0.74848 0.635218 -0.190463 -0.118715 0.992469 -0.0302091 -0.312337 0.791954 -0.524647 0.196234 0.801556 -0.564801 0.0416501 0.991915 -0.119877 -0.06493 0.991912 -0.109066 0.88829 0.162041 -0.429748 0.963715 -0.263071 -0.045245 -0.0744349 -0.997218 -0.00388122 -0.0215128 -0.99733 -0.0697824 0.060613 0.245912 0.967395 0.23927 0.970736 0.0205327 0.248466 0.968438 0.0198101 0 0.106805 0.99428 -0.0139367 0.0565433 0.998303 0 0.999279 0.0379539 -0.980346 -0.175107 0.0908827 -0.988229 -0.119992 0.0948965 -0.106027 -0.0128739 0.99428 -0.56897 -0.821507 0.0374142 -0.661911 -0.747139 0.0604778 -4.12236e-07 -4.65317e-07 1 -0.167949 0.189575 0.967396 -0.655295 0.739671 0.153218 -0.849433 0.503014 0.159501 -0.839152 0.520136 0.159002 -0.301903 0.051684 -0.951937 -0.300589 0.0511164 -0.952383 -0.187626 0.0599903 -0.980407 0.544993 0.0715093 -0.835385 0.681544 0.0224963 -0.731432 0.0998653 0.0378739 0.99428 0.999808 0.0194097 -0.0025004 0.935015 0.354605 -0.00165021 0.208442 0.143879 0.967394 0.82289 0.568007 0.0148376 0.770382 -0.637248 0.0206433 0.0248103 -0.0171252 0.999546 0.354491 -0.934719 0.025241 0.533635 0.844944 0.0360971 0.600788 0.798615 0.0355891 -0.0297686 0.0784929 0.99647 -0.35246 0.929354 0.109881 -0.111289 0.99279 0.0445323 -0.81968 -0.565786 0.0895054 -0.930443 -0.352874 0.0987738 -3.19369e-07 -2.20445e-07 1 -0.0112905 -0.0215119 0.999705 -0.0544509 -0.0206507 0.998303 0 1.2072e-06 1 -0.354356 -0.934365 0.0373222 0.890384 0.159966 -0.426178 2.40933e-07 0 1 1 0 -0.000451503 3.62845e-07 -1.3761e-07 1 0.935012 -0.354606 0.00274273 0.912021 -0.410144 -0.000460919 0.748381 -0.663007 0.0186384 6.89485e-07 -6.1083e-07 1 0 -1 -0.00069896 0.10295 -0.994677 -0.00446609 0.952391 0.297571 -0.0663568 0.910315 0.413862 -0.0066922 0.959683 -0.141593 -0.242818 0.987456 0.119892 -0.102748 0.678778 -0.292275 -0.673674 0.97301 -0.00960082 -0.230564 0.976858 -0.13169 -0.16854 0.811871 -0.576784 -0.0904804 -0.175446 -0.908187 -0.380019 -0.1996 -0.891131 -0.407487 -0.136866 -0.86024 -0.491178 0.146974 -0.7175 -0.680876 0.00291368 -0.0118212 0.999926 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 |

0 0 45 0 8 0 8 1 6 1 0 1 0 2 6 2 45 2 4 3 3 3 18 3 18 4 3 4 12 4 3 5 32 5 12 5 11 6 44 6 43 6 27 7 28 7 35 7 9 8 42 8 1 8 42 9 41 9 22 9 1 10 42 10 22 10 1 11 5 11 8 11 5 12 1 12 22 12 5 13 6 13 8 13 1 14 2 14 9 14 8 15 2 15 1 15 2 16 8 16 17 16 2 17 17 17 18 17 2 18 10 18 9 18 11 19 10 19 12 19 12 20 10 20 18 20 18 21 10 21 2 21 32 22 37 22 12 22 35 23 28 23 39 23 41 24 31 24 30 24 31 25 41 25 40 25 46 26 14 26 4 26 4 27 14 27 3 27 3 28 14 28 32 28 19 29 46 29 4 29 46 30 19 30 45 30 18 31 19 31 4 31 5 32 22 32 23 32 5 33 23 33 6 33 6 34 23 34 45 34 41 35 24 35 22 35 24 36 21 36 22 36 24 37 29 37 21 37 16 38 7 38 45 38 17 39 7 39 16 39 45 40 7 40 8 40 17 41 8 41 7 41 42 42 9 42 10 42 42 43 10 43 43 43 10 44 11 44 43 44 11 45 12 45 44 45 37 46 44 46 12 46 34 47 46 47 25 47 33 48 25 48 35 48 34 49 25 49 33 49 34 50 15 50 46 50 32 51 15 51 34 51 39 52 13 52 40 52 25 53 46 53 29 53 13 54 29 54 40 54 14 55 46 55 32 55 15 56 32 56 46 56 19 57 16 57 45 57 19 58 17 58 16 58 19 59 18 59 17 59 21 60 20 60 22 60 23 61 22 61 20 61 29 62 20 62 21 62 20 63 29 63 45 63 23 64 20 64 45 64 24 65 30 65 29 65 24 66 41 66 30 66 37 67 32 67 36 67 29 68 27 68 25 68 25 69 27 69 35 69 29 70 26 70 27 70 27 71 26 71 28 71 28 72 26 72 39 72 26 73 13 73 39 73 13 74 26 74 29 74 31 75 29 75 30 75 31 76 40 76 29 76 36 77 32 77 33 77 34 78 33 78 32 78 36 79 35 79 37 79 33 80 35 80 36 80 38 81 44 81 37 81 35 82 38 82 37 82 39 83 38 83 35 83 38 84 39 84 40 84 41 85 38 85 40 85 42 86 38 86 41 86 42 87 43 87 38 87 44 88 38 88 43 88 45 89 29 89 46 89

45 |
46 |
47 |
48 |
49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 |
64 | -------------------------------------------------------------------------------- /tiago_description/meshes/arm/arm_3_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pal-robotics/tiago_robot/fb63df431f35b64f1956504b4fd99d894fdbf6ac/tiago_description/meshes/arm/arm_3_color.png -------------------------------------------------------------------------------- /tiago_description/meshes/arm/arm_3_normals.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pal-robotics/tiago_robot/fb63df431f35b64f1956504b4fd99d894fdbf6ac/tiago_description/meshes/arm/arm_3_normals.png -------------------------------------------------------------------------------- /tiago_description/meshes/arm/arm_3_specular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pal-robotics/tiago_robot/fb63df431f35b64f1956504b4fd99d894fdbf6ac/tiago_description/meshes/arm/arm_3_specular.png -------------------------------------------------------------------------------- /tiago_description/meshes/arm/arm_4.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pal-robotics/tiago_robot/fb63df431f35b64f1956504b4fd99d894fdbf6ac/tiago_description/meshes/arm/arm_4.stl -------------------------------------------------------------------------------- /tiago_description/meshes/arm/arm_4_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pal-robotics/tiago_robot/fb63df431f35b64f1956504b4fd99d894fdbf6ac/tiago_description/meshes/arm/arm_4_collision.stl -------------------------------------------------------------------------------- /tiago_description/meshes/arm/arm_4_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pal-robotics/tiago_robot/fb63df431f35b64f1956504b4fd99d894fdbf6ac/tiago_description/meshes/arm/arm_4_color.png -------------------------------------------------------------------------------- /tiago_description/meshes/arm/arm_4_normals.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pal-robotics/tiago_robot/fb63df431f35b64f1956504b4fd99d894fdbf6ac/tiago_description/meshes/arm/arm_4_normals.png -------------------------------------------------------------------------------- /tiago_description/meshes/arm/arm_4_specular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pal-robotics/tiago_robot/fb63df431f35b64f1956504b4fd99d894fdbf6ac/tiago_description/meshes/arm/arm_4_specular.png -------------------------------------------------------------------------------- /tiago_description/meshes/arm/arm_5-wrist-2010.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pal-robotics/tiago_robot/fb63df431f35b64f1956504b4fd99d894fdbf6ac/tiago_description/meshes/arm/arm_5-wrist-2010.stl -------------------------------------------------------------------------------- /tiago_description/meshes/arm/arm_5-wrist-2017.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pal-robotics/tiago_robot/fb63df431f35b64f1956504b4fd99d894fdbf6ac/tiago_description/meshes/arm/arm_5-wrist-2017.stl -------------------------------------------------------------------------------- /tiago_description/meshes/arm/arm_5_collision-wrist-2010.dae: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | VCGLab 6 | VCGLib | MeshLab 7 | 8 | Y_UP 9 | Fri Apr 8 11:36:03 2016 10 | Fri Apr 8 11:36:03 2016 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -0.0560095 -0.00347675 0.00947676 0.00161033 0.0660705 0.0224633 -0.0385687 -0.0249916 0.158304 0.00895468 -0.0488647 0.177351 0.0116696 0.0552533 0.135901 0.0351697 0.0527178 0.0214259 0.0182917 0.0631052 0.0229375 0.0441234 0.0399774 0.0180597 0.0530331 0.0156898 0.0107575 0.0282007 0.0535731 0.0973136 -0.0291268 -0.0257986 0.176724 -0.0321194 0.0240883 0.173576 0.00534193 -0.0661357 0.0218512 0.000542164 -0.0588545 0.108242 -0.0301042 -0.0419261 0.160774 -0.00907717 -0.0239411 0.189561 -0.0136406 -0.0504551 0.170105 0.054466 -0.00921286 0.00983091 0.0268477 -0.059261 0.0217946 0.0436465 -0.0196301 0.132571 0.0461325 -0.0376623 0.016739 -0.0394506 0.023971 0.154001 -0.0345401 0.0537354 0.0214152 -0.0275655 0.0438715 0.163363 -0.041052 0.0374688 0.096997 -0.015313 0.0505675 0.166589 0.0406946 -0.0393468 0.0777242 0.0313938 -0.0522382 0.0727926 0.0295071 -0.0425489 0.162188 -0.0316513 -0.0481608 0.117059 -0.0163449 -0.0564587 0.113215 0.0460269 0.0145006 0.127259 0.0498183 -0.0135679 0.0756917 -0.0480934 -0.00890549 0.117781 -0.048659 -0.032158 0.0152126 -0.0524975 0.0229353 0.0126262 -0.0102538 0.0590898 0.10079 -0.0163435 0.0635674 0.0217205 0.049387 0.0183456 0.0675194 -0.0110815 0.030729 0.187324 0.0211535 -0.0543077 0.12122 0.0146362 -0.0225282 0.186745 -0.0349699 -0.0532071 0.0207903 -0.0175223 -0.0639367 0.0221045 0.0363887 0.0230592 0.166637 0.0396144 0.039185 0.0995444 0.030424 0.0412353 0.161048 -0.0502362 0.00946436 0.0889365 -0.0303766 0.0523895 0.0792112 0.0168719 0.0259823 0.187064 0.0127023 0.0502209 0.173778 0.0339124 -0.0250991 0.171655 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 0.00514941 0.0374799 -0.999284 -0.00936589 0.119625 -0.992775 0.00764127 0.233704 -0.972278 -0.00215116 0.220239 -0.975444 -0.540122 0.0146265 0.84146 -0.973232 0.00266768 0.229808 -0.837143 -0.358135 0.413438 0.0808872 0.303171 -0.949497 0.900621 -0.422153 0.103286 0.924806 -0.333141 0.183713 0.613306 -0.0334601 0.789136 0.131105 -0.358033 0.924459 -0.00630557 -0.201396 -0.97949 -0.00713082 -0.197855 -0.980205 -0.182964 0.366941 -0.912074 -0.140487 0.987829 0.0667596 0.291347 0.952982 0.0833191 0.823392 0.565171 0.0510594 0.112407 0.323689 -0.939463 0.120432 0.331841 -0.935616 0.776936 0.626288 0.0642902 0.772736 0.627647 0.0945457 -0.551252 0.0195581 0.834109 -0.89006 -0.0246743 0.455174 -0.936413 0.0139489 0.350623 0.748554 -0.662621 0.0245196 -0.0341721 -0.243685 -0.969252 -0.107964 -0.988116 0.109408 -0.0945796 -0.992426 0.078389 -0.116055 -0.989791 0.0827372 -0.609025 -0.538753 0.582094 -0.440915 -0.480422 0.758148 -0.219009 -0.552451 0.80426 0.0536713 -0.250443 -0.966642 0.0956532 -0.307037 -0.946878 0.942221 -0.328171 0.0672613 0.941892 -0.327449 0.0749419 0.961686 -0.269549 0.0500401 0.0163198 0.0414733 0.999006 0.118611 -0.0120025 0.992868 -0.984614 0.104755 0.139861 -0.95369 0.28559 0.0944159 -0.86741 0.496555 0.0321346 0.172324 0.981919 0.0783531 0.94217 0.332102 0.044982 0.933902 0.353256 0.0551137 0.526252 0.849445 0.0387539 -0.871496 0.367964 0.324188 -0.877266 0.460979 0.133799 -0.488236 0.578659 0.653284 -0.581545 0.474858 0.660542 0.799687 -0.597912 0.0547914 0.793049 -0.603592 0.082159 -0.136131 -0.335535 -0.93214 -0.450996 -0.885107 0.114843 -0.516425 -0.84501 0.138792 0.993341 -0.0533888 0.102094 -0.997345 -0.002035 0.0727955 -0.96978 -0.236736 0.0590163 -0.843792 -0.533628 0.0570603 -0.953748 0.28992 0.0794417 -0.76976 0.634458 0.0702271 -0.755443 0.648876 0.0909156 -0.426518 0.900584 0.0838482 0.0258412 0.995366 0.092625 -0.0286354 0.991588 0.126228 0.996591 0.0550581 0.0614401 0.996857 0.0320307 0.0724639 0.997917 0.0283288 0.0579515 0.0913691 0.490689 0.866531 -0.170823 0.694284 0.699135 -0.0216781 0.990979 0.132252 0.0247572 -0.989832 0.140068 0.513327 -0.855167 0.0720033 0.61881 -0.779461 0.0975438 0.159116 -0.982993 0.0916889 0.404915 -0.897447 0.175023 0.137883 -0.982499 0.125238 0.536933 -0.383804 0.751264 0.609798 -0.491333 0.621883 -0.526223 -0.84804 0.0625938 -0.459805 -0.88454 0.0785406 0.725063 0.0343839 0.687824 0.924725 0.349691 0.150334 0.941826 0.327835 0.0740734 0.917368 0.378075 0.124478 -0.93521 -0.344185 0.0831846 -0.89595 -0.434174 0.0936297 -0.90329 -0.420575 0.0847596 -0.990743 0.125593 0.0515298 -0.497873 0.861017 0.103785 -0.383292 0.919684 0.0852547 -0.475364 0.878088 0.0546927 0.688082 0.409927 0.598752 0.527696 0.837197 0.143659 0.660255 0.445145 0.604904 0.358694 0.926551 0.113322 0.304002 -0.950467 0.0647629 0.969788 -0.024578 0.242709 0.970899 -0.0307507 0.237507 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 |

0 0 8 0 17 0 0 1 35 1 8 1 8 2 37 2 1 2 35 3 37 3 8 3 10 4 15 4 39 4 33 5 2 5 21 5 10 6 2 6 14 6 6 7 8 7 1 7 19 8 28 8 26 8 19 9 51 9 28 9 51 10 49 10 41 10 3 11 41 11 15 11 12 12 34 12 17 12 17 13 34 13 0 13 35 14 22 14 37 14 37 15 36 15 1 15 6 16 4 16 9 16 45 17 7 17 5 17 6 18 7 18 8 18 5 19 7 19 6 19 5 20 9 20 45 20 45 21 9 21 46 21 39 22 11 22 10 22 10 23 11 23 2 23 2 24 11 24 21 24 27 25 18 25 20 25 43 26 34 26 12 26 30 27 13 27 16 27 13 28 43 28 12 28 43 29 13 29 30 29 10 30 14 30 16 30 10 31 16 31 15 31 15 32 16 32 3 32 17 33 20 33 12 33 12 34 20 34 18 34 26 35 32 35 19 35 20 36 32 36 26 36 20 37 17 37 32 37 39 38 15 38 49 38 41 39 49 39 15 39 33 40 21 40 47 40 21 41 24 41 47 41 35 42 24 42 22 42 4 43 6 43 1 43 7 44 38 44 8 44 38 45 7 45 45 45 6 46 9 46 5 46 11 47 23 47 21 47 24 48 21 48 23 48 23 49 39 49 25 49 39 50 23 50 11 50 27 51 20 51 26 51 27 52 26 52 28 52 43 53 42 53 34 53 16 54 29 54 30 54 16 55 14 55 29 55 31 56 19 56 32 56 0 57 33 57 47 57 0 58 34 58 33 58 29 59 34 59 42 59 24 60 35 60 47 60 24 61 48 61 22 61 23 62 48 62 24 62 25 63 36 63 37 63 36 64 4 64 1 64 4 65 36 65 25 65 8 66 38 66 17 66 32 67 17 67 38 67 31 68 32 68 38 68 39 69 49 69 50 69 39 70 50 70 25 70 4 71 25 71 50 71 3 72 16 72 13 72 27 73 40 73 18 73 28 74 40 74 27 74 40 75 13 75 12 75 3 76 40 76 28 76 13 77 40 77 3 77 3 78 51 78 41 78 51 79 3 79 28 79 42 80 43 80 29 80 29 81 43 81 30 81 49 82 51 82 44 82 46 83 44 83 31 83 45 84 31 84 38 84 31 85 45 85 46 85 34 86 2 86 33 86 29 87 14 87 2 87 2 88 34 88 29 88 35 89 0 89 47 89 23 90 25 90 48 90 37 91 48 91 25 91 48 92 37 92 22 92 49 93 44 93 46 93 9 94 50 94 46 94 50 95 49 95 46 95 4 96 50 96 9 96 18 97 40 97 12 97 44 98 51 98 31 98 19 99 31 99 51 99

45 |
46 |
47 |
48 |
49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 |
64 | -------------------------------------------------------------------------------- /tiago_description/meshes/arm/arm_6-wrist-2010.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pal-robotics/tiago_robot/fb63df431f35b64f1956504b4fd99d894fdbf6ac/tiago_description/meshes/arm/arm_6-wrist-2010.stl -------------------------------------------------------------------------------- /tiago_description/meshes/arm/arm_6-wrist-2017.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pal-robotics/tiago_robot/fb63df431f35b64f1956504b4fd99d894fdbf6ac/tiago_description/meshes/arm/arm_6-wrist-2017.stl -------------------------------------------------------------------------------- /tiago_description/meshes/arm/arm_6_collision-wrist-2010.dae: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | VCGLab 6 | VCGLib | MeshLab 7 | 8 | Y_UP 9 | Fri Apr 8 14:02:14 2016 10 | Fri Apr 8 14:02:14 2016 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -0.036859 -0.021497 0 -0.038774 -1.69487e-09 0.013937 -0.019152 -0.034535 0.013937 1.73045e-09 -0.039588 0.013937 -0.020373 -0.038062 0 -0.032944 -0.020636 0.013937 0.03341 -0.019242 0.014227 0.019152 -0.034535 0.013937 0.020373 -0.038062 0 -0.032944 0.020636 0.013937 -0.036859 0.021497 0 -1.8215e-09 0.041671 0 -0.020373 0.038062 0 -1.73045e-09 0.039588 0.013937 -0.019152 0.034535 0.013937 0.04733 0.018629 0.015678 0.04733 0.022725 0 0.019152 0.034535 0.013937 0.036859 0.022725 0 0.020373 0.038062 0 0.038774 1.69487e-09 0.020319 0.03341 0.019242 0.014227 -0.041671 -1.8215e-09 0 -0.038774 -1.69487e-09 -0.013937 -0.019152 -0.034535 -0.013937 1.73045e-09 -0.039588 -0.013937 -0.032944 -0.020636 -0.013937 0.036859 -0.022725 0 1.8215e-09 -0.041671 0 0.04733 2.06886e-09 -0.022291 0.04733 -0.018629 -0.015678 0.03341 -0.019242 -0.014227 -0.032944 0.020636 -0.013937 -1.73045e-09 0.039588 -0.013937 -0.019152 0.034535 -0.013937 0.04733 0.018629 -0.015678 0.03341 0.019242 -0.014227 0.019152 0.034535 -0.013937 0.04733 -0.018629 0.015678 0.041671 1.8215e-09 0 0.04733 2.06886e-09 0.022291 0.04733 -0.022725 0 0.038774 1.69487e-09 -0.018953 0 0 0.019322 0.019152 -0.034535 -0.013937 0 0 -0.019322 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -0.956373 -0.21408 0.198796 -0.924961 -0.261316 0.275972 -0.137458 -0.038834 0.989746 -0.168633 -0.951941 0.255679 -0.252484 -0.956972 0.143027 -0.0355387 -0.1347 0.990249 -0.688801 -0.685516 0.235839 -0.690164 -0.684851 0.233778 0.0175231 -0.970177 0.241763 0 -0.967525 0.252774 0.0912315 -0.103838 0.990401 0.168633 -0.951941 0.255679 0.252484 -0.956972 0.143027 0.0355387 -0.1347 0.990249 0.661573 -0.711135 0.237925 0.688489 -0.648067 0.325565 -0.0874386 -0.278441 0.956465 -0.212253 -0.326909 0.920912 -0.956373 0.21408 0.198796 -0.924961 0.261316 0.275971 -0.0998015 0.0990332 0.990067 -0.168633 0.951941 0.255679 -0.252484 0.956972 0.143027 -0.0355387 0.1347 0.990249 -0.688801 0.685516 0.235839 -0.690164 0.684851 0.233778 0.0175231 0.970177 0.241763 0 0.967525 0.252774 -0.0245566 0.295514 0.955023 0.168633 0.951941 0.255679 0.252484 0.956972 0.143027 0.0355387 0.1347 0.990249 0.688489 0.648067 0.325565 0.661573 0.711136 0.237925 -0.212253 0.326909 0.920912 -0.0874386 0.278441 0.956465 -0.956373 -0.21408 -0.198796 -0.924961 -0.261316 -0.275971 -0.0998015 -0.0990332 -0.990067 -0.168633 -0.951941 -0.255679 -0.252484 -0.956972 -0.143027 -0.0355387 -0.1347 -0.990249 -0.688801 -0.685516 -0.235839 -0.690164 -0.684851 -0.233778 0.0175231 -0.970177 -0.241763 0 -0.967525 -0.252774 0.00923595 -0.240937 -0.970497 0.168633 -0.951941 -0.255679 0.252484 -0.956972 -0.143027 0.0355387 -0.1347 -0.990249 0.688489 -0.648067 -0.325565 0.661573 -0.711135 -0.237925 -0.345074 -0.313983 -0.884499 -0.0919974 -0.213247 -0.972657 -0.956373 0.21408 -0.198796 -0.924961 0.261316 -0.275972 -0.137458 0.0388339 -0.989746 -0.168633 0.951941 -0.255679 -0.252484 0.956972 -0.143027 -0.0355387 0.1347 -0.990249 -0.688801 0.685516 -0.235839 -0.690164 0.684851 -0.233778 0.0175231 0.970177 -0.241763 0 0.967525 -0.252774 0.0912314 0.103838 -0.990401 0.168633 0.951941 -0.255679 0.252484 0.956972 -0.143027 0.0355387 0.1347 -0.990249 0.661573 0.711136 -0.237925 0.688489 0.648067 -0.325565 1 0 0 -0.0919974 0.213247 -0.972657 -0.345074 0.313983 -0.884499 1 0 0 1 0 0 0.942197 0.234627 -0.239195 -4.37114e-08 1 -9.05704e-16 1 0 0 1 0 0 0.959865 0.239026 -0.146717 0.268302 0.674582 0.687716 1 0 0 -0.0245566 -0.295514 0.955023 -0.137458 0.038834 0.989746 -0.0998015 -0.0990332 0.990067 0.0912314 0.103838 0.990401 0.0912315 -0.103838 -0.990401 0.00923593 0.240937 -0.970497 -0.0998015 0.0990332 -0.990067 -0.137458 -0.038834 -0.989746 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 |

1 0 22 0 0 0 0 1 5 1 1 1 1 2 5 2 43 2 2 3 4 3 28 3 28 4 3 4 2 4 43 5 2 5 3 5 5 6 0 6 4 6 4 7 2 7 5 7 38 8 6 8 27 8 27 9 41 9 38 9 43 10 7 10 6 10 28 11 8 11 7 11 7 12 3 12 28 12 43 13 3 13 7 13 7 14 8 14 27 14 27 15 6 15 7 15 20 16 6 16 38 16 38 17 40 17 20 17 10 18 22 18 1 18 1 19 9 19 10 19 43 20 14 20 9 20 11 21 12 21 14 21 14 22 13 22 11 22 43 23 13 23 14 23 12 24 10 24 9 24 9 25 14 25 12 25 18 26 21 26 15 26 15 27 16 27 18 27 43 28 20 28 21 28 17 29 19 29 11 29 11 30 13 30 17 30 43 31 17 31 13 31 17 32 21 32 18 32 18 33 19 33 17 33 20 34 40 34 15 34 15 35 21 35 20 35 0 36 22 36 23 36 23 37 26 37 0 37 45 38 24 38 26 38 28 39 4 39 24 39 24 40 25 40 28 40 45 41 25 41 24 41 4 42 0 42 26 42 26 43 24 43 4 43 27 44 31 44 30 44 30 45 41 45 27 45 45 46 42 46 31 46 44 47 8 47 28 47 28 48 25 48 44 48 45 49 44 49 25 49 44 50 31 50 27 50 27 51 8 51 44 51 42 52 29 52 30 52 30 53 31 53 42 53 23 54 22 54 10 54 10 55 32 55 23 55 45 56 23 56 32 56 34 57 12 57 11 57 11 58 33 58 34 58 45 59 34 59 33 59 32 60 10 60 12 60 12 61 34 61 32 61 35 62 36 62 18 62 18 63 16 63 35 63 45 64 37 64 36 64 11 65 19 65 37 65 37 66 33 66 11 66 45 67 33 67 37 67 37 68 19 68 18 68 18 69 36 69 37 69 16 70 15 70 41 70 42 71 36 71 35 71 35 72 29 72 42 72 29 73 35 73 41 73 38 74 41 74 40 74 40 75 41 75 39 75 39 76 20 76 40 76 15 77 40 77 41 77 30 78 29 78 41 78 42 79 39 79 41 79 41 80 29 80 42 80 35 81 16 81 41 81 20 82 43 82 6 82 1 83 43 83 9 83 43 84 5 84 2 84 17 85 43 85 21 85 44 86 45 86 31 86 42 87 45 87 36 87 34 88 45 88 32 88 23 89 45 89 26 89

45 |
46 |
47 |
48 |
49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 |
64 | -------------------------------------------------------------------------------- /tiago_description/meshes/arm/arm_6_collision-wrist-2017.dae: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | VCGLab 6 | VCGLib | MeshLab 7 | 8 | Y_UP 9 | vie may 8 15:05:12 2020 10 | vie may 8 15:05:12 2020 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 0.0681936 -0.0173679 0.0128639 -0.00746197 0.0286788 -0.0164499 0.0165702 0.0286948 -0.0152208 0.0204573 0.0358224 -0.0099891 0.00263461 0.0420429 -0.00683052 -0.0405509 -0.000107661 -0.01082 -0.0168844 0.0372536 -0.0104957 -0.0372761 0.01836 -0.00943817 0.0191851 0.0360475 0.0127481 -0.0300664 0.0288207 0.00970037 -0.0118291 0.0385298 0.0107622 -0.0233925 0.0230628 0.0155293 0.0260441 0.0128071 0.0164997 0.00690605 0.0291913 0.0164448 0.0360682 0.0192062 0.010483 0.068199 0.0087767 0.0198652 0.0681997 0.0191348 0.00962575 0.0681796 0.0215913 -0.00310508 0.0367159 0.0215226 -0.0022553 0.0682021 0.0160292 -0.0140477 0.0682006 0.00759627 -0.0194826 0.0363692 0.0180223 -0.0114774 0.01247 -0.026583 -0.0164761 -0.0194836 -0.0246561 -0.0156337 -0.0305744 0.0022702 -0.0164658 -0.000965222 -0.0394894 -0.0123923 0.0367281 -0.0213941 0.0011006 -0.0382187 -0.0181818 -0.00236548 -0.0310439 -0.0259267 -0.0121758 -0.0198622 -0.0377595 0.00274742 0.00315447 -0.0420929 -0.00146276 0.022164 -0.0354619 -0.00896251 -0.025082 -0.0316344 0.012479 0.0284139 -0.0248337 0.0150393 0.00598486 -0.0394865 0.0125146 -0.0412108 0.000396697 0.0112457 -0.00541975 -0.0264139 0.0164956 -0.0309501 -0.00221375 0.0164694 0.0164276 -0.00530037 0.0165364 0.0681949 -0.0216895 -0.00455524 0.0354006 -0.0178319 0.0129326 0.0682004 -0.00759958 0.0194822 0.0682007 -0.00880459 -0.0198056 0.0138092 -0.00191207 -0.0165615 0.0368247 -0.00514515 0.0207159 0.0369511 -0.00440312 -0.0209401 0.0356307 -0.0182136 -0.0124659 0.0266894 0.0120715 -0.0165245 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 1 2.88274e-05 9.75591e-05 1 -0.000207842 4.69459e-05 1 5.10689e-06 4.05575e-05 1 -0.000425448 2.06347e-05 1 8.54167e-05 4.9658e-06 0.999986 0.00518382 -0.0005787 1 -0.000898037 0.00029765 -0.00132688 0.00176337 -0.999998 0.0507022 0.108724 -0.992778 0.314131 0.26277 -0.91229 0.376322 0.406033 -0.832778 0.0543189 0.571422 -0.818857 0.0418512 0.562662 -0.825627 0.0111749 0.578582 -0.815547 -0.318387 0.279193 -0.905915 -0.300936 0.273664 -0.913535 -0.514217 0.154311 -0.843664 0.707756 0.68785 0.161069 0.705372 0.653504 -0.274559 -0.67685 0.722681 -0.140024 -0.237994 0.971265 -0.00171212 0.652334 0.757377 0.0290016 -0.983654 0.176931 -0.0334615 0.330963 0.943599 0.00917646 -0.471793 0.879708 0.0593837 -0.918476 0.367989 0.144865 0.0618292 0.96778 0.244089 0.373265 0.25419 0.892222 -0.415867 0.157655 0.895656 -0.50949 0.244611 0.824976 -0.303782 0.480651 0.822612 -0.101084 0.361273 0.926965 -0.0158492 0.496371 0.867966 0.17433 0.206857 0.962714 -0.0400875 0.0491038 0.997989 -0.00108171 0.00208718 0.999997 -0.0596084 0.194165 0.979156 0.0205314 0.702873 0.711019 0.00641758 0.679635 0.733522 0.0072361 0.981865 0.189446 0.00268746 0.983838 0.179043 0.0192282 0.8913 -0.453006 -0.0116146 0.935003 -0.354449 -0.00149597 0.541725 -0.840554 -0.0441204 0.232904 -0.971498 0.039041 0.0196756 -0.999044 -0.167304 0.156679 -0.973376 -0.00175457 0.00426221 -0.999989 -0.00246975 -0.00332744 -0.999991 0.175123 -0.0129139 -0.984462 -0.0289071 -0.0427683 -0.998667 -0.0412267 -0.262155 -0.964145 -0.26953 -0.140459 -0.952693 -0.209802 -0.451444 -0.867284 0.296685 -0.4071 -0.863856 0.210525 -0.487306 -0.847474 -0.465792 -0.125515 -0.875948 -0.382324 -0.841816 -0.381018 0.720823 -0.637213 0.272716 0.750071 -0.627842 -0.207864 -0.867199 -0.298382 -0.398665 -0.98979 -0.140067 -0.0263994 0.362466 -0.926681 0.0994021 -0.835113 -0.406228 0.370899 -0.730181 -0.683233 0.00536823 -0.733472 -0.678875 0.0338691 -0.209527 -0.966051 -0.151143 -0.143779 -0.967187 0.209469 -0.221512 -0.874458 0.431573 0.206629 -0.931374 -0.299746 0.616849 -0.766506 0.178792 0.513552 -0.82608 0.23207 0.22761 0.0652051 0.971567 -0.485662 -0.211895 0.848076 0.0532228 -0.248129 0.967264 -0.0928977 -0.363347 0.927011 -0.155688 -0.163191 0.974233 -0.000639227 0.000408229 1 -0.00786011 0.00620097 0.99995 0.0452234 -0.0487233 0.997788 -0.0494308 -0.973294 -0.224178 0.014236 -0.970477 0.240772 0.0436046 -0.955273 0.292492 0.0091941 -0.523658 0.851879 -0.0113247 -0.560868 0.827828 0.0374544 -0.0233616 0.999025 0.0750269 -0.761722 -0.643545 -0.0422036 -0.519597 -0.853368 -0.212678 -0.49618 -0.841768 -0.200345 0.108372 0.973713 -0.170019 -0.501381 0.848358 -0.0187454 0.66427 -0.747258 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 |

16 0 15 0 19 0 19 1 15 1 20 1 15 2 42 2 20 2 39 3 42 3 41 3 41 4 42 4 15 4 19 5 17 5 16 5 39 6 41 6 0 6 1 7 47 7 24 7 2 8 47 8 1 8 21 9 47 9 2 9 21 10 2 10 3 10 3 11 2 11 4 11 4 12 2 12 1 12 4 13 1 13 6 13 6 14 1 14 24 14 6 15 24 15 7 15 7 16 24 16 5 16 8 17 14 17 18 17 18 18 21 18 3 18 6 19 7 19 9 19 6 20 10 20 4 20 3 21 8 21 18 21 35 22 7 22 5 22 4 23 8 23 3 23 10 24 6 24 9 24 9 25 7 25 35 25 4 26 10 26 8 26 8 27 12 27 14 27 35 28 37 28 11 28 35 29 11 29 9 29 9 30 11 30 10 30 10 31 11 31 13 31 10 32 13 32 8 32 12 33 8 33 13 33 13 34 11 34 37 34 12 35 13 35 37 35 15 36 12 36 44 36 16 37 14 37 15 37 15 38 14 38 12 38 14 39 16 39 17 39 17 40 18 40 14 40 19 41 21 41 17 41 17 42 21 42 18 42 47 43 19 43 20 43 47 44 20 44 45 44 45 45 20 45 42 45 45 46 43 46 47 46 24 47 47 47 43 47 43 48 22 48 24 48 22 49 43 49 46 49 22 50 23 50 24 50 22 51 25 51 23 51 23 52 28 52 24 52 23 53 25 53 28 53 22 54 46 54 31 54 22 55 31 55 25 55 28 56 5 56 24 56 28 57 25 57 29 57 33 58 26 58 40 58 31 59 46 59 26 59 5 60 28 60 27 60 35 61 5 61 27 61 34 62 30 62 31 62 27 63 32 63 35 63 28 64 29 64 27 64 27 65 29 65 32 65 25 66 30 66 29 66 30 67 34 67 29 67 29 68 34 68 32 68 25 69 31 69 30 69 31 70 26 70 33 70 31 71 33 71 34 71 33 72 40 72 38 72 32 73 37 73 35 73 34 74 33 74 36 74 34 75 36 75 32 75 32 76 36 76 37 76 36 77 12 77 37 77 12 78 36 78 38 78 38 79 36 79 33 79 39 80 26 80 46 80 0 81 40 81 39 81 39 82 40 82 26 82 40 83 0 83 44 83 44 84 0 84 41 84 44 85 41 85 15 85 39 86 46 86 42 86 42 87 46 87 45 87 45 88 46 88 43 88 12 89 38 89 44 89 40 90 44 90 38 90 47 91 21 91 19 91

45 |
46 |
47 |
48 |
49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 |
64 | -------------------------------------------------------------------------------- /tiago_description/meshes/arm/arm_6_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pal-robotics/tiago_robot/fb63df431f35b64f1956504b4fd99d894fdbf6ac/tiago_description/meshes/arm/arm_6_color.png -------------------------------------------------------------------------------- /tiago_description/meshes/arm/arm_6_normals.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pal-robotics/tiago_robot/fb63df431f35b64f1956504b4fd99d894fdbf6ac/tiago_description/meshes/arm/arm_6_normals.png -------------------------------------------------------------------------------- /tiago_description/meshes/arm/arm_6_specular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pal-robotics/tiago_robot/fb63df431f35b64f1956504b4fd99d894fdbf6ac/tiago_description/meshes/arm/arm_6_specular.png -------------------------------------------------------------------------------- /tiago_description/meshes/head/head_1.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pal-robotics/tiago_robot/fb63df431f35b64f1956504b4fd99d894fdbf6ac/tiago_description/meshes/head/head_1.stl -------------------------------------------------------------------------------- /tiago_description/meshes/head/head_2.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pal-robotics/tiago_robot/fb63df431f35b64f1956504b4fd99d894fdbf6ac/tiago_description/meshes/head/head_2.stl -------------------------------------------------------------------------------- /tiago_description/meshes/torso/torso_fix.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pal-robotics/tiago_robot/fb63df431f35b64f1956504b4fd99d894fdbf6ac/tiago_description/meshes/torso/torso_fix.stl -------------------------------------------------------------------------------- /tiago_description/meshes/torso/torso_lift_collision_neck.dae: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | VCGLab 6 | VCGLib | MeshLab 7 | 8 | Y_UP 9 | Tue Jul 31 14:55:04 2018 10 | Tue Jul 31 14:55:04 2018 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 0.116306 0.167031 2.80514e-05 -0.162286 0.167031 2.80514e-05 0.116306 -0.167031 2.80514e-05 -0.162286 -0.167031 2.80514e-05 0.116306 0.167031 -0.136965 -0.162286 0.167031 -0.136965 0.116306 -0.167031 -0.136965 -0.162286 -0.167031 -0.136965 0.154139 0.0151429 -0.258518 0.154139 0.0135387 -0.164875 0.20898 0.0151429 -0.258518 0.208147 0.00562084 -0.258637 0.205673 -0.0036119 -0.258752 0.201633 -0.0122748 -0.25886 0.19615 -0.0201046 -0.258958 0.18939 -0.0268634 -0.259043 0.181559 -0.0323459 -0.259111 0.172896 -0.0363855 -0.259161 0.163662 -0.0388594 -0.259192 0.154139 -0.0396925 -0.259203 0.144616 -0.0388594 -0.259192 0.135382 -0.0363855 -0.259161 0.126718 -0.0323459 -0.259111 0.118888 -0.0268634 -0.259043 0.112128 -0.0201046 -0.258958 0.106645 -0.0122748 -0.25886 0.102605 -0.0036119 -0.258752 0.100131 0.00562084 -0.258637 0.0992976 0.0151429 -0.258518 0.100131 0.024665 -0.258399 0.102605 0.0338977 -0.258284 0.106645 0.0425606 -0.258175 0.112128 0.0503904 -0.258078 0.118888 0.0571492 -0.257993 0.126718 0.0626317 -0.257925 0.135382 0.0666713 -0.257874 0.144616 0.0691452 -0.257843 0.154139 0.0699783 -0.257833 0.163662 0.0691452 -0.257843 0.172896 0.0666713 -0.257874 0.181559 0.0626317 -0.257925 0.18939 0.0571492 -0.257993 0.19615 0.0503904 -0.258078 0.201633 0.0425606 -0.258175 0.205673 0.0338977 -0.258284 0.208147 0.024665 -0.258399 0.20898 0.0135387 -0.164875 0.208147 0.00401668 -0.164994 0.205673 -0.00521606 -0.165109 0.201633 -0.0138789 -0.165217 0.19615 -0.0217088 -0.165315 0.18939 -0.0284676 -0.1654 0.181559 -0.0339501 -0.165468 0.172896 -0.0379896 -0.165518 0.163662 -0.0404636 -0.165549 0.154139 -0.0412966 -0.16556 0.144616 -0.0404636 -0.165549 0.135382 -0.0379896 -0.165518 0.126718 -0.0339501 -0.165468 0.118888 -0.0284676 -0.1654 0.112128 -0.0217088 -0.165315 0.106645 -0.0138789 -0.165217 0.102605 -0.00521606 -0.165109 0.100131 0.00401668 -0.164994 0.0992976 0.0135387 -0.164875 0.100131 0.0230608 -0.164756 0.102605 0.0322936 -0.164641 0.106645 0.0409564 -0.164532 0.112128 0.0487862 -0.164435 0.118888 0.0555451 -0.16435 0.126718 0.0610276 -0.164282 0.135382 0.0650671 -0.164231 0.144616 0.067541 -0.1642 0.154139 0.0683741 -0.16419 0.163662 0.067541 -0.1642 0.172896 0.0650671 -0.164231 0.181559 0.0610276 -0.164282 0.18939 0.0555451 -0.16435 0.19615 0.0487862 -0.164435 0.201633 0.0409564 -0.164532 0.205673 0.0322936 -0.164641 0.208147 0.0230608 -0.164756 0.239533 0.065273 -7.1004e-06 0.10667 0.065273 -7.1004e-06 0.239533 -0.0655147 -7.1004e-06 0.10667 -0.0655147 -7.1004e-06 0.239533 0.065273 -0.0711048 0.10667 0.065273 -0.0711048 0.239533 -0.0655147 -0.0711048 0.10667 -0.0655147 -0.0711048 0.192278 0.0653564 -0.0291135 0.0794843 0.0653564 -0.0802925 0.192278 -0.0654312 -0.0291135 0.0794843 -0.0654312 -0.0802925 0.2298 0.0653564 -0.0705045 0.117006 0.0653564 -0.121683 0.2298 -0.0654312 -0.0705045 0.117006 -0.0654312 -0.121683 0.099253 0.12518 -0.110892 -0.114298 0.12518 -0.110892 0.099253 -0.12518 -0.110892 -0.114298 -0.12518 -0.110892 0.099253 0.12518 -0.426858 -0.114298 0.12518 -0.426858 0.099253 -0.12518 -0.426858 -0.114298 -0.12518 -0.426858 0.0960942 -0.0287812 -0.177629 -0.111112 -0.0287812 -0.177629 0.0960942 -0.0758813 -0.089416 -0.111112 -0.0758813 -0.089416 0.0960942 -0.116994 -0.224729 -0.111112 -0.116994 -0.224729 0.0960942 -0.164095 -0.136516 -0.111112 -0.164095 -0.136516 0.0960942 0.117043 -0.225481 -0.111112 0.117043 -0.225481 0.0960942 0.167557 -0.139177 -0.111112 0.167557 -0.139177 0.0960942 0.0307392 -0.174968 -0.111112 0.0307392 -0.174968 0.0960942 0.0812523 -0.088664 -0.111112 0.0812523 -0.088664 -0.114975 0.118975 -0.218824 -0.114067 -0.12176 -0.218852 -0.16277 0.118718 -0.130985 -0.161862 -0.122017 -0.131013 -0.0271374 0.119415 -0.171029 -0.0262293 -0.12132 -0.171057 -0.0749317 0.119158 -0.08319 -0.0740236 -0.121577 -0.0832184 0.116163 0.122249 -0.37721 0.0963002 0.122249 -0.37721 0.116163 -0.123428 -0.37721 0.0963002 -0.123428 -0.37721 0.116163 0.122249 -0.426885 0.0963002 0.122249 -0.426885 0.116163 -0.123428 -0.426885 0.0963002 -0.123428 -0.426885 0.0980116 0.122249 -0.314416 0.0773658 0.122249 -0.323591 0.0980116 -0.123428 -0.314416 0.0773658 -0.123428 -0.323591 0.114758 0.122249 -0.38177 0.0941125 0.122249 -0.390945 0.114758 -0.123428 -0.38177 0.0941125 -0.123428 -0.390945 0.115847 0.124315 -0.345639 -0.114297 0.124315 -0.345639 0.115847 -0.124917 -0.345639 -0.114297 -0.124917 -0.345639 0.115847 0.124315 -0.466964 -0.114297 0.124315 -0.466964 0.115847 -0.124917 -0.466964 -0.114297 -0.124917 -0.466964 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 0 0 1 0 0 1 1 0 0 1 0 0 0 1 0 0 1 0 0 0 -1 0 0 -1 0 -1 0 0 -1 0 -1 0 0 -1 0 0 -0.413195 0 0.910643 -0.413195 0 0.910643 0.740885 0 0.671632 0.740885 0 0.671632 0 1 0 0 1 0 0.413191 0 -0.910645 0.413191 0 -0.910645 0 -1 0 0 -1 0 -0.740884 0 -0.671633 -0.740884 0 -0.671633 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 |

82 0 83 0 84 0 85 1 84 1 83 1 82 2 84 2 86 2 88 3 86 3 84 3 82 4 86 4 83 4 87 5 83 5 86 5 89 6 87 6 88 6 86 7 88 7 87 7 89 8 88 8 85 8 84 9 85 9 88 9 89 10 85 10 87 10 83 11 87 11 85 11 90 12 91 12 92 12 93 13 92 13 91 13 90 14 92 14 94 14 96 15 94 15 92 15 90 16 94 16 91 16 95 17 91 17 94 17 97 18 95 18 96 18 94 19 96 19 95 19 97 20 96 20 93 20 92 21 93 21 96 21 97 22 93 22 95 22 91 23 95 23 93 23

45 |
46 |
47 |
48 |
49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 |
64 | -------------------------------------------------------------------------------- /tiago_description/meshes/torso/torso_lift_with_arm.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pal-robotics/tiago_robot/fb63df431f35b64f1956504b4fd99d894fdbf6ac/tiago_description/meshes/torso/torso_lift_with_arm.stl -------------------------------------------------------------------------------- /tiago_description/meshes/torso/torso_lift_without_arm.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pal-robotics/tiago_robot/fb63df431f35b64f1956504b4fd99d894fdbf6ac/tiago_description/meshes/torso/torso_lift_without_arm.stl -------------------------------------------------------------------------------- /tiago_description/module/10_robot_state_publisher.yaml: -------------------------------------------------------------------------------- 1 | robot_state_publisher: 2 | launch: "tiago_description robot_state_publisher.launch.py 3 | robot_name:=@robot_type@ 4 | arm_type:=@arm_type@ 5 | base_type:=@base_type@ 6 | camera_model:=@camera_model@ 7 | end_effector:=@end_effector@ 8 | ft_sensor:=@ft_sensor@ 9 | laser_model:=@laser_model@ 10 | wrist_model:=@wrist_model@" 11 | -------------------------------------------------------------------------------- /tiago_description/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | tiago_description 4 | 4.17.2 5 | This package contains the description (mechanical, kinematic, visual, 6 | etc.) of the TIAGO robot. The files in this package are parsed and used by 7 | a variety of other components. Most users will not interact directly 8 | with this package. 9 | Jordi Pages 10 | Jordan Palacios 11 | Noel Jimenez 12 | Apache License 2.0 13 | 14 | https://github.com/pal-robotics/tiago_simulation 15 | 16 | ament_cmake_auto 17 | ament_cmake_python 18 | 19 | pal_module_cmake 20 | 21 | 22 | 23 | 24 | xacro 25 | robot_state_publisher 26 | pmb2_description 27 | omni_base_description 28 | pal_hey5_description 29 | pal_gripper_description 30 | pal_robotiq_description 31 | launch 32 | launch_ros 33 | launch_pal 34 | launch_param_builder 35 | pal_urdf_utils 36 | 37 | ament_lint_auto 38 | ament_lint_common 39 | launch_testing_ament_cmake 40 | urdf_test 41 | ament_cmake_pytest 42 | 43 | 44 | 45 | ament_cmake 46 | 47 | 48 | -------------------------------------------------------------------------------- /tiago_description/ros2_control/gazebo_controller_manager_cfg.yaml: -------------------------------------------------------------------------------- 1 | /controller_manager: 2 | ros__parameters: 3 | update_rate: 100 # Hz 4 | use_sim_time: true 5 | 6 | -------------------------------------------------------------------------------- /tiago_description/ros2_control/ros2_control.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 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 | $(find tiago_description)/ros2_control/gazebo_controller_manager_cfg.yaml 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | gazebo_ros2_control/GazeboSystem 72 | 73 | 74 | robot_control/RobotControl 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 | -------------------------------------------------------------------------------- /tiago_description/ros2_control/transmissions.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | transmission_interface/SimpleTransmission 26 | 27 | 28 | ${reduction} 29 | ${offset_value} 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | transmission_interface/DifferentialTransmission 39 | 40 | ${act_reduction_1} 41 | 42 | 43 | ${act_reduction_2} 44 | 45 | 46 | ${jnt_reduction_1} 47 | ${number_1_offset} 48 | 49 | 50 | ${jnt_reduction_2} 51 | ${number_2_offset} 52 | 53 | 54 | 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /tiago_description/test/test_description.launch.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2022 PAL Robotics S.L. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from launch_pal.include_utils import include_launch_py_description 16 | from urdf_test.description_test import (generate_urdf_test_description, 17 | TestDescriptionPublished, TestSuccessfulExit) 18 | 19 | # Ignore unused import warnings for the Test Classes 20 | __all__ = ('TestDescriptionPublished', 'TestSuccessfulExit') 21 | 22 | 23 | def generate_test_description(): 24 | return generate_urdf_test_description( 25 | include_launch_py_description( 26 | 'tiago_description', ['launch', 'robot_state_publisher.launch.py']), 27 | ) 28 | -------------------------------------------------------------------------------- /tiago_description/test/test_xacro.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024 PAL Robotics S.L. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from pathlib import Path 16 | 17 | from ament_index_python.packages import get_package_share_directory 18 | from tiago_description.launch_arguments import TiagoArgs 19 | 20 | from urdf_test.xacro_test import define_xacro_test 21 | 22 | xacro_file_path = Path( 23 | get_package_share_directory('tiago_description'), 24 | 'robots', 25 | 'tiago.urdf.xacro', 26 | ) 27 | 28 | arms_args = ( 29 | TiagoArgs.end_effector, 30 | TiagoArgs.wrist_model, 31 | TiagoArgs.ft_sensor 32 | ) 33 | 34 | base_args = ( 35 | TiagoArgs.base_type, 36 | TiagoArgs.wheel_model 37 | ) 38 | 39 | test_xacro_base = define_xacro_test(xacro_file_path, TiagoArgs.arm_type, base_args) 40 | test_xacro_laser = define_xacro_test(xacro_file_path, TiagoArgs.arm_type, arms_args) 41 | test_xacro_camera = define_xacro_test(xacro_file_path, TiagoArgs.arm_type, TiagoArgs.laser_model) 42 | test_xacro_ee = define_xacro_test(xacro_file_path, TiagoArgs.arm_type, TiagoArgs.camera_model) 43 | test_xacro_screen = define_xacro_test(xacro_file_path, TiagoArgs.arm_type, TiagoArgs.has_screen) 44 | -------------------------------------------------------------------------------- /tiago_description/tiago_description/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pal-robotics/tiago_robot/fb63df431f35b64f1956504b4fd99d894fdbf6ac/tiago_description/tiago_description/__init__.py -------------------------------------------------------------------------------- /tiago_description/tiago_description/launch_arguments.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2023 PAL Robotics S.L. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | 16 | from dataclasses import dataclass 17 | from launch.actions import DeclareLaunchArgument as DLA 18 | from launch_pal.arg_utils import parse_launch_args_from_yaml 19 | from ament_index_python.packages import get_package_share_directory 20 | 21 | 22 | @dataclass(frozen=True) 23 | class TiagoArgs: 24 | """This dataclass contains launch arguments for TIAGo.""" 25 | 26 | __robot_name = 'tiago' 27 | __pkg_dir = get_package_share_directory(f"{__robot_name}_description") 28 | __arg_creator = parse_launch_args_from_yaml( 29 | f"{__pkg_dir}/config/{__robot_name}_configuration.yaml") 30 | 31 | base_type: DLA = __arg_creator.get_argument('base_type') 32 | arm_type: DLA = __arg_creator.get_argument('arm_type') 33 | arm_motor_model: DLA = __arg_creator.get_argument('arm_motor_model') 34 | end_effector: DLA = __arg_creator.get_argument('end_effector') 35 | ft_sensor: DLA = __arg_creator.get_argument('ft_sensor') 36 | wrist_model: DLA = __arg_creator.get_argument('wrist_model') 37 | wheel_model: DLA = __arg_creator.get_argument('wheel_model') 38 | laser_model: DLA = __arg_creator.get_argument('laser_model') 39 | camera_model: DLA = __arg_creator.get_argument('camera_model') 40 | has_screen: DLA = __arg_creator.get_argument('has_screen') 41 | -------------------------------------------------------------------------------- /tiago_description/tiago_description/tiago_launch_utils.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2022 PAL Robotics S.L. All rights reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | 16 | def get_tiago_hw_suffix( 17 | arm: str = 'no-arm', 18 | end_effector: str = 'no-ee', 19 | ft_sensor: str = 'no-ft-sensor'): 20 | """ 21 | Generate a substitution that creates a text suffix combining the specified tiago arguments. 22 | 23 | The arguments are read as string 24 | 25 | For instance, the suffix for: arm=tiago-arm, end_effector='pal-gripper', ft_sensor='schunk-ft' 26 | would be '_pal-gripper_schunk-ft' 27 | """ 28 | if arm in ['no-arm']: 29 | suffix = arm 30 | return '_' + suffix 31 | 32 | end_effector = 'no-ee' if end_effector == 'no-end-effector' else end_effector 33 | 34 | components = [] 35 | components.append(end_effector) 36 | 37 | if ft_sensor != 'no-ft-sensor': 38 | components.append(ft_sensor) 39 | 40 | suffix = '_' + '_'.join(components) 41 | return suffix 42 | -------------------------------------------------------------------------------- /tiago_description/urdf/arm/arm.ros2_control.xacro: -------------------------------------------------------------------------------- 1 | 2 | 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 | -------------------------------------------------------------------------------- /tiago_description/urdf/arm/wrist.ros2_control.xacro: -------------------------------------------------------------------------------- 1 | 2 | 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 | -------------------------------------------------------------------------------- /tiago_description/urdf/arm/wrist.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 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 | 0.9 148 | 0.9 149 | 150 | 151 | 0.9 152 | 0.9 153 | 154 | 155 | 0.9 156 | 0.9 157 | 158 | 159 | 160 | 1 161 | 162 | 163 | 1 164 | 165 | 166 | 1 167 | 1 168 | 169 | 170 | 171 | 172 | 173 | -------------------------------------------------------------------------------- /tiago_description/urdf/calibration/camera_extrinsic_calibration.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /tiago_description/urdf/calibration/camera_extrinsic_calibration.urdf.xacro.j2: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 31 | 33 | 34 | 35 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /tiago_description/urdf/calibration/eye_hand_calibration.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 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 | -------------------------------------------------------------------------------- /tiago_description/urdf/calibration/eye_hand_calibration.urdf.xacro.j2: -------------------------------------------------------------------------------- 1 | 2 | 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 | -------------------------------------------------------------------------------- /tiago_description/urdf/end_effector/end_effector.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 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 | 88 | 89 | 90 | 92 | 98 | 104 | 105 | 106 | 107 | 108 | -------------------------------------------------------------------------------- /tiago_description/urdf/head/head.ros2_control.xacro: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /tiago_description/urdf/head/head.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 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 | 0.9 75 | 0.9 76 | 77 | 78 | 79 | 1 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 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | -------------------------------------------------------------------------------- /tiago_description/urdf/torso/torso.ros2_control.xacro: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /tiago_description/urdf/torso/torso.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 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 | Gazebo/DarkGrey 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 | -------------------------------------------------------------------------------- /tiago_robot/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.8) 2 | project(tiago_robot) 3 | find_package(ament_cmake REQUIRED) 4 | ament_package() 5 | -------------------------------------------------------------------------------- /tiago_robot/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | tiago_robot 4 | 4.17.2 5 | Description and controller configuration of TIAGo 6 | Jordan Palacios 7 | Noel Jimenez 8 | Jordi Pages 9 | 10 | https://github.com/pal-robotics/tiago_simulation 11 | 12 | Apache License 2.0 13 | 14 | ament_cmake 15 | 16 | tiago_description 17 | tiago_controller_configuration 18 | tiago_bringup 19 | 20 | 21 | ament_cmake 22 | 23 | 24 | --------------------------------------------------------------------------------