ラズパイ4B(8GB)+ Ubuntu 21.10 Desktop でコンテナにROS1(Melodic)をインストールしてみます。
Raspberry Pi Imager を使ってOSをMicroSDに焼きます。
ただ、2022/01/13現在、このイメージには若干問題があるようです。
ネット上にはいろいろ情報がありますが、管理人が確認した問題はターミナルを開いて右上のバッテンで閉じようとすると、ほぼ確実にフリーズするというものです。フリーズはその他のプロセスでも起きるようですが、確認済はここでした。
どうもこの問題はディスプレイと関連しているようですが、詳しいことは不明です。
また、USBアダプタ1つでBluetoothを使ってワイヤレスでマウス・キーボードを使えるものがありますが、キーボードが認識されませんでした。
WisteriaHillで確認した問題は以下の方法で解消できました。
まず、キーボードは有線でUSBポートに接続する。
ターミナルを開いて、以下のファイルを編集する。
1 |
sudo nano /boot/firmware/config.txt |
dtoverlay=vc4-kms-v3d —> dtoverlay=vc4-fkms-v3d
再起動
1 |
sudo reboot |
面倒だとお感じの方は21.04のバージョン(Ubuntu Desktop 21.04)なら、問題なく使えます。
Ubuntuはラズパイに関して、Serverは正式サポートしていますがDesktopに関してはどうなんでしょう?
アップデート、アップグレード、パッケージなどのインストール
1 2 3 |
sudo apt update sudo apt upgrade -y |
Ubuntu 21.10 Desktop にコンテナを作成
必要なパッケージやライブラリを事前にインストールしておきます。
1 |
sudo apt install curl gnupg2 lsb-release |
Docker インストール
1 |
curl -sSL https://get.docker.com | sh |
Melodicをインストールするので、Docker Hub からUbuntu 18.04 のイメージを拝借
1 |
sudo docker pull 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
コンテナを起動
1 |
sudo docker start -i my_ros1 |
アップデート&アップグレード、パッケージなどをインストール
1 2 3 4 |
apt update apt upgrade -y apt install nano |
コンテナにROS1(Melodic)をインストール
リポジトリ追加
1 2 3 4 5 |
apt install software-properties-common apt-add-repository universe apt-add-repository multiverse apt-add-repository restricted |
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をインストール
1 2 3 4 5 6 7 |
apt update apt install ros-melodic-desktop-full echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc source ~/.bashrc |
OSのソフトウェアパッケージのインストールに必要なrosinstallをインストール
apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
ソースコンパイル時の依存パッケージインストールに使われるrosdepをインストール
1 2 3 4 5 |
apt install python-rosdep rosdep init rosdep update |
ワークスペース作成
1 2 3 4 5 |
mkdir -p ~/workspace/catkin_ws/src cd ~/workspace/catkin_ws catkin_make |
1 |
sh -c 'echo "source ~/workspace/catkin_ws/devel/setup.bash" >> ~/.bashrc' |
ROS起動
1 |
roscore |
1 |
sudo xhost si:localuser:root |
1 |
sudo docker exec -it my_ros1 bash |
Rviz起動
1 |
rviz |
Gazebo
ホスト側でXを設定しておきます。
1 |
sudo xhost si:localuser:root |
my_ros1のコンソールを別ターミナルでもう一つ開いておきます。
1 |
sudo docker exec -it my_ros1 bash |
Gazebo 起動
1 |
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 に入れといたほうがいいもの
ネット関連ライブラリ
1 |
sudo apt install net-tools |
SSH
1 |
sudo apt install openssh-server -y |
確認
1 |
sudo systemctl status ssh |
Leave a Reply