一、ROS文件系统
1. 文件系统概念,包含两部分:
(1)Packages: 软件包,是ROS应用程序代码的组织单元,每个软件包都可以包含程序库、可执行文件、脚本或者其它手动创建的东西。
(2)Manifest (package.xml): 清单,是对软件包相关信息的描述,用于定义软件包相关元信息之间的依赖关系,这些信息包括版本、维护者和许可协议等。
2. 文件系统工具,专门的命令工具
(1)rospack find eg: rospack find roscpp
(2)roscd eg: roscd roscpp
(3)rosls eg: rosls roscpp_tutorials
二、catkin工作空间创建
1.创建catkin工作空间
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
2. 编译该工作空间
cd ~/catkin_ws/src
catkin_make
3. 将该工作空间设置在ROS工作环境的最顶层
source devel/setup.zsh
三、创建ROS程序包
1.一个catkin程序包的组成
a.该程序包必须包含catkin compliant package.xml文件,这个package.xml文件提供有关程序包的元信息。
b.程序包必须包含一个catkin 版本的CMakeLists.txt文件,而Catkin metapackages中必须包含一个对CMakeList.txt文件的引用。
每个目录下只能有一个程序包,这意味着在同一个目录下不能有嵌套的或者多个程序包存在。
最简单的程序包举例;
my_package/
CMakeLists.txt
package.xml
在catkin工作空间中的程序包
workspace_folder/ -- WORKSPACE
src/ -- SOURCE SPACE
CMakeLists.txt -- 'Toplevel' CMake file, provided by catkin
package_1/
CMakeLists.txt -- CMakeLists.txt file for package_1
package.xml -- Package manifest for package_1
...
package_n/
CMakeLists.txt -- CMakeLists.txt file for package_n
package.xml -- Package manifest for package_n
2.创建catkin程序包
cd ~/catkin_ws/src
catkin_create_pkg beginner_tutorials std_msgs rospy roscpp
格式为:catkin_create_pkg <package_name> [depend1] [depend2] [depend3]
3.编译caktin程序包
catkin_make
需要注意:build 目录是build space的默认所在位置,同时cmake 和 make也是在这里被调用来配置并编译你的程序包。
devel 目录是devel space的默认所在位置, 同时也是在你安装程序包之前存放可执行文件和库文件的地方。