0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ラズパイにROS2開発環境を構築

Last updated at Posted at 2023-12-19

概要

この記事の存在意義

micro-ROSを用いることでPCとマイコンをROS2でつなぐことができる。しかし、PCとマイコンはUSBでつなぐことが前提とされているのが現状だ。
F7で無線通信を行う場合は中継器を用いてUDP通信を行う方法があるが、micro-rosはどうやら対応していない。
一つの結論として、無線通信用にラズパイを用意してROS2を入れ、ラズパイとマイコンをmicro-rosでつなぎ、ラズパイとPCはwifi経由で通信する方法が考えららる。本記事ではそのために取り敢えずラズパイにROS2を入れるところまでを解説する。
もう一つのやり方として、ESPなどのwifiに対応したマイコンボードを使うことも考えられる。もっと言うと、制御する機構が少なければ、ラズパイのGPIOピンで事足りるので、F7を使わない選択肢もある。

大まかな手順

  • ubuntuのインストール
  • ssh接続をする
  • ROS2のインストール
    既に関連する記事がいくつかあるので、この記事で新しく説明することは多くない

動作環境・バージョン

動作環境

Ubuntu22.04 :デュアルブートした実機PC
Raspberrypi 4 model B 

バージョン

ROS2 : humble
raspiのOS: Ubuntu server 22.04 (64bit)  :desktopでもいいが、軽いのでこちらを選択

コンテンツ

ここからお使いのOSに合わせたRaspberry Pi Imagerをインストールしてください。
Ubuntu Server20.04.5 LTS(64-bit)を書き込むのですが、書き込む前にパスワードなどを設定しておくことができます。
スクリーンショット 2023-10-04 125042.png (101.9 kB)
設定マークをクリックして、
スクリーンショット 2023-10-04 125134.png (115.7 kB)
各項目の設定をします。
wifiの設定も行うことができるので、ここで予め設定しておくとよいでしょう。

wifiに接続し、IPアドレスをしらべる

PCからラズパイを操作できるようにするためにwifiに接続した上でIPアドレスを把握する必要があります。モニターを使う方法が一般的ですが、モニターがない場合もあるかと思うので、ヘッドレスセットアップを行う方法も紹介します。

モニターを用いる方法

wifiの設定

ラズパイに電源とキーボードをつないで起動してください。
wifiの設定を行います、一つ前の手順でwifiの設定を済ませた場合は不要です。
以下のコマンドを実行してください。
cd /etc/netplan/
sudo nano 50-cloud-init.yaml
そして、以下の内容を追記して保存

wifis:
    wlan0:
        optional: true
        dhcp4: true
        access-points:
            SSID名:
                password: パスワード

SSID名とパスワードは使用するwifiに合わせて変えてください
以下のコマンドを実行して、エラーがないか確認してください
sudo netplan --debug try
sudo netplan --debug generate
問題がなければ設定を適用します。
sudo netplan --debug apply
一応再起動してください
sudo reboot

IPアドレスの取得

次にラズパイのIPアドレスを調べます
ラズパイ側でip aを実行してwlan 0から始まる箇所のIPアドレス(inetから始まる)を確認して下さい。

ヘッドレスセットアップ

wifiの設定

ヘッドレスセットアップを行う場合は、一つ前の手順(OSをmicroSDに書き込む段)でwifiの設定をしておいて下さい。
さらに、microSDをPC側で開いて、root以下にsshという空のディレクトリを作成しておいてください。

IPアドレスの取得

次にラズパイのIPアドレスを調べます
この段階ではラズパイ側を弄れないのでwifiの管理者画面から確認します。このときにラズパイがwifiに接続できているかの確認も同時にできるので、オススメの方法です。
私の使用しているTP-LinkのTL-WR841Nではtplinkwifi.netとPC側でブラウザのwebアドレス欄に入力すれば開けます
※パスワードを求められる場合もある。初期パスワードはadminらしいが、分からなければこの方法は使えない
スクリーンショット 2023-10-04 133220.png (127.7 kB)
※赤枠の箇所をクリックするとIPアドレスが見られる

何らかの理由でwifiの管理者画面を開けない場合は以下の方法を試して下さい。
先ず、ラズパイをつなぐwifiーmicroSDの書き込み時にそう設定したwifi、にPCも接続して下さい。
PC側でifconfigをしてPCのIPアドレスを確認して下さい。
Screenshot from 2023-12-10 13-24-39.png (55.2 kB)
wlo1inetを見て下さい。この値の前3つーこの写真なら192.168.0、を確認して下さい。
次にラズパイが正常にwifiに接続できていることを信じて以下のコマンドを打って下さい。
echo <inetの前3区切り>.{1..255} | xargs -P256 -n1 ping -c1 -t1 | grep ttl
このコマンドは、wifiによって繋がれたネットワーク内の可能性がある全てのIPアドレスに対してpingを打って疎通確認を行い、返答があったIPアドレスをリストアップしています(通信詳しくないので解釈が間違ってるかも)。
Screenshot from 2023-12-10 13-28-15.png (27.5 kB)
以上のような結果が帰ってくるかと思います。これらのIPのどれかがラズパイのIPアドレスです。
この写真では192.168.0.1192.168.0.104192.168.0.151のどれかということになります。

ssh接続する

IPアドレスが分かったら、PC側で以下のコマンドを実行してください
sudo ssh ユーザー名@IPアドレス
ssh接続できたら、PCからラズパイを操作できます
取り敢えず、sudo apt updatesudo apt upgradeをしておきましょう。

ROS2のインストール

ROS2公式ドキュメントに従ってインストールすればよい

トラブルシューティング

一般論

ラズパイとsshするPCは同じwifiもしくはLANにつながっている必要があります。上手くいかないときはこれを先ず確認して下さい。

個別の対策

ros2-humble-desktopのパッケージが見つからない、と言われる

間違えて32bitをインストールしていませんか?
uname -aで確認して下さい。

Screenshot from 2023-12-10 13-43-32.png (15.7 kB)

aarc64のように~64と表示されれば64bitですが、そうでなければ32bitが入っている可能性を検討して下さい。

終わりに

ラズパイは小規模なロボットを自主開発する場合にはお世話になることも多いかと思います。STMマイコンとROS2を連携する場合などではロボコンでも使う機会があるでしょう。
ただ、ubuntuを入れてしまうとGPIOピンを使う際に一手間必要になるみたいなので、気が向いたらそれについても調べて記事を書きたいと思います。

参考文献

Linuxのpingコマンドで覚えておきたい使い方16選(+2個)|俺的備忘録~なんかいろいろ~

0
2
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
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?