[ロボ実験記録] Ubuntuのセットアップ~ROS2 with docker の立ち上げ

概要

ロボットアームのミドルウェアであるROS2(robot operating system 2)をubuntuで立ち上げるまでのメモです。

Ubuntuのセットアップ

慣れている人には不要な内容ですが、せっかくなので、Ubuntuのセットアップメモから記録していきます。

Ubuntuとは?

UbuntuはLinuxベースのフリーのOSです。
ROS2にも様々なバージョンがありますが、2027年3月までの長期サポートバージョン(Humble Hawksbill)では、Ubuntu 22.04の利用が推奨されています(リンク)。WindowsやMacを使うことも可能な一方で、Pythonの深層学習ライブラリやらリモート接続やらを考えると、Ubuntuが便利で、デファクト・スタンダードになっているといえます。

Ubuntuのダウンロード

公式サイトから、Ubuntu 22.04のインストールに必要なファイル(isoファイル)をダウンロードします。

LTS(long term support)をダウンロードするのがオススメです

(画面の下の方には「Ubuntu Server」のリンクも貼られています。こちらはグラフィカルユーザーインターフェースGUI無しのバージョンです。ROSではGUIを使うようなので、Ubuntu Desktopをダウンロードします)

ブートメディアの作成

UbuntuのインストーラをUSBメモリに書き込みます。
Rufusというソフトウェアを使うのがおすすめです。

以下の感じの設定で、「スタート」ボタンを押して書き込みます。

Ubuntuのインストール

Ubuntuを入れたいPCに、インストーラを書き込んだUSBを差し込んだ状態で電源をONにします。
起動後、F2やらF8やらEscを連打(キーはPCによって異なります)して、BIOS画面を開きます。
Ubuntuをinstallします、的な項目を選び、インストーラを起動します。あとは流れに沿って処理するだけです。

ROS2のセットアップ

ubuntuにrosを入れます。

リモート接続のセットアップ(任意)

今回はノートPCにubuntuを入れました。
ノートを直接触って制御しても良いのですが、普段使っているキーボードやマウス、ディスプレイをそのまま転用したいので、PCをリモート接続で操作することにします。リモート接続が不要な人は飛ばしてOKです。

まずはubuntu側をsshやリモートデスクトップに対応させます。

#ipアドレスを確認するためapp
sudo apt install -y net-tools

#SSHサーバー 
sudo apt install openssh-server

#リモートデスクトップ関連
sudo apt install xrdp
sudo adduser xrdp ssl-cert

ifconfigコマンドなどでマシンのipを確認した後、SSH接続します。
以下はwindowsから接続する例(コマンドラインから実行)

#※user名やipは環境ごとに違います
ssh user@192.168.11.3


Dockerのインストールと立ち上げ

ROS2を構築するのはちょっと大変らしいので、Dockerを使います。
Dockerとは、仮想環境をお手軽に構築するためのツールです。
Dockerの入れ方や操作は、以下のサイトをそのままなぞります。

https://ouxt-polaris.github.io/ros_handson/how_to_setup/

#パッケージの更新
sudo apt-get update
sudo apt-get install

#curl
sudo apt install curl

#認証キーの取得関連
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

#パッケージの更新
sudo apt-get update

#dockerのinstall
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

docker起動時にsudoを入れるのが面倒なので、権限を与えます。

sudo groupadd docker
sudo usermod -aG docker $USER
sudo chown $USER:docker /var/run/docker.sock

こちらで配布されているdocker imageを使います。

以下のコマンドを実行すると、ダウンロードが始まり、自動で起動されるはずです。

docker run --rm -p 6080:80 --shm-size=4096m --security-opt seccomp=unconfined ghcr.io/ouxt-polaris/ros_handson/ros_handson:latest

次に、http://127.0.0.1:6080/を開いて動作を確認します。

gazeboの起動など

あとはチュートリアルに沿って動かすことができそうです。

(今後は勉強も兼ねて、dockerではなく、自分でros環境を構築する予定です)
→続き


この記事が気に入ったらサポートをしてみませんか?