diff --git a/FRILibrary/DESCR b/FRILibrary/DESCR new file mode 100644 index 0000000000000000000000000000000000000000..5ef75ea21f6dd2953a9a2be02013d5a1c681d9b1 --- /dev/null +++ b/FRILibrary/DESCR @@ -0,0 +1,23 @@ +The Fast Research Interface Library intends to provide a simple user +interface to the KUKA Light-Weight Robot IV and hides all +communication and set-up issues behind interface. It is only an +interface and it does not contain any control functionalities. Without +much installation efforts, access to different controller interfaces +of the KUKA system is provided: + + Joint position controller, + Cartesian impedance controller, and + Joint position controller. + +The Fast Research Interface Library runs on a remote PC node with is +connected to the KRC (KUKA Robot Controller) via an Ethernet +connection. In intervals of 1 to 100 milliseconds, UDP packages are +periodically sent from the KRC unit to the remote host. These packages +contain a complete set of robot control and status data (e.g., joint +positions, joint torques, drive FRIDriveTemperatures, etc.; cf. FRI +User Documentation). Users become able to set-up own control +architectures and/or application-specific controllers for the +light-weight arm as it is often desired at research institutions. + +KRL files (to be installed on the KRC) are installed in +${PREFIX}/share/FRILibrary diff --git a/FRILibrary/Makefile b/FRILibrary/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..265fb89d2423962812c91aeac6fb8614f8a59691 --- /dev/null +++ b/FRILibrary/Makefile @@ -0,0 +1,63 @@ +# robotpkg Makefile for: hardware/FRILibrary +# Created: Matthieu Herrb on Mon, 23 May 2016 +# + +DISTNAME= fril +VERSION= 1.2 +PKGNAME= FRILibrary-${VERSION} +DIST_SUBDIR= frilib-${VERSION} +EXTRACT_SUFX= .zip +MASTER_SITES= http://cs.stanford.edu/people/tkr/fri/download/ +HOMEPAGE= http://cs.stanford.edu/people/tkr/fri/html/index.html +CATEGORIES= hardware + +MAINTAINER= openrobots@laas.fr +COMMENT= C++ Library to interface the KUKA Light Weight Robot IV +LICENSE= apache-2.0 + +WRKSRC= ${WRKDIR}/FRILibrary + +BUILD_DIRS= Linux + +include ../../mk/robotpkg.prefs.mk + +ifeq (${MACHINE_ARCH},x86_64) + arch= x64 +else ifeq (${MACHINE_ARCH},i386) + arch= x86 +else + PKG_FAIL_REASON= "Architecture not supported" +endif + +PKG_SUPPORTED_OPTIONS+= debug +PKG_OPTION_DESCR.debug= Compile in debugging mode +# do not remove the newline below build= debug ! +define PKG_OPTION_SET.debug + build= debug + +endef +PKG_OPTION_UNSET.debug:= build= "release" + +BUILD_TARGET= all_${build}_${arch} + +CPPFLAGS+= -DPREFIX="${PREFIX}" + +do-install: + ${INSTALL_DATA_DIR} ${PREFIX}/include/FRILibrary + cd ${WRKSRC}/include && \ + ${PAX} -rwp ma . ${PREFIX}/include/FRILibrary + cd ${WRKSRC}/Linux/${arch}/${build}/ && \ + ${PAX} -rwp ma bin lib ${PREFIX} + ${INSTALL_DATA_DIR} ${PREFIX}/share/FRILibrary/KRL + cd ${WRKSRC}/KRL && \ + ${PAX} -rwp ma . ${PREFIX}/share/FRILibrary/KRL + ${INSTALL_DATA_DIR} ${PREFIX}/share/FRILibrary/conf + cd ${WRKSRC}/etc && \ + ${PAX} -rwp ma . ${PREFIX}/etc + +NO_CONFIGURE= yes + +include ../../archivers/pax/depend.mk +include ../../pkgtools/install-sh/depend.mk +include ../../mk/language/c++.mk +include ../../mk/robotpkg.mk diff --git a/FRILibrary/PLIST b/FRILibrary/PLIST new file mode 100644 index 0000000000000000000000000000000000000000..b6c9d3c10e318abb0589e9b03c8c3f2e9c8930cd --- /dev/null +++ b/FRILibrary/PLIST @@ -0,0 +1,36 @@ +@comment Mon May 23 17:04:40 CEST 2016 +bin/FastResearchInterfaceTest +bin/LWRCartImpedanceControlExample +bin/LWRJointImpedanceControlExample +bin/LWRJointPositionControlExample +bin/LWRLoggingExample +etc/980039-FRI-Driver.init +include/FRILibrary/Console.h +include/FRILibrary/DataLogging.h +include/FRILibrary/Doxygen.h +include/FRILibrary/FRICommunication.h +include/FRILibrary/FastResearchInterface.h +include/FRILibrary/FastResearchInterfaceTest.h +include/FRILibrary/InitializationFileEntry.h +include/FRILibrary/LWRBaseControllerInterface.h +include/FRILibrary/LWRCartImpedanceController.h +include/FRILibrary/LWRJointImpedanceController.h +include/FRILibrary/LWRJointPositionController.h +include/FRILibrary/LinuxAbstraction.h +include/FRILibrary/MACOSAbstraction.h +include/FRILibrary/OSAbstraction.h +include/FRILibrary/QNXAbstraction.h +include/FRILibrary/TypeIRML.h +include/FRILibrary/TypeIRMLDecision.h +include/FRILibrary/TypeIRMLInputParameters.h +include/FRILibrary/TypeIRMLMath.h +include/FRILibrary/TypeIRMLOutputParameters.h +include/FRILibrary/TypeIRMLPolynomial.h +include/FRILibrary/TypeIRMLProfiles.h +include/FRILibrary/TypeIRMLVector.h +include/FRILibrary/UDPSocket.h +include/FRILibrary/WindowsAbstraction.h +lib/libFastResearchInterfaceLibrary.a +lib/libTypeIRML.a +share/FRILibrary/KRL/FRIControl.dat +share/FRILibrary/KRL/FRIControl.src diff --git a/FRILibrary/depend.mk b/FRILibrary/depend.mk new file mode 100644 index 0000000000000000000000000000000000000000..55bf51fbe9560580e5b19149fb26788717213a28 --- /dev/null +++ b/FRILibrary/depend.mk @@ -0,0 +1,30 @@ +# robotpkg depend.mk for: hardware/FRILibrary +# Created: Matthieu Herrb on Mon, 23 May 2016 +# + +DEPEND_DEPTH:= ${DEPEND_DEPTH}+ +FRILIBRARY_DEPEND_MK:= ${FRILIBRARY_DEPEND_MK}+ + +ifeq (+,${DEPEND_DEPTH}) + DEPEND_PKG+= FRILibrary +endif + +ifeq (+,${FRILIBRARTY_DEPEND_MK)) + +DEPEND_USE+= FRILibrary + +DEPEND_API.FRILibrary?= FRILibrary>=1.2 +DEPEND_DIR.FRILibrary?= ../../wip/FRILibary + +SYSTEM_SEARCH.FRILibrary=\ + include/FRILibrary/FastResearchInterface.h \ + lib/libFastResearchInterfaceLibrary.a \ + bin/FastResearchInterfaceTest + +INCLUDE_DIRS.FRILibrary= include/FRILibrary +LIBRARY_DIRS.FRILibrary= lib +RPATH_DIRS.FRILibrary=lib + +endif + +DEPEND_DEPTH:= ${DEPEND_DEPTH:+=} diff --git a/FRILibrary/distinfo b/FRILibrary/distinfo new file mode 100644 index 0000000000000000000000000000000000000000..61e34be8cd5dd080f0d32e2463bb6cf4e06f5d13 --- /dev/null +++ b/FRILibrary/distinfo @@ -0,0 +1,12 @@ +SHA1 (frilib-1.2/fril.zip) = a876c225b464ffa25a0dcbae8783eb84e5d06132 +RMD160 (frilib-1.2/fril.zip) = b23957503feee5c16e610eb4fae65d49760fcdc2 +Size (frilib-1.2/fril.zip) = 997218 bytes +SHA1 (patch-aa) = 5922a171eecc767859b565cd01c00b94fc0a3321 +SHA1 (patch-ab) = 7313d58b0a215b7b6ddb84c9b0187191f300fe7e +SHA1 (patch-ac) = 451b9b1e8c534747af7f75bbc894ac6d81450fbf +SHA1 (patch-ad) = c5b88b1b2ed9605d0ddff59e06b400d7af398c76 +SHA1 (patch-ae) = 2540ae5fe484aaa59b610b7bcd74659bec1f2bbb +SHA1 (patch-af) = 8c230783e5ffcaf8194738ab371a32485eef892b +SHA1 (patch-ag) = 34c2a6973f17861182555f3c295732685730c36f +SHA1 (patch-ah) = 4379946c9efaae50f9935ccd6d4acdfb6e5840c6 +SHA1 (patch-ai) = 02d8aaee1583ff4da2c81ae4673bd70181afd4ae diff --git a/FRILibrary/patches/patch-aa b/FRILibrary/patches/patch-aa new file mode 100644 index 0000000000000000000000000000000000000000..279537d6f83f077752b9e1aee7d78e7abdc35936 --- /dev/null +++ b/FRILibrary/patches/patch-aa @@ -0,0 +1,11 @@ +--- ./etc/980039-FRI-Driver.init.orig 2011-11-19 21:07:18.000000000 +0100 ++++ ./etc/980039-FRI-Driver.init 2016-05-23 17:57:02.808782000 +0200 +@@ -16,5 +16,5 @@ + + [Logging] + NumberOfLoggingFileEntries=60000 +-LoggingPath=/home/lwrcontrol/output +-LoggingFileName=LWR-Scope.dat +\ No newline at end of file ++LoggingPath=/tmp ++LoggingFileName=LWR-Scope.dat diff --git a/FRILibrary/patches/patch-ab b/FRILibrary/patches/patch-ab new file mode 100644 index 0000000000000000000000000000000000000000..a6b2cb9b3b39b93cc5ce41ece2736be65227c2e4 --- /dev/null +++ b/FRILibrary/patches/patch-ab @@ -0,0 +1,11 @@ +--- ./src/FastResearchInterfaceTest/FastResearchInterfaceTest.cpp.orig 2014-12-03 09:27:36.000000000 +0100 ++++ ./src/FastResearchInterfaceTest/FastResearchInterfaceTest.cpp 2016-05-23 17:53:38.860953000 +0200 +@@ -108,7 +108,7 @@ + #ifdef __LINUX__ + fprintf(stdout, "You may need superuser permission to run this program.\n"); + fflush(stdout); +- FRI = new FastResearchInterface("/home/torsten/etc/980039-FRI-Driver.init"); ++ FRI = new FastResearchInterface(PREFIX "/etc/980039-FRI-Driver.init"); + #endif + + #ifdef __MACOS__ diff --git a/FRILibrary/patches/patch-ac b/FRILibrary/patches/patch-ac new file mode 100644 index 0000000000000000000000000000000000000000..1ad5de85fa25e919a16b2a5402f41e8efde28718 --- /dev/null +++ b/FRILibrary/patches/patch-ac @@ -0,0 +1,11 @@ +--- ./src/LWRGettingStartedExamples/LWRCartImpedanceControlExample.cpp.orig 2014-12-03 09:27:36.000000000 +0100 ++++ ./src/LWRGettingStartedExamples/LWRCartImpedanceControlExample.cpp 2016-05-23 17:54:55.458384000 +0200 +@@ -91,7 +91,7 @@ + + LWRCartImpedanceController *Robot; + +- Robot = new LWRCartImpedanceController("/home/lwrcontrol/etc/980039-FRI-Driver.init"); ++ Robot = new LWRCartImpedanceController(PREFIX "/etc/980039-FRI-Driver.init"); + + fprintf(stdout, "RobotCartImpedanceController object created. Starting the robot...\n"); + diff --git a/FRILibrary/patches/patch-ad b/FRILibrary/patches/patch-ad new file mode 100644 index 0000000000000000000000000000000000000000..7f548fa2e660e0b65492757f8dd5de8300188949 --- /dev/null +++ b/FRILibrary/patches/patch-ad @@ -0,0 +1,11 @@ +--- ./src/LWRGettingStartedExamples/LWRJointImpedanceControlExample.cpp.orig 2014-12-03 09:27:36.000000000 +0100 ++++ ./src/LWRGettingStartedExamples/LWRJointImpedanceControlExample.cpp 2016-05-23 18:56:00.196563000 +0200 +@@ -81,7 +81,7 @@ + + LWRJointImpedanceController *Robot; + +- Robot = new LWRJointImpedanceController("/home/lwrcontrol/etc/980039-FRI-Driver.init"); ++ Robot = new LWRJointImpedanceController(PREFIX "/etc/980039-FRI-Driver.init"); + + fprintf(stdout, "RobotJointImpedanceController object created. Starting the robot...\n"); + diff --git a/FRILibrary/patches/patch-ae b/FRILibrary/patches/patch-ae new file mode 100644 index 0000000000000000000000000000000000000000..d60402726608c38cd12b677537c548670f5b3ae3 --- /dev/null +++ b/FRILibrary/patches/patch-ae @@ -0,0 +1,11 @@ +--- ./src/LWRGettingStartedExamples/LWRJointPositionControlExample.cpp.orig 2014-12-03 09:27:36.000000000 +0100 ++++ ./src/LWRGettingStartedExamples/LWRJointPositionControlExample.cpp 2016-05-23 17:55:43.250402000 +0200 +@@ -81,7 +81,7 @@ + + LWRJointPositionController *Robot; + +- Robot = new LWRJointPositionController("/home/lwrcontrol/etc/980039-FRI-Driver.init"); ++ Robot = new LWRJointPositionController(PREFIX "/etc/980039-FRI-Driver.init"); + + fprintf(stdout, "RobotJointPositionController object created. Starting the robot...\n"); + diff --git a/FRILibrary/patches/patch-af b/FRILibrary/patches/patch-af new file mode 100644 index 0000000000000000000000000000000000000000..97ce4c56ba189bae6eb1d31e054b1c512a9af068 --- /dev/null +++ b/FRILibrary/patches/patch-af @@ -0,0 +1,11 @@ +--- ./src/LWRGettingStartedExamples/LWRLoggingExample.cpp.orig 2014-12-03 09:27:36.000000000 +0100 ++++ ./src/LWRGettingStartedExamples/LWRLoggingExample.cpp 2016-05-23 17:56:15.514740000 +0200 +@@ -87,7 +87,7 @@ + + LWRJointPositionController *Robot; + +- Robot = new LWRJointPositionController("/home/lwrcontrol/etc/980039-FRI-Driver.init"); ++ Robot = new LWRJointPositionController(PREFIX "/etc/980039-FRI-Driver.init"); + + fprintf(stdout, "RobotJointPositionController object created. Starting the robot...\n"); + diff --git a/FRILibrary/patches/patch-ag b/FRILibrary/patches/patch-ag new file mode 100644 index 0000000000000000000000000000000000000000..fdd3e9dbe1e3fae961c8c5dfc975f8de736a0d59 --- /dev/null +++ b/FRILibrary/patches/patch-ag @@ -0,0 +1,17 @@ +--- ./src/FastResearchInterfaceLibrary/FastResearchInterface.cpp.orig 2014-12-03 09:27:36.000000000 +0100 ++++ ./src/FastResearchInterfaceLibrary/FastResearchInterface.cpp 2016-05-23 18:26:01.337261000 +0200 +@@ -240,12 +240,12 @@ + } + else + { +- sprintf(this->LoggingPath, ".%s\0", OS_FOLDER_SEPARATOR); ++ sprintf(this->LoggingPath, ".%s", OS_FOLDER_SEPARATOR); + } + + if (strlen(this->LoggingFileName) == 0) + { +- sprintf(this->LoggingFileName, "FRI.dat\0"); ++ sprintf(this->LoggingFileName, "FRI.dat"); + } + + this->DataLogger = new DataLogging( this->RobotName diff --git a/FRILibrary/patches/patch-ah b/FRILibrary/patches/patch-ah new file mode 100644 index 0000000000000000000000000000000000000000..2b951801e8f4d7ecdbf9b7a921bccda559b3c55d --- /dev/null +++ b/FRILibrary/patches/patch-ah @@ -0,0 +1,11 @@ +--- ./src/FastResearchInterfaceLibrary/UDPSocket.cpp.orig 2014-12-03 09:27:36.000000000 +0100 ++++ ./src/FastResearchInterfaceLibrary/UDPSocket.cpp 2016-05-23 18:27:33.082396000 +0200 +@@ -157,7 +157,7 @@ + } + else + { +- fprintf(stderr, "ERROR: Data size incorrect (received: %d, expected %d)\n", DataReceived, sizeof(FRIDataReceivedFromKRC)); ++ fprintf(stderr, "ERROR: Data size incorrect (received: %d, expected %zu)\n", DataReceived, sizeof(FRIDataReceivedFromKRC)); + fflush(stderr); + } + } diff --git a/FRILibrary/patches/patch-ai b/FRILibrary/patches/patch-ai new file mode 100644 index 0000000000000000000000000000000000000000..a14b2618679fae19394c387a1783ee9166d156e1 --- /dev/null +++ b/FRILibrary/patches/patch-ai @@ -0,0 +1,19 @@ +--- Linux/Makefile.global.orig 2013-10-30 09:28:32.000000000 +0100 ++++ Linux/Makefile.global 2016-05-23 18:47:54.687506000 +0200 +@@ -80,13 +80,14 @@ + DEBUG_EXE_DIR=debug/bin + DEBUG_OBJ_DIR=debug/obj + DEBUG_LIB_DIR=debug/lib +-DEBUG_CC= g++ -c -I $(INCLUDE_DIR) -D$(TARGET_OS) -ggdb ++DEBUG_CC= g++ -c -I $(INCLUDE_DIR) -D$(TARGET_OS) -ggdb -DPREFIX=\"${PREFIX}\" ++ + DEBUG_CL= g++ $(SYSTEM_LIBS) -gddb + + RELEASE_EXE_DIR=release/bin + RELEASE_OBJ_DIR=release/obj + RELEASE_LIB_DIR=release/lib +-RELEASE_CC= g++ -c -I $(INCLUDE_DIR) -D$(TARGET_OS) -O3 ++RELEASE_CC= g++ -c -I $(INCLUDE_DIR) -D$(TARGET_OS) -O3 -DPREFIX=\"${PREFIX}\" + RELEASE_CL= g++ $(SYSTEM_LIBS) + + AR= ar vrs diff --git a/Makefile b/Makefile index fc4f69af9bc3080e6af11f0c6437b501b79b42cc..7c790ada7c5206b2c0a4c01f36c079b6cd6e5603 100644 --- a/Makefile +++ b/Makefile @@ -14,6 +14,7 @@ SUBDIR+= dynamic-graph-v3 SUBDIR+= dynamic-graph-bridge SUBDIR+= dynamic-graph-bridge-v3 SUBDIR+= dynamic-graph-bridge-msgs +SUBDIR+= FRILibrary SUBDIR+= gdalwrap SUBDIR+= gest-genom SUBDIR+= gladys