ROS入门:catkin工作流与package构建详解

需积分: 11 1 下载量 90 浏览量 更新于2024-09-02 收藏 551KB DOCX 举报
本文档是对Robot Operating System (ROS) 的基础学习总结,针对智能平台开发者而言,ROS是一个开源的机器人操作系统,对于推动机器人技术的发展起到了关键作用。文档首先介绍了ROS的层次结构中的catkin系统,它是ROS定制的编译构建系统,负责管理和编译ROS程序。catkin工作空间是核心组成部分,用于组织和管理功能包的文件,通过`catkin_make`指令进行操作。 1. **catkin工作空间**: - `catkin_make`命令是构建工作空间的关键,它会创建一个结构化的目录结构,其中`Src`文件夹是必需的。 - 编译时,catkin会递归地查找每个package内的文件,一个package通常包含多个节点,它们可以是C++代码、shell脚本、Python脚本、消息(msg)、服务(srv)和动作(action)定义,以及用于一次性运行多个文件的launch文件和配置文件。 2. **package的组成**: - `CMakeLists.txt` 是编译规则文件,决定了源代码、依赖项和目标文件的处理方式,编译问题往往与此文件和依赖包相关。 - `package.xml` 定义了package的基本属性,包括名称、版本、作者和依赖关系,修改run_depend和build_depend有助于解决编译时的问题。 - `manifest.xml` 是ROS早期版本的编译系统使用的包信息清单,但现已由catkin的`package.xml`替代。 3. **创建新的工作空间与包**: - 使用`tree`小工具可以直观查看目录结构,创建工作空间如`catkin_ws`,然后初始化并进入开发空间`src`。 - `catkin_create_pkg`命令用于创建新的package,例如`test1`、`test2`等,并指定可能的依赖,如`roscpp`, `rospy`, `std_msgs`和自定义的`magsnav_msgs`。 4. **下载代码与调试开发**: 在src目录中,通过`git clone`命令从远程仓库下载代码,这是进行代码调试和开发的基础步骤。 通过这篇文档,读者可以了解到如何在ROS环境中设置和管理项目结构,理解基本的编译规则,以及如何创建、管理和协作开发ROS包。掌握这些知识对于想要在这个领域深入学习和工作的开发者来说至关重要。