How to install frankx
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]