30代エンジニアの備忘録のカバー画像

30代エンジニアの備忘録

組み込み開発・信号処理・プログラミングの技術メモと短編小説

🤖 【TurtleBot3 ROS2環境構築③】Raspberry Pi 4セットアップ完全ガイド - microSD書き込みからROS2インストールまで

シリーズ この記事は「TurtleBot3 × ROS2 環境構築シリーズ」の一部です。 シリーズ目次を見る

2026年5月時点。シリーズ③です。ホストPC 構築のあと、TurtleBot3 本体の Raspberry Pi 4 へ Ubuntu Server 22.04 と ROS 2 Humble を入れます。想定読者は microSD 書き込みから OpenCR ファームまで一気に進めたい方です。

OS 書き込みは Raspberry Pi Imager、手順の正本は TurtleBot3 e-Manual です。Imager の「詳細設定」で SSH・Wi-Fi を事前投入すると、モニター無しで④以降に進みやすくなります。

結論として、64-bit Ubuntu Server が必須で、ホストと同じ ROS_DOMAIN_ID を RPi4 の .bashrc にも書きます。


Raspberry Pi 4 セットアップに必要なものは?

アイテム 用途 備考 Raspberry Pi 4(4GB以上推奨) TurtleBot3のメインコンピュータ TurtleBot3 Burger付属
microSDカード(32GB以上) OSのインストール先 Class 10 / UHS-I以上推奨 microSDカードリーダー PC側での書き込み用 -
LANケーブルまたはモニター+キーボード 初期SSH接続用 初回起動時のみ必要 5V/3A USB-C電源アダプター RPi4電源 初期設定時のみ

Step 1: microSD へ Ubuntu Server はどう書き込む?

1-1. Raspberry Pi Imagerのインストール

ホストPC(Ubuntu)では apt で Imager を入れます。Windows / macOS の場合は Raspberry Pi Imager から入手してください。

sudo apt install -y rpi-imager
rpi-imager

Windows や macOS でも Raspberry Pi Imager が使えます。書き込み後は RPi4 を LAN に載せ、④⑤の記事で SSH と DDS を確認します。

1-2. OSの選択と書き込み

Raspberry Pi Imagerの手順:

  1. 「OSを選択」 をクリック
  2. 「Other general-purpose OS」→「Ubuntu」→「Ubuntu Server 22.04 LTS (64-bit)」 を選択
  3. 「ストレージを選択」 でmicroSDカードを選択
  4. 「詳細設定(⚙)」 で事前設定(次のステップ)
  5. 「書き込む」 をクリック
Raspberry Pi ImagerでUbuntu Server 22.04を選択する手順(スクリーンショット)
Raspberry Pi ImagerでUbuntu Server 22.04を選択する手順(スクリーンショット)
💡
必ず 64-bit版 を選択してください。ROS2 Humbleは64bitが必要です。32bit版では動作しません。
1-3. 詳細設定(SSH・Wi-Fi・ホスト名)

「⚙」アイコンをクリックして詳細設定を開きます。

  • ホスト名: turtlebot3
  • SSHを有効化: チェックON → 「パスワード認証を使用する」
  • ユーザー名: ubuntu、パスワードを設定
  • Wi-Fiを設定: SSID・パスワードを入力
  • ロケール設定: タイムゾーン Asia/Tokyo、キーボード jp
詳細設定画面(SSH・Wi-Fi・ユーザー名を一括設定)
詳細設定画面(SSH・Wi-Fi・ユーザー名を一括設定)

書き込みには5〜10分かかります。

書き込み完了画面
書き込み完了画面

Step 2: 初回起動と SSH 接続は?

2-1. microSDの挿入と起動
  1. 書き込んだmicroSDをRaspberry Pi 4のmicroSDスロットに挿入
  2. LANケーブルをルーターとRPi4に接続(Wi-Fi設定済みの場合は不要)
  3. USB-C電源を接続 → 起動開始

初回起動には1〜2分かかります。

2-2. IPアドレスの確認
# ホストPCで実行
nmap -sn 192.168.1.0/24 | grep -A1 -i raspberry

または、ルーターの管理画面(通常 192.168.1.1)のDHCPリース一覧で確認します。

ルーター管理画面でRPi4のIPアドレスを確認
ルーター管理画面でRPi4のIPアドレスを確認
2-3. SSH接続
ssh ubuntu@192.168.1.xxx  # 実際のIPアドレスに変更
# 初回は yes と入力してフィンガープリントを承認
# パスワード: 設定したパスワード
SSH接続成功画面(ubuntu@turtlebot3)
SSH接続成功画面(ubuntu@turtlebot3)

Step 3: RPi4 の基本設定は?

3-1. システムのアップデート
sudo apt update && sudo apt upgrade -y

完了まで5〜15分かかります。

3-2. タイムゾーンの確認
sudo timedatectl set-timezone Asia/Tokyo
timedatectl
3-3. スワップの拡張(推奨)

RPi4(4GB)でもビルド時にメモリが不足することがあるため、2GBのスワップを追加します。

sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
# 確認
free -h
# Swap: 2.0G

Step 4: RPi4 に ROS 2 Humble はどう入れる?

RPi4にはGUIが不要なので、軽量な ros-base を使います。

4-1. ロケールとリポジトリの設定
sudo apt install -y locales
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

sudo apt install -y software-properties-common curl
sudo add-apt-repository universe

sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key \
  -o /usr/share/keyrings/ros-archive-keyring.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] \
https://packages.ros.org/ros2/ubuntu \
$(. /etc/os-release && echo $UBUNTU_CODENAME) main" | \
sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
4-2. ROS2 Humbleのインストール
sudo apt update
sudo apt install -y ros-humble-ros-base
💡
ros-humble-ros-base はGUIなし版です。RPi4にはディスプレイが不要なため、容量とパフォーマンスを節約できます。インストールには15〜30分かかります。
ROS2 ros-baseインストール中のターミナル出力(RPi4)
ROS2 ros-baseインストール中のターミナル出力(RPi4)
4-3. TurtleBot3パッケージのインストール
sudo apt install -y \
  ros-humble-turtlebot3 \
  ros-humble-turtlebot3-msgs \
  ros-humble-dynamixel-sdk \
  ros-humble-hls-lfcd-lds-driver

Step 5: .bashrc の環境変数は?

echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
echo "export ROS_DOMAIN_ID=30" >> ~/.bashrc
echo "export TURTLEBOT3_MODEL=burger" >> ~/.bashrc
echo "export LDS_MODEL=LDS-02" >> ~/.bashrc
source ~/.bashrc
💡
LDS_MODELについて: TurtleBot3付属LiDARのモデル名を指定します。
  • 2022年以降購入: LDS-02
  • それ以前: LDS-01

間違えるとLiDARが動かないので必ず確認してください。

# 設定内容の確認
tail -5 ~/.bashrc
# source /opt/ros/humble/setup.bash
# export ROS_DOMAIN_ID=30
# export TURTLEBOT3_MODEL=burger
# export LDS_MODEL=LDS-02
RPi4の.bashrc設定内容の確認画面
RPi4の.bashrc設定内容の確認画面

Step 6: OpenCR ファームウェアはどう書き込む?

OpenCRはTurtleBot3のモーターコントローラー基板です。ROS2用ファームウェアを書き込みます。

6-1. ユーザーをdialoutグループに追加
sudo usermod -aG dialout $USER
# 反映のため再ログイン
exit
ssh ubuntu@192.168.1.xxx
6-2. OpenCRとRPi4の接続確認

TurtleBot3を組み立てた状態で、OpenCRとRPi4がUSBケーブルで接続されていることを確認します。

ls /dev/ttyACM*
# /dev/ttyACM0  ← OpenCRが認識されている
OpenCRとRPi4のUSB接続の確認
OpenCRとRPi4のUSB接続の確認
6-3. ファームウェアのダウンロードと書き込み
export OPENCR_PORT=/dev/ttyACM0
export OPENCR_MODEL=burger

cd /tmp
wget https://github.com/ROBOTIS-GIT/OpenCR-Binaries/raw/master/turtlebot3/ROS2/latest/burger/opencr_update.tar.bz2
tar xjf opencr_update.tar.bz2
./opencr_update/opencr_update.sh $OPENCR_MODEL $OPENCR_PORT

書き込み成功時のメッセージ:

OpenCR Update Start..
Open port : /dev/ttyACM0 ... success
Start firmware update
Firmware upload...
Programming...  100%
Firmware update...Success
OpenCRファームウェア書き込み完了画面
OpenCRファームウェア書き込み完了画面
6-4. OpenCRの動作テスト

ファームウェア書き込み後、OpenCR基板の 「PUSH SW1」 ボタンを押すとモーターがテスト動作します。

  • 1回押し: 前進
  • 2回押し: 後退

モーターが動けば書き込み成功です。


RPi4 セットアップで困ったら?

SSH接続できない
# 1. pingで疏通確認
ping 192.168.1.xxx

# 2. nmapでIPを再確認
nmap -sn 192.168.1.0/24

# 3. LANケーブルで接続(Wi-Fiが繋がっていない可能性)
ROS2インストールが途中で止まる
free -h  # メモリ確認
sudo apt install -y ros-humble-ros-base --fix-broken
OpenCRのポートが見つからない
ls /dev/ttyACM*
# USBケーブルを挙し直してから下記で確認
dmesg | tail -20

RPi4 セットアップの要点は?

  • Raspberry Pi ImagerでUbuntu Server 22.04 (64bit)をmicroSDに書き込んだ
  • SSHで接続してシステムの基本設定とスワップ追加を行った
  • ROS2 HumbleとTurtleBot3パッケージをインストールした
  • .bashrcにROS2環境変数(ROS_DOMAIN_ID・TURTLEBOT3_MODEL・LDS_MODEL)を設定した
  • OpenCRにROS2対応ファームウェアを書き込み、モーター動作を確認した
  • 次回はWi-Fi設定とROS2のマルチマシン通信(ホストPC↔TurtleBot3)の設定方法を解説します。