この記事では Raspberry Pi 4 に Raspbian Buster + ROS Melodic をセットアップして、 Turtlebot3 を動かす方法を紹介します。
Turtlebot3 の e-Manual の手順が Raspbian Stretch + ROS Kinetic と少し古いバージョンだったのですが、なるべく新しいバージョンを使いたくゼロからセットアップしたので、その手順をまとめました。
用意するハードウェア
- Raspberry Pi 4 (4GB)
- microSD 16GB以上
- Turtlebot3 Burger
- (必要に応じて)マウス・キーボード・モニター
Raspbian Buster のセットアップ
ここに関しては以下のような良い記事がたくさん出ているので割愛します。セットアップの際にモニターとかキーボードを繋ぎたくない人は、SSH の有効化と Wi-Fi 情報の設定を自動で行えるよう、microSDに ssh
と wpa_supplicant.conf
ファイルを配置しておくのがポイントです。(特に Raspberry Pi 4 は microHDMI 端子になったため、ケーブルを持っていない方が多いのではないかなと思います)
ROS Melodic と Turtlebot3 パッケージのセットアップ
ROS の基本的なパッケージと、Turtlebot3 用のパッケージをインストールします。手順は以下の記事を参考にしました。
今回インストールするROSパッケージは以下の通りです。これらはメタパッケージなので、実際には100個以上のROSパッケージがインストールされます。そのため Raspberry Pi 4 でビルドすると1時間くらいはかかります。ちなみに Raspberry Pi 3 B+ でビルドしようとしたところ、メモリ不足のためか何度試しても途中で落ちてしまいました。
-
ros_comm
: ROS のフルバージョンから GUI ツールを除いた、コアパッケージ + コマンドラインツールのパッケージ -
navigation
: ロボットの自律移動などを行うためのパッケージ -
turtlebot3
,turtlebot3_msgs
: Turtlebot3 用の ROS パッケージ
ROS のパッケージリポジトリの追加
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt-get update
ビルドのためのパッケージのインストール
sudo apt install python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential cmake
rosdep の初期化
sudo rosdep init
rosdep update
作業用ディレクトリの作成
以下のディレクトリはビルド用のワークスペースで、ビルドされたパッケージ群は最終的に /opt/ros/melodic
以下にインストールされます。
mkdir ~/ros_catkin_ws
cd ~/ros_catkin_ws
wstool を使ってインストールするパッケージ群のリストを作成
先ほど説明した ros_comm, turtlebot3 などのパッケージを rosinstall_generator の引数として指定します
rosinstall_generator ros_comm navigation turtlebot3 turtlebot3_msgs --rosdistro melodic --deps --wet-only --tar > melodic-turtlebot3-wet.rosinstall
wstool init -j4 src melodic-turtlebot3-wet.rosinstall
パッケージのダウンロード、ビルド、インストール
100個以上のパッケージを順にビルドしていくので、1時間くらい時間がかかります。気長に待ちましょう。
rosdep install -y --from-paths src --ignore-src --rosdistro melodic -r --os=debian:buster
sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/melodic -j2
シェルの起動時に ROS のセットアップを行うようにする
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
動作確認
さて、ここまで問題なく進めばROSのインストールは完了したので、あとは動作確認です。Raspberry Pi 4 を Turtlebot3 に搭載し、ケーブル等を接続します。OpenCR の電源を入れておきましょう。
roscore の起動
roscore は立ち上げっぱなしにする必要があるので、これ以降のコマンドを実行する場合は別のターミナルを開くか roscore をバックグラウンドで実行しましょう。
roscore
Turtlebot3 bringup の実行
コマンドを実行後に、赤文字でエラーなどが出ていないかを確認しましょう。
roslaunch turtlebot3_bringup turtlebot3_core.launch
Turtlebot3 を動かす
さらに別のターミナルから、リモートコントロールのノードを実行します。
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
w, a, x, d などのキーを入力し、Turtlebot3 が動くことが確認できたら、無事動作確認は完了です!
まとめ
この記事では Raspberry Pi 4 に Raspbian Buster + ROS Melodic をセットアップして、 Turtlebot3 を動かす方法を紹介しました。ROS パッケージのビルド周りは時間がかかってしんどいので、Ubuntu が使えるなら、おとなしく Ubuntu を選んでおいた方が無難ですね。
時代はもう ROS 2 だと思うので、 ROS 2 での動かし方もまた機会があったら紹介したいと思います。
免責事項
投稿内容は個人的な意見であり、所属する企業を代表するものではありません。