Edited at

ubuntu16.04にROS2 Bouncyをインストールする

せしまるです。

ubuntu18.04…ではなくubuntu16.04の記事になります。

備忘録として+日本語ドキュメント少ないと感じたので。

基本的にここと同じ流れで書いていきます。


ROS2リポジトリ追加

使ったっけ?くらい記憶にないですが、公式ドキュメントには書いてあるので一応。

2019年1月22日追記

リポジトリ追加の一文が抜けていました。申し訳ございません。


console

$ 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'


ツールのインストール

公式ドキュメントの「Install development tools and ROS tools」の部分です。

横に長いですが、$除いてコピペすれば実行できます。


console

$ sudo apt update && sudo apt install -y build-essential cmake git python3-colcon-common-extensions python3-pip python-rosdep python3-vcstool wget

$ sudo -H python3 -m pip install -U argcomplete flake8 flake8-blind-except flake8-builtins flake8-class-newline flake8-comprehensions flake8-deprecated flake8-docstrings flake8-import-order flake8-quotes git+https://github.com/lark-parser/lark.git@0.7b pytest-repeat pytest-rerunfailures pytest pytest-cov pytest-runner setuptools
$ sudo apt install --no-install-recommends -y libasio-dev libtinyxml2-dev

それなりに時間かかるのでカップラーメンでも作って待ちましょう


ROS2コードの取得

ツールのインストールが終わったら、ROS2のコードを取得します。

まずはディレクトリを作成し、作成したディレクトリにソースを落としてきます。

私の環境では/home/user下にディレクトリを作っていますが、別の場所でも大丈夫です(場所によっては管理者権限が必要な場合があります)。


console

$ mkdir -p ~/ros2_ws/src

$ cd ~/ros2_ws
$ wget https://raw.githubusercontent.com/ros2/ros2/release-latest/ros2.repos
$ vcs import src < ros2.repos

4行目が結構長いかな?


依存関係のインストール

コードの取得が完了したら次はこれです。

sudo rosdep initでエラー出たら、エラーと一緒にファイルパスが表示されるので、そのファイルを削除してから再度実行してみてください。


console

$ sudo rosdep init

$ rosdep update
$ rosdep install --from-paths src --ignore-src --rosdistro bouncy -y --skip-keys "console_bridge fastcdr fastrtps libopensplice67 libopensplice69 python3-lark-parser rti-connext-dds-5.3.1 urdfdom_headers"


ビルド!

optionalは飛ばして仮面ライダービルドです!

ardent?はたしかament buildでしたが、bouncyはcolcon buildで行います。

こるこんこるこん…


console

~/ros2_ws$ colcon build --symlink-install --packages-ignore qt_gui_cpp rqt_gui_cpp


これめちゃくちゃ長いです。自環境では30分くらいかかったので、アニメでも見ながら気長に待ちましょう。


動作テストと.bashrc

ビルドが終わったら動作テスト!のまえに.bashrcに下記一行追記します。

source ~/ros2_ws/install/local_setup.bash

保存したらターミナルを立ち上げなおします。ついでにもう一つターミナルを立ち上げておきます。

それぞれT1、T2(ターミナル1、2)とします。

これからやるのは、T1でメッセージを送信(publish)して、T2で受信(Subscribe)するテストです。

うまく受信できればT2のコンソールにメッセージがぽんぽんでます。

まずT1で下記を実行します。


console

$ ros2 run demo_nodes_cpp talker


次にT2で下記を実行します。


console

$ ros2 run demo_nodes_py listener


実行結果


T1

[INFO] [talker]: Publishing: 'Hello World: 1'

[INFO] [talker]: Publishing: 'Hello World: 2'
[INFO] [talker]: Publishing: 'Hello World: 3'

// やめるまで続く


T2

// 実行したタイミングによるけど

[INFO] [listener]: I heard: [Hello World: 1]
[INFO] [listener]: I heard: [Hello World: 2]
[INFO] [listener]: I heard: [Hello World: 3]



感想

時間かかりすぎる。ビルド中とか本当に暇になりますw

それでは今回はこの辺で。

よいROS2ライフを?