現: 2020-12-26 (土) 15:08:16 yuji ソース
Line 1: Line 1:
 +* ROSをソースからビルドしてインストールする [#r5ad2771]
 +以下のような環境へ,ROS Lunerをソースからビルドしてインストールしてみた。
 +
 +* インストールする環境 [#gd18903e]
 +Windows 7に,VMware Workstation 12 Playerで''Ubuntu 17.10 64bit''を動かしている。~
 +そのUbuntu 17.10に,ROS Luner(5/23/2017にリリースされた)をソースからビルドしてインストールする。
 +
 +* 準備をする [#w12dd31b]
 +
 +** 依存ソフトウェアのインストール [#h61893aa]
 +最初に,ビルドするために必要な依存ソフトウェア等ををインストールする。
 + # apt-get install python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential
 + 
 +** rosdepの初期化 [#a4a9146c]
 +rosdepとは,rosの主要コンポーネントの使用時,もしくはコンパイル時に,依存関係にあるパッケージのインストールを容易に管理するツール。
 + $ sudo rosdep init
 + $ rosdep update
 +
 +* ビルドとインストール [#w01e390d]
 +以下のようにしてROSをビルドし,インストールした。
 +
 +** catkinワークスペースの作成 [#h35baad1]
 +ROSパッケージをビルドするには,catkin(キャッキン)ワークスペースが必要。まず,このcatkinワークスペースを作成する。~
 +catkinは,ビルドシステムのことで,CMakeを拡張したもの。
 + $ mkdir ~/ros_catkin_ws
 + $ cd ~/ros_catkin_ws
 +
 +** ソースコードの取得 [#s35aa312]
 +次に,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
 +
 +** 依存関係の解決 [#kc6f9239]
 +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はシステムの依存関係のインストールを完了し,ビルド出来るようになる。
 +
 +** catkinのワークスペースのビルド [#p89ea855]
 +パッケージのダウンロードと依存関係の解決が完了したら,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
 +
 +* ソースコードが更新された場合 [#m89d48d3]
 +ソースコードを最新の状態に保ちたい場合は,定期的にrosinstallファイルを更新し最新のソースをダウンロードして,ワークスペースを再構築する必要がある。
 +
 +** ワークスペースの更新 [#zb93ef2f]
 +ワークスペースを更新するには,まず既存の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
 +
 +** ワークスペースの再ビルド [#b3c84510]
 +ワークスペースに最新のソースが用意されたので,再ビルドする。
 + $ ./src/catkin/bin/catkin_make_isolated --install
 +
 +注意:最初にワークスペースを指定したときに,--install-spaceオプションを指定した場合は,作業領域を再ビルドするときに再度指定する必要がある。
 +
 +ワークスペースが再ビルド出来たら,セットアップファイルを再度読み込む必要がある。
 + $ source ~/ros_catkin_ws/install_isolated/setup.bash
  

  • PC/ROS/ROS Install のバックアップ差分(No. All)
    • 現: 2020-12-26 (土) 15:08:16 yuji

トップ   差分 バックアップ 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 2831, today: 3, yesterday: 0