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 ...
随机推荐
- 表单送件前的Check(二) (未完)
#region 新增表单前的Check动作 public static void NewFormRequestCheck(string _FormID, string _VocaEmpID, stri ...
- java SE,EE,ME区别
Java SE(Java Platform,Standard Edition):java平台标准版: Java EE(Java Platform.Enterprise Edition):java平台企 ...
- 1+x证书学习日志——css常用属性
## css常用属性: 1:文本属性: 文本大小: font-size:18px; 文本颜色 colo ...
- cdc跨时钟域处理-结绳握手法
参考文档 https://blog.csdn.net/u011412586/article/details/10009761 前言 对于信号需要跨时钟域处理而言,最重要的就是确保数据能稳定的传送到采样 ...
- BASIS小问题汇总1
try to start SAP system but failed 2019-04-04 Symptom: when i tried to start SAP system, using the c ...
- java - day013 - 流, FileInputStream, BufferedInputStream,
流 Stream 把数据的读写,抽象成数据在管道中流动. 流是单向的 输入流, 只能用来读取数据 输出流, 只能用来输出数据 流只能顺序读写数据 流只能一次性从头到尾读写数据 流动过的数据,不能反复流 ...
- 基于CentOS设置和使用Yum软件仓库
参考:How To Set Up and Use Yum Repositories on a CentOS 6 VPS 参考:CentOS yum 源的配置与使用 介绍 Yum仓库是Linux软件仓库 ...
- java后端处理高并发
一个登陆页面可能会被很多账户同时登陆或者注册,那么我们就好处理这些并发,否则降低程序的使用率,甚至程序奔溃,下面一段代码处理程序的高并发效果不错. /** *@author xiaoxie *@dat ...
- 数据库中的Schema到底是什么
参考:http://database.guide/what-is-a-database-schema/ 在数据库中,schema(发音 “skee-muh” 或者“skee-mah”,中文叫模式)是数 ...
- Linux学习之四-Linux发行版及版本比较
Linux发行版及版本比较 三大家族: Fedora是基于RHEL,CentOS,Scientific Linux, 和Oracle Linux的社区版本.相比RHEL,Fedora打包了显著的更多的 ...