この記事について
折に触れてROS2をしっかりと理解したいと思っていました。
昔に少しだけ触ったことがあるのですが、よく理解しないまま動いて満足してしまった記憶しかありません。
改めてちゃんとROSを使ったシステム開発がしたいと思ったので、本記事では環境構築まで行いたいと思います。
最終的に何かしらの簡易システムが作れたらいいなと思ってます
環境構築のゴール
効率的にROSの学習と開発が行える環境を構築することをゴールとしたいので、
以下を具体的なゴールとします。
- Raspberry Pi 5にUbuntuをインストールし、ROS2が動くことを確認できる
- Windows11からリモートデスクトップで操作できる
対象環境
Ubuntu側
ハードウェア
- Raspberry Pi 5
- RAM 8GB
- 164 GB メモリカード
- Arm Cortex A76
OS
Ubuntu Desktop 24.04.3 LTS
Windows側
ハードウェア
ふつうのPC
OS
Windows11
ネットワーク
ローカルネットワーク
環境構築手順
5.1 OS導入
WindowsにRaspberry Pi Imagerをインストールして使用します。
ImagerでUbuntu Desktop 24.0.3 LTS(64-bit)を選択します。
ストレージはmicroSDを選択

5.2 初期設定(Raspberry Pi側の設定)
5.2.1 初期セットアップ1_Terminal
# ipの確認
ip a
# パッケージ更新
sudo apt update
sudo apt upgrade -y
# SSHサーバ導入(Windows側からコマンドアクセスできるようにするため)
sudo apt install -y openssh-server
# systemdで有効化&起動
sudo systemctl enable ssh
# 状態確認
sudo systemctl status ssh
# 再起動
sudo reboot
5.2.2 初期セットアップ2_GUI
設定 → システム → Remote Desktop を開く
Remote Desktop をON
Remote Control をON
5.3 Windowsからのリモート接続
リモートデスクトップを選択
IPアドレス・ユーザー名を入力後、『名前を付けて保存』を選択しrdpファイルを作成
rdpファイルを編集
rdpファイルの該当箇所の最後の数値を1に変更する。
use redirection server name:i:1
5.4 ROS 2 Jazzy をインストール(Ubuntu 24.04)
公式の deb 手順に沿う。(docs.ros.org)
# パッケージ一覧を更新し、curl(HTTP取得ツール)をインストールする
sudo apt update && sudo apt install -y curl
# ros-apt-source の GitHub Releases から「最新リリースのタグ名」を取得して変数に入れる
# 例: 0.3.0 のようなバージョン文字列が入る
export ROS_APT_SOURCE_VERSION=$(
curl -s https://api.github.com/repos/ros-infrastructure/ros-apt-source/releases/latest \
| grep -F "tag_name" \
| awk -F\" '{print $4}'
)
# 最新リリースの ros2-apt-source .deb を /tmp にダウンロードする
# - $(. /etc/os-release && echo ${UBUNTU_CODENAME:-${VERSION_CODENAME}}) で Ubuntu のコードネームを取得
# Ubuntu 24.04 なら "noble" になる想定
# - 取得したコードネームに対応する *_all.deb を選んでいる
curl -L -o /tmp/ros2-apt-source.deb \
"https://github.com/ros-infrastructure/ros-apt-source/releases/download/${ROS_APT_SOURCE_VERSION}/ros2-apt-source_${ROS_APT_SOURCE_VERSION}.$(
. /etc/os-release && echo ${UBUNTU_CODENAME:-${VERSION_CODENAME}}
)_all.deb"
# ダウンロードした .deb をインストールする
# これにより ROS 2 用の apt リポジトリ設定(sources.list.d)と GPG キー設定が導入される
sudo dpkg -i /tmp/ros2-apt-source.deb
# パッケージ一覧(リポジトリ情報)を最新化する
sudo apt update
# インストール済みパッケージを最新バージョンへ更新する(確認プロンプトを -y で自動承認)
sudo apt upgrade -y
# ROS 2 Jazzy のデスクトップ一式(RVizなどGUIツール込み)をインストールする(-y で自動承認)
sudo apt install -y ros-jazzy-desktop
# 環境読み込み(毎回の手間を潰す)
echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc
source ~/.bashrc
動作確認
6.2 ROS2基本
talker
# ROS 2 Jazzy の環境変数(PATH / AMENT_PREFIX_PATH / ROS_DOMAIN_ID など)を現在のシェルに読み込む
# これを実行しないと ros2 コマンドや各種パッケージが見つからないことがある
source /opt/ros/jazzy/setup.bash
# C++製のサンプルノード talker を起動する
# "chatter" トピックへ文字列メッセージを定期的に publish(送信)する
ros2 run demo_nodes_cpp talker
listener
# ROS 2 Jazzy の環境変数を現在のシェルに読み込む(別ターミナルでも必要)
source /opt/ros/jazzy/setup.bash
# Python製のサンプルノード listener を起動する
# "chatter" トピックを subscribe(受信)して、受け取ったメッセージを表示する
ros2 run demo_nodes_py listener
次回予告
未定…







