HRI-EU / Rcs

Rcs is a set of C and C++ libraries for robot control and simulation
BSD 3-Clause "New" or "Revised" License
38 stars 14 forks source link
bullet-physics kinematics openscenegraph robotics simulation vortex-essentials

Rcs

Rcs is a set of C and C++ libraries for robot control and simulation. It is written for research purposes and for simulation and analysis in robotics. It contains algorithms for vector-matrix calculations, rigid body kinematics, dynamics, control, physical simulation and more. There are many utilities such as OpenSceneGraph nodes and Qt Guis to support research and testing.

Getting Started

Rcs can be compiled with the cmake build system and has mainly been developed on Ubuntu 14.04 and GCC 4.8. To compile it, just type:

cd <build-directory>
cmake <source-directory>
make 
make unittest

To build the doxygen documentation, just type:

make RcsDoc

Compilation has successfully been tested on Ubuntu 14.04, Ubuntu 16.04 with GCC 5 and Ubuntu 18.04 with GCC 7 and clang, and Ubuntu 20.

Note that using Vortex Essentials on newer operating systems requires extra care. The official distribution is compiled with GCC 4.8, and will not work with newer compiler versions. To work around this limitation, Rcs compiles the Vortex integration module separately. If GCC 4.8 is available (by installing the g++-4.8 package), the integration module is built automatically. If it isn't, you need to provide a pre-built version of libRcsVortex.so.

It is also possible to compile it on Microsoft Visual Studio, however with some additional efforts. The libxml2 and pthreads library as well as the below mentioned dependencies need to be installed. Further, a cmake version higher than 3.4 is required. They support automatic symbol generation for windows compilation. The formerly mandatory export declaratives are not needed (except for global variables). Here is how to call it:

cd <build-directory>
cmake.exe  -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=TRUE -DBUILD_SHARED_LIBS=TRUE -DCMAKE_INSTALL_PREFIX=<install-directory> -DCMAKE_BUILD_TYPE=Release <source-directory> -Wno-dev

Build options

Project structure

3rd party libraries

Rcs has been designed carefully to have only little dependencies. The ones that have been selected are in our opinion very matured libraries:

Optionally (please use the ccmake tool to manage the compile options), additional functionality can be compiled in when activating

In case you don't have a Vortex license, you can in certain cases apply for the Adademic Access Program that allows to get a free license. Please check: https://www.cm-labs.com

Troubleshooting

License

This project is licensed under the BSD 3-clause license - see the LICENSE.md file for details

Disclaimer

The copyright holders are not liable for any damage(s) incurred due to improper use of Rcs.