Page Top

インストールする環境 anchor.png

Windows 7に,VMware Workstation 12 PlayerでUbuntu 17.10 64bitを動かしている。
そのUbuntu 17.10に,ROS Luner(5/23/2017にリリースされた)をソースからビルドしてインストールする。

Page Top

準備をする anchor.png

Page Top

依存ソフトウェアのインストール anchor.png

最初に,ビルドするために必要な依存ソフトウェア等ををインストールする。

# apt-get install python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential
Page Top

rosdepの初期化 anchor.png

rosdepとは,rosの主要コンポーネントの使用時,もしくはコンパイル時に,依存関係にあるパッケージのインストールを容易に管理するツール。

$ sudo rosdep init
$ rosdep update
Page Top

ビルドとインストール anchor.png

以下のようにしてROSをビルドし,インストールした。

Page Top

catkinワークスペースの作成 anchor.png

ROSパッケージをビルドするには,catkin(キャッキン)ワークスペースが必要。まず,このcatkinワークスペースを作成する。
catkinは,ビルドシステムのことで,CMakeを拡張したもの。

$ mkdir ~/ros_catkin_ws
$ cd ~/ros_catkin_ws
Page Top

ソースコードの取得 anchor.png

次に,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
Page Top

依存関係の解決 anchor.png

catkinワークスペースをビルドする前に,依存関係の必要なものが全てあることを確認する必要がある。 これには,rosdepツールを使用します:

$ rosdep install --from-paths src --ignore-src --rosdistro lunar -y

これは,srcディレクトリ内のすべてのパッケージを見て,それが持つすべての依存関係を見つけます。 次に,依存関係を再帰的にインストールしていく。

    • from-pathsオプションは,パッケージのディレクトリ全体(この場合はsrc)の依存関係をインストールすることを示す。
    • ignore-srcオプションは,rosdepに対して,パッケージマネージャからsrcフォルダにROSパッケージをインストールしようとすべきではないことを示す。 ROS環境設定がまだ無いので,--rosdistroオプションが必要です。この時,ビルドしようとしているROSのバージョンをrosdepに指定する必要がある。 最後に,-yオプションを指定すると,パッケージマネージャからのプロンプトでyesを入力するのを省くようにrosdepに指示する。

しばらくすると,rosdepはシステムの依存関係のインストールを完了し,ビルド出来るようになる。

Page Top

catkinのワークスペースのビルド anchor.png

パッケージのダウンロードと依存関係の解決が完了したら,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
Page Top

ソースコードが更新された場合 anchor.png

ソースコードを最新の状態に保ちたい場合は,定期的にrosinstallファイルを更新し最新のソースをダウンロードして,ワークスペースを再構築する必要がある。

Page Top

ワークスペースの更新 anchor.png

ワークスペースを更新するには,まず既存の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
Page Top

ワークスペースの再ビルド anchor.png

ワークスペースに最新のソースが用意されたので,再ビルドする。

$ ./src/catkin/bin/catkin_make_isolated --install

注意:最初にワークスペースを指定したときに,--install-spaceオプションを指定した場合は,作業領域を再ビルドするときに再度指定する必要がある。

ワークスペースが再ビルド出来たら,セットアップファイルを再度読み込む必要がある。

$ source ~/ros_catkin_ws/install_isolated/setup.bash

コメント一覧

新しくコメントをつける

題名
ゲスト名   :
投稿本文
より詳細なコメント入力フォームへ

Front page   Freeze Diff Backup Copy Rename Reload   New Page Page list Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom)
Counter: 942, today: 3, yesterday: 4
Last-modified: 2018-05-17 (Thu) 12:54:39 (JST) (395d) by yuji
ユーザ名:

パスワード:



パスワード紛失

新規登録