MoriKen's Journal

MoriKen's Journal

アラサー社会人博士による徒然日記。技術についてつらつら。だけだとコンテンツが貧弱なので、会社公認で大学院博士課程に進学した経緯や、独学でTOEICを475→910にしたノウハウを共有します。

【ROS 2】Devian 経由でのインストール(公式文書和訳)

Sponsored Link

ROS 2 公式文書(英語) 日本語訳シリーズです。

本ブログの日本語翻訳版のトップページは以下のリンクを参照下さい。

www.moriken254.com

Ubuntu Bionicでは、ROS 2 Crystal(最新リリース)とROS 2 Bouncy用のDebianパッケージが利用可能です。 ROS 2 Ardent用のパッケージはUbuntu Xenial用です。

リソース

ロケール設定(言語・地域設定)

UTF-8をサポートするロケールがあることを確認してください。docker container のような必要最小限の環境下であれば、ロケールはPOSIXのような最小限のものである可能性がありなす。開発者サイドとしては以下の設定でテストしています。サポートされている別のUTF-8ロケールを使用していても問題ありません。

sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8

apt ソースの設定

Debian パッケージをインストールするには、Debian リポジトリをご自身の apt ソースに追加する必要があります。まず、下記のように apt で gpg キーを認証してください:

sudo apt update && sudo apt install curl gnupg2 lsb-release
curl http://repo.ros2.org/repos.key | sudo apt-key add -

そしてリポジトリをソースリストに追加します。

sudo sh -c 'echo "deb [arch=amd64,arm64] http://packages.ros.org/ros2/ubuntu `lsb_release -cs` main" > /etc/apt/sources.list.d/ros2-latest.list'

ROS 2 パッケージのインストール

まず、インストールしたい ROS 2 リリースの環境変数を設定して、他のコマンドで使用できるようにします。

export CHOOSE_ROS_DISTRO=crystal  # or bouncy or ardent
sudo apt update

デスクトップ インストール(推奨):ROS、RViz、デモ、チュートリアル。

sudo apt install ros-$CHOOSE_ROS_DISTRO-desktop

ROS ベース インストール(必要最小限の機能):通信ライブラリ、メッセージパッケージ、コマンドラインツール。GUI ツール無し。

sudo apt install ros-$CHOOSE_ROS_DISTRO-ros-base

ros1_bridgeTurtleBot パッケージ代替の RMW パッケージ もインストールする方法については、それぞれのリンク先を参照してください。

環境設定

argcomplete のインストール(オプション)

ROS 2 コマンドラインツールは自動補完に argcomplete を使用します。自動補完が必要な場合は、argcomplete をインストールする必要があります。

Ubuntu 18.04
sudo apt install python3-argcomplete
Ubuntu 16.04 (argcomplete >= 0.8.5)

Ubuntu 16.04(Xenial)に argcomplete をインストールするには、pipを使用する必要があります。apt を介して入手可能なバージョンの argcomplete にバグがあり、正常に機能しないためです。

sudo apt install python3-pip
sudo pip3 install argcomplete

setup スクリプトの souce

次のファイルを source して環境を設定します。

source /opt/ros/$CHOOSE_ROS_DISTRO/setup.bash

本コマンドを .bashrc に追加しても構いません。

echo "source /opt/ros/$CHOOSE_ROS_DISTRO/setup.bash" >> ~/.bashrc

追加の RMW のインストール

※RMW とはROS Middleware API の略で、ROS クライアントライブラリと、サードパーティの DDS 間を仲介する抽象化インターフェースを指します。

f:id:MoriKen254:20190505201427p:plain

・出典:OSRF, "ROS 2 Update", ROSCon 2016 Seoul

デフォルトでは、eProsima 社のFastRTPSが使用されます。 Ardent を使用している場合は OSRF がビルドしたOpenSpliceもインストールされます。

Bouncy にOpenSpliceまたは RTI 社のConnextのサポートをインストールするには、次の手順を実行します。

sudo apt update
sudo apt install ros-$CHOOSE_ROS_DISTRO-rmw-opensplice-cpp # for OpenSplice
sudo apt install ros-$CHOOSE_ROS_DISTRO-rmw-connext-cpp # for RTI Connext (requires license agreement)

環境変数RMW_IMPLEMENTATION = rmw_opensplice_cppを設定することで、代わりに OpenSplice を使うように切り替えることができます。 ROS 2 リリース Bouncy 以降では、RTI Connext を使用するためにRMW_IMPLEMENTATION = rmw_connext_cppも選択できます。

Connext DDS-Security プラグインをインストールしたい場合は、このページを参照してください。

ROS 1 パッケージを使用した追加パッケージのインストール

ros1_bridge および TurtleBot デモは ROS 1 パッケージを使用しています。それらをインストールするためには、こちらのページのように ROS 1ソースを追加することから始めてください。

Docker を使用している場合は、ros:melodicまたはosrf / ros:melodic-desktop(Ardent を使用している場合は Kinetic)で始められます。 ROS ソースはすでに統合されているので、これによってROS ソースをセットアップする必要もなくなります。

これで残りのパッケージをインストールできます。

sudo apt update
sudo apt install ros-$CHOOSE_ROS_DISTRO-ros1-bridge

turtlebot2 パッケージは Bouncy で利用可能ですが Crystal では利用できません。

sudo apt install ros-$CHOOSE_ROS_DISTRO-turtlebot2-*

自作パッケージのビルド

自作パッケージを構築したい場合は、チュートリアルColconを使ったパッケージの構築を参照してください。

翻訳元文書

index.ros.org

関連記事

www.moriken254.com