Ubuntu 18.04へのfawkes-robotino without Gazebo のインストール(まとめ版: 2020/12/28版)

Ubuntu 18.04へのfawkes-robotino のインストール(まとめ版)をもう一度追いかけてみました.
まずはUbuntu 18.04のインストール.
最終版は,18.04.5ですね.
64-bit PC (AMD64) desktop imageをダウンロードしてUSBに焼いて,インストールします.
Linux インストール時の設定に従って,パッケージのインストールと設定の変更.

sudo apt-get install net-tools openssh-server ccache subversion git gcc build-essential vim
sudo update-alternatives --config editor

これでsshでログインできるので,あとはターミナルから作業.
sudoの設定

 
# sudo visudo で/etc/sudoers を編集
# for Ubuntu
%sudo   ALL=(ALL) NOPASSWD:ALL
# for Fedora
%wheel  ALL=(ALL)       NOPASSWD: ALL

ccacheの設定

# 以下を.bashrc に追加すると幸せになれます.
# ccache for Fedora
## export PATH="/usr/lib64/ccache:$PATH"
# ccache for Ubuntu 18.04
export PATH="/usr/lib/ccache:$PATH"
export USE_CCACHE=1
export CCACHE_DIR=~/.ccache
export set CC='ccache gcc'
export set CXX='ccache g++'

RefBox のインストール(2019/03/11版)でいけるかなぁ.
違った.Ubuntu 18.04でのRefBox (2020/09/03版)ですね.

sudo add-apt-repository ppa:timn/clips
sudo apt-get update
sudo apt-get install libmodbus-dev libclips-dev clips libclipsmm-dev \
                     protobuf-compiler libprotobuf-dev libprotoc-dev \
                     libboost-all-dev libmodbus-dev \
                     libglibmm-2.4-dev libgtkmm-3.0-dev \
                     libncursesw5-dev libyaml-cpp-dev libavahi-client-dev\
                     libssl-dev libgecode-dev\
                     lib64ncurses5-dev cmake-curses-gui git
sudo apt-get install libmbedtls-dev cmake libmicrohttpd-dev rapidjson-dev\
                     libaprutil1-dev libwebsocketpp-dev
git clone https://github.com/FreeOpcUa/freeopcua
cd freeopuca
# 以下のcmake のコマンド実行時に次の順でキー入力
# c => e => c => e => g ← 今回はこれで通りました.
ccmake .
cmake .
make
sudo make install
cd ..
git clone https://github.com/robocup-logistics/rcll-refbox.git
cd rcll-refbox
make

とりあえず,これでRefBox ができあがり.
※ただし,mongodbは入れていませんので,次の世界大会の時に困るかも.


次は,fawkes-robotino を入れてみます.


まずは,必要そうなパッケージのインストール.

# Add ROS package repository, required e.g. for bullet
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
sudo apt-get update
# Recent CLIPS/clipsmm versions
sudo add-apt-repository -y ppa:timn/clips
sudo apt-get update
# On Ubuntu 18.04
sudo apt-get install asciidoc doxygen \
  libmagic-dev libssl-dev libavahi-client-dev libsqlite3-dev libxml++2.6-2v5 libxml++2.6-dev \
  libdaemon-dev liblua5.1-0-dev libtolua++5.1-dev \
  libdc1394-22-dev libbluetooth-dev libbullet-dev libelf-dev \
  libjpeg-dev libtiff5-dev libjpeg8-dev libjpeg-turbo8-dev libpng-dev libpcl-dev \
  libopencv-dev libopencv-objdetect-dev libopencv-highgui-dev libopencv-calib3d-dev \
  libopencv-apps-dev \
  librrd-dev graphviz libgraphviz-dev flite1-dev libasound2-dev \
  libcgal-dev \
  libgl1-mesa-dev freeglut3-dev libsdl1.2-dev \
  ibgconfmm-2.6-dev \
  mongodb-dev mongodb-server libncurses5-dev \
  libmicrohttpd-dev libxmlrpc-c++8-dev \
  emacs25 \
  ros-melodic-actionlib ros-melodic-pcl-ros ros-melodic-geometry ros-melodic-image-common \
  ros-melodic-image-transport-plugins ros-melodic-navigation \
  libpcl-conversions-dev libtf-conversions-dev libvisualization-msgs-dev \
  libudev-dev curl libtolua-dev
bash -c "$(curl -SsfL https://git.io/ros-melodic-desktop)"

では,2016をいれてみます.gazeboは不要なので消します.

sudo apt-get remove gazebo9 gazebo9-common gazebo9-plugin-base libgazebo9 libgazebo9-dev ros-melodic-gazebo-msgs
sudo ln -s /usr/include/xmlrpc.h /usr/include/XmlRpc.h
wget https://files.fawkesrobotics.org/releases/fawkes-robotino-2016-2.tar.bz2
tar xvf fawkes-robotino-2016-2.tar.bz2
mv fawkes-robotino fawkes-robotino-2016
cd fawkes-robotino-2016

fawkes-robotino/etc/buildsys/config.mk のCFLAGS_EXTRA に以下の-Wnoの項目を追加.

# Globally enable optimization for the Robotino platform
CFLAGS_EXTRA  += -g -Wall -Werror -O3
CFLAGS_EXTRA  += -Wno-nonnull -Wno-format-truncation -Wno-deprecated -Wno-int-in-bool-context

以下の3つのファイルの#include の後ぐらいに追加.

  • fawkes-robotino/fawkes/src/libs/navgraph/navgraph.h
  • fawkes-robotino/fawkes/src/libs/fvmodels/velocity/relvelo.h
  • fawkes-robotino/fawkes/src/plugins/amcl/amcl_thread.h
  • #ifndef HUGE
    #define HUGE HUGE_VAL
    #endif
    

    fawkes-robotino/fawkes/src/libs/kdl_parser/kdl_parser.cpp でエラーが出るので,以下のパッチをあてましょう.
    [Fawkes Git] branch/vmatare/kdl_parser-kinetic-fix: created (1.0.0-1-g1931286)

    fawkes/src/libs/kdl_parser/Makefile

    ifeq ($(HAVE_KDLPARSER)$(cat HAVE_EIGEN3),11)
      CFLAGS  += $(CFLAGS_KDLPARSER) $(CFLAGS_EIGEN3) -std=c++11
    

    fawkes/src/libs/kdl_parser/kdl_parser.cpp

    // #include <kdl_parser/kdl_parser.h>
    // #include <kdl_parser/model.h>
    #include "kdl_parser.h"
    #include "model.h"
    ...
    // construct joint
    // Joint to_kdl(boost::shared_ptr<urdf::Joint> jnt)
    Joint to_kdl(urdf::JointSharedPtr jnt)
    ...
    // construct inertia
    // RigidBodyInertia to_kdl(boost::shared_ptr<urdf::Inertial> i)
    RigidBodyInertia to_kdl(urdf::InertialSharedPtr i)
    ...
    // recursive function to walk through tree
    // bool add_children_to_tree(boost::shared_ptr<const urdf::Link> root, Tree& tree)
    bool add_children_to_tree(urdf::LinkSharedPtr root, Tree& tree)
    {
      // std::vector<boost::shared_ptr<urdf::Link> > children = root->child_links;
      const std::vector<urdf::LinkSharedPtr > children = root->child_links;
    

    fawkes/src/libs/kdl_parser/model.cpp

    // #include <kdl_parser/model.h>
    #include "model.h"
    ...
      // boost::shared_ptr<ModelInterface> model;
      ModelInterfaceSharedPtr model;
    

    MachineSignal は今は使っていないので,fawkes-robotino/src/plugins/Makefile のSUBDIRS から machine-signal を削除しましょう.
    src/plugins/Makefile

    ...
    SUBDIRS	= clips-motor-switch \
              voltagelogger \
              ax12_gripper \
              arduino \
              tag_vision \
              navgraph_broker
    

    これで,作成できるはず.

    make
    

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*