ROSの公式サイトを見てみたがRaspberry pi OSにROSをインストールする正規の手段はないという事らしい。Raspberry pi OSを使用する場合はDockerを使用してくれということらしい。
ROS公式サイト
画像をクリックすると楽天に飛びます。
Dockerのインストール
下記のサイト様を参考にDockerをインストールする。
まずはアップデートを行う。
sudo apt update && sudo apt full-upgrade -y
次にDockerのインストール
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
Dockerをユーザー権限で実行できるようにする。
sudo usermod -aG docker ユーザー名
画像をクリックすると楽天に飛びます。
ROSの構築
Dockerイメージの入手。
docker pull arm64v8/ros:humble-perception
コンテナを作成し起動する。
docker run -it arm64v8/ros:humble-perception
これでROSがインストールされた。しかし私としては公式サイトと同じ構成にしたかったので以下の通りにコンテナ内にROSをインストールする。こんなことして良いのかわからないがとりあえずやってみる。まずはアップデートから行う。
sudo apt update
sudo apt -y upgrade
ROSのインストール。
sudo apt install ros-humble-desktop
ROS-BASEのインストール。
sudo apt install ros-humble-ros-base
toolのインストール。
sudo apt install ros-dev-tools
これでROSがインストールされた。
テスト用のプログラムの起動
公式サイトのTry some examplesを実行してみる。
https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html#install-ros-2-packages
まずはsetupfileを読込、talerプログラムを起動。
source /opt/ros/humble/setup.bash
ros2 run demo_nodes_cpp talker
次に別のコンソールアプリを立ち上げ、先ほどのコンテナにアクセスする。
docker exec -it コンテナNAMES bash
コンテナNAMESは下記コマンドで見ることができる。
docker ps -a
コンテナ内でsetupfileを読込、listenerプログラムを起動する。
source /opt/ros/humble/setup.bash
ros2 run demo_nodes_py listener
listenerのアプリにHello worldが表示され通信できたのがわかる。
コンソールアプリ内ではROSを終了するときはCTRL+C、Dockerを終了する時はCTRL*Dとなる。
画像をクリックすると楽天に飛びます。
備考
・turtleismのようなGUIアプリは実行できない。
*やり方がないわけではない。
・Dockerのイメージは公式サイトからのリンクであるGIT HUBのページから探す。
GitHub - osrf/docker_images: A repository to hold definitions of docker images maintained by OSRF
このページのROSのarm64のリンクからDockerイメージの一覧が載っているページへ飛ぶことができるので好きなイメージを選択する。
Raspberry piのアーキテクチャはarmなのでamdでは起動できない。
まとめ
すべてが終わった後にDockerではGUIは使えないって知りました。GUI使う予定だったのに・・・まあ公式サイトしてUbuntでやれみたいに書いてあるのでそうするのが一番良いみたいですね。