C++11 Installation

Warning

If terms such as C++11, CMAKE, PPA, and linking are unfamiliar to you, consider using the Python3 or MATLAB version of DQ Robotics instead.

Note

DQ Robotics C++11 is distributed as a LGPLV3 licensed package. Interface packages might have additional licenses.

Note

Had any issues? Report them at the CPP-Issue-Tracker.

Release PPA

The official support is for Ubuntu LTS (Excluding EOL versions) using our Stable-PPA.

sudo add-apt-repository ppa:dqrobotics-dev/release
sudo apt-get update
sudo apt-get install libdqrobotics

All library updates will be delivered together with your regular Ubuntu updates.

Development PPA

Warning

This repository is unstable, which means that the API can suddenly change.

Warning

DO NOT add both PPAs at once. If you already used the Release PPA, you first have to remove it.

sudo apt remove libdqrobotics*
sudo add-apt-repository --remove ppa:dqrobotics-dev/release

The development PPA targets Ubuntu LTS (Excluding EOL versions) using our Devel-PPA.

sudo add-apt-repository ppa:dqrobotics-dev/development
sudo apt-get update
sudo apt-get install libdqrobotics

Including

Note

After installation, the DQ Robotics headers can be included without any extra configuration.

You can list up the installed headers with

find /usr/include/dqrobotics

The headers can be added to your code in the following way

#include <dqrobotics/DQ.h>
#include <dqrobotics/robot_modeling/DQ_Kinematics.h>
#include <dqrobotics/robot_modeling/DQ_SerialManipulator.h>
#include <dqrobotics/utils/DQ_Geometry.h>
//Any other headers

Linking

The shared objects are installed at /usr/lib and will be found naturally by the linker on Ubuntu. For example, using CMAKE,

target_link_libraries(my_binary dqrobotics)

Interface packages

Warning

We offer support (on a voluntary basis) for the interface packages but no support whatsoever for the third-party software they interface with. For that, refer to their vendors.

Interfaces of DQ Robotics with other libraries are available as separate packages in the PPA, and they can be listed with

sudo apt-get update
apt-cache search libdqrobotics*

V-REP Interface Package

Note

The V-REP interface package uses BSD-licensed code distributed by CoppeliaRobotics. Refer to their license for details.

The interface between DQ Robotics and V-REP can be installed with

sudo apt-get install libdqrobotics-interface-vrep

The following headers will be installed in your system:

#include<dqrobotics/interfaces/vrep/DQ_VrepInterface.h>
#include<dqrobotics/interfaces/vrep/DQ_VrepRobot.h>
#include<dqrobotics/interfaces/vrep/robots/LBR4pVrepRobot.h>
#include<dqrobotics/interfaces/vrep/robots/YouBotVrepRobot.h>

This interface package also requires linking. Using CMAKE, for example:

target_link_libraries(my_binary dqrobotics dqrobotics-interface-vrep)

CPLEX Interface Package

The interface between DQ Robotics and CPLEX is header-only and can be installed as follows:

sudo apt-get install libdqrobotics-interface-cplex

The following header will be installed in your system

#include<dqrobotics/solvers/DQ_CPLEXSolver.h>

If you are using CPLEX, you have to install, configure, and link to it according to its documentation.

Json11 Interface Package

Note

The Json11 interface package uses MIT-licensed code by Dropbox. Refer to their license for details.

Warning

The Json11 interface package for now has limited functionality and can only import DQ_SerialManipulator instances.

The interface between DQ Robotics and Json11 can be installed with

sudo apt-get install libdqrobotics-interface-json11

The following header will be installed in your system:

#include<dqrobotics/interfaces/json11/DQ_JsonReader.h>

This interface package also requires linking. Using CMAKE, for example:

target_link_libraries(my_binary dqrobotics dqrobotics-interface-json11)

Using with the Robot Operating System (ROS)

DQ Robotics C++11 and all interface packages install as system-wide packages, so they can be added to your ROS code using the CMAKE directives shown above.

Building from source in another OS

Warning

There is no support whatosever for other operating systems besides Ubuntu LTS.

You might be able to build from source as long as you have Eigen3, CMake, and a C++11 compatible compiler.