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

30代エンジニアの備忘録

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

🤖 【TurtleBot3 ROS2環境構築②】ホストPC環境構築 - ROS2 HumbleとTurtleBot3パッケージのセットアップ

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

2026年5月時点。シリーズ②で、ホストPC(Ubuntu 22.04)に ROS 2 Humble と TurtleBot3 向け apt を載せます。想定読者は①を読み、これから apt で環境を揃える方です。

TurtleBot3 Quick Start や ROS 2 Humble 公式ドキュメント と重なる手順は短くし、TURTLEBOT3_MODEL・ROS_DOMAIN_ID・TB3 向け apt 束など、公式とズレやすい点を厚めに書きます。

読了後は talker/listener と Gazebo シミュまで再現でき、③の RPi4 セットアップに進める状態を目指します。


ホストPCの前提条件は?

項目 要件
RAM 8GB以上(推奨:16GB)
ネットワーク インターネット接続
💡
TurtleBot3はWindowsやmacOSでは動きません。必ずUbuntu 22.04 LTSを使用してください。 正本: TurtleBot3 e-Manual。

コピペ前提(一行): ホストは Ubuntu 22.04、sudo apt が既定の公開ミラーへ到達でき、手順中の curl/keyring 取得がブロックされないこと(社内プロキシやオフラインでは再現しない場合があります)。GUI(RViz/Gazebo)はデスクトップ環境か、不足パッケージを別途満たすこと。

ホストPC・TurtleBot3・Wi-Fiルーターのネットワーク構成図
ホストPC・TurtleBot3・Wi-Fiルーターのネットワーク構成図

Step 1: ホストPCに ROS 2 Humble はどう入れる?

1-1. システムのアップデート
sudo apt update && sudo apt upgrade -y
1-2. ロケールの設定
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
1-3. ROS2リポジトリの追加
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
1-4. ROS2 Humble デスクトップのインストール
sudo apt update
sudo apt install -y ros-humble-desktop
💡
ros-humble-desktop にはRViz2やrqtなどのGUIツールが含まれます。インストールには10〜20分かかります。
ROS2 Humbleインストール中のターミナル出力
ROS2 Humbleインストール中のターミナル出力
1-5. 環境変数の設定(.bashrc)
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc
1-6. ROS2の動作確認

talker / listenerサンプルで通信を確認します。

# ターミナル1(talker側)
ros2 run demo_nodes_cpp talker
# ターミナル2(listener側)
ros2 run demo_nodes_cpp listener
ros2 talker/listener通信確認の様子(Hello World メッセージ)
ros2 talker/listener通信確認の様子(Hello World メッセージ)

ターミナル2に "Hello World: 1, 2, 3, ..." と表示されれば成功です。

期待する出力の特徴: listener 側に連番が流れ、双方で例外スタックトレースが出ない。


Step 2: TurtleBot3 向けパッケージは何を入れる?

2-1. TurtleBot3本体パッケージ
sudo apt install -y \
  ros-humble-turtlebot3 \
  ros-humble-turtlebot3-msgs \
  ros-humble-turtlebot3-simulations
2-2. SLAM・ナビゲーションパッケージ
sudo apt install -y \
  ros-humble-nav2-bringup \
  ros-humble-slam-toolbox \
  ros-humble-cartographer \
  ros-humble-cartographer-ros
2-3. Gazeboシミュレーター
sudo apt install -y ros-humble-gazebo-ros-pkgs
TurtleBot3関連パッケージのインストール完了画面
TurtleBot3関連パッケージのインストール完了画面

期待する出力の特徴: ros2 pkg list | grep turtlebot3 で複数行が返り、欠けがあれば再 apt。


Step 3: TURTLEBOT3_MODEL と ROS_DOMAIN_ID は?

3-1. TurtleBot3モデルの指定
echo "export TURTLEBOT3_MODEL=burger" >> ~/.bashrc
source ~/.bashrc
💡
Waffle / Waffle Piを使う場合は waffle または waffle_pi に変更してください。
3-2. ROS_DOMAIN_IDの設定

TurtleBot3本体と同じDomain IDを設定します(0〜101の範囲)。

echo "export ROS_DOMAIN_ID=30" >> ~/.bashrc
source ~/.bashrc
3-3. 設定内容の確認
tail -5 ~/.bashrc
# source /opt/ros/humble/setup.bash
# export TURTLEBOT3_MODEL=burger
# export ROS_DOMAIN_ID=30
.bashrcの設定確認画面(環境変数3行)
.bashrcの設定確認画面(環境変数3行)

期待する出力の特徴: tail ~/.bashrc に setup.bash と TURTLEBOT3_MODEL、ROS_DOMAIN_ID の export が並ぶ。


Step 4: Gazebo で動作確認するには?

実機がなくてもGazeboでパッケージの動作を確認できます。

# ターミナル1: Gazebo + TurtleBot3ワールド起動
ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py
# ターミナル2: キーボード操縦
ros2 run turtlebot3_teleop teleop_keyboard
GazeboでTurtleBot3を操縦している様子
GazeboでTurtleBot3を操縦している様子
キー 動作
W 前進(直進速度アップ)
X 後退(直進速度ダウン)
A 左旋回(角速度アップ)
D 右旋回(角速度ダウン)
S / Space 緊急停止

期待する出力の特徴: シミュウィンドウが応答し、teleop がキー表を出して /cmd_vel が流れる。


インストール済みパッケージはどう確認する?

ros2 pkg list | grep turtlebot
# turtlebot3
# turtlebot3_bringup
# turtlebot3_cartographer
# turtlebot3_description
# turtlebot3_example
# turtlebot3_gazebo
# turtlebot3_msgs
# turtlebot3_navigation2
# turtlebot3_simulations
# turtlebot3_slam_toolbox
# turtlebot3_teleop

ホストPCセットアップで困ったら?

想定(apt が失敗する例)

Unable to locate package ros-humble-... のとき、/etc/apt/sources.list.d/ros2.list と keyring が揃っているか、直前の sudo apt update がエラーなく終わったかを先に確認(社内ネットワーク制限があると wget/curl 段階で止まります)。

colconコマンドが見つからない
sudo apt install -y python3-colcon-common-extensions
echo "source /usr/share/colcon_argcomplete/hook/colcon-argcomplete.bash" >> ~/.bashrc
Gazeboが起動しない(OpenGLエラー)
export LIBGL_ALWAYS_SOFTWARE=1
ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py
ros2コマンドが見つからない
source /opt/ros/humble/setup.bash
# または
source ~/.bashrc

ホストPC構築の要点は?

  • Ubuntu 22.04にROS2 Humbleをインストールした
  • TurtleBot3関連パッケージ(SLAM・Nav2・Gazebo)をインストールした
  • TURTLEBOT3_MODEL と ROS_DOMAIN_ID を .bashrc に設定した
  • Gazeboシミュレーションで動作を確認した
  • 次回はTurtleBot3本体(Raspberry Pi 4)のセットアップ手順を詳しく解説します。

この記事の検証範囲は?

この記事の確認は ホストPC側の ROS 2 デモと Gazebo シミュレーションが中心です。TB3 実機での無線接続/OpenCR まわりは ④以降。実機セットアップの差分や追加制約がある場合があります。

  • Ubuntu 22.04 LTS(デスクトップ)
  • ROS2 Humble Hawksbill(apt 一式)