Catkin工作空间 (重点)

本文涉及的产品
资源编排,不限时长
简介: Catkin工作空间 (重点)

1 Catkin工作空间


  • 工作空间(workspace)是一个存放工程开发相关文件的文件夹。
src:代码空间(Source Space)
build:编译空间(Build Space)
devel:开发空间(Development Space)
install:安装空间(Install Space)

Catkin工作空间是创建、修改、编译catkin软件包的目录。catkin的工作空间,直观的形容就是一个仓库,里面装载着ROS的各种项目工程,便于系统组织管理调用。在可视化图形界面里是一个文件夹。


我们自己写的ROS代码通常就放在工作空间中,本节就来介绍catkin工作空间的结构。


1.1 创建catkin工作空间


创建一个 catkin 工作空间:


$ mkdir -p ~/catkin_ws/src  # 创建了第二层级的文件夹src,这是放ROS软件包的地方
$ cd ~/catkin_ws/src        # 进入工作空间,catkin_make必须在工作空间这个路径上执行
$ catkin_init_workspace     # 初始化src目录,生成的CMakeLists.txt为功能包编译配置

1.2 编译工作空间


$ cd ~/catkin_ws   # 回到工作空间,catkin_make必须在工作空间下执行;
$ catkin_make     # 开始编译,调用系统自动完成编译和链接过程,构建生成目标文件


注意: catkin编译之前需要回到工作空间目录,catkin_make在其他路径下编译不会成功。


==编译完成后,如果有新的目标文件产生(原来没有),那么一般紧跟着要source刷新环境,使得系统能够找到刚才编译生成的ROS可执行文件。==这个细节比较容易遗漏,致使后面出现可执行文件无法打开等错误。


catkin_make命令也有一些可选参数,例如:


catkin_make [args]
  -h, --help            帮助信息
  -C DIRECTORY, --directory DIRECTORY
                        工作空间的路径 (默认为 '.')
  --source SOURCE       src的路径 (默认为'workspace_base/src')
  --build BUILD         build的路径 (默认为'workspace_base/build')
  --use-ninja           用ninja取代make
  --use-nmake           用nmake取'make
  --force-cmake         强制cmake,即使已经cmake过
  --no-color            禁止彩色输出(只对catkin_make和CMake生效)
  --pkg PKG [PKG ...]   只对某个PKG进行make
  --only-pkg-with-deps  ONLY_PKG_WITH_DEPS [ONLY_PKG_WITH_DEPS ...]
                        将指定的package列入白名单CATKIN_WHITELIST_PACKAGES,
                        之编译白名单里的package。该环境变量存在于CMakeCache.txt。
  --cmake-args [CMAKE_ARGS [CMAKE_ARGS ...]]
                        传给CMake的参数
  --make-args [MAKE_ARGS [MAKE_ARGS ...]]
                        传给Make的参数
  --override-build-tool-check
                        用来覆盖由于不同编译工具产生的错误


注意, 对于 Python 3 用户,在一个空的 catkin 工作空间中第一次运行 catkin_make的命令应为:


$ catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3


这将会配置 catkin_make 使用 Python 3.你可以在随后的构建中只使用 catkin_make。


1.3 设置环境变量


另外,如果你查看一下当前目录应该能看到 ‘build’ 和 ‘devel’ 这两个文件夹。在 ‘devel’ 文件夹里面你可以看到几个 setup.*sh 文件。source 这些文件中的任何一个都可以将当前工作空间设置在ROS工作环境的最顶层。接下来首先 source 一下新生成的 setup.*sh 文件:


$ source devel/setup.bash   # 刷新坏境


1.4 检查环境变量


要想保证工作空间已配置正确,需确保ROS_PACKAGE_PATH环境变量包含你的工作空间目录,采用以下命令查看:


$ echo $ROS_PACKAGE_PATH
#  出现 /home/<youruser>/catkin_ws/src:/opt/ros/kinetic/share


到此你的工作环境已经搭建完成。


创建好了一个ROS的工作空间了,接下来就是在catkin_ws工作空间下的src目录下新建功能包并进行功能包程序。

相关实践学习
使用ROS创建VPC和VSwitch
本场景主要介绍如何利用阿里云资源编排服务,定义资源编排模板,实现自动化创建阿里云专有网络和交换机。
阿里云资源编排ROS使用教程
资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配置等,并自动完成所有资源的创建和配置,以达到自动化部署、运维等目的。编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能。 产品详情:https://www.aliyun.com/product/ros/
目录
相关文章
|
5月前
|
分布式计算 DataWorks 安全
DataWorks产品使用合集之如何复制工作空间里的业务流程
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
5月前
|
数据采集 SQL DataWorks
DataWorks产品使用合集之如何在其他工作空间提交任务后使用不同工作空间的生产环境表
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
5月前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之批量空间添加成员如何实现
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
5月前
|
数据采集 DataWorks 监控
DataWorks产品使用合集之如何实现跨工作空间的依赖调度
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
5月前
|
分布式计算 DataWorks 安全
DataWorks产品使用合集之如何使用工作空间参数
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
5月前
|
数据采集 DataWorks 监控
DataWorks产品使用合集之怎么使用工作空间参数
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
5月前
|
数据采集 DataWorks 监控
DataWorks产品使用合集之怎么批量修改目标表的生命周期
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
6月前
|
DataWorks 监控 安全
DataWorks产品使用合集之新加入的成员没有看到已经授权的数据源,该怎么办
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
6月前
|
数据采集 DataWorks 监控
DataWorks产品使用合集之从一个工作空间克隆节点到另一个工作空间时,所有节点都显示需要重新提交,是什么导致的
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
6月前
|
SQL 存储 JSON
DataWorks产品使用合集之没有dev环境的project,如何创建数据集成任务时完成网络与资源配置
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。