当前位置: 首页 > news >正文

【ROS】详解ROS文件系统

参考:ROS入门笔记(七):详解ROS文件系统 - 少云清的文章 - 知乎
https://zhuanlan.zhihu.com/p/338042120

ROS文件目录
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里的软件包指的是src下的文件夹,因为在ROS下创建软件包的流程如下:
在这里插入图片描述
把软件包名字定下来后,还需要添加依赖,最后才能成一个软件包,然后再编写代码文件。
在这里插入图片描述

CMake、CMakeLists.txt 和 make、Makefile
在这里插入图片描述

Catkin

Catkin 是 ROS(Robot Operating System)中用于构建和管理软件包的构建系统,它在 ROS 的工作空间中负责处理项目的编译、安装和依赖关系管理。以下是关于 Catkin 编译系统的详细介绍:### 1. 定义
Catkin 是 ROS 1.x 和 ROS 2.x 的默认构建系统,基于 CMake,并提供了一些 ROS 特有的功能。它允许用户以模块化的方式组织和管理 ROS 软件包。### 2. 主要特点
- **基于 CMake**:Catkin 使用 CMake 作为基础,可以利用 CMake 的强大功能,同时为 ROS 开发提供了一些方便的扩展。
- **工作空间概念**:Catkin 采用工作空间(workspace)的概念,允许用户将多个软件包组织在一个目录下,便于管理和编译。
- **依赖管理**:Catkin 可以自动处理包之间的依赖关系,确保在编译时按照正确的顺序构建软件包。
- **支持多种语言**:尽管主要用于 C++ 和 Python,但 Catkin 也支持其他语言的集成。### 3. 工作流程
使用 Catkin 编译系统的基本工作流程如下:1. **创建工作空间**:```bashmkdir -p ~/catkin_ws/srccd ~/catkin_ws/src2. **创建软件包**:使用 `catkin_create_pkg` 命令创建新软件包。例如:```bashcatkin_create_pkg my_package std_msgs rospy roscpp3. **编写 CMakeLists.txt 和 package.xml**- `CMakeLists.txt`:定义包的构建规则、依赖和目标。- `package.xml`:描述包的信息(如名称、版本、依赖关系等)。4. **编译工作空间**:使用 `catkin_make` 或 `catkin build` 命令编译工作空间:```bashcd ~/catkin_wscatkin_make5. **源环境设置**:编译完成后,需要源环境,以便使用新编译的软件包:```bashsource devel/setup.bash### 4. Catkin 的命令
- `catkin_make`:这是 Catkin 的默认编译命令,适用于较简单的工作空间。
- `catkin build`:这是更灵活的命令,支持并行编译和更多选项,适用于更复杂的工作空间。### 5. 优缺点
- **优点**- 便于管理大型项目和模块化代码。- 自动处理依赖关系。- 与 CMake 集成,提供强大的构建功能。- 提供良好的社区支持和文档。- **缺点**- 对于小型项目来说,可能显得过于复杂。- 学习曲线相对较陡,特别是对 CMake 不熟悉的用户。### 6. 适用场景
Catkin 适用于 ROS 软件包的开发和管理,尤其是需要多个软件包相互依赖的复杂项目。无论是开发机器人应用、传感器驱动,还是实现算法,Catkin 都提供了良好的支持。### 总结
Catkin 编译系统是 ROS 开发中的一个核心组成部分,帮助开发者高效地构建和管理 ROS 软件包。它通过 CMake 提供强大的构建能力,同时简化了包的依赖管理,是 ROS 项目开发中不可或缺的工具。

catkin_make 和 catkin的区别:

关系:Catkin 是一个构建系统,而 catkin_make 是使用 Catkin 进行构建的一个命令行工具。
可以将 Catkin 看作是整个构建框架,而 catkin_make 是在这个框架内执行构建操作的工具。使用场景:在开发 ROS 软件包时,
开发者通常会使用 catkin_make 来构建工作空间中的所有软件包,
借助 Catkin 提供的功能来管理依赖和构建过程。

CMake 的全称是 “Cross Platform Make”
CMake 是一个跨平台的构建系统,用于管理软件的编译过程。它通过平台无关的配置文件(CMakeLists.txt)生成特定于平台的构建文件(如 Unix 系统上的 Makefile 或 Windows 系统上的 Visual Studio 项目文件)。


http://www.mrgr.cn/news/62084.html

相关文章:

  • 「Mac畅玩鸿蒙与硬件5」鸿蒙开发环境配置篇5 - 熟悉 DevEco Studio 界面
  • SpringBoot篇(运维实用篇 - 日志)
  • C语言教程——数组(2)
  • Flink + Kafka 实现通用流式数据处理详解
  • 网络编程_day6
  • or-tools优化库记录
  • 【ECMAScript标准】深入解析ES5:现代JavaScript的基石
  • InnoDB 存储引擎<四>磁盘文件一
  • QChart中柱形图的简单使用并实现【Qt】
  • 【力扣打卡系列】反转链表
  • python 模块和包、类和对象
  • VBA语言専攻介绍20241031
  • android 12 禁止三方APP 使用API 直接打开wifi的修改方法
  • IDEA 社区版 lombok插件报错(java:方法引用无效)
  • MongoDB 部署指南:从 Linux 到 Docker 的全面讲解
  • 算法|牛客网华为机试11-20C++
  • 树莓派4处理器超频指南
  • 两步GMM计算权重矩阵
  • matlab读取逐日的1km分辨率中国大陆地区的土壤水数据,并汇总至逐月分辨率
  • 数字化平台助力:国际数字影像产业园打造智慧园区生态圈
  • (也许是全网首发!)Qt6 编译著名Widgets组件 Qt Material Widgets by MSVC / Mingw
  • 设计产品宣传册没参考?推荐一个超多产品宣传册案例的网站
  • OpenJudge:找和为K的两个元素
  • 接口自动化测试平台项目环境搭建
  • MySQL-SQL性能分析
  • 【Stable Diffusion - Ai】小白入门必看(涂鸦、涂鸦重绘、局部重绘和重绘蒙版篇)!真材实料!不卖课!!!