Windows 7に,VMware Workstation 12 PlayerでUbuntu 17.10 64bitを動かしている。
そのUbuntu 17.10に,ROS Luner(5/23/2017にリリースされた)をソースからビルドしてインストールする。
以下のようにしてROSをビルドし,インストールした。
ROSパッケージをビルドするには,catkin(キャッキン)ワークスペースが必要。まず,このcatkinワークスペースを作成する。
catkinは,ビルドシステムのことで,CMakeを拡張したもの。
$ mkdir ~/ros_catkin_ws $ cd ~/ros_catkin_ws
次に,ROSパッケージをビルドできるように,ファイルを取得する必要がある。 このために,wstoolを使用する。 インストールするタイプを決めて,wstoolコマンドにオプション指定します。
Desktop-Full: ROS, rqt, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception が入っている
$ rosinstall_generator desktop_full --rosdistro lunar --deps --tar > lunar-desktop-full.rosinstall $ wstool init -j8 src lunar-desktop-full.rosinstall
Desktop(推奨): ROS, rqt, rviz, and robot-generic libraries が入っている
$ rosinstall_generator desktop --rosdistro lunar --deps --tar > lunar-desktop.rosinstall $ wstool init -j8 src lunar-desktop.rosinstall
ROS-Comm(ベアボーンのみ):Coreのビルド, 通信ライブラリ GUIツールは無し
$ rosinstall_generator ros_comm --rosdistro lunar --deps --tar > lunar-ros_comm.rosinstall $ wstool init -j8 src lunar-ros_comm.rosinstall
ここでは,Desktop-Fullをビルドしてみた。
watoolは,インストールするタイプのすべてのcatkinパッケージを追加し,必要なソースを~/ros_catkin_ws/srcディレクトリに取得する。
まあ,結構時間がかかる。-j8オプションは,8パッケージを並列に処理するオプション。
上記の3つのインストールタイプに加えて,ロボットや知覚など,さらに多くのプログラムが用意されている。
これらを追加するには,パッケージパスを必要なものに変更すればOK。
$ rosinstall_generator robot --rosdistro lunar --deps --tar > lunar-robot.rosinstall $ wstool init -j8 src lunar-robot.rosinstall
wstoolでの処理が失敗するか中断された場合は,次のコマンドでダウンロードを再開出来る。
$ wstool update -j 4 -t src
catkinワークスペースをビルドする前に,依存関係の必要なものが全てあることを確認する必要がある。 これには,rosdepツールを使用します:
$ rosdep install --from-paths src --ignore-src --rosdistro lunar -y
これは,srcディレクトリ内のすべてのパッケージを見て,それが持つすべての依存関係を見つけます。 次に,依存関係を再帰的にインストールしていく。
しばらくすると,rosdepはシステムの依存関係のインストールを完了し,ビルド出来るようになる。
パッケージのダウンロードと依存関係の解決が完了したら,catkinパッケージをビルドする準備が出来ている。
catkin_make_isolatedコマンドを使用するのは,インストールにcatkinとplain cmakeパッケージの両方があるため。 catkinのみを使用するように選択すると,catkin/commands/catkin_makeを,catkinパッケージのみで使用出来る。
catkin_make_isolatedを実行する。
$ ./src/catkin/bin/catkin_make_isolated --make-arg -j1 --install -DCMAKE_BUILD_TYPE=Release
無事ビルドに成功したらパッケージは,~/ros_catkin_ws/install_isolated もしくは,--install-space引数で指定した場所にインストールされている。 そのディレクトリの中に,setup.bashファイルが生成されていることを確認する。
ビルドしたROSを利用するには,setup.bashスクリプトを読み込んで利用する。
$ source ~/ros_catkin_ws/install_isolated/setup.bash
ソースコードを最新の状態に保ちたい場合は,定期的にrosinstallファイルを更新し最新のソースをダウンロードして,ワークスペースを再構築する必要がある。
ワークスペースを更新するには,まず既存のrosinstallファイルを上書きしないようにどこかに移動し,更新されたバージョンを生成する。 わかりやすくするために,desktop-fullタイプで,説明する。
他のタイプについては,ファイル名とrosinstall_generator引数をそれに合わせて変更する。
$ mv -i lunar-desktop-full.rosinstall lunar-desktop-full.rosinstall.old $ rosinstall_generator desktop_full --rosdistro lunar --deps --tar > lunar-desktop-full.rosinstall
次に,新しいrosinstallファイルを古いバージョンと比較して,更新されるパッケージを確認する。
$ diff -u lunar-desktop-full.rosinstall lunar-desktop-full.rosinstall.old
これらの変更が問題なければ,新しいrosinstallファイルをワークスペースに組み込み,ワークスペースを更新する。
$ wstool merge -t src lunar-desktop-full.rosinstall $ wstool update -t src
新しくコメントをつける