catkin编译系统

ROS 的 Catkin 编译系统的一个特点是将程序做成 package (称为 catkin package 或者 ROS package) 的形式,可以理解成模块化。 典型的 ROS workspace 中包含 src, build, devel 三个文件夹,在分享时只需要分享 src 中的某个 package 即可,所有的编译信息都在此 package 中。

工作空间 workspace

工作空间是一个存放工程开发相关文件的文件夹。就像用IDE创建工程的工程目录一样

有4个主要文件夹

  • src:代码空间(Source Space)
  • build:编译空间(Build Space)
  • devel:开发空间(Development Space)
  • install:安装空间(Install Space)

catkin编译系统下的的工作空间结构

创建工作空间

mkdir catkin_ws
cd catkin_ws
mkdir src

catkin_ws这个名字是自己定义的

catkin_init_workspace

注意与上图对比,未进行初始化和初始化之后,初始化之后目录中多了CMakeLists.txt

有这样一个文件也就说明我们当前的路径是一个ROS的工作空间了

编译工作空间

编译不在src下,要回到catkin_ws下

catkin_make

通过这个指令可以编译src下面所有功能包的源码,结果会放到devel和install中

这是执行编译前

执行编译后

可以看到多了devel和build目录

但是并没有产生install这个空间

catkin_make install

就产生install目录了

可以看到此时build、devel、install目录中都有不少文件了

install是安装空间,最终编译生成的可执行文件都会放在这
devel是开发空间,放置开发过程中的可执行文件和库
build是开发过程中的一些中间文件,二进制文件,我们基本上是用不到的

下面我们就能在这样的工作空间中开发代码了

创建功能包

在创建代码的时候一定要创建一个功能包。功能包放置在src目录下

功能包是放置ROS源码的最小单元

所有源码必须全部放在功能包里面,不能直接放在src下面去编译,这是不允许的

同一个工作空间下,不允许存在同名功能包。不同工作空间下,允许存在同名功能包

catkin_create_pkg 包名 依赖

std_msgs是标准的消息结构

rospy是python依赖

roscpp是c++依赖

执行命令之前

执行命令之后

可以看到出现了test_pkg

include放置头文件

src放置功能包代码

CMakeLists.txt 和 packages.xml是每个功能包必须要存在的两个文件

编译功能包

回到catkin_ws中

catkin_make

因为里面没有任何代码,所以没有什么编译的效果

编译成功之后,如果想运行功能包里的某个程序的话,要先设置一下工作空间的环境变量

source devel/setup.bash

只有设置了这个环境变量之后我们才能让系统找到我们的工作空间

可以看到$ROS_PACKAGE_PATH 中包含了功能包的路径就ok了

ROS(四)——创建工作空间与功能包 Catkin编译系统相关推荐

  1. ROS Noetic入门笔记(二)ROS Noetic创建工作空间和功能包

    ROS Noetic入门笔记(一)在ubuntu20.04中安装ROS Noetic并简单测试 ROS Noetic入门笔记(二)ROS Noetic创建工作空间和功能包 ROS Noetic入门笔记 ...

  2. ROS系统 创建工作空间与功能包

    ROS 学习目标: 学习内容: 使用环境 操作步骤: 基本命令 二.使用步骤 创建工作空间 编译工作空间 创建功能包 使用C++执行程序 编写源文件 编辑功能包下的 Cmakelist.txt文件 修 ...

  3. 【RK3399Pro学习笔记】四、ROS 创建工作空间与功能包

    目录 创建工作空间 编译工作空间 功能包 创建功能包 编译功能包 设置环境变量 检查环境变量 平台:华硕 Thinker Edge R 瑞芯微 RK3399Pro 固件版本:Tinker_Edge_R ...

  4. 《动手学ROS2》3.5.1创建工作空间和功能包

    本系列教程作者:小鱼 公众号:鱼香ROS QQ交流群:139707339 教学视频地址:小鱼的B站 完整文档地址:鱼香ROS官网 版权声明:如非允许禁止转载与商业用途. 3.4.1 创建工作空间和功能 ...

  5. ROS机器人操作系统——创建工作空间与功能包(四)

    ROS机器人操作系统 文章目录 ROS机器人操作系统 前言 一.工作空间 1.创建工作空间 2.编译工作空间 3.设置环境变量 4.检查环境变量 二.功能包 1.创建功能包 2.编译功能包 总结 前言 ...

  6. 手把手教会:ROS——机器人操作系统工作空间和功能包的创建02(笔记02)

    在上一篇文章中,我已经把ROS的工作空间的创建步骤进行了介绍.接下来,我们就来看一下ROS的功能包是如何创建的. 一.功能包的组成 对于功能包我们可以理解为是一个存放在ROS工作空间中的"s ...

  7. ROS入门-7.创建工作空间与功能包

    一.工作空间 概述:是一个存放工程开发相关文件的文件夹 包括四个主要文件夹 src(代码空间):用来放置功能包,功能包的代码,配置文件,launch文件等 build(编译空间):放置编译过程当中产生 ...

  8. ROS学习笔记(一):创建工作空间和功能包

    所有的ROS程序,包括我们自己开发的程序,都被组织成功能包,而ROS的功能包被存放在称之为工作空间的目录下.因此,在我们写程序之前,第一步是创建一个工作空间以容纳我们的功能包.其实ROS工作空间就是l ...

  9. 古月居ROS入门21讲——9.创建工作空间与功能包

    1.工作空间 工作空间(workspace)直观的形容就是一个仓库,里面装载着ROS的各种项目工程,便于系统组织管理调用. src/: 源代码包 build/: 编译生成的中间文件 devel/: 开 ...

最新文章

  1. AngularJS之动态菜单操作指令
  2. springboot+mybatis+sqlserver导出数据库数据并实现下载到excel
  3. 如何隐藏sql2000系统表
  4. 现代密码学1.2--Kerckhoffs原则
  5. 掌握ADO.NET的十个热门技巧
  6. XCTF WEB disabled_button
  7. LeetCode - 3Sum Closest
  8. web.xml.jsf_使用JSF 2.0可以更轻松地进行多字段验证
  9. Spring Data Solr教程:配置
  10. 工作302:scss目录编写
  11. Oracle做ip连接限制
  12. 【数据结构与算法】堆
  13. python在scatter中添加图例_如何向matplotlib散点图添加图例
  14. HttpServletResponse类
  15. PHP仿百度实现弹窗登录效果,js仿百度登录页实现拖动窗口效果
  16. 【鱼眼镜头5】[中央全向相机畸变模型]:统一相机模型,四阶多项式对统一相机模型进行建模
  17. c语言编程有限次数猜数游戏,用c语言编程猜数字
  18. 【转载】SNMPv3 配置及snmpwalk命令信息获取
  19. Android九宫格连线解锁-自定义View系列(9)
  20. 三分屏课件制作_如何利用剪辑软件制作分屏效果

热门文章

  1. xmta温度控制仪说明书_【智能温控仪XMTA-908说明书】- 黄页88网
  2. 【MySQL 8.0 OCP 1Z0-908认证考试】题库精讲--第五讲mysqlbinlog与mysqldump(上)
  3. 转载---谷歌 六度空间搜索
  4. 【cmd命令】查看端口占用情况
  5. Dapper数据库字段(列)与实体属性名不一致,通过Column特性自动注入映射
  6. Jackson Western印迹检测分析物丨比色免疫印迹
  7. C语言.字符串,及string.h初步应用
  8. 算法的特性和设计要求
  9. 【超详细】2021最新版Redis安装教程(基于Redis 6.2.x版本)
  10. Python数据处理方法总结