BTR2022の設定

ベアボーン(NUC)へのインストール記録です.
基本は,BTR2021の設定(まとめ)と同じですが,Ubuntu 18.04から20.04へ更新しています.

まずは,Ubuntu 20.04.5 LTS (Bionic Beaver)をインストールして,初期設定を行います.
アカウントに関しては,各自,好きな名前を付けて下さい.
もし,研究室共通の設定にしたいのであれば,以下の設定にして下さい.
Display Name: Ryukoku Taro
Account Name: ryukoku
Password: elec
仮想マシンの場合,メモリは2GBだと少ないので,4GB以上にして下さい.
ハードディスクも20GBだと厳しいので,40GBぐらい欲しいですね.

インストール後の初期設定.

### パッケージを最新版に更新
sudo apt-get -y update; sudo apt-get -y upgrade; sudo apt-get -y dist-upgrade

### ネットワーク周りと,開発関係のパッケージのインストール.
sudo apt-get install -y net-tools openssh-server subversion git gcc build-essential vim screen ccache
###
### (これで,ssh で他のマシンからログインして,触ることも可能になります)
###

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

### 標準のエディタをvim に変更
sudo update-alternatives --config editor

### sudo をNOPASSWD で使いたいならばsudo visudo で%sudo の項目を変更
### ここから
#%sudo  ALL=(ALL:ALL) ALL
%sudo ALL=(ALL) NOPASSWD:ALL
### ここまで.

あ,RefBoxに必要なclipsのパッケージが18.04までしかないかも….← 18.04のパッケージで20.04も対応できました.

### RefBox のインストール
### まずは,必要なパッケージのインストール
# sudo add-apt-repository ppa:timn/clips # ← focal のReleaseファイルが見つからないって怒られる….まぁ,そりゃそうだよね.
# sudo apt-get update
sudo apt-get install -y libmodbus-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 \
                     libmbedtls-dev gcc g++
# ↑ libclips-dev clips libclipsmm-dev を取り除いてみました.
# それらはbionic 版を強引に入れてみます.
cd Downloads
wget http://ppa.launchpad.net/timn/clips/ubuntu/pool/main/c/clips/clips_6.30-2ppa4~bionic1_amd64.deb
wget http://ppa.launchpad.net/timn/clips/ubuntu/pool/main/c/clips/clips-common_6.30-2ppa4~bionic1_all.deb
wget http://ppa.launchpad.net/timn/clips/ubuntu/pool/main/c/clips/libclips_6.30-2ppa4~bionic1_amd64.deb
wget http://ppa.launchpad.net/timn/clips/ubuntu/pool/main/c/clips/libclips-dev_6.30-2ppa4~bionic1_amd64.deb
wget http://ppa.launchpad.net/timn/clips/ubuntu/pool/main/c/clips/xclips_6.30-2ppa4~bionic1_amd64.deb
wget http://ppa.launchpad.net/timn/clips/ubuntu/pool/main/libc/libclipsmm/libclipsmm-dev_0.3.4-1ppa1~bionic1_amd64.deb
wget http://ppa.launchpad.net/timn/clips/ubuntu/pool/main/libc/libclipsmm/libclipsmm_0.3.4-1ppa1~bionic1_amd64.deb
sudo apt-get install -y libtinfo5 
sudo dpkg -i *.deb
# 何とか入ったっぽい.

# OPC-UA のインストール
git clone https://github.com/FreeOpcUa/freeopcua
cd freeopcua
### ↓ 選択肢は「c」→「e」→「c」→「e」→「g」
ccmake .
cmake .
make
sudo make install
sudo apt-get install -y libxml2-dev dh-autoreconf
sudo ldconfig

# RefBox 本体のインストール
sudo apt-get install -y libmicrohttpd-dev rapidjson-dev libaprutil1-dev libwebsocketpp-dev
cd
git clone https://github.com/robocup-logistics/rcll-refbox.git
cd rcll-refbox
make

# ↓ BTR2022ではcをほとんど使わないので不要かも.今回,ccacheはパスしてみます.
### ccache の有効化
### freeopcua のコンパイル時に、エラーが出やすいので,このタイミングで有効化します.
### もしかして,使わない方が無難かなぁ.
#cat <<EOF >> .bashrc
#export PATH="/usr/lib/ccache:$PATH"
#export USE_CCACHE=1
#export CCACHE_DIR=~/.ccache
#export set CC='ccache gcc'
#export set CXX='ccache g++'
#EOF
#source .bashrc

### RobView のインストール
sudo update-locale LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8
sudo apt-get remove -y libreoffice-core libreoffice-common
wget -qO - http://packages.openrobotino.org/keyFile | sudo apt-key add -
sudo su -
echo "deb http://packages2.openrobotino.org focal main" > /etc/apt/sources.list.d/openrobotino.list
exit
sudo apt-get update
sudo apt-get install -y robview4
# ついでに,tag 関係とgmapping のパッケージも入れておく.
sudo apt-get install -y aruco gmapping
# opcua とrealsense,そしてURGのパッケージもあるなぁ.
sudo apt-get install -y libopen62541 librealsense2 urg-library

### 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
sudo apt-get install -y ros-noetic-actionlib ros-noetic-pcl-ros ros-noetic-geometry ros-noetic-image-common \
                        ros-noetic-image-transport-plugins ros-noetic-navigation \
                        libpcl-conversions-dev libtf-conversions-dev libvisualization-msgs-dev \
                        libudev-dev curl libtolua-dev
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
sudo apt-get install -y ros-noetic-desktop-full
sudo apt-get install -y python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool
sudo rosdep init
rosdep update

# rplidar の設定
sudo apt-get install -y ros-noetic-catkin ros-noetic-rplidar-ros
source /opt/ros/noetic/setup.bash
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ..
catkin_make
cd src
git clone https://github.com/Slamtec/rplidar_ros.git
cd ..
catkin_make
source devel/setup.bash
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc

### RoboCup関係のプログラムを取ってきましょうか.
### ↓ ROS の部分.とりあえずこんな感じ?
mkdir ~/git
cd ~/git
git clone https://github.com/wadaru/ros-rcll_refbox_peer
git clone https://github.com/wadaru/ros-rcll_btr_msgs
git clone https://github.com/wadaru/ros-rcll_ros_msgs
git clone https://github.com/wadaru/btr2022
mkdir ros-rcll_btr_msgs/msg
ln -s ~/rcll-refbox/src/msgs ~/rcll-refbox/src/libs/llsf_msgs
cd ~/catkin_ws/src
ln -s ~/git/ros-rcll_refbox_peer .
ln -s ~/git/ros-rcll_btr_msgs .
ln -s ~/git/ros-rcll_ros_msgs .
cd ..
catkin_make

# vnc をWindowsやMacからつなぐには,以下が必要
sudo apt-get install vino
gsettings set org.gnome.Vino require-encryption false

### チーム関係者以外の方も,以下の部分は利用可能です.
### RobotinoSim をUbuntu で使う場合は,以下の作業をして下さい.
### Windows 側でシミュレータを動かす場合には不要です.
### 以下の作業(winecfgとwine)はGUIですので,Xが動く環境で実行して下さい.
cd ~/Downloads
sudo apt-get -y install wine-stable
wget https://doc.openrobotino.org/download/RobotinoSim/RobotinoSimDemo-1.4.2.exe
# 以下はテキスト画面では動きません.
winecfg 
wine RobotinoSimDemo-1.4.2.exe
# ここまで
echo '#!/bin/bash' > ~/robotinoSimDemo.sh
echo "wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Didactic/RobotinoSim\ Demo/bin/robotinosim.exe" >> ~/robotinoSimDemo.sh
chmod +x ~/robotinoSimDemo.sh
### これで,~/robotinoSimDemo.sh でシミュレータが立ち上がります.
### 本当は,cpulimit で使わないときの動作を遅くした方が良いのですが,それはまた今度.


2021/06/01 追記

cpulimit に関しては,

cpulimit -z -l 10 -p `ps aux| grep robotinosim.exe|head -n1|awk '{print $2}'`

という形で,robotinosim.exe の動作を抑える(上記はcpu使用率10%)ことができます

2022/06/01 追記

udpcomm.py がpython2のルールになっていたので,一部修正.

ryukoku@BabyTgers-NUC7i7BNH:~/catkin_ws/src/ros-rcll_btr_msgs/scripts$ python3 udpcomm.py
  File "udpcomm.py", line 25
    self.view3Send = [00,01,02,03, 04,05,06,07]
                          ^
SyntaxError: leading zeros in decimal integer literals are not permitted; use an 0o prefix for octal integers

self.view3Send = [ 0, 1, 2, 3, 4, 5, 6, 7] とするとこで対応.

2022/07/13 追記

python3へのリンク

sudo ln -s /usr/bin/python3 /usr/bin/python

コメントを残す

メールアドレスが公開されることはありません。

*