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.