How to install frankx

1 minute read

Published:

How to Install frankx

FRANKA EMIKA の多関節ロボット Panda 関連の便利なツールをPythonで提供している frankxのインストール方法をまとめる。

Prerequisites

Catch2

For C++ unit-test.

$ git clone https://github.com/catchorg/Catch2.git
$ git checkout v2.9.0
$ cd Catch2
$ cmake -Bbuild -H. -DBUILD_TESTING=OFF
$ sudo cmake --build build/ --target install 

Eigen

The package installed via apt is old, so manually install the compatible version (3.3.7).

$ wget https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.zip
$ cd eigen-3.3.7
$ mkdir build; cd $_
$ cmake ..
$ make
$ sudo make install
$ grep "#define EIGEN_[^_]*_VERSION" /usr/local/include/eigen3/Eigen/src/Core/util/Macros.h
#define EIGEN_WORLD_VERSION 3
#define EIGEN_MAJOR_VERSION 3
#define EIGEN_MINOR_VERSION 7

cmake

frankx requires version newer than 3.12.

$ sudo apt remove cmake
$ wget https://github.com/Kitware/CMake/releases/download/v3.21.2/cmake-3.21.2-linux-x86_64.sh
$ cdmod +x cmake-3.21.2-linux-x86_64.sh
$ sudo ./cmake-3.21.2-linux-x86_64.sh
$ sudo mv cmake-3.7.2-Linux-x86_64 /opt
$ sudo ln -s /opt/cmake-3.7.2-Linux-x86_64/bin/* /usr/bin
$ cmake --version
cmake version 3.21.2

poco

$ git clone -b master https://github.com/pocoproject/poco.git
$ mkdir cmake-build
$ cd cmake-build
$ cmake .. && cmake --build .
$ sudo cmake --build . --target install

pybind

Install the latest version (frankx requires > v2.6.0)

$ git clone git@github.com:pybind/pybind11.git
$ cd pybind11 
$ mkdir build 
$ cd build 
$ cmake .. 
$ sudo make install

libfranka

Official package to control Franka robots. frankx is a wrapper for this library.

$ git clone --recursive https://github.com/frankaemika/libfranka
$ cd libfranka
$ git submodule update
$ mkdir build
$ cd build
$ cmake -DCMAKE_BUILD_TYPE=Release ..
$ cmake --build .
$ make
$ sudo make install

frankx

Install frankx

Finally, install frankx as:

$ git clone --recursive https://github.com/frankaemika/libfranka
$ cd libfranka
$ git checkout -b tag refs/tags/0.7.1
$ git submodule update
$ mkdir build
$ cd build
$ cmake -DCMAKE_BUILD_TYPE=Release ..
$ sudo make install
$ cd ../
$ pip install .

example

Try a example script from frankx/examples folders.

$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
$ python examples/kinematics.py 
Current end effector position:  [0.497760, -0.006065, 0.250802, -0.014622, -0.041127, 0.019817]
New position:  [0.597760, -0.006065, 0.250802, -0.014622, -0.041127, 0.019817]
New joints:  [-1.18244322  1.17867041  1.39999686 -1.95805747 -1.27024208  1.908651
 -0.07243706]