Please note that active projects have migrated to

2 years agocmake: make udev rules installation dir configurable master
Till Hofmann [Wed, 18 Jul 2018 11:46:23 +0000] 
cmake: make udev rules installation dir configurable

6 years agocmake: push VERSION_PATCH to 2, driver is at 0.1.2. now
Bahram Maleki-Fard [Fri, 10 Apr 2015 11:46:40 +0000] 
cmake: push VERSION_PATCH to 2, driver is at 0.1.2. now

6 years agoMerge remote-tracking branch 'origin/thofmann/print-size_t'
Bahram Maleki-Fard [Thu, 9 Apr 2015 20:10:06 +0000] 
Merge remote-tracking branch 'origin/thofmann/print-size_t'

6 years agodriver: use correct length modifier for printing ssize_t
Till Hofmann [Wed, 8 Apr 2015 13:29:47 +0000] 
driver: use correct length modifier for printing ssize_t

On some architectures (e.g. i686), ssize_t is defines as int, not as
long int. The printf length modifier 'z' always corresponds to

6 years agoMerge remote-tracking branch 'origin/thofmann/license-text-fix'
Bahram Maleki-Fard [Wed, 8 Apr 2015 11:41:37 +0000] 
Merge remote-tracking branch 'origin/thofmann/license-text-fix'

6 years agodriver: fix license text, replace 'Foobar' with 'libkindrv'
Till Hofmann [Wed, 8 Apr 2015 11:26:46 +0000] 
driver: fix license text, replace 'Foobar' with 'libkindrv'

6 years agoexamples: find lib and includes on local installations 0.1.2
Bahram Maleki-Fard [Tue, 11 Nov 2014 13:32:16 +0000] 
examples: find lib and includes on local installations

Includes checking environment variables LD_LIBRARY_DIR and CPATH
for libraries and includes. This is only applied if cmake cannot
use pkg-config.
Additionally, only link agains LIBKINDR_LIBRARY_DIRS if available
(only created when pkg-config is used)

6 years agoMerge remote-tracking branch 'origin/multi_arm'
Bahram Maleki-Fard [Tue, 11 Nov 2014 13:40:30 +0000] 
Merge remote-tracking branch 'origin/multi_arm'

6 years agodriver: fix automatic closing of implicitly opened libusb_context
Bahram Maleki-Fard [Tue, 11 Nov 2014 12:52:04 +0000] 
driver: fix automatic closing of implicitly opened libusb_context

The context may only be closed if no more devices are connected,
i.e. have a device-handle. Otherwise any action on those devices
will fail and throw an exception with INTERRUPT_ERROR.

6 years agodriver: flush packets on incoming port after connecting to arm
Bahram Maleki-Fard [Sat, 20 Sep 2014 17:52:51 +0000] 
driver: flush packets on incoming port after connecting to arm

There might be still some packets left on the device that it will send
with the next request, probably due to some crash in your software while
communicating with the arm. If we don't flush them, they will be received
first when the next command is sent, which will probably lead to a

6 years agocmake: add option to skip installation of udev-rule
Bahram Maleki-Fard [Thu, 31 Jul 2014 14:08:43 +0000] 
cmake: add option to skip installation of udev-rule

Can be skipped by -DINSTALL_UDEV=OFF , or switched in the ccmake GUI.
The installation of the udev-rule requires root privileges. Skipping
it allows non-privileged users to install libkindrv to their local

6 years agoexamples cmake: proper linking against libkindrv
Bahram Maleki-Fard [Thu, 31 Jul 2014 13:50:36 +0000] 
examples cmake: proper linking against libkindrv

Need to link against the lib-directory. Not a problem with system-wide
installs, but will fail with linker error if libkindrv is installed
in a local directory.

6 years agodriver: fix compilation warnings
Bahram Maleki-Fard [Thu, 31 Jul 2014 12:22:32 +0000] 
driver: fix compilation warnings

Were overseen, now we have "-Wall -Werror" compilation flags and
hopefully won't miss any bugs.

6 years agocmake: add implicit "-Wall -Werror" compilation flags
Bahram Maleki-Fard [Thu, 31 Jul 2014 12:18:04 +0000] 
cmake: add implicit "-Wall -Werror" compilation flags

Also fixed the few errors that were overseen.

6 years agocmake: add implicit "-Wall -Werror" compilation flags
Bahram Maleki-Fard [Thu, 31 Jul 2014 12:18:04 +0000] 
cmake: add implicit "-Wall -Werror" compilation flags

Also fixed the few errors that were overseen.

6 years agoexamples: add simple example for multi-arm usage
Bahram Maleki-Fard [Wed, 23 Jul 2014 00:21:00 +0000] 
examples: add simple example for multi-arm usage

6 years agodoc: fixed doxygen warnings
Bahram Maleki-Fard [Wed, 23 Jul 2014 00:14:17 +0000] 
doc: fixed doxygen warnings

6 years agodriver: unref and remove all known usb-devives on close_usb()
Bahram Maleki-Fard [Wed, 23 Jul 2014 00:11:14 +0000] 
driver: unref and remove all known usb-devives on close_usb()

close_usb() exits the libusb context. All the libusb_devices should
be unrefed before that (although it might not be necessary, not sure).

6 years agodriver: modify JacoArm constructor/destrucor to handle arbritary amount of arms
Bahram Maleki-Fard [Wed, 23 Jul 2014 00:06:53 +0000] 
driver: modify JacoArm constructor/destrucor to handle arbritary amount of arms

Upon each constructor call, all the currently connected arms are checked.
Those information might be already known, in case an arm has not been
removed since. Those known devices also have a flag that tells if they are
in use, such that from all connected arms it is possible to find one
that is not in use (if actually available).

Upon destruction, the information is stored that this arm is available

This allows to call the JacoArm constructor arbitrary times, each time
checking for a new "free" arm.

6 years agodriver: add internal method to get information on all connected arms
Bahram Maleki-Fard [Tue, 22 Jul 2014 23:57:03 +0000] 
driver: add internal method to get information on all connected arms

Each connected arm is stored in a list, holding its USB-bus, USB-address,
libusb_device ref-pointer, information on wether or not is is currently in
use, and a field for info about its name.

These information are necessary to manage multi-arm control.

6 years agodriver: add internal struct that stores information on connected devices
Bahram Maleki-Fard [Tue, 22 Jul 2014 23:44:02 +0000] 
driver: add internal struct that stores information on connected devices

6 years agodriver: add private _update_client_config_ method
Bahram Maleki-Fard [Tue, 22 Jul 2014 23:41:53 +0000] 
driver: add private _update_client_config_ method

This method just updates the private __client_config member. Useful
if this is needed elsewhere internally, but one does not want to return that

6 years agoexample: ex_simple now shows how to print client_configuration
Bahram Maleki-Fard [Tue, 22 Jul 2014 23:37:02 +0000] 
example: ex_simple now shows how to print client_configuration

6 years agodriver: add method to get client_configuration
Bahram Maleki-Fard [Tue, 22 Jul 2014 23:31:26 +0000] 
driver: add method to get client_configuration

6 years agotypes: reduced jaco_client_config to known components
Bahram Maleki-Fard [Tue, 22 Jul 2014 23:23:56 +0000] 
types: reduced jaco_client_config to known components

The actual data that is transmitted is large. However, many parts are
unknown yet, but the most important parts that help identifying a client
still remain

6 years agotypes: added structs for client_configuration
Bahram Maleki-Fard [Tue, 22 Jul 2014 23:20:26 +0000] 
types: added structs for client_configuration

This struct holds all information on the client configuration,
including its name etc., which would help to differentiate it from
other arms -> might be necessary for multi-arm setups.

6 years agoall: fix license header creation time
Bahram Maleki-Fard [Wed, 23 Jul 2014 00:22:52 +0000] 
all: fix license header creation time

For some reason there was a "0" too many in the minutes

6 years agodriver: removed "TEST" comments and tailing whitespaces
Bahram Maleki-Fard [Tue, 15 Jul 2014 12:13:14 +0000] 
driver: removed "TEST" comments and tailing whitespaces

Also changed the order of command-id defines in kindrv.cpp, hoping
that it reflects some kind of "ordering".

6 years agoUpdated version to 0.1.1 0.1.1
Bahram Maleki-Fard [Sat, 12 Jul 2014 11:09:02 +0000] 
Updated version to 0.1.1

6 years agocmake: add install target for documentation
Bahram Maleki-Fard [Fri, 11 Jul 2014 14:32:38 +0000] 
cmake: add install target for documentation

If documentation is automatically built, a "make install" will now
install it as well, into INSTALL_PREFIX/share/doc/libkindrv

6 years agocmake: add target for documentation, build with "make apidoc"
Bahram Maleki-Fard [Fri, 11 Jul 2014 14:15:56 +0000] 
cmake: add target for documentation, build with "make apidoc"

The documentation can be built with "make apidoc" now. It is also
automatically built when calling "make", unless -DBUILD_DOC=OFF
is passed to cmake.

Bahram Maleki-Fard [Fri, 11 Jul 2014 14:06:27 +0000] 

Just using proper variables. If e.g. libkindrv was included in some
other project that automatically built libkindrv, we would get wrong
paths because CMAKE_SOURCE_DIR would refer to that other project,
not to libkindrv.

6 years agoexamples: use pkg-config to find libkindrv
Bahram Maleki-Fard [Fri, 11 Jul 2014 12:38:25 +0000] 
examples: use pkg-config to find libkindrv

If pkg-config cannot be used, we go the (currently) more uncomfortable
way by finding libkindrv with cmake. This can be reduced to 1 line as
well if we provide a "FindLibkindrv.cmake" file in the future to be
able to call "find_package(libkindrv)" from cmake.

6 years agocmake: link against required boost_system library
Bahram Maleki-Fard [Fri, 11 Jul 2014 12:36:30 +0000] 
cmake: link against required boost_system library

For some reason it worked on some systems, but we explicitly
link against boost_system now to be sure.
The pkg-config file has also been updated to include boost_system.

6 years agodriver: Extensions to the original linkindrv.
Tekin Mericli [Tue, 6 May 2014 16:07:26 +0000] 
driver: Extensions to the original linkindrv.

Additional functions and data structures are implemented
for reading the joint velocities, torques, currents,
and Cartesian forces, as well as the other sensors like
the IMU on the base. Also, there are two separate functions
for putting the arm in and out of compliance mode.

6 years agocmake: auto-detect LIB_SUFFIX, allowing for manual override
Bahram Maleki-Fard [Fri, 27 Jun 2014 11:52:16 +0000] 
cmake: auto-detect LIB_SUFFIX, allowing for manual override

On x86_64 the lib will be installed in lib64 dir. We use GNUInstallDirs
cmake-module for detecting that. In case it is not available, a warning
with instructions will be given to manually set the suffix.
Either way, if LIB_SUFFIX is manually given (for example by system
packaging tools), it will override the auto-detection.

6 years agocmake: add "uninstall" target
Bahram Maleki-Fard [Fri, 27 Jun 2014 11:15:59 +0000] 
cmake: add "uninstall" target

Executing "(sudo) make uninstall" will now uninstall the library.

6 years agocmake: set target properties SOVERSION and VERSION
Till Hofmann [Tue, 17 Jun 2014 10:11:14 +0000] 
cmake: set target properties SOVERSION and VERSION

The soname of the created library file is now${VERSION_MAJOR}, e.g.

6 years agocmake: install udev rule file
Till Hofmann [Tue, 3 Jun 2014 15:23:58 +0000] 
cmake: install udev rule file

6 years agodriver: add udev-rules file for libkindrv + updated README
Bahram Maleki-Fard [Tue, 3 Jun 2014 15:08:40 +0000] 
driver: add udev-rules file for libkindrv + updated README

The readme currently suggests copying the file manually. This will
be put into the install script later.

6 years agodriver: update Doxygen file and complete documentation
Bahram Maleki-Fard [Tue, 3 Jun 2014 15:01:17 +0000] 
driver: update Doxygen file and complete documentation

The file needed to be updated. It also did not read
from include and src directories after the source code has been
moved to them. This is fixed now.
A few methods were not documented in kindrv.cpp, which is fixed now.

7 years agoadd full joystick-simulate methods, allow multiple buttons and axis at once
Bahram Maleki-Fard [Thu, 7 Nov 2013 16:50:22 +0000] 
add full joystick-simulate methods, allow multiple buttons and axis at once

Also added a simple example showing how the joystick-axis command effects
the arm.

7 years agomove .h and .cpp files to 'include' and 'src' directories
Bahram Maleki-Fard [Mon, 14 Oct 2013 20:00:57 +0000] 
move .h and .cpp files to 'include' and 'src' directories

7 years agoadd PATCH number to versioning, current version is now 0.1.0 0.1.0
Bahram Maleki-Fard [Thu, 10 Oct 2013 22:58:51 +0000] 
add PATCH number to versioning, current version is now 0.1.0

7 years agokindrv: add first complete set of files for library
Bahram Maleki-Fard [Thu, 10 Oct 2013 22:50:50 +0000] 
kindrv: add first complete set of files for library

This conatains all necessary files for a library that can be compiled,
installed and used. These files are licensede under LGPL and include
+ doxygen file
+ example files
+ pkg-config entry file

7 years agogitignore: setup libkindrv repository
Tim Niemueller [Thu, 10 Oct 2013 11:16:44 +0000] 
gitignore: setup libkindrv repository