ROS文件系统级
ROS的安装就不介绍了,官方教程是最好的:点击打开链接
ROS是机器人操作系统,它应该有自己的工程结构,Linux系统的文件系统如下:
而ROS的文件系统级如下:
接下来逐一介绍它们:
1. catkin 工作空间
工作空间就是管理 ROS 工程和代码的地方,而 catkin 是 ROS 定制的编译构建系统,是对 CMake 的扩展。catkin 工作空间其实就是一个文件夹,用来组织和管理功能包,用 catkin 工具编译。
首先对其进行创建(必须有 src 目录):
mkdir -p ~/catkin_ws/src
进入工作空间:
cd ~/catkin_ws/
对其进行编译(必须在工作空间进行)
catkin_make
如果你的输出像这样:
那就成功了。
这只是完成了编译(编译整个空间),如果要执行某个文件,还需要执行这样一句话:
source ~/catkin_ws/devel/setup.bash
刷新环境,这样才不会报错。
2. src,build 和 devel
src 中存放的是 package 源代码,编译完成之后会发现工作空间中多了这两个文件夹,其中 build 中存放的是 cmake 和 catkin 的缓存信息以及中间文件, devel 中存放的则是生成的目标文件,比如头文件,可执行文件,链接库等等。
src 目录下存放着各种各样的功能包,包是 catkin 编译的基本单元。
3.package
又称 功能包,是 ROS 软件的基本组织形式,一个 package 可以包含多个可执行文件(节点),一个最精简的 package,应该如下:
CMakeLists.txt 规定了 catkin 编译的规则,具体写法如下:
package.xml 定义了 package 的属性,例如 包名,版本号,作者等。它的写法如下:
接下来就是将代码放入 package 中,ROS中的代码文件分为 脚本(python,shell) 和 C++(头文件,源文件)。
因此,一般创建 scripts 存放脚本,创建 include 存放 C++ 头文件,src 存放 C++ 源文件。
package 下也可以存放自定义通信格式,分别存放在 srv,msg 和 action 文件夹下。
launch 文件存放在 launch 文件夹下,launch 文件的好处是不用手动编译每一个可执行文件,参数设置文件 yaml 放在 config 文件夹下。
ROS常用命令:
ROS文件系统级的更多相关文章
- ROS学习(三)—— ROS文件系统
一.预备工作 使用ros0tutorials程序包,先下载: sudo apt-get install ros-<distro>-ros-tutorials 其中<distro> ...
- ROS计算图级
上一节说到一个 package 可以包含多个可执行文件(节点),可执行文件需要被运行,就要了解ROS的通信架构,也就是计算图级,例: 小萝卜机器人拥有驱动系统,感知系统,控制系统等,要让它从指定位置到 ...
- 机器人操作系统(ROS)教程4:ROS的框架【转】
转自:http://www.arduino.cn/thread-11351-1-1.html 在进行ROS的代码开发前,有必要了解一些ROS的概念.首先,ROS的系统代码分为两部分:main和univ ...
- Learning ROS for Robotics Programming - Second Edition(《ROS机器人编程学习-第二版》)
Learning ROS for Robotics Programming - Second Edition <ROS机器人编程学习-第二版> ----Your one-stop guid ...
- ROS探索总结(二)——ROS总体框架
个人分类: ROS 所属专栏: ROS探索总结 一. 总体结构 根据ROS系统代码的维护者和分布来标示,主要有两大部分: (1)main:核心部分,主要由Willow G ...
- ROS学习笔记二:ROS系统架构及概念
本文主要是了解ROS的系统架构.文件夹结构以及工作所需的核心文件. ROS系统架构主要被设计和划分为三部分,每一部分代表一个层级的概念:文件系统级(The filesystem level).计算图级 ...
- ROS的文件系统 (二)
ROS的文件系统的基本概念, ROS文件系统中的两个最基本的概念:Package和Manifest,即包和清单文件. Package是组织ROS代码的最基本单位,每一个Package都可以包括库文件, ...
- ROS的文件系统
这篇博客介绍一下ROS的文件系统的基本概念,用户可以直接在官方网站:http://wiki.ros.org/ROS/Tutorials/NavigatingTheFilesystem去查看官方手册. ...
- ROS官网新手级教程总结
第 1 关卡:安装和配置 ROS 环境 目标:在计算机上安装和配置 ROS 环境. 安装 ROS 按照 ROS 安装说明进行安装. 管理环境 确定环境变量 ROS_ROOT 和 ROS_PACKAGE ...
随机推荐
- php批量检测并去除BOM头的代码
开发中会遇到BOM头, 导致程序无法执行. 浏览器返回接口如下图: 去除BOM头解决方法:<?phpini_set('memory_limit','1024M'); function check ...
- vue动态请求到的多重数组循环遍历,取值问题,如果某个值存在则显示,不存在则不显示。
数据结构: 需求:我在vue页面需要拿到url值并显示图片 代码写法: 注意:一定要判断否则拿到的large对象一直是空值, 那么img.large.url将会取不到值,会报 url 'undefi ...
- javascript_12-递归
递归 // function f1(){ // console.log("hello"); // f1(); // } // f1(); // 给递归添加结束的条件 var i = ...
- CentOS7安装CDH 第十三章:CDH资源池配置
相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...
- Android笔记(二十四) Android中的SeekBar(拖动条)
拖动条和进度条非常相似,只是进度条采用颜色填充来表明进度完成的程度,而拖动条则通过滑块的位置来标识数值——而且拖动条允许用户拖动滑块来改变值,因此拖动条通常用于对系统的某种数值进行调节,比如调节音量等 ...
- Linux 命令之 alias
alias 的作用是为命令设置别名,用于提高输入效率 alias 的临时设置 临时设置很简单,直接举例说明 [r@1lin24 ~]$ alias cdlog='cd /var/log' [r@1li ...
- python返回值的缺省设置
有时候并不需要返回所有的值,但是原始函数的return语句中又有较多参数时: 方法一:修改原始返回值,只返回需要的参数 方法二:如果原始函数时第三方库或者python自带库,则直接修改可能不太好,于是 ...
- 在Linux中安装ASPNET.Core3.0运行时
# 以下示例适用于x64位runtime v3.0.0 mkdir /runtimes cd /runtimes wget https://download.visualstudio.microsof ...
- k8s的api
一.namespaced resources 所谓的namespaced resources,就是这个resource是从属于某个namespace的, 比如pod, deployment, serv ...
- html简单知识
一.html标签的特征: 1.空白折叠现象 2.对空格和换行不敏感 3.标签要严格封闭 二.p标签的嵌套 p中只能存放字体.图片.表单控件,不能放盒子标签 三.html中标签的分类 1.行内标签 在一 ...