Robotino 3,セットアップメモ(Ubuntu14.04版)

Robotino 3,セットアップメモをまとめましたが,Ubuntu 16.04だとrobview3-api が正しく動かないので,Ubuntu 14.04で再トライ.

諸事情により,Robotino 3を新規状態からセットアップ^2することにしました.

再インストール用のUSBディスクを作るのは,Robotino3 の再インストールを参照して下さい.
そして,robotino3imageからイメージファイルをダウンロードしたいけど,Ubuntu 14.04版はすでに消えています.
手元にあったファイルrobotino3-2.0.4.fsa を使いました.

1回目はbootメディアが見つからない云々のエラーが出ましたが,もう一度作業をしたら,ubuntu が見つからないといいつつ,起動できるようになりました.
よくわからないけど,動いたからヨシ(←ダメですねぇ…).

robotino@robotino:~$ uname -r
3.13.0-32-generic
robotino@robotino:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 14.04.1 LTS
Release:	14.04
Codename:	trusty

まずは上記がスタートラインです.

最初のままだと,独立したネットワークを構築する設定になっているので,まずはネットワークの設定を変更しましょう.
微妙に16.04と設定の書き方が異なっていますね.

vi /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
# 以下3行をコメントアウト
# iface eth0 inet static
#   address 192.168.0.1
#   netmask 255.255.255.0
# 以下の行を追加
iface eth0 inet dhcp

# The primary network interface (fallback)
auto eth0:10
iface eth0:10 inet static
  address 172.27.1.1
  netmask 255.255.0.0

iface wlan0 inet static
  address 172.26.1.1
  netmask 255.255.0.0
  post-up /usr/local/bin/start-wlan0-master.sh
  pre-down /usr/local/bin/stop-wlan0-master.sh

これで,DHCP環境下のネットワークに有線でつなげることで,sshでのログインなども可能になります.

無線LANも変えちゃいましょうか.
最後のwlan0 に関する段落を以下に書き換えます.

auto wlan0
  iface wlan0 inet dhcp
  wpa-ssid BabyTigers-R
  wpa-psk hogehoge

まずは,パッケージの更新.時間がかかるのでお茶でも飲みましょう.
なお,sudoer の設定ファイルはそのまま使用した方が良いので,変更確認に対して[N]を,
GRUB のインストール先は,MBRで良いので,/dev/sdaを選びます.

sudo apt-get update; sudo apt-get -y upgrade; sudo apt-get -y dist-upgrade

関連する作業は,

といった辺りかと思います.
あと,Robotino 3の設定Posted on 2015年12月21日を最初にしておきたいところです.
2019年版RefBox のインストールは,今のままだとエラーが出ますので,RefBoxのインストール時のエラー(Ubuntu 16.04)を参照して下さい.というか,今回の作業でエラーが出たので,メモったのが左のエントリーです.

## Robotino 3の設定: https://www.kdel.org/wp/?p=110
# キーボードの設定をドイツ語から英語版に変更
sudo vi /etc/default/keyboard
XKBMODEL="pc106"
XKBLAYOUT="us"
XKBVARIANT="nodeadkeys"
XKBOPTIONS=""

# ホスト名をrobotino-base-X に変更(Xの部分は,ロボット番号に変更してください)
for f in /etc/hostname /etc/hosts; do \
  sudo sed -i -e 's/robotino/robotino-base-X/g' $f; \
done
sudo hostname robotino-base-X

# 言語の設定
sudo update-locale LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8

# エディタの設定
# エディタの選択では,vim.basic をお勧めします.
sudo apt-get install -y vim; sudo update-alternatives --config editor

## RefBox のインストール(ubuntu 16.04 on Robotino 3): https://www.kdel.org/wp/?p=1016
# まずはパッケージの追加
sudo add-apt-repository ppa:timn/clips
sudo apt-get update

# 14.04 のパッケージリストをもとに,パッケージの追加
sudo apt-get install -y \
        libmodbus-dev protobuf-compiler libprotobuf-dev libprotoc-dev \
        libboost-all-dev libglibmm-2.4-dev libgtkmm-3.0-dev libncursesw5-dev \
        libyaml-cpp-dev libavahi-client-dev git libxt-dev libxaw7-dev \
        libncurses5-dev autoconf autogen libtool libyaml-dev \
        libcurl4-openssl-dev
sudo apt-get install libclips-dev clips libclipsmm-dev \

# さらに必要なパッケージのインストール
sudo apt-get install -y libgecode-dev

Robotino 3上でRefBox がmake できないも関係しているようなので,作業しましょう.
RefBox のインストール(Ubuntu 18.04 – 2019/06/28版)これも今のRefBoxだと,関連していますね.
RefBox のインストール(Ubuntu 14.04 – 2019/06/25版)これは関係していなかったっぽい.現在やり直し中.

# まずは,freeopcua のインストール
# sudo apt-get install -y cmake-curses-gui libmbedtls-dev
git clone https://github.com/FreeOpcUa/freeopcua
cd freeopcua

# CMakeLists.txt の以下の項目をOFFにします.
# option(SSL_SUPPORT_MBEDTLS "Support rsa-oaep password encryption using mbedtls library " ON)
vi CMakeLists.txt

#  同様にメニューの中でSSLの項目がOFFになっていることを確認して,
# ↓「c」「c」「g」の順にタイプします.
# もし,ONになっていたら[Enter]でOFFに変更してください.
ccmake .
cmake .
make
sudo make install
==== とりあえず ここまで ====
# ↑ これだと,refbox の方のmakeでエラーが出るので,build.shを使ってみます.
sudo apt-get install -y libxml2-dev
./build.sh
./configure
make
make all
sudo make install
cd ..

# git からrefbox を取ってきます.
# git clone http://git.fawkesrobotics.org/llsf-refbox.git
# ↑ git のアドレスが下に変わりました.
git clone https://github.com/robocup-logistics/rcll-refbox
cd rcll-refbox

# Robotino 3上でRefBox がmake できない: https://www.kdel.org/wp/?p=1655
# message PrepareInstructionDS のreserved をコメントアウトしてください.
vi src/msgs/MachineInstructions.proto
# ここから
message PrepareInstructionDS {
  // reserved "gate";
  // reserved 1;
  required uint32 order_id = 2;
}
# ここまで

# RefBox のインストール(Ubuntu 14.04 – 2019/06/25版): https://www.kdel.org/wp/?p=1682
# mps_comm のMakefile に-std=c++14 を追加.
vi src/libs/mps_comm/Makefile 
# ここから
ifeq ($(HAVE_MPS_COMM),1)
  CFLAGS  += $(CFLAGS_MPS_COMM) -std=c++14
  LDFLAGS += $(LDFLAGS_MPS_COMM)
  LIBS_all = $(LIBDIR)/libmps_comm.so
else
  WARN_TARGETS += warning_libmps_comm
endif
# ここまで

#
# もし,これでもmbedtls のリンクでエラーが出るなら,ライブラリの指定をコメントアウトしましょう.
vi src/libs/mps_comm/mps_comm.mk
# ここから
ifeq ($(HAVE_FREEOPCUA),1)
        HAVE_MPS_COMM = 1
  CFLAGS_MPS_COMM  = $(shell $(PKGCONFIG) --cflags $(FREEOPCUA_COMPONENTS))
  LDFLAGS_MPS_COMM = $(shell $(PKGCONFIG) --libs $(FREEOPCUA_COMPONENTS)) # -lmbedtls
endif
# ここまで

#
# gcc-4.8からgcc-4.9へ変更
#
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install g++-4.9

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 10
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20

sudo rm /usr/bin/cpp
sudo update-alternatives --install /usr/bin/cpp cpp /usr/bin/cpp-4.8 10
sudo update-alternatives --install /usr/bin/cpp cpp /usr/bin/cpp-4.9 20

sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30
sudo update-alternatives --set cc /usr/bin/gcc

sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30
sudo update-alternatives --set c++ /usr/bin/g++
git pull --ff-only
make
cd ..

これで,なんとかRefBox 対応版Robotino ができました.

さて,続きのセットアップは,チーム用にRobotino 3をセットアップに記すことにします.
なお,チームの話に移動する際は,refbox はチームの方のレポジトリにも入れているので,上記の分は消すかrefbox.git にリネームしておくことを勧めます.

コメントを残す

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

*