RobotLibrary is a C++ library for modeling and control of robots arms.
It is an ongoing project and we hope to add more features as time goes on.
- Installation Instructions
- Sections of the Library
RobotLibrary uses Eigen 3.4. Installation procedure depends on the version of Ubuntu. For detailed information on installation instructions you can visit Otherwise you can go to the Eigen main page.
If you're still using Ubuntu 20.04, you need to manually install Eigen 3.4.
First ensure prerequisites are installed:
sudo apt update
sudo apt install -y build-essential cmake git
Download version 3.4 directly (or from the webpage):
wget https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.tar.gz
Extract the downloaded file:
tar -xvf eigen-3.4.0.tar.gz
cd eigen-3.4.0
Now build and install:
mkdir build
cd build
cmake ..
sudo make install
Eigen 3.4 is automatically installed on later versions of Ubuntu. In the command line you can run:
sudo apt install libeigen3-dev
-
Clone this repository in to your working directory:
git clone https://github.com/Woolfrey/software_robot_library.git
-
Navigate in to the folder:
cd ~/<your_working_directory>/software_robot_library
-
Create a build directory and navigate in to it:
mkdir build && cd build
-
Run the following commands in the
build
directory:cmake ..
sudo make install
You should now be able to include different parts of the library in your C++ files.
When using RobotLibrary
classes in another project, it is necessary to link both Eigen
and RobotLibrary
when compiling executables. For example, we may want to use the KinematicTree
class in the example.cpp
of the following example project:
example_project/
├── CMakeLists.txt
├── build/
└── src/
└── example.cpp
In the example.cpp
file we can include the KinematicTree
header file under RobotLibrary
:
#include <RobotLibrary/KinematicTree.h>
...
int main(int argc, char **argv)
{
RobotLibrary::KinematicTree model("path/to/robot.urdf");
}
Then, in the CMakeLists.txt
file, we must:
- Tell the compiler to find both
Eigen3
andRobotLibrary
, and - Link
RobotLibrary
andEigen3
to the executable that uses anyRobotLibrary
classes:
cmake_minimum_required(VERSION 3.8)
project(example)
...
find_package(Eigen3 REQUIRED)
find_package(RobotLibrary REQUIRED)
include_directories(${EIGEN3_INCLUDE_DIR})
...
add_executable(example src/example.cpp)
target_link_libraries(example RobotLibrary::RobotLibrary Eigen3::Eigen)
Inside the example_project/build
folder it should be possible to compile the project:
cmake ..
make
This repository has some simple test code that demonstrates the use of different classes.