LoginSignup
7
6

More than 5 years have passed since last update.

ROSパッケージをdebパッケージ化する

Last updated at Posted at 2018-04-21

Overview

  • 任意のROSパッケージをdebパッケージ化し,再配布可能にする。
  • beginner_tutorialsを例として、deb化する。

動作確認環境

  • Ubuntu 16.04 x64 on Virtualbox
  • ROS Kinetic Kame

0. 前提

すでにrosがインストールされ、~/catkin_ws/src/下に、beginner_tutorialsパッケージが展開されていることとします。

1. 環境構築

パッケージ作成に必要なツールをインストールします。

$ sudo apt install python-bloom fakeroot dpkg-dev debhelper

2. CMakeLists.txtを編集する

beginner_tutorialsのCMakeLists.txtに、次のコマンドを追記します。

CMakeLists.txt
install(TARGETS talker listener
  ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
  LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
  RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

インストールしたいノードは、すべてinstall()を記載しなければなりません(pythonノードも含む)。

3. 依存関係を編集する

package.xmlに記載した依存関係は、自動的にdpkgの依存関係に登録されます。
rosとは直接関係ない実行依存も、すべて記載することをおすすめします(例えばflaskとか)。

package.xml
<?xml version="1.0"?>
<!-- %Tag(FULLTEXT,-1)% -->
<package format="2">
  <!-- %Tag(NAME)% -->
  <name>beginner_tutorials</name>
  <!-- %EndTag(NAME)% -->
  <!-- %Tag(VERSION)% -->
  <version>0.1.0</version>
  <!-- %EndTag(VERSION)% -->
  <!-- %Tag(DESC)% -->
  <description>The beginner_tutorials package</description>
  <!-- %EndTag(DESC)% -->

  <!-- %Tag(MAINTAINER)% -->
  <maintainer email="you@yourdomain.tld">Your Name</maintainer>
  <!-- %EndTag(MAINTAINER)% -->
  <!-- %Tag(LICENSE)% -->
  <license>BSD</license>
  <!-- %EndTag(LICENSE)% -->
  <!-- %Tag(URLS)% -->
  <url type="website">http://wiki.ros.org/beginner_tutorials</url>
  <!-- %EndTag(URLS)% -->
  <!-- %Tag(AUTHORS)% -->
  <author email="you@yourdomain.tld">Jane Doe</author>
  <!-- %EndTag(AUTHORS)% -->

  <!-- %Tag(DEPS)% -->
  <buildtool_depend>catkin</buildtool_depend>

  <build_depend>roscpp</build_depend>
  <build_depend>rospy</build_depend>
  <build_depend>std_msgs</build_depend>

  <exec_depend>roscpp</exec_depend>
  <exec_depend>rospy</exec_depend>
  <exec_depend>std_msgs</exec_depend>
  <exec_depend>python-flask</ecec_depend> ←このように必要に応じて追記
  <!-- %EndTag(DEPS)% -->

  <!-- %Tag(EXPORT)% -->
  <!-- %EndTag(EXPORT)% -->
</package>
<!-- %EndTag(FULLTEXT)% -->

4. debパッケージの作成

以下のコマンドを実行します。

$ cd ~/catkin_ws/src/beginner_tutorials
$ bloom-generate rosdebian --os-name ubuntu --os-version xenial --ros-distro kinetic
$ fakeroot debian/rules binary

すると、一つ下のディレクトリに、debパッケージが作成されています。

5. インストール (任意)

通常のdebパッケージのインストールと同様に、dpkgコマンドで行います。

$ sudo dpkg -i ros-kinetic-beginner-tutorials_0.1.0-0xenial_amd64.deb

参考

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6