机器人操作系统ROS原理及应用 课件汇总 09 ROS文件系统与包管理工具 ---30 可视化与仿真、31-32 复习与考试.pptx

机器人操作系统ROS原理及应用 课件汇总 09 ROS文件系统与包管理工具 ---30 可视化与仿真、31-32 复习与考试.pptx

  1. 1、本文档共255页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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文件。它为用户提供了快速了解一

您可能关注的文档

文档评论(0)

balala11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档