Raspbeyyi Pi ROS1 ROS2 プログラム 高専4年生

【ROS1,ROS2】ROS環境の構築~Raspberry Pi 4編~【Ubuntu20.04】

本記事ではRobot Operating System(ROS1およびROS2)の開発環境を整えてゆきます。よく勉強用に使われるROSの環境は下の通りです。

  1. PCに直接Ubuntuをインストール
    本格的にロボットを動かしたい。しっかり勉強したいという場合はこちらがおすすめです。日常的にLinuxを扱うことで開発環境にも慣れることができます。Windowsを一度消す、あるいはOSのデュアルブートを行う必要がありますので、使用していないノートPCを使うことをお勧めします。最近は中古のLet’s Noteがたたき売りされていますので、おすすめです。
  2. Raspberry PiにUbuntuをインストール
    なるべく安くROSによって動くロボットを作りたいという場合にはこちらがおすすめです。Raspberry Pi 4のメモリは8GBがおすすめです。まだ日本では公式で販売されていませんがRaspberry Pi 5が用意できると最高ですね。
  3. Windows上の仮想環境でUbuntuを動かす
    とりあえず少し触ってみたい。コストとリスクをかけずに勉強したいという場合はこちらです。
    あくまで仮想環境で行うため、エラーが発生したり、現実のロボットを動かせなかったりします。
    勉強と割り切るならアリ。

というわけで今回はRaspberry PiにUbuntuをインストールする方法について述べます。

構成する環境

ROSはUbuntu上で動くソフトなのですが,設定の違いによってトラブルが起きやすいので,クリーンインストールしてから始めることをお勧めします。
ROSのバージョンはUbuntuのバージョンとリンクしてます。

※RAMが2GB,4GBだとビルドが途中で落ちることが多々ありました。
出来れば8GBが良いかもしれません。

使用機器UbuntuバージョンROS1バージョンROS2バージョン
Raspberry Pi 4 Model B / 8GB20.04NoeticFoxy
準備するROS環境

準備する物

  1. Raspberry Pi 4 Model B
  2. USBキーボード
  3. Micro SDカード 32GB以上
  4. ディスプレイ
  5. Micro HDMI to HDMI変換ケーブル
  6. USB TypeC 電源ケーブル 5V 3A

一式そろえるのがめんどくさいという方はセットも売ってます。

https://amzn.asia/d/fqDwbtg

Ubuntu 20.04のインストール

1. ラズパイとは別のPCを用意(MicroSDカードにOSを書き込みます)

2. ラズパイのOS書き込みソフトをダウンロード

Raspberry Pi Imager for Windows

3. 画面に従いインストール

4. SDカードをPCにセットしイメージ書き込み

4.1 OSを選ぶをクリック

Other general-purpose OS -> Ubuntu -> Ubuntu 20.04.03 64bit server OS
の順でクリックし,Ubuntu 20.04.4 64bit server OSを選択します.

4.2 ストレージを選ぶをクリックし,差し込んだSDカードを選択
4.3 書き込むをクリック

5. Raspberry Piに作成したSDを挿入して電源を入れて起動.

有線LANにつないでおく.(ここからはラズパイでの操作)

5.1 起動したらIDとパスワードを入力する初期設定は以下の通り
ubuntu login: ubuntu
password: ubuntu
5.2 パスワードの変更を求められるので任意のパスワードを入力
Current password: ubuntuと入力
New password: 新しいパスワードを入力
Retype new password: 再度新しいパスワードを入力
5.3 Ubuntu-Desktopをインストール

ROSを動かすだけならserver版でも良いですが,
Linuxに慣れてない方向けにデスクトップ版を入れておきます.
途中Do you want to continue?[Y/n]と聞かれたらエンターを押します.
rebootで再起動.

$ sudo apt update
$ sudo apt install ubuntu-desktop
$ reboot

いけました.

※参考:Ubuntu公式サイト

https://ubuntu.com/download/raspberry-pi

ROS1のインストール

Terminalを起動し、以下のコマンドを入力します。

1.packages.ros.org からのソフトウェアを受け入れるよう許可

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

2.鍵の設定

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

3.Ubuntu をアップデート

sudo apt update

4.インストール

sudo apt install ros-noetic-desktop-full

5.環境設定

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

6.rosinstallの準備

sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential

7.rosdepの初期化

sudo rosdep init
rosdep update

8.インストールの確認

roscore

以下の通りエラーが出なければ成功です。

<username>@ubuntu:~$ roscore
... logging to /home/<username>/.ros/log/3da110c6-4d4c-11eb-b763-f9ecf65ee99d/roslaunch-ubuntu-20827.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
invalid ROS_IP (must be a valid IPv4 or IPv6 address)
invalid ROS_IP (must be a valid IPv4 or IPv6 address)
invalid ROS_IP (must be a valid IPv4 or IPv6 address)
started roslaunch server http://master:33043/
ros_comm version 1.15.9
SUMMARY
========
PARAMETERS
 * /rosdistro: noetic
 * /rosversion: 1.15.9
NODES
auto-starting new master
process[master]: started with pid [20835]
invalid ROS_IP (must be a valid IPv4 or IPv6 address)
invalid ROS_IP (must be a valid IPv4 or IPv6 address)
ROS_MASTER_URI=http://master:11311/
setting /run_id to 3da110c6-4d4c-11eb-b763-f9ecf65ee99d
process[rosout-1]: started with pid [20845]
started core service [/rosout]

ROS2のセットアップ

同じくTarminalを起動し、以下のコマンドを入力してゆきます。

1.リポジトリのアップデートをします.

sudo apt update

2.インストール

sudo apt install ros-foxy-desktop

3.環境設定

echo "source /opt/ros/foxy/setup.bash" >> ~/.bashrc
source ~/.bashrc

4.ROS2ではビルドシステムがcatkinからcolconに変わりました。別途インストールする必要があります。

sudo apt install python3-colcon-common-extensions

5.その他アプリのインストール

sudo apt install -y python3-argcomplete  python3-pip

完了です。

バックアップ

環境をリセットする際に毎度ROSのインストールをしていては面倒ですので,
RaspberryPiのSDカードを丸ごとバックアップしておくと便利です.
以下参考に.

Follow me!

-Raspbeyyi Pi, ROS1, ROS2, プログラム, 高専4年生
-, , , ,

PAGE TOP