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側メッセージ画面
