1.5、Linux系统、ROS-1 系统、功能包的个人理解
目录
1、Linux简介
2、ROS-1简介
3、RSO-1功能包结构
4、个人理解(仅供参考)
4、Catkin_make
1、Linux简介
Linux系统是开发者使用频率比较高的系统,我们常听到或者常用的有Ubuntu、CentOS、ArcX Linux等,具体的Linux简介可以查看Linux 系统 。
我们着重注意的是Linux的基本思想是:对于任何文件,都有其特定的作用,你在Linux系统中做的所有工作,都是基于本身进行文件的修改,文件创建,文件运行。
2、ROS-1简介
ROS是机器人操作系统(Robot Operating System)的英文缩写。ROS是用于编写机器人软件程序的一种具有高度灵活性的软件架构。那么这里说提供了一个架构,我们就可以基于这个架构来进行功能包的开发和复现。
ROS = Plumbing + Tools + Capabilities + Ecosystem”,即ROS是通讯机制、工具软件包、机器人高层技能以及机器人生态系统的集合体。
3、RSO-1功能包结构
我们说对于ROS功能包而言,是用来实现特定的功能,那么这个功能包的基础结构有点像套娃结构。
Ros-Workspace //ROS工作空间
|--src //ROS元功能包
|--package //ROS功能包文件
|--CMakeLists.txt //包编译规则(依赖库、目标文件等)
|--package.xml //功能包信息(名称、作者、版本等)
|--src //存储C++源文件
|--scripts //存储Python源文件
|--include //头文件
|--msg //通讯格式文件
|--launch //运行节点文件
|--config //配置信息
|--CMakeLists.txt //编译基本配置
|--build //编译空间
|--devel //开发空间
4、个人理解(仅供参考)
实际在我们初始学习中只关心ROS-workspace中package、build、devel是比较重要的。这里以雷达畸变矫正的一个ROS功能包为例。
这里我们说LASERUNDISTORTION_ws这个ROS的工作空间中包括了build、devel、src和CMakeLists.txt。
那么其中的第一级src就是我们的元功能包,这个元功能包里包括champion_nav_mags和LaserUbdistortion这两个功能包(当然像Cartographer的功能包是比较复杂的,没有这么明确)。
在每个子功能包里面包括了此功能包的build、devel、src、CMakeLists.txt、package.xml等信息,在子功能包中src就是包含了我们的C++源文件。
那么这里的C++文件就是我们功能包的主体程序了。
4、Catkin_make
在我们使用ROS功能包的时候,常常要利用catkin_make、make这两条命令对WorkSpace进行编译。catkin_make实际上是对catkin与make进行了精简操作。
catkin_make
make
catkin_make就在于将我们工作空间中所使用的功能包进行编译,生成空间build、devel、CMakeLists.txt文件。在工作空间下的CMakeLists.txt文件会递归的查找WorkSpace下的功能包中的CMakeLists.txt,然后依次来编译我们每一个功能包(套娃)。
不积跬步无以至千里,不积小流无以成江河 -------------------1:45
1.5、Linux系统、ROS-1 系统、功能包的个人理解相关推荐
- ROS系统 创建工作空间与功能包
ROS 学习目标: 学习内容: 使用环境 操作步骤: 基本命令 二.使用步骤 创建工作空间 编译工作空间 创建功能包 使用C++执行程序 编写源文件 编辑功能包下的 Cmakelist.txt文件 修 ...
- ROS系列——mavros功能包中常用话题和服务介绍,包括消息名称、类型、头文件、成员变量、示例代码
ROS系列--mavros功能包中常用话题和服务介绍,包括消息名称.类型.头文件.成员变量.示例代码 官方链接 常用话题 订阅 1.1 系统状态 1.2 GPS数据 1.3 本地位置 1.4 三轴速度 ...
- 【机器人操作系统】ROS工作空间及功能包的创建
ROS工作空间及功能包的创建 摘要: 总结ROS工作空间及功能包的创建的具体步骤及命令: 工作空间/功能包的创建的步骤大同小异: step1.创建工作空间/功能包: step2.编译工作空间/功能包: ...
- ROS系列——image-transport功能包没有发布compressed图像Topic的原因
ROS系列--image-transport功能包没有发布compressed图像Topic的原因 说明 解决 说明 自己开发了摄像头图像发布节点,但是运行节点发现只有image_transportd ...
- ros C++ msg功能包
这里写自定义目录标题 创建功能包 创建message 编辑package.xml 编辑CMakeList.txt 其他包中使用 参考文章: 创建功能包 cd catkin_ws/src catkin_ ...
- ROS Navigation-----导航功能包集设置和配置学习
本文主要介绍了导航功能包集的配置和使用. 1 机器人设置 假定我们已经以特定方式设置好了机器人,导航功能包集将使其可以运动.上图概述了这种配置方式.白色的部分是必须且已实现的组件,灰色的部分是可选且已 ...
- ROS入门-7.创建工作空间与功能包
一.工作空间 概述:是一个存放工程开发相关文件的文件夹 包括四个主要文件夹 src(代码空间):用来放置功能包,功能包的代码,配置文件,launch文件等 build(编译空间):放置编译过程当中产生 ...
- 我现在知道使用ROS话题消息的功能包的命名空间是在哪里定义的了
确实是会基于msg文件生成对应头文件,打开头文件,一切都明了了. 比如这是DroneState.msg对应生成的头文件DroneState.h,是在devel文件夹下面,是编译生成的.这里一开头就明确 ...
- 我的Linux与ROS的不眠不休:从入门到入土(三)——hellow,ROS
一.ROS回顾 没啥好回顾的. ros操作简单又功能强大(百度这么说的),但学起来也没那么容易. 二.Hellow,ROS 上一篇说过,ROS程序员需要写的程序,其实就是创造节点.那么,怎么样写,写在 ...
最新文章
- python信号分析_Python频谱分析
- boost::core模块实现分配const void指针
- weblogic9修改线程数设置
- ssm上传文件获取路径_SSM实现图片上传下载功能
- 机器学习算法总结--朴素贝叶斯
- 图像数据转换成db(leveldb/lmdb)文件(转)
- Linux CentOs6 命令学习
- 用浏览器做人脸检测,竟然这么简单?(附代码)
- [BZOJ5006][LOJ#2290][THUWC2017]随机二分图(概率+状压DP)
- Excel VBA视频教程20集+PPT课件 完整版
- Apache OpenOffice-java调用时的问题总结
- 1-10000内的素数c语言,输入1-10000的素数
- Windows安装多个不同版本谷歌chrome浏览器
- pc端ui图片尺寸_PC端网页尺寸设计一
- linux配置中端代理
- 造型时尚的快充移动电源,兼容性确实不错,aigo A10S体验
- keyshot渲染图文教程_keyshot基础图文教程,手把手教你用keyshot制作动画效果
- pd.concat()和pd.merge()
- 每日哲学与编程练习5——分数问题(Python实现)
- seamless kernel updates