- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
《ROS原理与技术应用》能力模块三掌握自动驾驶系统的安装与使用方法任务三完成ROS文件系统的构建
导入经典机器人PR2依靠强大的ROS,可以独立完成多种复杂的任务,例如PR2可以自己开门、找到插头给自己充电、打开冰箱取出啤酒、打简单的台球等等。实现上述功能PR2需要安装、调用相关的ROS功能包,而这些功能包均以文件的形式存放。
目录CONTENTS010203Catkiin编译系统工作空间功能包(Package)
新授
Catkin是ROS的官方构建体系,是ROS构建系统的继承者,ROS构建系统catkin结合了CMake宏和Python脚本,在CMake的正常工作流之上提供了一些功能。Catkin的设计比rosbuild更为传统,允许更好地分发包、更好的交叉编译支持和更好的可移植性。Catkin的工作流与CMake非常相似,但同时为自动“查找包”基础结构和构建多个依赖项目提供了支持时间。Catkin操作简单、高效,可移植性更好,而且支持交叉编译和更加合理的功能包分配。一、Catkin编译系统
一、Catkin编译系统Catkin是基于CMake的编译构建系统,具有以下特点:01Catkin沿用了包管理的传统像find_package()基础结构,pkg-config02扩展了CMake,自动生成find_package()代码,pkg-config文件03操作简单、高效,可移植性更好04支持交叉编译和更加合理的功能包分配
二、工作空间工作空间是创建、修改、编译软件包的目录。工作空间就像是一个仓库,里面存放着ROS的各种工程项目,便于系统组织管理调用。在可视化图形界面里体现为一个文件夹。我们写的ROS代码通常就放在工作空间中。编译后会在catkin_ws目录下自动创建了build、devel两个文件夹,加上原有的src文件夹,在catkin_ws工作空间里面总共包含src、build、devel这三个文件夹这些文件夹的具体用途如下:src:ROS的源代码软件包build:catkin(CMake)的缓存信息和中间文件devel:生成的目标文件(包括msg、srv头文件,动态链接库,静态链接库,可执行文件等)、环境变量
二、工作空间在编译时,catkin编译系统会递归的查找和编译src文件夹下的每一个源代码包。因此可以把几个源代码包放到同一个文件夹下,结构如图所示。
二、工作空间同样,在命令行操作中,也可以在工作空间下使用tree命令,查看到具体的文件结构:得到的空间结构框架大致为;
三、功能包(Package)功能包package是ROS源代码存放的地方,任何ROS的代码无论是C++还是Python都要放到package中,这样才能正常的编译和运行。一个工作空间可以包含多个package,一个package可以编译出来多个目标文件(ROS可执行程序、动态静态库、头文件等等)。常见的package结构如图
三、功能包(Package)在新版本的ROS中,将原有功能包集(Stack)的概念升级为元功能包(MetaPackage),元功能包通常与功能包一起位于src文件夹内元功能包的作用是组织多个用于同一目的的功能包,例如一个ROS导航的元功能包中会包含建图、定位、导航等多个功能包。元功能包的文件系统除了一些功能包外,还通常包含了一些如图上所示的文件
三、功能包(Package)package常见命令如下:
三、功能包(Package)pacakge.xml是package软件包的描述文件,包含了package的名称、版本号、内容描述、作者、软件许可、编译构建工具、编译依赖、运行依赖等信息。packageformat=2:遵循xml标签文本的写法,格式为format2,从这个语句到最后/package的部分是ROS功能包的配置部分。name:功能包的名称。使用创建功能包时输入的功能包名称。正如其他选项,用户可以随时更改。version:功能包的版本。可以自由指定description:功能包的简要说明。通常用两到三句话描述。maintainer:提供功能包管理者的姓名和电子邮件地址。license:记录版权许可证。写BSD、MIT、Apache、GPLv3或LGPLv3即可。buildtool_depend:描述构建系统的依赖关系。我们使用catkin构建系统,因此填写catkin。build_depend:在编写功能包时写下您所依赖的功能包的名称。exec_depend:填写运行功能包时依赖的功能包的名称。文件中的标签注释如下:package.xml文件常见的内容如下:
三、功能包(Package)主要内容的含义如下:cmake_minimum_required(VERSION2.8.3):操作系
您可能关注的文档
- 车辆自动驾驶系统应用 课件 3-2 Autoware自动驾驶系统模拟仿真.pptx
- 车辆自动驾驶系统应用 课件 3-3 Apollo 自动驾驶系统模拟仿真.pptx
- 车辆自动驾驶系统应用 课件 4-1 高精度地图与传统地图.pptx
- 车辆自动驾驶系统应用 课件 4-2 OpenDrive 高精度地图标准.pptx
- 车辆自动驾驶系统应用 课件 4-3 Apollo高精地图构建与导入.pptx
- 车辆自动驾驶系统应用 课件 5-1 智能传感器系统装调.pptx
- 车辆自动驾驶系统应用 课件 5-2 虚拟仿真验证测试.pptx
- 车辆自动驾驶系统应用 课件 5-3 整车道路验证.pptx
- 车辆自动驾驶系统应用 教案- 教学设计 1-1 了解自动驾驶等级.docx
- 车辆自动驾驶系统应用 教案- 教学设计 1-2 了解自动驾驶系统的构成.docx
- ROS原理与技术应用 课件 3-4 完成ROS通信系统的构建.pptx
- ROS原理与技术应用 课件 4-1 实现自动驾驶系统的远程登录.pptx
- ROS原理与技术应用 课件 4-2 完成线控底盘通信功能包的调试.pptx
- ROS原理与技术应用 课件 4-3 完成线控底盘行驶速度的校准.pptx
- ROS原理与技术应用 课件 4-4 实现线控底盘的远程控制.pptx
- ROS原理与技术应用 课件 5-1 认知激光雷达传感器.pptx
- ROS原理与技术应用 课件 5-2 构建激光雷达地图.pptx
- ROS原理与技术应用 课件 5-3 实现激光雷达自主导航系统.pptx
- ROS原理与技术应用 课件 6-1 认知视觉传感器.pptx
- ROS原理与技术应用 课件 6-2 实现视觉跟随功能.pptx
文档评论(0)