1.使用したもの
・Raspberry Pi 400 1台
・microSDカード(Team microSDHCカード 32GB) 1枚
・周辺機器
・マウス(有線) 1つ
・モニター 1台
・HDMIケーブル(タイプAオスーマイクロタイプDオス) 1本
・ACアダプタ(USB C Raspberry Pi 用)1つ
・PC(microSDカードスロットがある) 1台
2.手順
2-1.Raspberry Pi ImagerをPCにダウンロード+インストール
2-2.microSDカードにOSを書き込む
PCにmicroSDカードを挿入し、Raspberry Pi Imagerを利用して"Ubuntu Server 22.04.3 LTS(64bit)"を書き込む。
2-3.Raspberry Pi 400の準備
書き込みが終わったらmicroSDカードをPCから抜き、Raspberry Pi 400に挿入する。必要な配線もする。
2-4.ubuntu server OSにログイン
Raspberry Pi 400に電源をつなぐと起動するので、モニターに"ubuntu login:"と表示されたら、Raspberry Pi Imagerで書き込む際にその他の設定でユーザー名とパスワードを設定した場合にはそれぞれを入力する。設定しなかった場合には、ユーザー名"ubuntu"、パスワード"ubuntu"を入力し、今後使うユーザー名とパスワードを入力し登録する。すると、”ユーザー名”@ubuntu:~$のように表示され、以降キーボードによって操作する状態になる。
2-5.ubuntu desktopをインストール
まず、sudo apt updateとsudo apt upgradeをそれぞれ入力し更新をする。しばらく更新した後、次にsudo apt install ubuntu-desktopを入力しインストールが終わるまでしばらく待つ。ちなみに、先のその他の設定でWIFI設定をしていない場合には別途設定してから行う必要がある。インストールが終わったらrebootを入力し再起動する。
2-6.ubuntu desktopにログイン
再起動が終わるとログイン画面が表示されるのでパスワードを入力しログインする。
2-7.ROS2 Humbleをインストール
ROS2 Humbleをインストールするための準備を行う。以下のサイトの手順を参考に実行した。
2-8.ROS2の動作確認例
インストールが終わったらまずターミナル間通信の例を通して動作確認をする。1つ目のターミナルを開き、source /opt/ros/humble/setup.bashを入力し環境設定のセットアップスクリプトを実行する。次に、ros2 run demo_nodes_cpp talkerを入力しC++ファイルのtalkerファイルを実行する。すると、talkerがメッセージを送信し続ける状態になる。さらに、もう1つのターミナルを開き、同様のセットアップスクリプトを実行し、ros2 run demo_nodes_py listenerを入力することでPythonファイルのlistnerファイルが実行し、talkerが送信したメッセージをlistnerが受信する様子が観察できる。このことでROS2が正しくインストールされ、C++APIとPythonAPIが正しく動作していることが確認できたことになる。
3.感想
すんなり環境構築したかのように書いていますが、何度もつまづいて何度もインストールしなおした結果です。まず、ROS2にはいろいろなバージョンが存在します。その中でなぜROS2(Humble)を選んだかの理由は、最新かつ事前に購入していたマニピュレータのCRANE+ V2を動作させるためのパッケージがHumbleに対応し始めているためです。マニピュレータを購入した当時はFoxyというROS2のバージョンに対応したパッケージが提供されていたのでそれ用のubuntuとFoxyをインストールして動かしていました。しかし、この記事を書くために改めてubuntuとFoxyをインストールしようとしましたが、Foxy対応のubuntu20.04の更新ができず行き詰ってしまいました。単純にsudo apt updateが通らないのはアップデートが終了し、最新のアップデートファイルが違う場所に移動されたことだと現在は推測しています。
今回の作業でまだ理解できていないことがあります。それはGPG公開鍵とリポジトリについてです。なんとなく認証をしているのかなあと思いますが、今は使えるようにすることが最優先なのであとで理解することにします。ちょっともやもやが残りますが、完璧主義の癖をなおすために進み続けてみます。
今回役立った知識は、linuxのコマンドとシェルについてです。学生時代にステレオビジョンロボットを動かす実験の時に使ったことがあり、この機会に学びなおし、実践で使うことで理解が少し深まりました。
今後の課題は、ROS2(Humble)でマニピュレータが動かせるのかの検証と、linux環境のさらなる理解、ROS2のドキュメントサイトのTutorialを1つ1つ確認する作業をすることです。
以上です。ありがとうございました。