Turtlebot3 e-manual ROS2 による取組(PCセットアップ編)


Turtlebot3/e-Manual に最近ROS2対応内容が追記されているので、ROS2用ノートPCを作りRobot側SBCには RaspberryPi4 を使って構築して
見たいと思います。

 http://emanual.robotis.com/docs/en/platform/turtlebot3/ros2_setup/#pc-setup

まずは、ノートPC側の設定からです。
ノートPCには、あらかじめUbuntu18.04.4_Desktop をインストールしておきます。
【16.1.2:ROS 2をインストールする】
リモートPCに ROS 2(Dashing Diademata)のdebianパッケージをインストールする必要があります。
次のリンクは、ROS 2のインストールに関するガイドで、これに沿って実行していきます。

 https://index.ros.org/doc/ros2/Installation/Dashing/

<ROS 2 Dashing Diademataのインストール>
Linux プラットフォームで、ソースからのROS 2の構築をサポートしています。
<システム設定:locale の設定>
 $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

<ROS 2 aptリポジトリを追加する>
 $sudo apt update && sudo apt install curl gnupg2 lsb-release
 $curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
次に、リポジトリをソースリストに追加します。
 $sudo sh -c 'echo "deb http://packages.ros.org/ros2/ubuntu `lsb_release -cs` main" > /etc/apt/sources.list.d/ros2-latest.list'

<開発ツールとROSツールをインストールする>
 $sudo apt update && sudo apt install -y \
  > build-essential \
  > cmake
  > git \
  > python3-colcon-common-extensions \
  > python3-pip \
  > python-rosdep \
  > python3-vcstool \
  > wget【ENTキー】

 $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 \
  > pytest-repeat \
 > pytest-rerunfailures \
 > pytest \
 > pytest-cov \
 > pytest-runner \
 > setuptools 【ENTキー】

 $sudo apt install --no-install-recommends -y \
 > libasio-dev \
 > libtinyxml2-dev【ENTキー】

 $sudo apt install --no-install-recommends -y \
 > libcunit1-dev【ENTキー】

<ROS 2コードを取得する>
 $mkdir -p ~/ros2_dashing/src
 $cd ~/ros2_dashing
 $wget https://raw.githubusercontent.com/ros2/ros2/dashing/ros2.repos
 $vcs import src < ros2.repos

<rosdepを使用して依存関係をインストールする>
 $sudo rosdep init
 $rosdep update
 $rosdep install --from-paths src --ignore-src --rosdistro dashing -y --skip-keys "console_bridge fastcdr fastrtps libopensplice67    
   libopensplice69 rti-connext-dds-5.3.1 urdfdom_headers"

<ワークスペースでコードをビルドする>
 $cd ~/ros2_dashing/
 $colcon build --symlink-install
 かなり時間がかかります。(Celeronで4時間半ほど)

【環境設定】未実行
<セットアップスクリプトを入手する>
 $. ~/ros2_dashing/install/setup.bash

< argcomplete のインストール >
Ros2 コマンドラインツールは、argcomplete を使用して自動補完します。この機能をインストールしておきます。
 $sudo apt install python3-argcomplete

以上で完了です。
動作確認をしてみます。(例のトーカー:talker、リスナー:listenerです。)
この動作が確認できれば、C++APIとPython API 両方が正しく機能しているという事となります。

talker:publisging 側メッセージ画面


listener側メッセージ画面