ROS Melodicのインストール

ROS Melodicのインストール

 ROS Melodicをインストールします。Melodicは、ROSのバージョンを表すコードネームです。ROSのパッケージは、バージョンによって、対応するUbuntuのバージョンが決まっています。ROS Melodicは、Ubuntu 18.04 TLSに対応しています。
 インストール方法は、ROS Wikiに書かれています。

インストール方法

・スーパーユーザになる

$ sudo su -
ログインしているユーザのパスワード

・aptリポジトリのソースリストに追加

$ sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

・aptリポジトリのキーを設定

$ apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key  421C365BD9FF1F717815A3895523BAEEB01FA116

・aptリポジトリの更新

$ apt update
$ apt upgrade

・ROSのインストール

$ apt install ros-melodic-desktop-full
$ rosdep init
$ rosdep update

$ apt install ros-kinetic-cartographer*
$ apt install ros-melodic-teleop*
$ apt install ros-melodic-turtlebot3*

・関連パッケージのインストール

$ apt install python-rosinstall python-rosinstall-generator python-rosdep python-wstool
$ apt install build-essential ninja-build liburdfdom-tools
$ apt install libceres-dev libprotobuf-dev protobuf-compiler libprotoc-dev

・ログイン時の初期設定
 .bashrcに、下記の内容を最後に追加

$ vi ~/.bashrc
--------
source /opt/ros/melodic/setup.bash

・再ログインして、環境変数を確認

$ export | grep ROS

・インストールされたROSのパッケージの一覧を確認

$ rospack list

ツール(rviz、gazebo)の起動確認

 ROSには、データを確認するための可視化ツールであるrvizと、ロボットの動作をシミュレーションするツールgazeboが用意されています。インストール後に、ツールが起動することだけ、確認しておきます。
 最初に、1回だけマスター「roscore」を起動しておきます。ただ、roslaunchコマンドを使って起動する場合は、「roslaunch」が「roscore」を自動起動するため、事前に起動しておかなくても大丈夫です。

$ roscore &

 次に、可視化ツールrvizを起動します。

$ rviz

 起動すると、下記のような画面が表示されます。
 
 確認したら、rvizを終了し、シミュレーションツールgazeboを起動します。

$ gazebo

 起動すると、下記のような画面が表示されます。
 
 ツールの起動が確認出来たら、インストールは完了です。

SLAMパッケージのインストール

 SLAMとは、Simultaneous Localization and Mappingの略で、自己位置推定を行いながら地図作成を行うことです。ここでは、SLAMパッケージとして、OpenSlamのgmappingと、GoogleのCartographerのインストールを行います。

OpenSlam gmappingのインストール

 ros-melodic-desktop-fullでインストールしても、OpenSlamのgmappingは標準でインストールされませんので、git-hubのソースからビルドします。ビルドは、開発用のワークスペースとは、別のワークスペースを使います。

$ sudo su -
$ source /opt/ros/melodic/setup.bash
$ mkdir -p /opt/ros/catkin_ws/src
$ cd /opt/ros/catkin_ws/src
$ catkin_init_workspace
$ git clone https://github.com/ros-perception/openslam_gmapping.git
$ git clone https://github.com/ros-perception/slam_gmapping.git
$ git clone https://github.com/ros-planning/navigation_msgs.git
$ git clone https://github.com/ros-planning/navigation.git
$ git clone https://github.com/ros/geometry2.git
$ cd /opt/ros/catkin_ws && catkin_make

Google CartoGrapherのインストール

 GoogleのCartoGrapherは、git-hubのソースからビルドします。インストールまで行うため、CartGrapher専用のワークスペースを作成してビルドします。

$ mkdir -p /opt/ros/catkin_cg/src
$ cd /opt/ros/catkin_cg/src
$ catkin_init_workspace
$ git clone https://github.com/googlecartographer/cartographer.git
$ git clone https://github.com/googlecartographer/cartographer_ros.git
$ rm -rf protobuf/
$ src/cartographer/scripts/install_proto3.sh
$ rosdep install --from-paths src --ignore-src -r -y --os=ubuntu:xenial
$ catkin_make_isolated --install --use-ninja
$ logout

 これでインストールは完了ですので、ログアウトして、一般ユーザでログインします。

開発用のworkspaceの作成

 ROSのプログラムを作成する場合には、以下のコマンドで、ビルドするためのワークスペースを作成します。

$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ catkin_init_workspace
$ cd ~/catkin_ws
$ catkin_make

ROSの環境変数を設定

 ROSの環境変数を設定するため、.bashrcの最後に、setupシェルを実行するように追加します。
 自分で作成したパッケージは、~/catkin_ws ディレクトリでビルドし、gitからソースを取得して作成したパッケージは、/opt/ros/catkin_ws ディレクトリでビルドしています。このように、2つのワークスペースに分けて管理したいので、/opt/ros/catkin_ws の環境変数は、exportコマンドで追加しています。devel/setup.bashは、複数のワークスペースには対応していませんので、注意してください。
 最後に、Turtlebot3のパッケージも利用するので、Turtlebot3の環境変数も設定しておきます。
 設定が完了したらログアウトします。

$ vi ~/.bashrc
----------
source /opt/ros/melodic/setup.bash
source ~/catkin_ws/devel/setup.bash

export EXT_WS="/opt/ros/catkin_ws"
export CMAKE_PREFIX_PATH="$EXT_WS/devel:$CMAKE_PREFIX_PATH"
export LD_LIBRARY_PATH="$EXT_WS/devel/lib:$LD_LIBRARY_PATH"
export PKG_CONFIG_PATH="$EXT_WS/devel/lib/pkgconfig:$PKG_CONFIG_PATH"
export ROS_PACKAGE_PATH="$EXT_WS/src:$ROS_PACKAGE_PATH"
export ROSLISP_PACKAGE_DIRECTORIES="$EXT_WS/devel/share/common-lisp:$ROSLISP_PACKAGE_DIRECTORIES"

export TURTLEBOT3_MODEL=burger

Google CartoGrapherのデモの実行

 新しく端末を開いて、cartograperが提供しているデモをダウンロードして実行してみます。

$ wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag

 ダウンロードが終わったら、デモを起動します。

$ roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/Downloads/cartographer_paper_deutsches_museum.bag

 起動すると、下記のような画面で地図を作成しく様子が見れます。このデモは、bagファイルを再生しているので、実際の地図作成と同じ処理を行っていますが、操作をすることはできません。
 


Copyright (C) ASH Joe Masumura