ROS学习 <四> Package创建和编译
(2016-09-13 14:35:08)
标签:
rospackage |
分类: 机器人-ROS |
作者: Sam (甄峰) sam_code@hotmail.com
0. Package(功能包)简介:
功能包(Package)是ROS中组织软件的主要形式,可以编写代码并编译,执行。一个功能包一般包含程序文件,库文件,编译描述文件,配置文件,脚本等。 它是一组用于实现特定功能的相关文件集合。每个功能包由一个清单文件(package.xml)定义
1.Package的建立:
可以使用roscreate-pkg或者catkin创建Package. 我们先看如何使用catkin建立Package。
1.1: catkin Package特征:
一个Package被认为是catkin Package,必须满足以下条件:
A:必须包含一个package.xml文件(提供关于package的元信息)
B:必须包含一个使用catkin的CMakeLists.txt文件。
C:同一个文件夹内只能有一个Package。
所以,catkin内,通常包含: CMakeLists.txt
config launch package.xml,
src msg srv
1.2:catkin工作空间中的Package和目录管理:
Package建议放在ROS工作空间内. 目录结果通常如此:
catkin_ws,
catkin_ws/build, catkin_ws/devel,
catkin_ws/src
catkin_ws/src/CMakeLists.txt //顶级CMake文件
catkin_ws/src/xxx/Package1 ,
catkin_ws/src/xxx/Package2
catkin_ws/src/xxx/Package3 //包都放在这里
1.3:catkin package创建:
使用catkin_create_pkg脚本创建一个新的package,
要指出包名,以及它依赖的包。
catkin_create_pkg beginner_tutorials std_msgs rospy roscpp
catkin_create_pkg Pakage_Name
新包依赖的Package1 新包依赖的Package2
新包依赖的Package3
2. 编译Package:
在catkin_ws 目录内,运行catkin_make
catkin_make
3. package.xml:
附1:
catkin介绍:
catkin是ROS官方编译系统。
catkin(柳絮)的由来, 是从其创建者: Willow Garage而来的。
0. Package(功能包)简介:
功能包(Package)是ROS中组织软件的主要形式,可以编写代码并编译,执行。一个功能包一般包含程序文件,库文件,编译描述文件,配置文件,脚本等。 它是一组用于实现特定功能的相关文件集合。每个功能包由一个清单文件(package.xml)定义
1.Package的建立:
可以使用roscreate-pkg或者catkin创建Package. 我们先看如何使用catkin建立Package。
1.1: catkin Package特征:
一个Package被认为是catkin Package,必须满足以下条件:
A:必须包含一个package.xml文件(提供关于package的元信息)
B:必须包含一个使用catkin的CMakeLists.txt文件。
C:同一个文件夹内只能有一个Package。
所以,catkin内,通常包含: CMakeLists.txt
1.2:catkin工作空间中的Package和目录管理:
Package建议放在ROS工作空间内.
catkin_ws,
catkin_ws/build,
catkin_ws/src/CMakeLists.txt
catkin_ws/src/xxx/Package1 ,
1.3:catkin package创建:
使用catkin_create_pkg脚本创建一个新的package,
catkin_create_pkg beginner_tutorials std_msgs rospy roscpp
catkin_create_pkg
2. 编译Package:
在catkin_ws 目录内,运行catkin_make
catkin_make
3. package.xml:
package.xml与ROS Package一一对应,它描述Package的各类信息。
例如:包名,包版本,描述信息。依赖信息等。
依赖信息有以下几类:
buildtool_depend, build_depend, run_depend.
export标记:可以把CFLAGS的信息放在这里。如添加什么头文件,以及编译标记等。
4. 察看Package信息:
4.1: 察看package 依赖信息:
rospack depends handsfree_hw
可以看到它依赖一大堆Package和catkin工具。
5. 安装依赖Package:
rosdep install handsfree_hw
会把package handsfree_hw所依赖的内容全部安装。
6. 功能包集和metapackages:
功能包集(Stack)通常提供一个完整的功能,它把几个Package集中到一起,为的是简化功能包之间代码共享的过程。
可以使用roscreate-stack 来创建功能包集。
stack.xml与功能包集一一对应。它描述了Stack的依赖等。
Stack的概念慢慢被metapackages取代。可以把所有同类型或同一项目的Package放到同一个metapackages内。方法稍后研究。
附1:
catkin介绍:
catkin是ROS官方编译系统。
catkin(柳絮)的由来, 是从其创建者: Willow Garage而来的。
前一篇:ROS学习 <三> 准备工作