ROS学習ノート3(ROS Packageを作成)
11514 ワード
文書ディレクトリ1 catkin Packageは何からなっていますか? 2 catkinワークスペースのpackages 3 catkin package を作成4 setupファイル をコンパイルしてリフレッシュする5 package依存 5.1第一依存項 5.2間接依存 6カスタムパッケージ 6.1カスタムpackages.xml 6.2カスタムCMakeLists.txt
1 catkin Packageは何で構成されていますか?
次の3つの条件を満たすと、1つのpackageはは、catkin規格に適合する このファイルには、パッケージの主な情報が含まれています.
はcatkinを使用する が
各packageには独自の独立したフォルダがあります. これは、ネストされたpackagesがなく、複数のpackagesが同じディレクトリを共有していないことを意味します.
最も簡単なpackageには、次のような構造があるはずです.
2 catkinワークスペースでのpackages
標準的なワークスペースは次のようになります.
3 catkin packageを作成する
4 setupファイルをコンパイルしてリフレッシュする
最後にros環境にこのワークスペースを追加します.
5 package依存
5.1第一依存項目
3つの依存関係があります.
これらの依存は
検出:
5.2間接依存
依存パケット自体も他のパケットに依存するものがあります.例えばrospyには多くの依存があります.
検出:
rospackは、すべてのネスト依存項目をリストできます.
6カスタムパッケージ
6.1カスタムpackages.xml
不要なコンテンツを削除するには、次の手順に従います.
6.2カスタムCMakeLists.txt
最初に
参照先:http://wiki.ros.org/ROS/Tutorials/CreatingPackage
1 catkin Packageは何で構成されていますか?
次の3つの条件を満たすと、1つのpackageは
catkin package
とみなされます.package.xml
ファイルを含む.CMakeLists.txt
ファイルを含む.metapackage
である場合、関連するCMakeListsを参照する必要がある.txtファイル.最も簡単なpackageには、次のような構造があるはずです.
my_package/
CMakeLists.txt
package.xml
2 catkinワークスペースでのpackages
標準的なワークスペースは次のようになります.
workspace_folder/ --
src/ --
CMakeLists.txt -- catkin CMake
package_1/
CMakeLists.txt -- package_1 CMakeLists.txt
package.xml -- package_1 manifest
...
package_n/
CMakeLists.txt -- package_n CMakeLists.txt
package.xml -- package_n manifest
3 catkin packageを作成する
catkin_creat_pkg
コマンドを使用してcatkin packageを作成します.#
$ cd ~/catkin_ws/src
catkin_creat_pkg
コマンドを使用して、std_msgs
roscpp
およびrospy
に依存するbeginner_tutorials
packageを作成します.$ catkin_create_pkg beginner_tutorials std_msgs rospy roscpp
catkin_create_pkg
コマンドの標準フォーマットは次のとおりです.# catkin_create_pkg [depend1] [depend2] [depend3]
tree
コマンドを使用して、次のディレクトリ構造を表示します.└── beginner_tutorials
├── CMakeLists.txt
├── include
│ └── beginner_tutorials
├── package.xml
└── src
4 setupファイルをコンパイルしてリフレッシュする
catkin_ws
ディレクトリに切り替えてコンパイル:$ cd ~/catkin_ws
$ catkin_make
ls
を使用して現在のフォルダを表示すると、2つ以上のフォルダが見つかりました.build devel src
最後にros環境にこのワークスペースを追加します.
$ source ~/catkin_ws/devel/setup.bash
5 package依存
5.1第一依存項目
catkin_creat_pkg
コマンドを使用すると、第1の依存関係が発生しました.$ rospack depends1 beginner_tutorials
3つの依存関係があります.
roscpp
rospy
std_msgs
これらの依存は
package.xml
ファイルに保存されます.$ roscd beginner_tutorials
$ cat package.xml
検出:
<package format="2">
...
<buildtool_depend>catkinbuildtool_depend>
<build_depend>roscppbuild_depend>
<build_depend>rospybuild_depend>
<build_depend>std_msgsbuild_depend>
...
package>
5.2間接依存
依存パケット自体も他のパケットに依存するものがあります.例えばrospyには多くの依存があります.
$ rospack depends1 rospy
検出:
genpy
roscpp
rosgraph
rosgraph_msgs
roslib
std_msgs
rospackは、すべてのネスト依存項目をリストできます.
lk@Mibook:~$ rospack depends beginner_tutorials
cpp_common
rostime
roscpp_traits
roscpp_serialization
catkin
genmsg
genpy
message_runtime
gencpp
geneus
gennodejs
genlisp
message_generation
rosbuild
rosconsole
std_msgs
rosgraph_msgs
xmlrpcpp
roscpp
rosgraph
ros_environment
rospack
roslib
rospy
6カスタムパッケージ
6.1カスタムpackages.xml
不要なコンテンツを削除するには、次の手順に従います.
1
2 <package format="2">
3 <name>beginner_tutorialsname>
4 <version>0.1.0version>
5 <description>The beginner_tutorials packagedescription>
6
7 <maintainer email="[email protected]">Your Namemaintainer>
8 <license>BSDlicense>
9 <url type="website">http://wiki.ros.org/beginner_tutorialsurl>
10 <author email="[email protected]">Jane Doeauthor>
11
12 <buildtool_depend>catkinbuildtool_depend>
13
14 <build_depend>roscppbuild_depend>
15 <build_depend>rospybuild_depend>
16 <build_depend>std_msgsbuild_depend>
17
18 <exec_depend>roscppexec_depend>
19 <exec_depend>rospyexec_depend>
20 <exec_depend>std_msgsexec_depend>
21
22 package>
6.2カスタムCMakeLists.txt
最初に
catkin_creat_pkg
を使用したCMakeList.txt
は、後のrosコードによってコンパイルされて上書きされます.参照先:http://wiki.ros.org/ROS/Tutorials/CreatingPackage