- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
ROS文件系统与包管理
;一、ROS文件系统
二、ROS包管理
三、操作示例;一、ROS文件系统;ROS的工程结构,也就是ROS的文件系统结构,是ROS软件开发项目的组织形式;也叫catkin工作空间
Catkin工作空间是创建、修改、编译catkin软件包的目录。catkin的工作空间,里面存放着ROS的各种项目工程,便于系统组织管理调用。在可视化图形界面里是一个文件夹。
build和devel目录由catkin系统自动生成、管理,我们日常的开发一般不会去涉及;开发中主要用到的是src文件夹
我们编写的ROS程序、网上下载的ROS源代码包都存放在这里。
在编译时,catkin编译系统会递归的查找和编译src/下的每一个源代码包
因此也可以把几个源代码包放到同一个文件夹下;mkdir-p~/mycatkin_ws/src
cd~/mycatkin_ws
catkin_make
source~/mycatkin_ws/devel/setup.bash
第一行代码直接创建了第二层级的文件夹src,这也是存放ROS软件包的地方。
第二行代码进入工作空间
第三行代码执行catkin_make初始化(编译软件包)
catkin_make必须在工作空间目录执行,在其他路径下编译不会成功
第四行代码刷新环境,使得系统能够找到刚才编译生成的ROS可执行文件
一般紧跟着要source刷新环境,这个细节比较容易遗漏,致使后面出现可执行文件无法打开等错误
;一个软件包(package)下常见的文件、路径有:
├──CMakeLists.txt #package的编译规则(必须)
├──package.xml #package的描述信息(必须)
├──src/ #源代码文件
├──include/ #C++头文件
├──scripts/ #可执行脚本
├──msg/ #自定义消息
├──srv/ #自定义服务
├──models/ #3D模型文件
├──urdf/ #urdf文件
├──launch/ #launch文件;一个软件包(package)下常见的文件、路径有:
├──CMakeLists.txt #软件包的编译规则(必须)
├──package.xml #软件包的描述信息(必须)
最简单的包只有这两个文件
;CMakeLists.txt文件规定了这个软件包(package)要依赖哪些软件包(package),要编译生成哪些目标,如何编译等等流程。
CMakeLists.txt非常重要!!!
它指定了由源码到目标文件的规则,catkin编译系统在工作时首先会找到每个软件包(package)下的CMakeLists.txt,然后按照规则来编译构建。
必须掌握CMakeLists.txt基本修改方法!!!
通常的做法是在系统生成的模板文件上修改;cmake_minimum_required() #CMake的版本号
project() #项目名称
find_package() #找到编译需要的其他package
catkin_python_setup() #打开catkin的PythonModule的支持
add_message_files() #添加自定义Message文件
add_service_files() #添加自定义Service文件
add_action_files() #添加自定义Action文件
generate_message() #生成不同语言版本的msg/srv/action接口
catkin_package() #生成当前package的cmake配置,供依赖本包的其他 软件包调用
add_library() #生成库
add_executable() #生成可执行二进制文件
add_dependencies() #定义目标文件依赖于其他目标文件,确保其他目 标已被构建
target_link_libraries() #链接
catkin_add_gtest() #生成测试
install() #安装至本机
;package.xml也是一个catkin的package必备文件,它是这个软件包的描述文件。;
pacakge.xml包含了package的名称、版本号、内容描述、维护人员、软件许可、编译构建工具、编译依赖、运行依赖等信息。
实际上rospackfind、rosdep等命令之所以能快速定位和分析出package的依赖项信息,就是直接读取了每一个pacakge中的package.xml文件。它为用户提供了快速了解一
您可能关注的文档
- 机器人操作系统ROS原理及应用 课件 02-1 Linux介绍.pptx
- 机器人操作系统ROS原理及应用 课件 02-2 使用virtualBox虚拟机.pptx
- 机器人操作系统ROS原理及应用 课件 03 Linux 系统文件和目录管理1.pptx
- 机器人操作系统ROS原理及应用 课件 04 Linux 系统文件和目录管理2.pptx
- 机器人操作系统ROS原理及应用 课件 05-1 使用vi编辑器.pptx
- 机器人操作系统ROS原理及应用 课件 05-2 文件权限.pptx
- 机器人操作系统ROS原理及应用 课件 06-1 进程与系统信息.pptx
- 机器人操作系统ROS原理及应用 课件 06-2 文件比较查找压缩与解压.pptx
- 机器人操作系统ROS原理及应用 课件 06-3 包管理.pptx
- 机器人操作系统ROS原理及应用 课件 06-4 作业1.pptx
文档评论(0)