本記事ではRobot Operating System(ROS1およびROS2)の開発環境を整えてゆきます。よく勉強用に使われるROSの環境は下の通りです。
- PCに直接Ubuntuをインストール
本格的にロボットを動かしたい。しっかり勉強したいという場合はこちらがおすすめです。日常的にLinuxを扱うことで開発環境にも慣れることができます。Windowsを一度消す、あるいはOSのデュアルブートを行う必要がありますので、使用していないノートPCを使うことをお勧めします。最近は中古のLet’s Noteがたたき売りされていますので、おすすめです。 - Raspberry PiにUbuntuをインストール
なるべく安くROSによって動くロボットを作りたいという場合にはこちらがおすすめです。Raspberry Pi 4のメモリは8GBがおすすめです。まだ日本では公式で販売されていませんがRaspberry Pi 5が用意できると最高ですね。 - Windows上の仮想環境でUbuntuを動かす
とりあえず少し触ってみたい。コストとリスクをかけずに勉強したいという場合はこちらです。
あくまで仮想環境で行うため、エラーが発生したり、現実のロボットを動かせなかったりします。
勉強と割り切るならアリ。
というわけで今回はRaspberry PiにUbuntuをインストールする方法について述べます。
構成する環境
ROSはUbuntu上で動くソフトなのですが,設定の違いによってトラブルが起きやすいので,クリーンインストールしてから始めることをお勧めします。
ROSのバージョンはUbuntuのバージョンとリンクしてます。
※RAMが2GB,4GBだとビルドが途中で落ちることが多々ありました。
出来れば8GBが良いかもしれません。
使用機器 | Ubuntuバージョン | ROS1バージョン | ROS2バージョン |
---|---|---|---|
Raspberry Pi 4 Model B / 8GB | 20.04 | Noetic | Foxy |
準備する物
- Raspberry Pi 4 Model B
- USBキーボード
- Micro SDカード 32GB以上
- ディスプレイ
- Micro HDMI to HDMI変換ケーブル
- USB TypeC 電源ケーブル 5V 3A
一式そろえるのがめんどくさいという方はセットも売ってます。
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カードを丸ごとバックアップしておくと便利です.
以下参考に.