LoginSignup
2
4

More than 1 year has passed since last update.

RaspberryPi4にROS melodicをインストール

Posted at

はじめに

RaspberryPi4にROSをインストールした時の記事(22年1月時点)です。
ROSをRaspberryPi4にインストールするにあたり、使用OSがUbuntu20.04 LTSであればROS(Noetic)をインストール方法がインターネット上に豊富に公開されており、「sudo apt-geto install ~」コマンドをいくらか入力することで簡単にインストールできます。

しかしながら、今回は以下2つの課題があったために今回はUbuntu20.04 LTS上のROSインストールとせず、RaspberryPi OS 32bit『Buster』にてROSをインストールしていきます。

課題1
RaspberryPi4にUbuntu20.04LTSを適用した場合、RaspberryPiのGPIOを制御するためのライブラリである「wiringPi」が完全に動作しません。具体的には、GPIOをHigh/Low簡単に切り替える程度に一部動作はできるものの、ラズベリーパイのもつSPI(Serial Peripheral Interface)を動作させることができませんでした。今回はROSを用いたシステム上でSPIも動かすことを目指します。

課題2
将来的にrviz等のGUIツールでROSで構築したシステムをデバッグしたいため、Ubuntu20.04LTSを適用する場合は必然的にDesktop版となりますが、RaspberryPi4にUbuntu20.04LTS Desktop版をインストールすると起動時の立ち上がり時間が非常に遅いです。

以上を踏まえ、RaspberryPi4AにはRaspberryPi OS 32bit『Buster』を適用し、ROS(Melodic)をインストールしてみたので覚書として記載します。なお、22年1月時点のRaspberry Pi OSの最新版は『Bullseye』ですが、これだと ROS(Melodic)をうまくインストールできるかわからなかったので、1つ古い『Buster』を採用しています。

ROS(Melodic)のインストール手順

RaspberryPi OSにてROSをインストールする場合、必要なパッケージをビルドしていく必要がある上、ビルドするための環境自体のインストールから必要となり険しいです。

特に以下2つのサイトを参考に手順を踏みました。
http://forestofazumino.web.fc2.com/ros/ros_install.html
http://wiki.ros.org/ROSberryPi/Installing%20ROS%20Melodic%20on%20the%20Raspberry%20Pi

ROSをaptレポジトリに追加

実施手順(推奨)
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu raring main" > /etc/apt/sources.list.d/ros-latest.list'
$ wget http://packages.ros.org/ros.key -O - | sudo apt-key add 
$ sudo apt-get update
$ sudo apt-get upgrade

ROSのインストール手順を色々調べていると以下のようにしてレポジトリ追加している手順も結構あり、はじめはこれらを使っていましたが、公開鍵を設定するapt-keyコマンドが全然通りませんでした。何回かapt-keyコマンド打ってたらすごく稀に通りますが、断念しました。参考に記載します。

実施手順(非推奨)
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
$ sudo apt-get update
$ sudo apt-get upgrade

pipとツールのインストール

Raspberrypi OSの場合、ROSインストールに必要な後に出てくるツール類はpipを用いないとインストールできませんでした。
更に、python-pipをインストールしようとするとできず、python3-pipをインストールを推奨されましたが、これをインストールしてしまうと、python2と3のライブラリが競合して(?)以降の手順でwstool等が動かなくなったので要注意。

実施手順
$ sudo apt-get install python-pip
$ sudo pip install rosdistro
$ sudo pip install wstool

セットアップツールのインストール

実施手順
$ cd ~/Downloads
$ wget https://pypi.python.org/packages/source/s/setuptools/setuptools-1.1.6.tar.gz
$ tar xvf setuptools-1.1.6.tar.gz
$ cd setuptools-1.1.6
$ sudo python setup.py install  

上記コマンド群がダメな場合は以下です。

実施手順(上記コマンド群がダメな場合)
$ sudo apt-get install setuptools

各種ツールのインストール

実施手順
$ sudo apt-get install python-stdeb
$ sudo pip install rosdep
$ sudo pip install rosinstall-generator
$ pip install -U rospkg
$ sudo apt-get install python-rosdep python-rosinstall-generator build-essential

rosdep初期化

実施手順
$ sudo rosdep init
$ rosdep update

catkin Workspaceの作成

実施手順
$ mkdir -p ~/ros_catkin_ws
$ cd ~/ros_catkin_ws

インストール:Desktop: ROS, rqt, rviz, and robot-generic libraries

pipでちゃんと各ツールがインストールできていれば問題ないと思います。
LiDARで取得した点群情報を後々にrvizを使ってGUIで表示させたいので、ここではDesktop版をインストールしています。

実施手順
$ rosinstall_generator desktop --rosdistro melodic --deps --wet-only --tar > melodic-desktop-wet.rosinstall
$ wstool init src melodic-desktop-wet.rosinstall

依存関係の解決

RaspberryPi OSに『Buster』を採用していれば問題ないと思います。

実施手順
$ cd ~/ros_catkin_ws
$ rosdep install -y --from-paths src --ignore-src --rosdistro melodic -r --os=debian:buster

ビルド

RaspberryPi OSに『Buster』を採用していれば問題ないと思います。

実施手順
$ sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/melodic
$ source /opt/ros/melodic/setup.bash
$ echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc

これにてROSはインストール完了!

2
4
2

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