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

新しくコメントをつける

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

トップ   凍結 差分 バックアップ 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 2826, today: 1, yesterday: 1
最終更新: 2020-12-26 (土) 16:08:16 (JST) (1210d) by yuji