先日windows11にros2をインストールしましたが(方法はこちら)、別なPC同士での通信を確かめたいと思い、RaspberryPi 3 にもROS2のインストールを試みました。
このブログはその覚書になります。
使用したもの | スペック、型番 |
---|---|
ラズパイ | Raspberry Pi 3 Model B+ |
デスクトップPC | Windows 11 |
micro SD カード | 32GB |
ラズパイ3にUbuntu 20.04 LTS をインストールする
【公式 Raspberry Pi ソフトウェア】
【たかけんテックラボ ラズパイ3にUbuntu 20.04LTSをインストール】
micro SDカードをPCにセット
ラズパイで使用する用のmicro SDカードです。最終的にこのmicro SDカードをラズパイにセットすることでラズパイをUbuntuにします。
ラズパイの公式ページから、Raspberry Pi Imager をダウンロードし実行
「Download for Windows」からDL。
OSは「Ubuntu Server 20.04.5 LTS (64-bit)」を選択。
その他の汎用OS>Ubunntu>Ubuntu Server 20.04.5 LTS (64-bit)
バージョンによっては、Ubuntu Server にするか、Ubuntu Desktop にするかの選択肢があるが、20.04は Ubuntu Server のみ。Serverだと、コンソール画面しか出ないモードになる。
しかし、Server を Desktop にすることもできるとのことです。
【AGIRobots Raspberry PiでUbuntu Desktop 20.04 LTSを使う方法!】
SDカードを選択しWRITEボタンを押せばSDカード完成。
wifiの設定
【@__otk3__ [備忘録] Raspberry Pi に ROS2 環境をセットアップ】
【ITCブログ [Ubuntu 20.04.3 LTS]ターミナルでwifiを設定する方法 netplan “aliases are not supported”エラーへの対処法】
ラズパイにmicro SDをセットして起動
Ubuntu 20.04 がコンソール画面で立ち上がるので、デフォルトとなっているユーザー名ubuntuで入る。パスワードもubuntu。すぐに新しいパスワードを作るように求められるのでそのようにする。
タイムゾーンの設定
50-cloud-init.yaml の編集
フォルダへ移動しviで設定ファイルを開く。
下記を追加。インデントの位置も決まっているので正確に。SSIDとpasswordの表記には、ダブルクォーテーションでくくることが必要。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# This file is generated from information provided by the datasource. Changes # to it will not persist across an instance reboot. To disable cloud-init's # network configuration capabilities, write a file # /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following: # network: {config: disabled} network: ethernets: eth0: dhcp4: true optional: true version: 2 #以下を追加 wifis: wlan0: optional: true access-points: "自分のSSID": password: "SSIDのパスワード" dhcp4: true |
変更を適用
ip address の確認
inet 192.168.x.x などの記述が表示されればOK(xには何らかの数字が入ります)。それがラズパイに割り当てられたIPアドレス。
ROS2のインストール
【@__otk3__ [備忘録] Raspberry Pi に ROS2 環境をセットアップ】
windows のコマンドプロンプトからラズパイにsshで入る
windows からsshでラズパイに入って操作した方が、コマンドのコピペができるので便利。
パスワードを聞かれるので設定したように入れる。
apt のupdate
けっこう時間がかかった。
ROS2 Foxyのインストール
【公式 ROS2のUbuntuへのインストール】
【@porizou1 ubuntu20.04LTSへのROS2 Foxyのインストール】
APTリポジトリの追加
ここからが本命のROS2インストール。1時間以上はかかったと思う(寝てしまった)。
ROS2の設定
ros2アクティベーションを.bashrcに登録
今後、新しくプロンプトを起動したら、source ~/.bashrc でros2をアクティベートする。
colcon build インストール
ROS2の動作確認
ワークスペース作成
ここまで、windows のコマンドプロンプトからsshでubuntuを操作している想定。
引き続き、sshから。
talker を起動
以下が出力される。ラズパイから’Hello World’がPublishされ続けている状態。
windows で新しいコマンドプロントを立ち上げてsshでログインし、listener を起動。
以下が表示されれば成功。Publish を受け取れている。
これは、同じラズパイ内で通信がうまくいっているということ。
次は、同じLAN内の別なPC、ここではsshを使っているwindows 自身のros2でlistener を起動してみる。
これもできました。すごい。IPアドレスの設定とかしていないのに通信できています。ROS2は、ROSのように全体を統括するroscoreのようなものがないのにです。
逆向き(windowsがtalker でラズパイがlistener)でも動くことも確認しました。
コメントを残す