1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ROS2プログラミング演習_05: 実機のセットアップと動作確認(WSL2+ROS→TurtleBot3実機)

Last updated at Posted at 2025-06-09

はじめに

今回からturtlebot3実機を動かします.
このページではTurtleBot3を動かすまでの設定・接続・動作確認を行います.

環境

・OS: Windows11 Pro (64bit)
・ROS: ROS2 humble (WSL2のUbuntu22.04に)

ここまでの環境構築については下記参照
・WSL2にROS2を入れてgazeboでシミュレーションするまでの手順
https://qiita.com/pez/items/16011df0e663ceac694a

TurtleBot3実機のセットアップについては下記参照
https://qiita.com/pez/items/1251c7ad0a21fd6f0a48

1. wifiへの接続・通信

TurtleBot3と同じローカルネットワークに接続する必要があります.また,WSL上のubuntuと通信するためにファイヤーウォールの設定が必要です.

※参考にさせて頂いたページ
https://qiita.com/akinami/items/2200d2c49a43a183f14d

ファイヤーウォールの設定

「設定」→「プライバシーとセキュリティ」→「Windowsセキュリティ」→「ファイヤーウォールとネットワーク保護」→「詳細設定」を開き,「受信の規則」で「ファイルとプリンターの共有(エコー要求-ICMPv4受信)」を有効にして下さい.

スクリーンショット 2025-06-01 180758.png

ファイヤーウォールにルールを追加する

同じく,「設定」→「プライバシーとセキュリティ」→「Windowsセキュリティ」→「ファイヤーウォールとネットワーク保護」→「詳細設定」を開き,「受信の規則」で右の「新しい規則」をクリックします.

・「カスタム」を選択して「次へ」
・「全てのプログラム」を選択して「次へ」
・「プロトコルの種類」を「UDP」に設定して「次へ」
・「規則を適用するローカルIPアドレス」と,「規則を適用するリモートIPアドレス」の両方に,TurtleBot を接続している wifiルータが割り当てるIPアドレスの範囲を設定します.(例えば172.28.1.1 ~172.28.1.255 など)

WSLのubuntuのIPアドレスとwindowsのIPアドレスをミラーリングする

1. 「.wslconfig」ファイルの確認

C:\Users\【windowsログインユーザ名】 の中に「.wslconfig」ファイルがあるか確認する.ない場合は作成.中身を次のようにする.

.wslconfgの中身
[wsl2]
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true

2. IPアドレスの確認

Powershell上で
ipconfig
WSLのubuntuにて
ifconfig

それぞれ「IPv4アドレス」が同じになっているかを確認して下さい.

ssh のインストール

※既にインストール済みの場合は不要

WSL(ubuntu)にて
sudo apt install openssh-server

起動

WSL(ubuntu)にて
sudo systemctl enabel ssh
sudo service ssh restart

sshd_config の設定

※テキストエディタは各自好きなものを使用(下記はnano)

WSL(ubuntu)にて
sudo nano /etc/ssh/sshd_config
~~~~~ 一部抜粋
Port 22
# AddressFamily any
ListenAddress 0.0.0.0
ListenAddress ::1
~~~~~ 一部抜粋
PasswordAuthentication yes

sshサービスを再起動

WSL(ubuntu)にて
sudo service ssh restart

ssh接続の確認

次にTurtleBot3にディスプレイ・キーボードを接続して立ち上げます.
・ユーザー名:ubuntu
・パスワード:turtlebot

同様にIPアドレスを確認して下さい.

turtlebotにて
ifconfig

ここでPCとTurtlebotが同じネットワーク(同じwifiルータ)に接続されていることを確認して下さい.

ubuntu(WSL) → turtlebot ssh接続の確認

WSL(ubuntu)にて
ssh ubuntu@[turtlebotのIPアドレス]


ssh ubuntu@172.28.1.11

パスワードは "turtlebot" です

2. 「.bashrc」の設定

.bashrcを編集する.下記はemacsを使う場合の例

WSL(ubuntu)にて
sudo emacs ~/.bashrc

export の部分
下記は一例なので実機の設定に合わせて下さい.
実機の設定は実機で.bashrcを開いて確認します.

※設定内容については演習時に個別で確認します

(例)WSL(ubuntu),TurtleBot共通
export ROS_DOMAIN_ID=30
export TURTLEBOT3_MODEL=waffle_pi
export OPENCR_MODEL=waffle
export OPEN_PORT=/dev/ttyACM0
export LDS_MODEL=LDS-02

有効化

source ~/.bashrc

3. 動作確認

teleopの確認

TurtleBotにて(ssh接続でok)
ros2 launch turtlebot3_bringup robot.launch.py
WSL(ubuntu)にて
ros2 run turtlebot3_teleop teleop_keyboard

リモートPCからキーボード操作でTurtleBotが動かせたら成功

4. 演習

動作確認中(bringupノードとteleopノードを立ち上げている時)に下記コマンドで表示されるトピックの送受信関係の図を添付して提出して下さい.

rqt_graph

スクリーンショット 2025-06-09 134041.png

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?