Open Kinova Driver Library for Jaco and Mico

The Kinova Jaco and Mico are powerful and flexible light-weight arms for service robotics applications. The driver delivered by Kinova themselves is binary-only for C#, and a simpler version for C++. Currently, multi-arm control under Linux is not possible.

To overcome the limitations and to open the opportunity for community involvement we have developed a custom C++ driver library for the arms based on libusb. Kinova kindly provided the needed documentation of the USB protocol that allowed us to do so. The driver is currently work in progress, but has already been used in field demos (see video below).

The driver was first implemented as a Fawkes plugin and has then been refactored into a separate standalone library. We welcome any use of the library and hope for contributions back to make the driver even more versatile and robust.

Below you can see the arm driver in action (still as a Fawkes plugin) at the RoboCup 2013 competition for the RoboCup Logistics League technical challenge of the Carologistics RoboCup Team.

Download

Git repository
The latest code is always available in the Git repository. We welcome pull requests for fixes and improvements.
Release tarballs
The tarballs provide point releases. We do our best to keep them as stable as possible. If you want to package the library, please consider using these tarballs. The respective releases will also be tagged in the Git repository.

Future Work

The driver is currently work in progress and we are open for any suggestions and contributions you might have. The driver is primarily developed by Bahram Maleki-Fard. If you are interested in this work and want to get in touch please contact Tim Niemueller

Acknowledgments

We would like to especially thank Kinova Robotics for providing the documentation of the USB communication protocol and their quick responses to our questions. We would also like to thank the Personal Robotics Lab at CMU to give the driver a try on their Mico arm. We thank the Carologistics RoboCup Team for the opportunity to test the driver under tournament conditions.