Windows で ROS のシミュレーションを行う (1)
VirtualBox による仮想マシンに Ubuntu 20.04 をインストールする
本資料では Windows で ROS のシミュレーションを行う方法を解説する。
ROS (ロス) は Ubuntu (ウブントゥ) という Linux (リナックス) で動作させるのが最もトラブルが少ない。
Linux とは OS のコアのことであり、Ubuntu とは様々ある Linux のバリエーションの一つと思っておいて欲しい。
(正確に言えば、Ubuntu は Linux ディストリビューションの一つ、ということになる)。
言い替えれば、ROS を動作させるのは、皆さんが使い慣れている Windows や macOS といった OS 上ではなく、
Ubuntu という Linux ディストリビューション上であるのが主流、ということである。
そのため、ROS を学ぶためには Ubuntu (Linux) のインストールや利用がほぼ必須と言って良い。
最近は Windows で ROS を使う方法も出て来ているが、下手をすると Ubuntu で ROS を使うよりもハードルが高い。
ROS には Ubuntu が必要とは言え、自宅等の PC に Ubuntu をインストールすることは必ずしも容易ではない。
最悪の場合、もとから入っていた Windows が起動しなくなるなどのトラブルが起こり得る。
そこで、本資料では Windows 上に VirtualBox というアプリケーションを用いて仮想マシンを構築し、
その仮想マシン上に Ubuntu をインストールするという方針をとる。
それにより、Windows の環境を壊すことなく安全に ROS の演習を行うことができる。
ただし、仮想マシンの性質上、Ubuntu および その上で動作する ROS の速度はかなり遅い。
その点は「自宅で安全に ROS の演習を実行できる」ことを優先した結果として御了承頂きたい。
本ページでは、VirtualBox のインストールと仮想マシンの作成、および Ubuntu のインストールまでを解説する。
本資料で必要なのは 64 ビット版の Windows 10 / 11 である。
なお、最近はあまり見かけないが 32 ビット版の Windows では Ubuntu が対応していないので以下の演習を実行できない。
また、macOS での動作は、恐らく下記の制約があるだろう。
- M1/M2 系チップ搭載の macOS では本演習は実行できない (Ubuntu Linux の仮想イメージを実行できないはず)
- Intel チップ搭載の macOS なら本演習は実行できるが、トラブル対応などは自己責任で。
その際、「macOS 上の仮想 Windows 上で動く VirtualBox」ではなく、「macOS 上の VirtualBox」を試すのが良いと思われる。
その場合、文中のファイル名「VirtualBox-7.0.16-162802-Win.exe」などを、「VirtualBox-7.0.16-162802-OSX.dmg」などと適切に読み替える必要がある。
さて、本ページの内容は以下の通りである。
まず、以下の 3 つのファイルをダウンロードする。2024 年 4 月末時点の最新版を記す。
- VirtualBox のインストールファイル:VirtualBox のダウンロードページの
「VirtualBox 7.0.16 platform packages」→「Windows hosts」をクリック。
より新しいバージョンが存在する場合はそちらをダウンロードすれば良いだろう。
執筆時点では VirtualBox-7.0.16-162802-Win.exe がダウンロードされた。
- VirtualBox の仮想マシンで様々な機能を有効にする拡張パック:VirtualBox のダウンロードページの
「VirtualBox 7.0.16 Oracle VM Virtual Box Extension Pack」→「All supported platforms」をクリック。
より新しいバージョンが存在する場合はそちらをダウンロードすれば良いだろう。
執筆時点では Oracle_VM_VirtualBox_Extension_Pack-7.0.16.vbox-extpack がダウンロードされた。
- Ubuntu 20.04 のインストールディスク:Ubuntu 日本語Remix ダウンロードページの
ubuntu-ja-20.04.1-desktop-amd64.iso をクリックしてダウンロード
以上のファイルのダウンロードが終ったら次に進む。
まずは VirtualBox のインストールを行う。ダウンロードした VirtualBox-7.0.16-162802-Win.exe を
ダブルクリックして指示にしたがって VirtualBox をインストールしよう。
途中でインストール項目の変更などは必要はない。
途中で USB ドライバのインストールを促された場合はそれもインストールする。
なお、macOS (Intel) を用いている場合、インストール途中に「セキュリティとプライバシー」で Oracle America, Inc. からの
システムソフトウェア読み込みを許可し、インストールをしなおさねばならなかった。
インストールを終了すると、以下のように Oracle VM VirtualBox マネージャーが起動する。
ここでは一旦右上の×ボタンで画面を閉じよう。
次に、ダウンロードした Oracle_VM_VirtualBox_Extension_Pack-7.0.16.vbox-extpack をダブルクリックし、
拡張パックをインストールしよう。途中の「VirtualBoxライセンス」画面では、
ライセンス文をスクロールして最後まで読まないと「同意します」ボタンを押せないので注意。
拡張パックのインストールが終ったら (時間はかからずすぐ終わる)、再び VirtualBox マネージャーを閉じよう。
そして、デスクトップに「Oracle VM VirtualBox」というアイコンができているはずなのでもう一度起動する。
上の画面で「新規」ボタンをクリックして
Ubuntu 20.04 をインストールするための仮想マシンを作成しよう。
下図のような画面が現れるので、「名前」の部分に「ubuntu20.04」と記入する。
すると、「タイプ」と「バージョン」が下記のように自動的に切り替わるはずである。
それを確認したら、次にOS インストールに必要な ISO イメージファイルの指定を行う。
下図のように「ISOイメージ」右端にある下向きの矢印をクリックする。
すると下図の状態になるので、「その他」をクリックして選択する。
すると、下図のようにファイルの選択画面になるので、先程ダウンロードした Ubuntu 20.04 のインストール用 ISO イメージを選択して「開く」ボタンをクリックする。
すると、以下の画面になる。
ここで、「自動インストールをスキップ」にチェックを入れ (重要!)「次へ」ボタンをクリックする。
このチェックを入れないと、恐らくかなり先に進んだ後で、ここまで戻ってやり直すことになるので注意。
すると、下記のように仮想マシンのメモリー量と CPU 数を決める画面が現れる。
横方向の目盛の最大値として、皆さんが使っている PC のメモリ量およびCPU数が表示される。
下図では、本資料を作成している PC の環境を示す 16384 MB と 20CPU が最大値として表示されているが、もちろんこの値は人により異なる。
それらの値から、Ubuntu 20.04 が使用できるメモリ量と CPU 数を決めるわけである。
大きければ大きい程よいが、大きすぎると Windows が使用するメモリが不足するので、
グラフの緑色の範囲で大きめの値にすると良いだろう。上図ではメモリー量 4096 MB、CPU数 2 に設定している。
(このあたりが標準的な値ではないかと思う)
なお、このメモリ量は、仮想マシン上で Ubuntu 20.04 が動作しているときだけ使われるので、
普段のPC利用時に影響するわけではない。
サイズを決めたら「次へ」をクリックする。
次は、下図のように仮想ハードディスクのサイズを決める画面である。
ここでは、デフォルトの 25.00 GB のまま「次へ」をクリックする。
最後に、下図のようにこれまで行った設定を確認するための画面が現われる。そのまま「完了」をクリックする。
仮想マシンができると、Oracle VM Virtual Box マネージャーの画面は下図のように変化する。
Ubuntu 20.04 用に作成した仮想マシンが現われているのがわかる。これが選択された状態で「起動」ボタンをクリックする。
少し待つと、下図のように別画面が開く。これが、作成した仮想マシンの画面である。
なお、画面右側に「マウス統合」や「キーボードの自動キャプチャー」などのメッセージが表示されているのが見える。
これらのメッセージは青い吹き出しアイコンをクリックすると折りたたまれて表示が小さくなる。
しばらくそのまま待つ。
最終的に、画面は以下のように変化する。仮想マシンが ISO イメージから起動され、
Ubuntu 20.04 をインストールするよう促されているのである。
「Ubuntu をインストール」をクリックする。
すると、下図のように Ubuntu 上で用いるキーボードの設定画面が現われる。
下図のデフォルトの状態で「続ける」ボタンを押して良い。
下図の画面では、「Ubuntu のインストール中にアップデートをダウンロードする」のチェックを外す。
インストールにかかる時間を短縮するためである。「続ける」をクリック。
下図の画面では、デフォルトのまま「インストール」をクリックして良い。
すると、下図のようにインストール前の警告が現れる。これは、さきほど仮想マシンに作成した 25.00GB のディスクに
Ubuntu をインストールすることを確認しているのである。
「続ける」をクリック。
すると、タイムゾーンの設定画面になる。Tokyo が選択されているのを確認して「続ける」をクリック。
以下のユーザー情報の画面では記入が必要である。まず、下側の
はログイン時のユーザー名とパスワードを入力する(ここでは student)。アルファベットのみのシンプルなユーザ名が良い。
一番上の「あなたの名前」は本当は任意なのだが、考えるのが面倒なのでユーザー名と同じにした。
コンピュータ名も任意だが、アルファベットをメインとし、記号を用いるにしても「-」か「_」程度とするのが良い。
下図では「ubuntu2004」とした。
記入したら「続ける」をクリック。
以上でインストールが始まる。しばらく時間がかかる。
以下の画面が出たら「今すぐ再起動する」ボタンをクリック。
以下の画面が出たらキーボードの「Enter」キーを押す。以上で仮想マシンが再起動する。
なお、上の画面に到達せずに処理が進まなくなった場合、ubuntu 20.04 の画面を閉じ (仮想マシンの電源オフ)、
もう一度デスクトップから VirtualBox を実行し、ウインドウの「起動」ボタンを押せば以下の画面に続く場合があるので試してみて欲しい。
場合によっては Ubuntu 20.04 の再インストールという流れになるかもしれない。
インストールした Ubuntu 20.04 は 2020 年にリリースされた状態なのでやや古い。アップデートを行っていこう。
まず、ログイン画面でさきほど決めたパスワードを入力してログインする。
すると、下図のような状態になる。「オンラインアカウントへの接続」という画面は一つのウインドウなのだが、
現時点では画面の解像度が小さいのでデスクトップを覆い尽くしてしまっている。
ここでは、右上のボタンを「スキップ」→「次へ」×3回→「完了」と押すことでこのアプリケーションを閉じてしまうのが良い。
また、デスクトップを開くと、下図のようにアップデートを促す画面が時々現われる。
まず、下図の画面は Ubuntu 20.04 から 22.04 へのアップグレードを促しているのだが、
これは「アップグレードしない」を選択する。
下図の画面は、ソフトウェアの更新が促されている。
本資料では、ソフトウェアの更新は GUI からではなくターミナル上で行う方針なので、
ここでは「後で通知する」をクリックし、更新を後回しにする。
ここからは、ターミナル (端末) を起動し、ソフトウェアの更新をし、
さらに、画面の解像度を大きくするなど、仮想マシンをより便利に用いるための設定を行う。
まず、下図のようにデスクトップ左下のアイコンをクリックしよう。
アプリケーションなどの検索画面が現われるので、「terminal」と記入する。
すると、下図のように「端末」というアプリケーションが現われるので、クリックして起動する。
端末 (ターミナル) が起動した様子が下図である。
やはり、画面の解像度が小さいのでデスクトップを覆い尽くしているが、しばらくはこのまま進める。
ちなみに、画面左下で「端末」のアイコンを右クリックして「お気に入りに追加」を選択すると、
アイコンがその位置に固定されるので、次回からの「端末」の起動が楽になる。
そのアイコンをマウスで掴んで上に移動することもできる。
さて、ターミナル上で以下のコマンドを入力し、Enterキーを押すことで実行しよう。
インストールやアップデート可能なパッケージのリストを更新するためのコマンドである。
sudo apt update
このとき、
[sudo] student のパスワード:
という表記が現れるので、パスワードを入力して Enter キーを押そう。
キー入力をしてもターミナル上は変化がないが、入力は受け付けられているので気にせず入力を続けよう。
これは、管理者権限が必要なプログラムを実行しようとしているので、パスワードが求められているのである。
その後、もし以下のメッセージが出た場合、1~2分時間をあけてからもう一度「sudo apt update」コマンドを実行すること。
同じコマンドをもう一度実行する際は、ターミナル上でキーボードで「↑」キーを押してしてから Enter キーを押すのが楽である。
E: ロック /var/lib/apt/lists/lock が取得できませんでした - open (11: リソースが一時的に利用できません)
(以下略)
上のメッセージが出ている間は先に進めないので、うまくいくまで辛抱づよく繰り返そう。
どうしても上のメッセージが消えない場合、一度 ubuntu を再起動し (画面右上の
下向き矢印のアイコンから「電源オフ/ログアウト」→「電源オフ」→「再起動」)、
再帰動直後にログイン&コマンド実行を行えば上のメッセージが出ないことが多い。
期待通りに動作した場合は長いメッセージの最後に、以下のようなメッセージが出る。
(パッケージの個数を示す数字は実行タイミングにより異なる)
(略)
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
アップグレードできるパッケージが 639 個あります。表示するには 'apt list --upgradable' を実行してください。
上のメッセージを確認したら、ターミナルで以下のコマンドを実行しよう。
このコマンドは、アップデート可能なパッケージを更新するためのコマンドである。
「-y」というオプションは、Yes/No の選択を求められたときに自動で Yes に相当する y を回答する、という意味になる。
sudo apt -y dist-upgrade
こちらのコマンドでも、パスワードの入力を求められたら入力する。
2020 年からの更新を一気に適用するので、それなりに時間がかかるのでのんびり待つ。
ターミナルでコマンドを入力可能になっていたら更新は終了したと思って良いだろう。
更新が終了したら、OS を再起動したいところだが、その前にあとで必要になるソフトウェアをここでインストールしておこう。
ターミナルで以下のコマンドを実行して gcc と make というソフトウェアをインストールする。
後で Guest Additions CD からソフトウェアをインストールする際に必要になる。
sudo apt -y install gcc make
パスワードの入力を求められたら入力すること。
以上が終わったら、Ubuntu を再起動しよう。再起動するには、
ターミナルで
sudo reboot
を実行するか、デスクトップ右上にある下向き矢印のアイコンから「電源オフ/ログアウト」→「電源オフ」→「再起動」を選択すればよい。
再起動すると、Ubuntu 20.04 が最新の状態になる。
その状態で、画面の解像度を大きくしたり、Windows と Ubuntu との間でコピー&貼り付けしたりできるようにしよう。
Ubuntu 20.04 にログインした状態で、VirtualBoxのメニューから「デバイス」→「Guest Additions CD イメージの挿入」を選択しよう。
すると、Ubuntu 20.04 上で以下の画面が現れるので「実行」をクリックする。
すると、パスワードを求められる画面が現れるので入力すると、
ターミナルが開き、追加ソフトウェアのインストールが始まるのでしばらく待つ。
下図のように、現われたターミナルに「Press Return to close this window...」と表示されていれば、
インストールが完了している。
「実行しますか?」というウインドウがなぜか残ってしまうのでこれを「キャンセル」ボタンで閉じる。
ターミナルの方は、書かれている通り Return キー (Enter キーのこと) を押せば閉じられる。
そこまでを確認したら、Ubuntu 20.04 を再起動しよう。ターミナルで「sudo reboot」を実行するか、
デスクトップ右上にある下向き矢印のアイコンから「電源オフ/ログアウト」→「電源オフ」→「再起動」を選択すればよいのであった。
再起動が完了したら、Ubuntu 20.04 が起動している仮想マシンのウインドウのサイズをマウスで調整してみよう。
ウインドウのサイズに合わせ、Ubuntu 20.04 のデスクトップが広くなるはずである。
(そうならない場合、上で gcc と make のインストールを行っていない可能性がある)
さらに、Windows と Ubuntu 間で、コピー&貼りつけを可能にしてみよう。
下図のように、VirtualBox のメニューで「デバイス」→「クリップボードの共有」→「双方向」をクリックして選択する。
そうすると、Windows上のブラウザでコマンドを Ctrl+C などでコピーした後、
Ubuntu のターミナルに対して貼り付けを行うことができるようになる。
Ubuntu のターミナルでの貼り付けは、ターミナル上で「Ctrl + Shift + V」である。
次ページ以降、かなり長いコマンドを実行しなければならなくなるので、
この「Windows でコマンドをコピーして Ubuntu 上で貼りつけ」のテクニックを確実に身につけて欲しい。
(Ubuntu 上の Firefox ブラウザで本ページを開いて「Ubuntu から Ubuntu へのコピー」でも良いのでお好みで)
さて、デスクトップ左側の Launcher 下部を見ると、Guest Additions CD のディスクが入りっぱなしになっている。
下図のようにディスクのアイコンを右クリックして「取り出し」を実行するとこのアイコンは消える。
以上で本ページの内容は終了である。ここまでの練習で想像はつくだろうが、Ubuntu を終了するためには、
Ubuntu 上で
デスクトップ右上にある下向き矢印のアイコンから「電源オフ/ログアウト」→「電源オフ」→「電源オフ」を実行し (ターミナルで sudo poweroff でもよい)、
最後に Windows 上で VirtualBox マネージャーを終了すれば良い。
逆に Ubuntu を起動するときは、Windows のデスクトップ上の「Oracle VM VirtualBox」を起動し、
アプリケーション上で「起動」アイコンをクリックすれば良い。
次のページ「Windows で ROS のシミュレーションを行う (2) ROS のセットアップ」
トップページに戻る