Ros4Winのビルド
Simple Wiki Based Contents Management System
関心分野 >> Ros4Winのビルド

ROSをWindowsでビルドする(ROS for Windows)

Windows上でのROSの移植が着々と進んでいるようなので、Githubに公開されているソースコードからビルドしてみることにしました。
現時点で公開されているソースコードですんなり動作するとは思えないので、独自に変更を加えながら行っていきます。なお、ROSのWindowsへの移植状況などは、こちらのサイトを参照してください。

必要なライブラリ

ROSは、ともかく色々なライブラリを必要とします。私がビルド時に使用したソフトウェアおよびライブラリを下に示します。

Ros4Win

ROSをWindowsでビルドするには、必要なライブラリのインストールやソースコードのダウンロード、Windowsのための修正などを行う必要があります。
この作業は非常に大変ですので、ビルドするための環境構築も含めて、Ros4Winとして公開しています。このRos4Winの場合には、ビルドするドライブとインストールするドライブは同じであるということとVisual Studio 2017 Community (VC++ 64bitを含む)を前提にしています。
作業を行うドライブは、CでもDでも大丈夫ですので比較的自由度が高いと思います。また、ビルドとインストールには、20Gくらい必要となります。(Qt5が非常に大きいので)

依存ライブラリの準備

では最初に、依存ライブラリの準備を行います。
  • このページの最後に添付されているRos4Win_Libs.zipをダウンロードして、ビルドするドライブで展開してください。
  • 次に、必要なライブラリをダウンロードします。展開した中の download.bat をダブルクリックすれば、必要なものがすべてダウンロードされます。
  • ダウンロードの終了後に、アーカイバをすべて展開してください。 extract.bat をダブルクリックすれば、そのドライブにライブラリが展開されます。(すべて \local の下に展開されますので、\localがあれば名前を変更しておいた方が良いと思います)
以上でライブラリの準備は完了です。ダウンロードしたアーカイバ(*.7z)は削除しても大丈夫です。

Ros4Winのソースコードを準備

次に、Ros4Winのソースコードを準備します。Ros4Winのソースコードは、すべてgithub.comにありますので、gitコマンドを使える状態にしておいてください。
まずは、コマンドプロンプトを起動してください。次に、先ほどライブラリを展開したドライブ(ここでは、D: としておきます)のルートディレクトリ(D:\)に移動します。
 C:\Users\XXX > cd /d d:\
 D:\>
次に、ソースコードをダウンロードするためにRos4Winというパッケージを git cloneでダウンロードします。
なお、現在は、setup_Ros4Win.batというバッチファイルの起動(ダブルクリック)で行うことができます。
 D:\> git clone https://github.com/haraisao/Ros4Win

無事にダウンロードが終了すれば、 D:\Ros4Win ができていると思います。このディレクトリが作業ディレクトリとなりますので、ここに移動します。
 D:\> cd \Ros4Win
 D:\Ros4Win>
では、Ros4Winのソースコードをgithubからダウンロードしましょう。
Ros4Winのソースコードは、本家のROSのリポジトリとWindowsに対応するために私が変更したリポジトリがありますが、一括してダウンロードするバッチファイル(get_sources.bet)がありますので、これを起動すれば大丈夫です。
 D:\Ros4Win> get_sources.bat

このバッチファイルを起動すれば、必要な場所にすべてのソースコードをダウンロードしていきますので、終了するまでお待ちください。
以上で、Ros4Winのビルド準備は完了です。引き続きビルトを行っていきます。

Ros4Winのビルド

Ros4Winのビルドは、それほど難しいわけではありません。環境変数さえ適切に設定できていれば、cmake -> cmake --build -> install を行うバッチファイルが作成してあります。
現在は、下記の手続きは、build_all.batで一括起動することができます。
念のため、build_all.batが行っている内容を下記に書いておきます。
環境変数の設定には、 tools\setCMakeVars.bat を使用します。
 D:\Ros4Win> tools\setCMakeVars.bat
次にbaseパッケージをビルドします。baseパッケージは、D:\RosWin\baseにありますので、そこに移動して install_ros.bat でビルドを行います。
 D:\Ros4Win> cd base
 D:\Ros4Win\base> install_ros flist1.txt
これでnodelet_code/nodelet_topic_tools 以外のパッケージがビルドされ D:\opt\ros\melodicにインストールされていきます。
nodelet_code/nodelet_topic_toolsは、最初に実行すると必ずエラーになります。これは、ビルドを行うとconfigファイルを作成して、エディタで開こうとするために、一括インストールまでいかないためです。そのため、下のようにコマンドを実行してください。
 D:\Ros4Win\base> install_ros flist2.txt
  <ここでエラーになりますので、もう一度実行です>
 D:\Ros4Win\base> install_ros flist2.txt
これでbaseパッケージのビルドとインストールが終了です。
次にdesktopパッケージをビルドします。desktopパッケージは、D:\Ros4Win\dsk にありますので、そこに移動してビルドを行います。
 D:\Ros4Win\base> cd ..\dsk
 D:\Ros4Win\dsk> install_ros flist1.txt
desktopパッケージは、特に問題なく進むと思いますが、かなり時間がかかりますので、しばらくお待ちください。(私のCore 7iで1時間ほどかかりました)
desktopパッケージまで終了すれば、残りはチュートリアルのパッケージをビルドします。D:\Ros4Win\tutに移動してビルド&インストールします。
 D:\Ros4Win\dsk> cd ..\tut
 D:\Ros4Win\tut> install_ros flist1.txt
これでRos4Winのほとんどのバイナリのインストールが終わりました。
最後に、rosrun等のバッチファイル等をインストールして、環境設定用のファイルをインストールします。
D:\Ros4Win\setup に移動してinstall.bat を起動してください。
 D:\Ros4Win\tut> cd ..\setup
 D:\Ros4Win\setup> install.bat
以上で、Ros4Winのビルドとインストールは、終了です。
D:\opt\start_ros.bat がclinkの起動バッチファイルになっていますので、ダブルクリックすれば、ターミナルが起動し、ROSのプログラミングをはじめることができます。
なお、D:\opt 以下をUSBメモリにコピーし、実行用の環境を整えた(\loadの一部をコピー)ものがポータブル版として利用可能です。
ROSのチュートリアルが ROSの環境のセットアップ のページにありますのでそちらを参照してください。

資料