机器人操作系统ROS原理及应用 课件 09 ROS文件系统与包管理工具_第1页
机器人操作系统ROS原理及应用 课件 09 ROS文件系统与包管理工具_第2页
机器人操作系统ROS原理及应用 课件 09 ROS文件系统与包管理工具_第3页
机器人操作系统ROS原理及应用 课件 09 ROS文件系统与包管理工具_第4页
机器人操作系统ROS原理及应用 课件 09 ROS文件系统与包管理工具_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ROS文件系统与包管理

一、ROS文件系统

二、ROS包管理

三、操作示例2024/11/292ROS文件系统一、ROS文件系统ROS的工程结构,也就是ROS的文件系统结构,是ROS软件开发项目的组织形式2024/11/294ROS文件系统也叫catkin工作空间Catkin工作空间是创建、修改、编译catkin软件包的目录。catkin的工作空间,里面存放着ROS的各种项目工程,便于系统组织管理调用。在可视化图形界面里是一个文件夹。build和devel目录由catkin系统自动生成、管理,我们日常的开发一般不会去涉及2024/11/295ROS工作区/工作区开发中主要用到的是src文件夹我们编写的ROS程序、网上下载的ROS源代码包都存放在这里。在编译时,catkin编译系统会递归的查找和编译src/下的每一个源代码包因此也可以把几个源代码包放到同一个文件夹下2024/11/296ROS工作空间/工作区mkdir-p~/mycatkin_ws/srccd~/mycatkin_wscatkin_makesource~/mycatkin_ws/devel/setup.bash

第一行代码直接创建了第二层级的文件夹src,这也是存放ROS软件包的地方。第二行代码进入工作空间第三行代码执行catkin_make初始化(编译软件包)catkin_make必须在工作空间目录执行,在其他路径下编译不会成功

第四行代码刷新环境,使得系统能够找到刚才编译生成的ROS可执行文件一般紧跟着要source刷新环境,这个细节比较容易遗漏,致使后面出现可执行文件无法打开等错误

2024/11/297创建并初始化ROS工作空间一个软件包(package)下常见的文件、路径有:

├──CMakeLists.txt #package的编译规则(必须)

├──package.xml #package的描述信息(必须)

├──src/ #源代码文件

├──include/ #C++头文件

├──scripts/ #可执行脚本

├──msg/ #自定义消息

├──srv/ #自定义服务

├──models/ #3D模型文件

├──urdf/ #urdf文件

├──launch/ #launch文件2024/11/298软件包(package)结构一个软件包(package)下常见的文件、路径有:

├──CMakeLists.txt #软件包的编译规则(必须)

├──package.xml #软件包的描述信息(必须)最简单的包只有这两个文件

2024/11/299软件包(package)结构CMakeLists.txt文件规定了这个软件包(package)要依赖哪些软件包(package),要编译生成哪些目标,如何编译等等流程。

CMakeLists.txt非常重要!!!它指定了由源码到目标文件的规则,catkin编译系统在工作时首先会找到每个软件包(package)下的CMakeLists.txt,然后按照规则来编译构建。必须掌握CMakeLists.txt基本修改方法!!!通常的做法是在系统生成的模板文件上修改2024/11/2910CMakeLists.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()

#安装至本机

2024/11/2911CMakeLists.txt写法package.xml也是一个catkin的package必备文件,它是这个软件包的描述文件。2024/11/2912package.xmlpacakge.xml包含了package的名称、版本号、内容描述、维护人员、软件许可、编译构建工具、编译依赖、运行依赖等信息。

实际上rospackfind、rosdep等命令之所以能快速定位和分析出package的依赖项信息,就是直接读取了每一个pacakge中的package.xml文件。它为用户提供了快速了解一个pacakge的渠道。

2024/11/2913package.xml的作用二、ROS包管理命令rospack获取软件包的有关信息。在本教程中,我们只涉及到rospack中find参数选项,该选项可以turtlesim用法:#rospackfind[包名称]示例:$rospackfindroscpp返回软件包的路径信息2024/11/2915使用rospackroscd进入ros软件包目录用法:#roscd

cd[包名称]示例:$roscdroscpp进入软件包的路径2024/11/2916使用roscdrosls列出软件包的文件信息用法:#rosls[包名称]示例:$rosls

turtlesim返回软件包的路径信息2024/11/2917使用rosls三、操作示例2024/11/2919示例一创建ROS工作空间如果catkin_ws目录已经存在,先删除mkdir-p~/mycatkin_ws/srccd~/mycatkin_wscatkin_makesource~/mycatkin_ws/devel/setup.bashecho“source~/mycatkin_ws/devel/setup.bash”>>~/.bashrc2024/11/2920示例二导入ros软件包1、创建工作空间2、下载软件包(http://www.yzyfine.top/download/turtlesim.zip)3、放入工作空间的src目录并解压4、在工作空间运行catkin_make命令编译工作空间下的软件包5、刷新环境变量source~/mycatkin_ws/devel/setup.bash6、运行()roscorerosrunturtlesimturtlesim_noderosrunturtlesimdraw_square2024/11/2921示例三VScode编写python测试程序1、进入前面已经创建的工作空间mycatkin_wscd~/mycatkin_ws2、启动vscodecode.3.编写测试程序操作演示(1)创建包指定包名test,指定依赖roscpprospystd_msgs(2)创建scripts文件夹(存放python文件)2024/11/2922示例三VScode编写python测试程序3.编写测试程序操作演示(3)创建python文件#!/usr/bin/envpythonimportrospyif__name__=="__main__":rospy.init_node("mynode")rospy.loginfo("helloworld")2024/11/2923示例三VScode编写python测试程序3.编写测试程序操作演示(4)设置python文件权限,设置CMakelists.txt2024/11/29

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论