From 0f0e8148efae0d8c7ffcb02d5d04f53abf2258e0 Mon Sep 17 00:00:00 2001
From: vmayoral <v.mayoralv@gmail.com>
Date: Wed, 18 Sep 2013 16:58:00 +0200
Subject: [PATCH] ros-control: recipes added.

A set of packages that include controller interfaces, controller managers,
transmissions, hardware_interfaces and the control_toolbox.

The ros_control packages takes as input the joint state data from your robot's
actuator's encoders and an input set point. It uses a generic control loop
feedback mechanism, typically a PID controller, to control the output,
typically effort, sent to your actuators. ros_control gets more complicated
for physical mechanisms that do not have one-to-one mappings of joint
positions, efforts, etc but theses scenarios are accounted for using
transmissions.
---
 .../ros-control/controller-interface_0.5.7.bb |  9 +++
 .../controller-manager-msgs_0.5.7.bb          |  9 +++
 ...troller_manager_tests-CMakeLists-fix.patch | 33 ++++++++++
 .../controller-manager-tests_0.5.7.bb         | 12 ++++
 .../ros-control/controller-manager_0.5.7.bb   |  9 +++
 ...akeLists-CATKIN_ENABLE_TESTING-patch.patch | 64 +++++++++++++++++++
 .../ros-control/hardware-interface_0.5.7.bb   | 12 ++++
 ...oint-limits-interface-CMakeLists-fix.patch | 42 ++++++++++++
 .../joint-limits-interface_0.5.7.bb           | 12 ++++
 recipes-ros/ros-control/ros-control.inc       |  9 +++
 ...ransmission-interface-comment-gtests.patch | 33 ++++++++++
 .../transmission-interface_0.5.7.bb           | 13 ++++
 12 files changed, 257 insertions(+)
 create mode 100644 recipes-ros/ros-control/controller-interface_0.5.7.bb
 create mode 100644 recipes-ros/ros-control/controller-manager-msgs_0.5.7.bb
 create mode 100644 recipes-ros/ros-control/controller-manager-tests/0001-controller_manager_tests-CMakeLists-fix.patch
 create mode 100644 recipes-ros/ros-control/controller-manager-tests_0.5.7.bb
 create mode 100644 recipes-ros/ros-control/controller-manager_0.5.7.bb
 create mode 100644 recipes-ros/ros-control/hardware-interface/0001-CMakeLists-CATKIN_ENABLE_TESTING-patch.patch
 create mode 100644 recipes-ros/ros-control/hardware-interface_0.5.7.bb
 create mode 100644 recipes-ros/ros-control/joint-limits-interface/0001-joint-limits-interface-CMakeLists-fix.patch
 create mode 100644 recipes-ros/ros-control/joint-limits-interface_0.5.7.bb
 create mode 100644 recipes-ros/ros-control/ros-control.inc
 create mode 100644 recipes-ros/ros-control/transmission-interface/0001-transmission-interface-comment-gtests.patch
 create mode 100644 recipes-ros/ros-control/transmission-interface_0.5.7.bb

diff --git a/recipes-ros/ros-control/controller-interface_0.5.7.bb b/recipes-ros/ros-control/controller-interface_0.5.7.bb
new file mode 100644
index 0000000..1599151
--- /dev/null
+++ b/recipes-ros/ros-control/controller-interface_0.5.7.bb
@@ -0,0 +1,9 @@
+DESCRIPTION = "Interface base class for controllers."
+SECTION = "devel"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://package.xml;beginline=7;endline=7;md5=d566ef916e9dedc494f5f793a6690ba5"
+
+DEPENDS = "roscpp hardware-interface pluginlib"
+
+require ros-control.inc
+
diff --git a/recipes-ros/ros-control/controller-manager-msgs_0.5.7.bb b/recipes-ros/ros-control/controller-manager-msgs_0.5.7.bb
new file mode 100644
index 0000000..0244249
--- /dev/null
+++ b/recipes-ros/ros-control/controller-manager-msgs_0.5.7.bb
@@ -0,0 +1,9 @@
+DESCRIPTION = "Messages and services for the controller manager."
+SECTION = "devel"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://package.xml;beginline=7;endline=7;md5=d566ef916e9dedc494f5f793a6690ba5"
+
+DEPENDS = "message-generation std-msgs"
+
+require ros-control.inc
+
diff --git a/recipes-ros/ros-control/controller-manager-tests/0001-controller_manager_tests-CMakeLists-fix.patch b/recipes-ros/ros-control/controller-manager-tests/0001-controller_manager_tests-CMakeLists-fix.patch
new file mode 100644
index 0000000..7118db5
--- /dev/null
+++ b/recipes-ros/ros-control/controller-manager-tests/0001-controller_manager_tests-CMakeLists-fix.patch
@@ -0,0 +1,33 @@
+From 2a9bdc617eea3334f8859adaa77df2af14b45a31 Mon Sep 17 00:00:00 2001
+From: vmayoral <v.mayoralv@gmail.com>
+Date: Thu, 8 Aug 2013 17:15:31 +0200
+Subject: [PATCH] controller_manager_tests CMakeLists fix
+
+---
+ controller_manager_tests/CMakeLists.txt |   10 ++++++----
+ 1 file changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/controller_manager_tests/CMakeLists.txt b/controller_manager_tests/CMakeLists.txt
+index 1f553fa..95c73cc 100644
+--- a/controller_manager_tests/CMakeLists.txt
++++ b/controller_manager_tests/CMakeLists.txt
+@@ -52,10 +52,12 @@ else()
+   add_executable(dummy_app src/dummy_app.cpp)
+   target_link_libraries(dummy_app ${PROJECT_NAME} ${catkin_LIBRARIES})
+ 
+-  add_executable(cm_test test/cm_test.cpp)
+-  add_dependencies(tests cm_test)
+-  target_link_libraries(cm_test ${GTEST_LIBRARIES} ${catkin_LIBRARIES})
+-  add_rostest(test/cm_test.test)
++  if(CATKIN_ENABLE_TESTING)
++    add_executable(cm_test test/cm_test.cpp)
++    add_dependencies(tests cm_test)
++    target_link_libraries(cm_test ${GTEST_LIBRARIES} ${catkin_LIBRARIES})
++    add_rostest(test/cm_test.test)
++  endif()
+ 
+   # Install
+   install(DIRECTORY include/${PROJECT_NAME}/
+-- 
+1.7.9.5
+
diff --git a/recipes-ros/ros-control/controller-manager-tests_0.5.7.bb b/recipes-ros/ros-control/controller-manager-tests_0.5.7.bb
new file mode 100644
index 0000000..81522be
--- /dev/null
+++ b/recipes-ros/ros-control/controller-manager-tests_0.5.7.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "Controller manager tests."
+SECTION = "devel"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://package.xml;beginline=7;endline=7;md5=d566ef916e9dedc494f5f793a6690ba5"
+
+DEPENDS = "rostest control-toolbox controller-interface controller-manager"
+
+require ros-control.inc
+
+SRC_URI += "file://0001-controller_manager_tests-CMakeLists-fix.patch;striplevel=2;name=patch"
+SRC_URI[patch.md5sum] = "f1c884eed3ab9acc9e22d41de6d1cf3d"
+SRC_URI[patch.sha256sum] = "fef01dd0d9fcd23626416593868dd7afa769c4f68412e5073181d7c619c4492c"
diff --git a/recipes-ros/ros-control/controller-manager_0.5.7.bb b/recipes-ros/ros-control/controller-manager_0.5.7.bb
new file mode 100644
index 0000000..e91ae11
--- /dev/null
+++ b/recipes-ros/ros-control/controller-manager_0.5.7.bb
@@ -0,0 +1,9 @@
+DESCRIPTION = "The controller manager."
+SECTION = "devel"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://package.xml;beginline=7;endline=7;md5=d566ef916e9dedc494f5f793a6690ba5"
+
+DEPENDS = "controller-interface controller-manager-msgs hardware-interface realtime-tools pluginlib"
+
+require ros-control.inc
+
diff --git a/recipes-ros/ros-control/hardware-interface/0001-CMakeLists-CATKIN_ENABLE_TESTING-patch.patch b/recipes-ros/ros-control/hardware-interface/0001-CMakeLists-CATKIN_ENABLE_TESTING-patch.patch
new file mode 100644
index 0000000..8234e73
--- /dev/null
+++ b/recipes-ros/ros-control/hardware-interface/0001-CMakeLists-CATKIN_ENABLE_TESTING-patch.patch
@@ -0,0 +1,64 @@
+From 612e2ac00fa82d160de82b09da67eb41b828ae95 Mon Sep 17 00:00:00 2001
+From: vmayoral <v.mayoralv@gmail.com>
+Date: Thu, 8 Aug 2013 16:02:07 +0200
+Subject: [PATCH] CMakeLists CATKIN_ENABLE_TESTING patch
+
+---
+ hardware_interface/CMakeLists.txt |   34 ++++++++++++++++++----------------
+ 1 file changed, 18 insertions(+), 16 deletions(-)
+
+diff --git a/hardware_interface/CMakeLists.txt b/hardware_interface/CMakeLists.txt
+index 2681794..105421a 100644
+--- a/hardware_interface/CMakeLists.txt
++++ b/hardware_interface/CMakeLists.txt
+@@ -40,29 +40,31 @@ else()
+     INCLUDE_DIRS include
+     )
+ 
+-  catkin_add_gtest(hardware_resource_manager_test  test/hardware_resource_manager_test.cpp)
+-  target_link_libraries(hardware_resource_manager_test ${catkin_LIBRARIES})
++  if(CATKIN_ENABLE_TESTING)
++    catkin_add_gtest(hardware_resource_manager_test  test/hardware_resource_manager_test.cpp)
++    target_link_libraries(hardware_resource_manager_test ${catkin_LIBRARIES})
+ 
+-  catkin_add_gtest(actuator_state_interface_test   test/actuator_state_interface_test.cpp)
+-  target_link_libraries(actuator_state_interface_test ${catkin_LIBRARIES})
++    catkin_add_gtest(actuator_state_interface_test   test/actuator_state_interface_test.cpp)
++    target_link_libraries(actuator_state_interface_test ${catkin_LIBRARIES})
+ 
+-  catkin_add_gtest(actuator_command_interface_test test/actuator_command_interface_test.cpp)
+-  target_link_libraries(actuator_command_interface_test ${catkin_LIBRARIES})
++    catkin_add_gtest(actuator_command_interface_test test/actuator_command_interface_test.cpp)
++    target_link_libraries(actuator_command_interface_test ${catkin_LIBRARIES})
+ 
+-  catkin_add_gtest(joint_state_interface_test      test/joint_state_interface_test.cpp)
+-  target_link_libraries(joint_state_interface_test ${catkin_LIBRARIES})
++    catkin_add_gtest(joint_state_interface_test      test/joint_state_interface_test.cpp)
++    target_link_libraries(joint_state_interface_test ${catkin_LIBRARIES})
+ 
+-  catkin_add_gtest(joint_command_interface_test    test/joint_command_interface_test.cpp)
+-  target_link_libraries(joint_command_interface_test ${catkin_LIBRARIES})
++    catkin_add_gtest(joint_command_interface_test    test/joint_command_interface_test.cpp)
++    target_link_libraries(joint_command_interface_test ${catkin_LIBRARIES})
+ 
+-  catkin_add_gtest(force_torque_sensor_interface_test test/force_torque_sensor_interface_test.cpp)
+-  target_link_libraries(force_torque_sensor_interface_test ${catkin_LIBRARIES})
++    catkin_add_gtest(force_torque_sensor_interface_test test/force_torque_sensor_interface_test.cpp)
++    target_link_libraries(force_torque_sensor_interface_test ${catkin_LIBRARIES})
+ 
+-  catkin_add_gtest(imu_sensor_interface_test       test/imu_sensor_interface_test.cpp)
+-  target_link_libraries(imu_sensor_interface_test ${catkin_LIBRARIES})
++    catkin_add_gtest(imu_sensor_interface_test       test/imu_sensor_interface_test.cpp)
++    target_link_libraries(imu_sensor_interface_test ${catkin_LIBRARIES})
+ 
+-  catkin_add_gtest(robot_hw_test                   test/robot_hw_test.cpp)
+-  target_link_libraries(robot_hw_test ${catkin_LIBRARIES})
++    catkin_add_gtest(robot_hw_test                   test/robot_hw_test.cpp)
++    target_link_libraries(robot_hw_test ${catkin_LIBRARIES})
++  endif()
+ 
+   # Install
+   install(DIRECTORY include/${PROJECT_NAME}/
+-- 
+1.7.9.5
+
diff --git a/recipes-ros/ros-control/hardware-interface_0.5.7.bb b/recipes-ros/ros-control/hardware-interface_0.5.7.bb
new file mode 100644
index 0000000..3851d0d
--- /dev/null
+++ b/recipes-ros/ros-control/hardware-interface_0.5.7.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "Hardware interface base class."
+SECTION = "devel"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://package.xml;beginline=8;endline=8;md5=d566ef916e9dedc494f5f793a6690ba5"
+
+DEPENDS = "roscpp"
+
+require ros-control.inc
+
+SRC_URI += "file://0001-CMakeLists-CATKIN_ENABLE_TESTING-patch.patch;striplevel=2;name=patch"
+SRC_URI[patch.md5sum] = "9001c9c5336587b00b15510445d63100"
+SRC_URI[patch.sha256sum] = "e3708e8f5d974d8d386ea7c361fd568c297bba36c1e5f92ff49565f2fd529131"
diff --git a/recipes-ros/ros-control/joint-limits-interface/0001-joint-limits-interface-CMakeLists-fix.patch b/recipes-ros/ros-control/joint-limits-interface/0001-joint-limits-interface-CMakeLists-fix.patch
new file mode 100644
index 0000000..b7f0bda
--- /dev/null
+++ b/recipes-ros/ros-control/joint-limits-interface/0001-joint-limits-interface-CMakeLists-fix.patch
@@ -0,0 +1,42 @@
+From 1dee61dabbf3b5de2170ca15ecea3ed93d57339d Mon Sep 17 00:00:00 2001
+From: vmayoral <v.mayoralv@gmail.com>
+Date: Sat, 17 Aug 2013 17:40:20 +0200
+Subject: [PATCH] joint-limits-interface CMakeLists fix
+
+---
+ joint_limits_interface/CMakeLists.txt |   16 +++++++++-------
+ 1 file changed, 9 insertions(+), 7 deletions(-)
+
+diff --git a/joint_limits_interface/CMakeLists.txt b/joint_limits_interface/CMakeLists.txt
+index 6e18253..1561b22 100644
+--- a/joint_limits_interface/CMakeLists.txt
++++ b/joint_limits_interface/CMakeLists.txt
+@@ -43,16 +43,18 @@ else()
+       ${urdfdom_LIBRARIES}
+   )
+ 
+-  catkin_add_gtest(joint_limits_interface_test test/joint_limits_interface_test.cpp)
+-  target_link_libraries(joint_limits_interface_test ${catkin_LIBRARIES})
++  if(CATKIN_ENABLE_TESTING)
++    catkin_add_gtest(joint_limits_interface_test test/joint_limits_interface_test.cpp)
++    target_link_libraries(joint_limits_interface_test ${catkin_LIBRARIES})
+ 
+-  catkin_add_gtest(joint_limits_urdf_test      test/joint_limits_urdf_test.cpp)
+-  target_link_libraries(joint_limits_urdf_test ${catkin_LIBRARIES})
++    catkin_add_gtest(joint_limits_urdf_test      test/joint_limits_urdf_test.cpp)
++    target_link_libraries(joint_limits_urdf_test ${catkin_LIBRARIES})
+ 
+-  catkin_add_gtest(joint_limits_rosparam_test  test/joint_limits_urdf_test.cpp)
+-  target_link_libraries(joint_limits_rosparam_test ${catkin_LIBRARIES})
++    catkin_add_gtest(joint_limits_rosparam_test  test/joint_limits_urdf_test.cpp)
++    target_link_libraries(joint_limits_rosparam_test ${catkin_LIBRARIES})
+ 
+-  add_rostest(test/joint_limits_rosparam.test)
++    add_rostest(test/joint_limits_rosparam.test)
++  endif()
+ 
+   # Install
+   install(DIRECTORY include/${PROJECT_NAME}/
+-- 
+1.7.9.5
+
diff --git a/recipes-ros/ros-control/joint-limits-interface_0.5.7.bb b/recipes-ros/ros-control/joint-limits-interface_0.5.7.bb
new file mode 100644
index 0000000..997697b
--- /dev/null
+++ b/recipes-ros/ros-control/joint-limits-interface_0.5.7.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "Interface for enforcing joint limits."
+SECTION = "devel"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://package.xml;beginline=6;endline=6;md5=d566ef916e9dedc494f5f793a6690ba5"
+
+DEPENDS = "rostest roscpp hardware-interface urdfdom"
+
+require ros-control.inc
+
+SRC_URI += "file://0001-joint-limits-interface-CMakeLists-fix.patch;striplevel=2;name=patch"
+SRC_URI[patch.md5sum] = "9001c9c5336587b00b15510445d63100"
+SRC_URI[patch.sha256sum] = "e3708e8f5d974d8d386ea7c361fd568c297bba36c1e5f92ff49565f2fd529131"
diff --git a/recipes-ros/ros-control/ros-control.inc b/recipes-ros/ros-control/ros-control.inc
new file mode 100644
index 0000000..d0102bb
--- /dev/null
+++ b/recipes-ros/ros-control/ros-control.inc
@@ -0,0 +1,9 @@
+SRC_URI = "https://github.com/ros-controls/${ROS_SPN}/archive/${PV}.tar.gz;downloadfilename=${ROS_SP}.tar.gz"
+SRC_URI[md5sum] = "f4d2b3a25817bfd988ac27bcf7ac8876"
+SRC_URI[sha256sum] = "49d869d75ecaa76fecc27bbe043636bbb185d9bb65a1d454e68e77cec9ee1744"
+
+S = "${WORKDIR}/${ROS_SP}/${ROS_BPN}"
+
+inherit catkin
+
+ROS_SPN = "ros_control"
diff --git a/recipes-ros/ros-control/transmission-interface/0001-transmission-interface-comment-gtests.patch b/recipes-ros/ros-control/transmission-interface/0001-transmission-interface-comment-gtests.patch
new file mode 100644
index 0000000..e95717d
--- /dev/null
+++ b/recipes-ros/ros-control/transmission-interface/0001-transmission-interface-comment-gtests.patch
@@ -0,0 +1,33 @@
+From 0f0e92370addf4174e400fe729ad730c93d0299c Mon Sep 17 00:00:00 2001
+From: Victor Mayoral Vilches <v.mayoralv@gmail.com>
+Date: Thu, 15 Aug 2013 12:19:38 +0200
+Subject: [PATCH] transmission interface comment gtests
+
+---
+ transmission_interface/CMakeLists.txt |   10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/transmission_interface/CMakeLists.txt b/transmission_interface/CMakeLists.txt
+index 89b5178..500e146 100644
+--- a/transmission_interface/CMakeLists.txt
++++ b/transmission_interface/CMakeLists.txt
+@@ -85,11 +85,11 @@ else()
+ ## Testing ##
+ #############
+ 
+-  catkin_add_gtest(simple_transmission_test           test/simple_transmission_test.cpp)
+-  catkin_add_gtest(differential_transmission_test     test/differential_transmission_test.cpp)
+-  catkin_add_gtest(four_bar_linkage_transmission_test test/four_bar_linkage_transmission_test.cpp)
+-  catkin_add_gtest(transmission_interface_test        test/transmission_interface_test.cpp)
+-  target_link_libraries(transmission_interface_test ${catkin_LIBRARIES} ${TinyXML_LIBRARIES})
++  #catkin_add_gtest(simple_transmission_test           test/simple_transmission_test.cpp)
++  #catkin_add_gtest(differential_transmission_test     test/differential_transmission_test.cpp)
++  #catkin_add_gtest(four_bar_linkage_transmission_test test/four_bar_linkage_transmission_test.cpp)
++  #catkin_add_gtest(transmission_interface_test        test/transmission_interface_test.cpp)
++  #target_link_libraries(transmission_interface_test ${catkin_LIBRARIES} ${TinyXML_LIBRARIES})
+ 
+ 
+ endif()
+-- 
+1.7.9.5
+
diff --git a/recipes-ros/ros-control/transmission-interface_0.5.7.bb b/recipes-ros/ros-control/transmission-interface_0.5.7.bb
new file mode 100644
index 0000000..32e159e
--- /dev/null
+++ b/recipes-ros/ros-control/transmission-interface_0.5.7.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "Transmission Interface."
+SECTION = "devel"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://package.xml;beginline=8;endline=8;md5=68b329da9893e34099c7d8ad5cb9c940"
+
+DEPENDS = "hardware-interface cmake-modules libtinyxml"
+
+require ros-control.inc
+
+SRC_URI += "file://0001-transmission-interface-comment-gtests.patch;striplevel=2;name=patch2"
+SRC_URI[patch2.md5sum] = "60e27aa262486ba0f8161f8ea7e561e7"
+SRC_URI[patch2.sha256sum] = "f99dac95eccc3ae209a3a35cfab0baa13843933fb8833845b4e067cf58828675"
+
-- 
GitLab