ROS(Robot Operating System)の便利さを知ってもらいたいため開発環境の導入方法を紹介します! たっきん( X (旧Twitter) )です!
以前にROS×Pythonの組み合わせが超絶便利すぎるといった内容のブログを書きました。
しかし、ROSの開発環境構築は僕個人的にややハードルが高いかなと思ってます。
現時点で最新バージョンのROS2:Jazzy Jaliscoでは以下のプラットフォーム向けにバイナリ・パッケージ版が公開されていますが、動作が安定するのはUbuntu Linuxとの声をよく聞きます。
ROS2:Jazzy Jalisco 公開バイナリ・パッケージ
- Ubuntu Linux 24.04 (Noble Numbat)
- RHEL9 (Red Hat Enterprise Linux 9)
- Windows 10 (VS 2019)
そのため、必然的にUbuntuユーザーが多く、ROSに関する情報をネットで調べてもほとんどが、Ubuntuで動かしていることが前提となっているように思えます。
そのため、ROS2を動かすならUbuntu Linux一択と言っても過言ではないでしょう。
Ubuntu Linuxは操作性がWindowsとは違うため、使いにくいと感じる人も多いかもしれないですが、そこはもう慣れるしかないです。。。
なので今日はUbuntu Linux 24.04とROS2のインストール方法について手順を1つ1つ丁寧に紹介していきたいと思います。
Ubuntu Linuxのインストール
Ubuntu Linux (24.04)をインストールしていきます。
Linuxを使ったことがない人にとってはここが山場になるかもしれません。
LinuxはWindowsと同じくOS(Operating System)となるため、ストレージへインストールすることになります。
慣れないうちはUbuntu Linux用に1台PCを用意してインストールの練習をしたほうが良いですね。
インストール・イメージの入手
下記のリンクを開きます。
開いたらUbuntu Desktop 24.04 LTSの「ダウンロード」をクリックします。
するとISOイメージがダウンロードされるので、次のステップではインストール・メディアの作成を行っていきます。
インストール・メディアの作成
インストール・メディア作成方法はいくつかありますが、ここでは僕がいつも愛用しているRufus(ルーファス)を使用します。
Rufusは起動可能なUSBドライブを簡単に作成するためのソフトになります。
USBメモリが必要になるので準備しておきましょう!(容量は8GB以上が推奨です。)
以下サイトから実行ファイルをダウンロードしましょう!
現時点で最新バージョンのRufus 4.5で説明していきます。
実行ファイルのダウンロードが完了したらUSBメモリをPCに挿してから実行します。
メイン画面が立ち上がるのでまずはデバイスを選択します。
次はブートの種類とファイルを選択します。
ブートの種類は「ディスクまたはISOイメージ(選択してください)」を選択し、「選択」ボタンをクリックしてダウンロードしたUbuntuのISOイメージを選択します。
すると画面が以下のように変わります。
設定項目は特に変更の必要はないので、そのまま「スタート」をクリックします。
以下のダイアログが立ち上がるので「ISOイメージモードで書き込む」を選択して、「OK」ボタンをクリックします。
全てのデータ消去されるので、良ければ「OK」をクリックします。
するとインストールメディアの作成が開始されるのでしばらく待ちます。
状態のプログレスバーが「準備完了」となればインストールメディアの作成完了です。
Ubuntuのインストール
それでは作成したUSBインストールメディアを使ってPCにubuntuをインストールしていきましょう!
WindowsとUbuntuを1つのPCで共存させるデュアルブートさせることも可能ですが、パーテションの分割などある程度の知識が必要となってくるのと、最悪Windowsが起動しないなんて事態にもなり兼ねないので、慣れないうちはUbutnuインストール専用のPCを1台用意した方が良いです。
本記事では便宜上、仮想環境(VM Player)にUbuntuをインストールする例で説明していきますが、基本的にインストール作業は同じとなります。
PCを用意したらUSBインストールメディアをPCに挿して、PCを起動します。
PCによっては自動でUSBからブートする場合もありますが、起動しない場合はEsc、F10、F12 キーなど、コンピューターの起動デバイス選択メニューを開くキーを押して、USBインストールメディアを起動しましょう!
USBインストールメディアからの起動が成功すると下記のような画面が表示されます。
ここでは「Try or Install Ubuntu」を選択してエンターキーを押します。
しばらくすると、以下のような画面が表示されます。
ここでは使用する言語を選択するので、「日本語」を選択し「Next」をクリックします。
アクセシビリティの画面が表示されますが、そのまま「Next」をクリックします。
キーボードレイアウトの画面が表示されたらキーボードレイアウトを選択して「続ける」をクリックします。
ネットワークに接続の画面になるので、適切なネットワーク環境を選択します。
今回は「有線接続を使用」を選択します。
アップデートがある場合は以下の画面が表示されます。
基本的にはアップデートした方が良いので「今すぐアップデート」をクリックします。
アップデートの準備が完了すると以下の画面となるので、「インストーラーを閉じる」をクリックします。
ここで一旦インストール作業が中断されます。
インストーラー画面が閉じるので、画面右下の「Install Ubuntu 24.04 LTS」をクリックして再度インストーラーを起動します。
一番最初の画面が立ち上がるので、ここまでと同じ手順で「ネットワークに接続」まで設定を進めていきます。
「ネットワークに接続」の画面の次に下記のようなインストールの種類選択画面が表示されます。
ここでは「対話式インストール」を選択して「次」をクリックします。
アプリケーションの選択画面になります。
ここでの選択は好みになりますが、僕は必要最小限のアプリケーションしかインストールしたくないので、「規定の選択」を選択しました。
コンピューターを最適化の画面になります。
ここの選択も好みになると思いますが、僕は「グラフィックスとWiFi機器用の・・・」にチェックを入れました。
ディスクのセットアップ画面になります。
今回はディスクの内容をすべて削除してUbuntuをインストール(クリーンインストール)するので、上側を選択しました。
Windowsとのデュアルブートしたい場合は、下側の「手動パーティニング」を選択する必要がありますが、こちらの選択は上級者向けインストールになります。
パーティションについての知識が必要になってくるので、初心者はあまり選択しない方が良いかもしれません。
アカウント設定の画面になります。
自分の名前や、コンピュータの名前、ログインパスワードを入力します。
タイムゾーン選択画面になります。
デフォルトでAsia/Tokyoが選択されていると思いますので、このまま「次」をクリックします。
最後の確認画面です。
「インストール」をクリックするとインストールが開始されます。
インストール中は下記の画面となります。
しばらく待ちましょう。
インストールが完了すると下記の画面となります。
「今すぐ再起動」をクリックします。
すると下記の画面となります。
「Please remove the ・・・」と表示されたらインストールメディアを抜いて「Enter」を押します。
PCが再起動し、Ubuntuのインストールに成功していると、下記の画面が立ち上がります。
ここからは初期設定となります。
「次へ」をクリックします。
Enable Ubuntu Pro画面が表示されますが、ここではデフォルト設定のままで「次へ」をクリックします。
Ubuntu改善支援の画面になります。
お好きな方を選択して「次へ」をクリックします。
準備完了の画面になります。
これでUbuntu初期設定の完了です。
「完了」をクリックします。
ROSのインストール
ROS2にもディストリビューションがいくつか存在しているのですが、今回は現時点で最新の「Jazzy Jalisco」をインストールしていきます。
インストール手順は本家サイトにもありますが、ここでは補足を交えつつインストール手順を説明していきます。
ロケールのセットアップ
UTF-8のロケールがサポートされているかを確認します。
$ locale
デフォルトでは下記のように表示されてサポートされているはずです。
LANG=ja_JP.UTF-8
LANGUAGE=
LC_CTYPE="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_PAPER="ja_JP.UTF-8"
LC_NAME="ja_JP.UTF-8"
LC_ADDRESS="ja_JP.UTF-8"
LC_TELEPHONE="ja_JP.UTF-8"
LC_MEASUREMENT="ja_JP.UTF-8"
LC_IDENTIFICATION="ja_JP.UTF-8"
LC_ALL=
サポートされていなければ下記のコマンドでロケール設定します。
$ sudo apt update && sudo apt install locales
$ sudo locale-gen en_US en_US.UTF-8
$ sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
$ export LANG=en_US.UTF-8
ちゃんと設定できたかを確認します。
$ locale
ATPソースリストの設定
まずはUbuntu Universe repositoryが有効になっているかを確認します。
$ sudo apt install software-properties-common
$ sudo add-apt-repository universe
次に、ROS2のGPGキーを追加します。
$ sudo apt update && sudo apt install curl -y
$ sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
リポジトリをソース リストに追加します。
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
最後にリポジトリを更新しておきます。
$ sudo apt update && sudo apt upgrade
ROS2パッケージのインストール
ROS2パッケージは用途に応じてインストール・パッケージを選択します。
・デスクトップ環境(GUIツール等を含むデスクトップ開発用)
$ sudo apt install ros-jazzy-desktop
・ROSベース環境(GUIツール等が含まれない最小構成)
$ sudo apt install ros-jazzy-ros-base
本記事ではデスクトップ開発環境を構築するので「ros-jazzy-desktop」を選びましょう!
ROSパッケージのビルドやコンパイラなどの開発ツールもインストールします。
$ sudo apt install ros-dev-tools
環境設定
端末立ち上げ時は以下の環境設定コマンドを毎回実行する必要があります。
$ source /opt/ros/jazzy/setup.bash
端末を立ち上げるたびに毎回コマンドを実行するのは面倒なので、「~/.bashrc」に追加しておいたほうが楽です。
$ echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc
ROS2インストール作業は以上になります。
ROS2 サンプル・デモを実行してみよう!
ROSが正常に実行できるかデモを使って確かめてみましょう!
端末を開いて以下のコマンドを実行します。
$ ros2 run demo_nodes_py talker
別の端末を開いて以下のコマンドを実行します。
$ ros2 run demo_nodes_py listener
ROSが正常に動作していれば端末に下記のようなメッセージが表示されるはずです。
上記デモは「talkerノード」がchatterメッセージを送信し、「listenerノード」が受信して受信メッセージを端末上に表示させるアプリケーションになります。
起動中のノードとノード間の通信メッセージを可視化するには下記コマンドを実行します。
$ rqt_graph
すると下記のようなノードグラフが表示されます。
上記の可視化コマンドはROSでアプリケーション開発する上で非常に役に立つので覚えておいた方が良いです。
さいごに
Ubuntu LinuxのインストールとROS2のインストールは上手くできましたか?
ROS2は開発環境を構築するまでのハードルが高いのが難点ですが、その難点を差し引いてでもROSを使うメリットは大きいと僕は思います。
今回は一旦ここで区切りますが、次回以降はまだ詳しく紹介できていないROSの便利さをサンプル・コードを使って説明していこうと考えています。
それでは、楽しいROSライフを!
コメント