ROS有很多架构及概念,例如工作空间,功能包,消息,服务等等。

我们先从最开始的工作空间说,工作空间在其它里面,有的叫作项目,有的叫作解决方案。其实就是一个项目的根目录地址。

例如,我们在/home里创建一个工作空间叫作workspace的。

注意,ros的所有运行的程序文件都要写在叫作src的文件。

之后我们可以先尝试在terminal中进入workspace中,

使用 cd ~/workspace/ 指令进入

可以使用mkdir src 指令创建文件夹src。

在workspace 的根目下catkin_make,就可以编译整个项目了

(注意,catkin_make 要在workspace根目录下面使用,不要在其它文件夹下编译 。)

之后就是功能包了,

在src文件中,我们需要进入src文件夹里。

通过cd ./src进入

使用catkin_create_pkg 名称 创建你想要的package。

同样的,在package文件夹下也要建立一个src文件夹,

并且将所有的执行文件,节点文件要放在这里面。

(注意,catkin_make会在workspace中生成三个文件夹,一个install,一个devel,一个build)

其实catkin_make 实际和下面的指令是等效的

$ cd ~/workspace
$ cd src
$ catkin_init_workspace
$ cd ..
$ mkdir build
$ cd build
$ cmake ../src -DCMAKE_INSTALL_PREFIX=../install -DCATKIN_DEVEL_PREFIX=../devel
$ make

之后就是消息,在相应的package下,建立相关的消息,可参考ROS Wiki中的章节:
http://wiki.ros.org/ROS/Tutorials/CreatingMsgAndSrv

在package根目录下创建msg文件夹写入msg文件。

这些就是最基本的文件夹结构和文件框架。

示意图可以更清楚地表示这些结构。

workspace_folder/        -- WORKSPACEsrc/                   -- SOURCE SPACECMakeLists.txt       -- 'Toplevel' CMake file, provided by catkinpackage_1/src/node.cppinclude/CMakeLists.txt     -- CMakeLists.txt file for package_1package.xml        -- Package manifest for package_1...package_n/    msg/    srv/src/node.pyinclude/CMakeLists.txt     -- CMakeLists.txt file for package_npackage.xml        -- Package manifest for package_n

一个基本的ros项目的文件结构基本就是这样啦。

转载于:https://www.cnblogs.com/TIANHUAHUA/p/7868528.html

ROS入门(一) 文件结构篇相关推荐

  1. ROS中的roslaunch命令和launch文件(ROS入门学习笔记四)

    ROS中的基本对象和概念学习笔记(ROS入门学习笔记一) ROS中创建工作区和包(ROS入门学习笔记二) ROS功能包中CMakeLists.txt的说明(ROS入门学习笔记三) 1.roslaunc ...

  2. 古月居ROS入门21讲-launch文件

    视频链接:bilibili 搜 古月居 源代码:关注古月居公众号,回复ROS入门21讲 文章目录 1 launch文件语法 2 launch 示例 launch文集:通过XML文件实现多个节点的配置和 ...

  3. SLAM+语音机器人DIY系列:(二)ROS入门——2.ROS系统整体架构

    摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人"miiboo"中的大部分程序也采用ROS进行开发,所 ...

  4. ROS入门笔记(十三):分布式通信

    ROS入门笔记(十三):分布式通信 文章目录 01 如何实现分布式多机通信 1.1 设置IP地址,确保底层链路的连通 1.2 在从机端设置ROS_MASTER_URI,让从机找到ROS Master ...

  5. ROS入门笔记(十二):动作编程 (C++)

    ROS入门笔记(十二):动作编程 (C++) 文章目录 01 导读 02 功能包的创建 03 在功能包中创建action(动作) 3.1 自定义action 3.2 在package.xml中添加功能 ...

  6. ROS入门笔记(十一):编写与测试简单的Service和Client (Python)

    ROS入门笔记(十一):编写与测试简单的Service和Client (Python) 文章目录 01 导读 02 功能包的创建 03 在功能包中创建自定义服务类型 3.1 定义srv文件 3.2 在 ...

  7. ROS入门笔记(十):编写与测试简单的消息发布器和订阅器(C++)

    ROS入门笔记(十):编写与测试简单的消息发布器和订阅器(C++) 文章目录 01 导读 02 功能包的创建 03 功能包的源代码编写 3.1 编写发布器节点(talker.cpp) 3.2 编写订阅 ...

  8. ROS入门笔记(九):编写ROS的第一个程序hello world(重点)

    ROS入门笔记(九):编写ROS的第一个程序hello world(重点) 文章目录 1 Catkin工作空间 1.1 创建catkin工作空间 1.2 编译工作空间 1.3 设置环境变量 1.4 检 ...

  9. ROS入门笔记(七):详解ROS文件系统

    ROS入门笔记(七):详解ROS文件系统 文章目录 01 Catkin编译系统 1.1 Catkin特点 1.2 Catkin工作原理 1.3 使用`catkin_make`进行编译 02 Catki ...

  10. ROS入门笔记(六): ROS系统架构

    ROS入门笔记(六): ROS系统架构 文章目录 1 ROS系统架构 1.1 文件系统(重点) 1.2 计算图 1.3 开源社区 1 ROS系统架构 1.1 文件系统(重点) 文件系统:主要指在硬盘里 ...

最新文章

  1. AI一分钟|美团确认收购摩拜;特斯拉今年第一季度产量创历史新高
  2. 弹出查看图片_报表工具如何实现“点击查看原图”
  3. java并发集合有哪些_java中常见并发集合有哪些?详细解析
  4. Android -----ArrayAdapter的重写 .
  5. BugkuCTF-Reverse题Easy_vb多方法解决
  6. Qt工作笔记-QT_BEGIN_NAMESPACE与QT_END_NAMESPACE的理解
  7. LIO-SAM探秘之文章索引
  8. 串行卧重建19:大对象的演变
  9. 9种常见的前端跨域解决方案(详解)
  10. Keil5各个版本的下载地址
  11. 聚名企服商标注册流程及资料(2022新版新手教程)
  12. JDK官方下载(旧版本,以前老版本)
  13. 微端要用什么样的服务器
  14. 参考C++高级进阶教程
  15. tryhackme--Overpass 2 - Hacked
  16. 使用高德地图 地址一经纬度 之间相互转化的实例代码 python
  17. 计算机学硕一志愿仅录取一人,调剂录取几十人!重庆理工大学人工智能学院...
  18. java 语言是跨平台的吗_java语言的跨平台特点是由什么保证的?有什么用吗?
  19. 记一次服务器被挖矿木马攻击的经历
  20. 微信php示例代码,PHP判断手机端、PC端、微信示例代码分享

热门文章

  1. svn checkout的时候报E000022错误
  2. Linux的append函数,linux block层
  3. java 存储多叉树_JAVA多叉树森林的构造、内存存储与遍历
  4. 关于利用border-radius变形后,margin的参照对象
  5. Nginx源码编译及安装
  6. 设计模式---代理模式(c++实现)
  7. 【渝粤教育】国家开放大学2019年春季 2633轨道交通信号与通信系统 参考试题
  8. [渝粤教育] 西南科技大学 机械工程测试技术 在线考试复习资料
  9. 【sklearn第十九讲】高斯混合模型
  10. 23种设计模式(十九)数据结构之组合模式