#環境
Ubuntu18.04
ros-melodic
#はじめに
ROSの備忘録として、基本となるワークスペース作成関連をメモしました。公式docでは、バージョンがhydro、かつcatkin_make
を使っていたので、melodicでcatkin build
を使っていきます。
参考:
- ROS Kinetic の Ubuntu へのインストール(ROS.org)
- catkin_tools
-
ROS catkin buildの簡単な使い方
#ROSのインストール
Ubuntuにインストールする場合は、こちらを参考にします。
ドキュメントではバージョンがkinetic
になっているので、kineticの部分をmelodic
に書き換えれば大丈夫です。
例)
(変更前)
$ sudo apt install ros-kinetic-desktop-full
(変更後)
$ sudo apt install ros-melodic-desktop-full
また、関連パッケージのインストールも忘れずにやりましょう。
$ sudo apt install python-rosinstall python-rosinstall-generator python-rosdep python-wstool
$ sudo apt install build-essential ninja-build liburdfdom-tools
$ sudo apt install libceres-dev libprotobuf-dev protobuf-compiler libprotoc-dev
#ワークスペース作成
ROSのワークスペースを作成します。
今回はcatkin build
を使用するので下記のコマンドでcatkin build用のパッケージをインストールしましょう。
$ sudo apt install python-catkin-tools
いよいよワークスペース作成です。
今回はHOMEディレクトリ(~/)にsample_ws
というワークスペースを作成します。
$ mkdir -p ~/sample_ws/src
$ cd ~/sample_ws
$ catkin init
$ catkin build
-p
オプションをつけることで、/src
ディレクトリも同時に作成しています。
次に、ワークスペースに移動し、catkin init
コマンドでワークスペースを初期化しています。
※catkin build
コマンドを使用する際はcatkin init
を使用しなくても、catkin buildを使用する際に勝手に初期化してくれます。
これで、ワークスペースのビルドは完了です。
あとは、下記のコマンドでpathを通せば使えます。
$ source ~/sample_ws/devel/setup.bash
毎回、パッケージを追加後catkin buildして上記のコマンドでpathを通すのは面倒なので、以下のようにすると便利です。
$ echo "source ~/sample_ws/devel/setup.bash" >> ~/.bashrc
$ source ~/.bashrc
1行目のコマンドによってbash起動時(端末を開いた時)に勝手にpathが読み込まれます。
$ emacs ~/.bashrc
とすれば、source~が追加されているのが確認できます。
ただし、端末を開いたままだと.bashrcの内容は読み込まれないので、catkin buildした後は
$ source ~/.bashrc
は忘れずに実行しましょう!!
パッケージの追加
パッケージの追加方法は様々あると思います。
1.wstoolを使ったやり方
2.git cloneで追加
3.パッケージの自作
##1. wstoolで追加
こちらを参考にします。
wstoolは.rosinstallというファイルを基にパッケージのインストールを行うツールです。
$ cd ~/sample_ws
# 初期化
$ wstool init src
(または以下で初期化とインストールを一括で行う)
$ wstool init src PATH_TO_ROSINSTALL_FILE.rosinstall
2回目以降は、
wstool merge -t src PATH_TO_ROSINSTALL_FILE.rosinstall
を使いましょう。
このままではリポジトリが登録されただけでパッケージはインストールされていません。
wstool update -t src
を実行することでインストールが行われます。
また、インストールしたパッケージに依存パッケージがある場合は、rosdep
を使います。
$ rosdep update
$ rosdep install -y -r --from-paths src --ignore-src
このコマンドで依存パッケージをインストールしてくれます。
##2. git clone
.rosinstall ファイルがない場合はgit cloneでもインストールできます。
3. パッケージの自作
パッケージを自作したい場合は、catkin_create_pkg
コマンドを使います。
$ cd ~/sample_ws/src/
$ catkin_create_pkg <YOUR_PACKAGE_NAME> <DEPEND_PACKAGE_NAME>
を実行することで作成できます。
YOUR_PACKAGE_NAME
: 作成したいパッケージ名
DEPEND_PACKEGE_NAME
: 作成するパッケージが依存するパッケージ(pyhtonをしようする場合はrospy
など)
依存パッケージに関しては、作成パッケージ内の'package.xml'を書き換えることで、作成後でも変更可能です。
####ビルド
上記のようにして、パッケージをインストール/作成したら、catkin build
でビルドしましょう。
$ catkin build <PACAGE_NAME>
source ~/.bashrc
これで完了です。
##(おまけ)buildの方法
###ワークスペース全体をビルド
catkin build
###特定パッケージのみビルド
catkin build <PACKAGE_NAME>
###現在のディレクトリのパッケージをビルド
catkin build --this