ROS学习--文件系统

    科技2025-09-30  39

    Catkin工作空间的文件系统结构是较为规范的,也建议大家按照这个规范的方式构建系统。

    Package

    Package软件包是在ROS中主要单元。其中可能包含ROS运行时进程(节点node),依赖ROS的库,数据集,配置文件或其他有用的组织在一起的东西。 包是ROS中最基础的构建项目和发行项目。 这意味着构建和发布的最小单位的东西是一个Package软件包。并且在catkin_make编译时的对象也就是在/src下的每个Package。

    Package的创建

    Package存放在工作空间的/src文件夹下,使用catkin_create_pkg指令,用法:catkin_create_pkg package depends,package是包名,depends是该包所依赖的包名。

    catkin_create_pkg test_pkg roscpp rospy std_msgs

    执行后将在包中自动生成以下文件:

    ├── CMakeLists.txt ├── include │ └── test_pkg ├── package.xml └── src

    而一个Package下的常见文件有:

    ├── CMakeLists.txt #package的编译规则(必须要有) ├── package.xml #package的描述信息(必须要有) ├── src/ #源代码文件 ├── include/ #C++头文件 ├── scripts/ #可执行脚本 ├── msg/ #自定义消息 ├── srv/ #自定义服务 ├── models/ #3D模型文件 ├── urdf/ #urdf文件 ├── launch/ #launch文件

    其中的CMakeList.txt和package.xml是自动生成的,也是在每个package中必须的。其他的各种文件夹则是根据使用时的需要来添加。

    CMakeLists.txt: 定义package的包名、依赖、源文件、目标文件等编译规则,是package不可少的成分package.xml: 描述package的包名、版本号、作者、依赖等信息,是package不可少的成分src/: 存放ROS的源代码,包括C++的源码和(.cpp)以及Python的module(.py)include/: 存放C++源码对应的头文件scripts/: 存放可执行脚本,例如shell脚本(.sh)、Python脚本(.py)msg/: 存放自定义格式的消息(.msg)srv/: 存放自定义格式的服务(.srv)models/: 存放机器人或仿真场景的3D模型(.sda, .stl, .dae等)urdf/: 存放机器人的模型描述(.urdf或.xacro)launch/: 存放launch文件(.launch或.xml)
    Processed: 0.008, SQL: 8