Skip to content
Snippets Groups Projects
Commit de19d886 authored by Sergi Hernandez's avatar Sergi Hernandez
Browse files

Added a new README file.

parent eb526e7d
No related branches found
No related tags found
No related merge requests found
darwin_robot_driver {#mainpage}
===================
## Description
This is the main C++ driver for the [Darwin OP robot](http://emanual.robotis.com/docs/en/platform/op/getting_started/). It also provides libraries to compute the forward and inverse kinematics of both arms and legs. It uses a serial interface implementing the Dynamixel protocol to communicate with the subcontroller of the Darwin OP robot, which is the one who does all the work. This driver is only compatible with a [custom firmware](https://gitlab.iri.upc.edu/humanoides/darwin/darwin_stm32_fw) developed at IRI, but is it not compatible with the default firmware.
## Dependencies
This package requires of the following system libraries and packages
* [cmake](https://www.cmake.org "CMake's Homepage"), a cross-platform build system.
* [doxygen](http://www.doxygen.org "Doxygen's Homepage") and [graphviz](http://www.graphviz.org "Graphviz's Homepage") to generate the documentation.
* stdc++ and pthread libraries.
* [Eigen](http://eigen.tuxfamily.org/index.php?title=Main_Page), to handle matrix operations for the leg kinemtics library.
* [KDL](http://wiki.ros.org/orocos_kinematics_dynamics), to handle kinematics chains for the arm kinemtics library.
It is recommended that the last two dependencies (Eigen and KDL) be installed as part of the ROS (Robotics Operating System) installation. Check [this](http://wiki.ros.org/kinetic/Installation/Ubuntu) for instructions on how to setup ROS on you system. The only tested version of ROS is Kinetic with Ubuntu 16.04.
This package also requires of the following IRI libraries:
* [iriutils](https://gitlab.iri.upc.edu/labrobotica/algorithms/iriutils), a library with basic tools developed a IRI.
* [comm](https://gitlab.iri.upc.edu/labrobotica/drivers/comm), a library with drivers for basic communication interfaces developed at IRI.
* [dynamixel](https://gitlab.iri.upc.edu/labrobotica/drivers/dynamixel) (multi-instance branch), a library which implements the dynamixel protocol developed at IRI.
To install all these dependencies, follow the instructions on the corresponding links.
Although it is not necessary to build this driver, the [Darwin OP firmware](https://gitlab.iri.upc.edu/humanoides/darwin/darwin_stm32_fw) is also necessary to use it.
## Compilation and installation
Download this repository and create a build folder inside:
``` mkdir build ```
Inside the build folder execute the following commands:
``` cmake .. ```
The default build mode is DEBUG. That is, objects and executables include debug information.
The RELEASE build mode optimizes for speed. To build in this mode execute instead
``` cmake .. -DCMAKE_BUILD_TYPE=RELEASE ```
The release mode will be kept until next time cmake is executed.
``` make ```
In case no errors are reported, the generated libraries (if any) will be located at the
_lib_ folder and the executables (if any) will be located at the _bin_ folder.
In order to be able to use the library, it it necessary to copy it into the system.
To do that, execute
``` make install ```
as root and the shared libraries will be copied to */usr/local/lib/iridrivers* directory
and the header files will be copied to */usr/local/include/iridrivers* dierctory. At
this point, the library may be used by any user.
To remove the library from the system, exceute
``` make uninstall ```
as root, and all the associated files will be removed from the system.
To generate the documentation execute the following command:
``` make doc ```
## How to use it
To use this library in an other library or application, in the CMakeLists.txt file, first it is necessary to locate if the library has been installed or not using the following command
``` FIND_PACKAGE(darwin_robot_driver) ```
In the case that the package is present, it is necessary to add the header files directory to the include directory path by using
``` INCLUDE_DIRECTORIES(${darwin_robot_driver_INCLUDE_DIR}) ```
and it is also necessary to link with the desired libraries by using the following command
``` TARGET_LINK_LIBRARIES(<executable name> ${darwin_robot_driver_LIBRARY}) ```
## Disclaimer
Copyright (C) 2009-2018 Institut de Robòtica i Informàtica Industrial, CSIC-UPC.
Mantainer IRI labrobotics (labrobotica@iri.upc.edu)
This package is distributed in the hope that it will be useful, but without any warranty. It is provided "as is" without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. The entire risk as to the quality and performance of the program is with you. should the program prove defective, the GMR group does not assume the cost of any necessary servicing, repair or correction.
In no event unless required by applicable law the author will be liable to you for damages, including any general, special, incidental or consequential damages arising out of the use or inability to use the program (including but not limited to loss of data or data being rendered inaccurate or losses sustained by you or third parties or a failure of the program to operate with any other programs), even if the author has been advised of the possibility of such damages.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>
Copyright (C) 2009-2010 Institut de Robòtica i Informàtica Industrial, CSIC-UPC.
Author sergi (sergi@iri.upc.edu)
All rights reserved.
This file is part of darwin_robot library
darwin_robot library is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment