ラズパイ4B + コンテナ にROS1(Melodic)をインストール


ラズパイ4B(8GB)+ Ubuntu 21.10 Desktop でコンテナにROS1(Melodic)をインストールしてみます。

Raspberry Pi Imager を使ってOSをMicroSDに焼きます。

ただ、2022/01/13現在、このイメージには若干問題があるようです。

ネット上にはいろいろ情報がありますが、管理人が確認した問題はターミナルを開いて右上のバッテンで閉じようとすると、ほぼ確実にフリーズするというものです。フリーズはその他のプロセスでも起きるようですが、確認済はここでした。

どうもこの問題はディスプレイと関連しているようですが、詳しいことは不明です。

また、USBアダプタ1つでBluetoothを使ってワイヤレスでマウス・キーボードを使えるものがありますが、キーボードが認識されませんでした。

WisteriaHillで確認した問題は以下の方法で解消できました。

まず、キーボードは有線でUSBポートに接続する。

ターミナルを開いて、以下のファイルを編集する。

dtoverlay=vc4-kms-v3d —> dtoverlay=vc4-fkms-v3d 

再起動

 

面倒だとお感じの方は21.04のバージョン(Ubuntu Desktop 21.04)なら、問題なく使えます。

Ubuntuはラズパイに関して、Serverは正式サポートしていますがDesktopに関してはどうなんでしょう?

 

アップデート、アップグレード、パッケージなどのインストール

 

 

 

 


Ubuntu 21.10 Desktop にコンテナを作成

必要なパッケージやライブラリを事前にインストールしておきます。

Docker インストール

Melodicをインストールするので、Docker Hub からUbuntu 18.04 のイメージを拝借

 


コンテナ作成

my_ros1という名前にして、rvizやgazeboを開くのでXを使います。

sudo docker create -it --name my_ros1 --network host -e DISPLAY=$DISPLAY -v /tmp/.X11-unix/:/tmp/.X11-unix ubuntu:18.04

 

コンテナを起動

 

アップデート&アップグレード、パッケージなどをインストール

 


コンテナにROS1(Melodic)をインストール

リポジトリ追加

aptキー追加

sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

 

Melodicをインストール

OSのソフトウェアパッケージのインストールに必要なrosinstallをインストール

apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential

ソースコンパイル時の依存パッケージインストールに使われるrosdepをインストール

ワークスペース作成

ROS起動

 


Rviz
ホスト側でXを設定しておきます。
my_ros1のコンソールを別ターミナルでもう一つ開いておきます。

Rviz起動

 


Gazebo

ホスト側でXを設定しておきます。

 

my_ros1のコンソールを別ターミナルでもう一つ開いておきます。

 

Gazebo 起動

 

Errorが出る場合

[Err] [REST.cc:205] Error in REST request

対処

以下のファイルをエディタで開きます。

~/.ignition/fuel/config.yaml

書き換え

url: https://api.ignitionfuel.org -> url: https://api.ignitionrobotics.org

Gazebo 再起動

 


Appendix

Ubuntu 21.10 Desktop に入れといたほうがいいもの

ネット関連ライブラリ

SSH

確認

 


Be the first to comment

Leave a Reply

Your email address will not be published.


*