From e10be75d33f89118d705089dc57f75361550642d Mon Sep 17 00:00:00 2001
From: Sam Pfeiffer <sam.pfeiffer@pal-robotics.com>
Date: Mon, 26 Sep 2016 15:49:05 +0200
Subject: [PATCH] Fix gripper controller and add controller launchers for
 follow joint trajectory controllers

---
 ...yaml => joint_trajectory_controllers.yaml} |  0
 .../full_body_position_controllers.launch     | 29 +++++++++++
 .../launch/legs_position_controllers.launch   | 11 ++++
 .../upper_body_position_controllers.launch    | 27 ++++++++++
 .../urdf/gripper/gripper.gazebo.xacro         | 52 +++++++++++++++++++
 .../urdf/gripper/gripper.transmission.xacro   | 25 +++++++++
 6 files changed, 144 insertions(+)
 rename talos_controller_configuration/config/{joint_trajectalosy_controllers.yaml => joint_trajectory_controllers.yaml} (100%)
 create mode 100644 talos_controller_configuration/launch/full_body_position_controllers.launch
 create mode 100644 talos_controller_configuration/launch/legs_position_controllers.launch
 create mode 100644 talos_controller_configuration/launch/upper_body_position_controllers.launch
 create mode 100644 talos_description/urdf/gripper/gripper.gazebo.xacro
 create mode 100644 talos_description/urdf/gripper/gripper.transmission.xacro

diff --git a/talos_controller_configuration/config/joint_trajectalosy_controllers.yaml b/talos_controller_configuration/config/joint_trajectory_controllers.yaml
similarity index 100%
rename from talos_controller_configuration/config/joint_trajectalosy_controllers.yaml
rename to talos_controller_configuration/config/joint_trajectory_controllers.yaml
diff --git a/talos_controller_configuration/launch/full_body_position_controllers.launch b/talos_controller_configuration/launch/full_body_position_controllers.launch
new file mode 100644
index 0000000..53f34d5
--- /dev/null
+++ b/talos_controller_configuration/launch/full_body_position_controllers.launch
@@ -0,0 +1,29 @@
+<launch>
+
+  <rosparam command="load" file="$(find talos_controller_configuration)/config/joint_trajectory_controllers.yaml" />
+
+  <!-- Spawn upper-body joint trajectory controllers -->
+  <node name="upper_body_controllers_spawner"
+        pkg="controller_manager" type="spawner" output="screen"
+        args="torso_controller
+              head_controller
+              left_arm_controller
+              right_arm_controller
+              left_gripper_controller
+              right_gripper_controller
+              left_leg_controller
+              right_leg_controller" />
+
+  <!-- Point head action -->
+  <group ns="head_controller">
+    <node name="point_head_action" pkg="head_action" type="head_action" output="screen" >
+      <rosparam>
+        pan_link:  head_1_link
+        tilt_link: head_2_link
+        success_angle_threshold: 0.01
+      </rosparam>
+    </node>
+  </group>
+
+
+</launch>
diff --git a/talos_controller_configuration/launch/legs_position_controllers.launch b/talos_controller_configuration/launch/legs_position_controllers.launch
new file mode 100644
index 0000000..630ba49
--- /dev/null
+++ b/talos_controller_configuration/launch/legs_position_controllers.launch
@@ -0,0 +1,11 @@
+<launch>
+
+  <rosparam command="load" file="$(find talos_controller_configuration)/config/joint_trajectory_controllers.yaml" />
+
+  <!-- Spawn legs joint trajectory controllers -->
+  <node name="upper_body_controllers_spawner"
+        pkg="controller_manager" type="spawner" output="screen"
+        args="left_leg_controller
+              right_leg_controller" />
+
+</launch>
diff --git a/talos_controller_configuration/launch/upper_body_position_controllers.launch b/talos_controller_configuration/launch/upper_body_position_controllers.launch
new file mode 100644
index 0000000..f2b9dbe
--- /dev/null
+++ b/talos_controller_configuration/launch/upper_body_position_controllers.launch
@@ -0,0 +1,27 @@
+<launch>
+
+  <rosparam command="load" file="$(find talos_controller_configuration)/config/joint_trajectory_controllers.yaml" />
+
+  <!-- Spawn upper-body joint trajectory controllers -->
+  <node name="upper_body_controllers_spawner"
+        pkg="controller_manager" type="spawner" output="screen"
+        args="torso_controller
+              head_controller
+              left_arm_controller
+              right_arm_controller
+              left_gripper_controller
+              right_gripper_controller" />
+
+  <!-- Point head action -->
+  <group ns="head_controller">
+    <node name="point_head_action" pkg="head_action" type="head_action" output="screen" >
+      <rosparam>
+        pan_link:  head_1_link
+        tilt_link: head_2_link
+        success_angle_threshold: 0.01
+      </rosparam>
+    </node>
+  </group>
+
+
+</launch>
diff --git a/talos_description/urdf/gripper/gripper.gazebo.xacro b/talos_description/urdf/gripper/gripper.gazebo.xacro
new file mode 100644
index 0000000..5a1f5e1
--- /dev/null
+++ b/talos_description/urdf/gripper/gripper.gazebo.xacro
@@ -0,0 +1,52 @@
+<?xml version="1.0"?>
+<!--
+
+  Copyright (c) 2016, PAL Robotics, S.L.
+  All rights reserved.
+
+  This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.
+  To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/3.0/ or send a letter to
+  Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
+-->
+<robot xmlns:xacro="http://ros.org/wiki/xacro">
+
+  <!-- MACROS FOR MIMIC JOINTS -->
+  <xacro:macro name="finger_mimics" params="name">
+    <plugin name="mimic_${name}_inner_double_joint" filename="libroboticsgroup_gazebo_mimic_joint_plugin.so">
+      <joint>${name}_joint</joint>
+      <mimicJoint>${name}_inner_double_joint</mimicJoint>
+      <multiplier>1.0</multiplier>
+      <offset>0.0</offset>
+      <hasPID/>
+    </plugin>
+    <plugin name="mimic_${name}_fingertip_1_joint" filename="libroboticsgroup_gazebo_mimic_joint_plugin.so">
+      <joint>${name}_joint</joint>
+      <mimicJoint>${name}_fingertip_1_joint</mimicJoint>
+      <multiplier>-1.0</multiplier>
+      <offset>0.0</offset>
+      <hasPID/>
+    </plugin>
+    <plugin name="mimic_${name}_fingertip_2_joint" filename="libroboticsgroup_gazebo_mimic_joint_plugin.so">
+      <joint>${name}_joint</joint>
+      <mimicJoint>${name}_fingertip_2_joint</mimicJoint>
+      <multiplier>-1.0</multiplier>
+      <offset>0.0</offset>
+      <hasPID/>
+    </plugin>
+    <plugin name="mimic_${name}_motor_single_joint" filename="libroboticsgroup_gazebo_mimic_joint_plugin.so">
+      <joint>${name}_joint</joint>
+      <mimicJoint>${name}_motor_single_joint</mimicJoint>
+      <multiplier>1.0</multiplier>
+      <offset>0.0</offset>
+      <hasPID/>
+    </plugin>
+    <plugin name="mimic_${name}_fingertip_3_joint" filename="libroboticsgroup_gazebo_mimic_joint_plugin.so">
+      <joint>${name}_joint</joint>
+      <mimicJoint>${name}_fingertip_3_joint</mimicJoint>
+      <multiplier>-1.0</multiplier>
+      <offset>0.0</offset>
+      <hasPID/>
+    </plugin>
+  </xacro:macro>
+
+</robot>
\ No newline at end of file
diff --git a/talos_description/urdf/gripper/gripper.transmission.xacro b/talos_description/urdf/gripper/gripper.transmission.xacro
new file mode 100644
index 0000000..86e9439
--- /dev/null
+++ b/talos_description/urdf/gripper/gripper.transmission.xacro
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<!--
+
+  Copyright (c) 2011, PAL Robotics, S.L.
+  All rights reserved.
+
+  This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.
+  To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/3.0/ or send a letter to
+  Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
+-->
+<robot xmlns:xacro="http://ros.org/wiki/xacro">
+
+  <xacro:macro name="gripper_transmission" params="name reduction" >
+    <transmission name="${name}_trans">
+      <type>transmission_interface/SimpleTransmission</type>
+      <actuator name="${name}_motor" >
+        <mechanicalReduction>${reduction}</mechanicalReduction>
+      </actuator>
+      <joint name="${name}_joint" >
+        <hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
+      </joint>
+    </transmission>
+  </xacro:macro>
+
+</robot>
\ No newline at end of file
-- 
GitLab