2
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ROSでインストールされるパッケージ群

Last updated at Posted at 2018-11-18

はじめに

ROSをインストールする際には,ROS Wikiの記載通り,以下のいずれかのコマンドを実行していると思います.

Desktop-Full Install: (Recommended) : ROS, rqt, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception
sudo apt-get install ros-kinetic-desktop-full
Desktop Install: ROS, rqt, rviz, and robot-generic libraries
sudo apt-get install ros-kinetic-desktop
ROS-Base: (Bare Bones) ROS package, build, and communication libraries. No GUI tools.
sudo apt-get install ros-kinetic-ros-base

説明書きの通り,それぞれ必要なパッケージがインストールされるのですが,それぞれのコマンドで具体的にどのパッケージがインストールされるのか気になったので,まとめてみました.

本記事はROS Kinetic Kameに基づいています.
ざっと確認した限りでは,Melodic Moreniaでも同じですが,見落としがあるかもしれません.

調査方法

ROSインストールのためのコマンドで指定しているdesktop-fulldesktopros-baseは,それぞれメタパッケージになっています.
ですので,それぞれのメタパッケージ内のpackage.xmlに記載されている必須パッケージを見ていけばいいことになります.ROS Wikiを見るか,githubのソースを見るとわかります.

なお,パッケージ名のアンダースコア(_)は,インストールの際はハイフン(-)に置き換わることに注意してください.
インストールの際は,
sudo apt-get install ros-kinetic-ros_base
ではなく,
sudo apt-get install ros-kinetic-ros-base
になります.
ROS Wikiでパッケージの詳細を見たい場合は,アンダースコアで見てください.例えば,
http://wiki.ros.org/ros-base
ではなく,
http://wiki.ros.org/ros_base
になります.

メタパッケージ間の関係性

メタパッケージdesktop_fullを頂点としたメタパッケージの関係性を表したのが以下の図です.左側が上位メタパッケージで,右側の線がつながったメタパッケージがインストールされます.
image.png
たとえば,ros-kinetic-desktopでインストールされるのは,vizrobot,そしてros_baseros_coreになり,simulatorsperceptionに含まれるパッケージはインストールされないことになります.ROS Wikiの説明の通りです.

各メタパッケージでインストールされるパッケージ

各メタパッケージでは,下位のメタパッケージとともに個別のパッケージがインストールされます.

desktop_full

基本的に下位のメタパッケージであるdesktopsimulatorsperceptionがインストールされるだけなのですが,なぜかurdf_sim_tutorialというチュートリアルが入っています.未確認ですが,おそらく,perceptionsimulatorsで入るパッケージが必要なチュートリアルになっているのだと思います.

desktop

チュートリアル用のパッケージがほとんどで,あとはユーティリティの類です.
1. angles
ラジアンと度の変換,正規化($-\pi~\pi$に変換),2つの角度の短い方の差分の計算などといった角度の処理に関するユーティリティパッケージです.
2. common_tutorials
3. geometry tutorials
4. ros_tutorials
5. roslint

ROSパッケージのCMake lintを行うことができます.C++とPythonの両方のコードをチェックしてくれるようです.
6. urdf_tutorial
7. visualization_tutorials

simulators

rqt/gazebo/stage用のパッケージ群です.
1. gazebo_ros_pkgs
2. rqt_common_plugins
3. rqt_robot_plugins
4. stage_ros

perception

センサーによる認識に必要なパッケージ群です.
1. image_common
2. image_pipeline
3. image_transport_plugins
4. laser_pipeline
5. perception_pcl
6. vision_opencv

viz

rviz関連のパッケージ群です.
1. rqt_common_plugins
2. rqt_robot_plugins
3. rviz

robot

ロボットを動かすために必要なパッケージ群です.
1. control_msgs
2. diagnostics
3. executive_smach
4. filters
5. geometry
6. joint_state_publisher
7. kdl_parser
8. kdl_parser_py
9. robot_state_publisher
10. urdf
11. urdf_parser_plugin
12. xacro

ros_base

アクション通信やプラグインなど,ros_coreをベースにして,より高度な仕組みを提供するパッケージ群です.
1. actionlib
2. bond_core
3. dynamic_reconfigure
4. nodelet_core
5. class_loader
(Melodicからros_coreに移動)
6. pluginlib (Melodicからros_coreに移動)

ros_core

ROSの中核をなすパッケージ群です.ROS特有のノードやトピック通信,サービス通信などが実装されています.
多岐に渡り,参照関係も複雑ですので,詳細な中身は記事を改めて書きたいと思います.

まとめ

ROSでインストールされるパッケージ群についてまとめました.

ある程度理解が進めば,用途に合わせて,ros_base(場合によってはros_core)と他にご自身が必要なパッケージをインストールするという方法が良いでしょう.本当の初心者にはおすすめできないですが,それほど難しい構成でもありませんので,チュートリアルを一通り終えたら,トライしても良いと思います.

特にラズパイやその他の組み込みボードのように,計算資源が限られており,可視化ツールなどが必要ない場合には,必須になる知識かと思います.

今後は,ROSの基本仕様であるros_coreros_baseの中身について記事にしていきたいと思います.

2
7
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
2
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?