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