ROS Noetic の環境構築まとめ

![rosnoetic.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2337794/f153f38f-b371-7062-b603-e7dbb74a9a4b.png)
はじめまして。
Qiita初心者なので、今回は記事を書く練習も兼ねてROS Noeticの環境構築をまとめました。
ROSって何？と思った方は以下の記事を参考にすると良いと思います。
[Robot-teck.jp "ROSとは/ROS2とは"[1]](https://robot-tech.jp/technology/rbo01.html)

#目的
Ubuntu20.04がインストール済みの環境にROS Noeticをインストールする

#概要
基本的には以下の本家Wikiの通りですが、一部異なる作業もしています。
[Wiki.ros.org[2]](http://wiki.ros.org/noetic/Installation/Ubuntu)

#開発環境
- Ubuntu20.04(x64)

##事前準備
ROS Noeticをインストールする前提条件として、OSがUbuntu20.04である必要があります。
以下のリンクでデスクトップイメージをインストールできます。
[本家サイト[3]](https://releases.ubuntu.com/20.04/)
[日本語版のインストール[4]](https://www.ubuntulinux.jp/News/ubuntu2004-ja-remix)

Ubuntu20.04をインストールする方法は以下の2つが簡単なのでおすすめです。
①BIOSのブート設定でインストール
②仮想環境(VirutualBox)でインストール

追記:①、②の手順は以下のサイトを参考にしました。非常にわかりやすくまとめてくれています。
①-> 
https://linuxfan.info/ubuntu-20-04-install-guide/amp [6]

②->
https://qiita.com/HirMtsd/items/225c20b77a7cd5194834 [7]

ただし、①はハードウェアに直接OSを書き込むため、手順を間違えると前まで使っていたOSはすべて削除されてしまいます。デュアルブートとかで2つのOSを使うことも可能らしいけど、面倒臭そうなので自分はやりませんでした。
②は重い処理をしない人にはおすすめですが、機械学習など負荷のかかる作業をする場合は①のほうが良いかと思います。

#作業内容
##1.ROS Noeticのインストール
一行ずつ入力し、Enterを押して実行します。ちなみに＄は入力しませんので注意してください。

```
$ 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://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
$ sudo apt update
$ sudo apt install ros-noetic-desktop-full
```
最後のコマンドを実行するとインストールが開始します。
自分の環境では約15分かかってインストールが完了しました。

完了したら、同様に以下のコマンドを入力して環境設定をします。

```
$ source /opt/ros/noetic/setup.bash
$ echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
$ source ~/.bashrc
```

最後に、動作確認のため以下のコマンドを実行します。

```
$ roscore
```

以下のように表示されれば取り敢えずOKです。（一部表示が異なる場合もあります）
![Screenshot from 2021-12-01 12-36-36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2337794/d867bf9d-1d25-123a-2ac9-155109134305.png)

次はROS上でPythonプログラムを動かせるようにする設定をします。


##2.PythonをROSで使えるようにするための設定
以下のコマンドを実行します。

```
$ sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
$ sudo apt install python3-rosdep
$ sudo rosdep init
$ rosdep update
```
余談ですが...
1つ前のバージョンのROS MelodicまではPython2が対応していましたが、NoeticからPython3に変更されています。
基本的にはあまり変わりませんが、Melodicまでで動いていたPythonスクリプトがNoeticだと動かないなんてことがあるかもしれないので注意してください。

次のセクションで最後になります。ワークスペースの作成をして完了です。

##3.ワークスペースの作成
ワークスペースのビルドの方法として、catikin buildを使いたいので、以下のコマンドを実行するします。このコマンドは以下のサイトを参考にしました。
[Zenn"ROS Noeticでcatkin buildを使う"[5]](https://zenn.dev/suisuiso/articles/08177aacbffc7a)

```
$ sudo apt install python3-osrf-pycommon python3-catkin-tools
$ sudo apt install build-essential
```
以下のコマンドで環境設定をします。

```
$ source /opt/ros/noetic/setup.bash
```
次に、ワークスペースを作成し、ビルドまで行います。

```
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/
$ catkin init
$ catkin build
```
これでエラーが出なければ大丈夫です。

以下のコマンドで環境設定をします。

```
$ source devel/setup.bash
```

最後に、以下のコマンドでパスが通っているかを確認します。

```
$ echo $ROS_PACKAGE_PATH
```
/opt/ros/noetic/shareと表示されれば完了です！おつかれさまでした！

###おまけ
何かしらのソースコードをインストールしてビルドする時、毎回環境設定のコマンドを実行する必要があります。
自分はこれが面倒だなと感じたので、以下のコマンドを実行して.bashrcファイルを書き換えました。

```
$ echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
```
最後に以下のコマンドで設定の変更を反映させれば作業はすべて終了です。

```
$ source ~/.bashrc
```

#参考文献
[1]Robot-tech.jp　”ROS/ROS2とは” https://robot-tech.jp/technology/rbo01.html (2021/11アクセス)
[2]Ros.org http://wiki.ros.org/noetic/Installation/Ubuntu (2021/11アクセス)
[3]Ubuntu releases https://releases.ubuntu.com/20.04/ (2021/11アクセス)
[4]Ubuntu Japanese Team https://www.ubuntulinux.jp/News/ubuntu2004-ja-remix (2021/11アクセス)
[5]Zenn "ROS Noeticでcatkin buildを使う" https://zenn.dev/suisuiso/articles/08177aacbffc7a (2021/11アクセス)
[6] https://linuxfan.info/ubuntu-20-04-install-guide/amp
[7] https://qiita.com/HirMtsd/items/225c20b77a7cd5194834