ROS中关于工作空间的学习

ROS工作空间简介:

工作空间示意图如下:

在这里插入图片描述

 ROS工作空间的内容分4类:


- src:打交道最多文件夹,保存所有的代码,每个子文件夹是一个pakage,源空间(src文件夹),放置了功能包、项目、复制的包等。在这个空间中,,最重要的一个文件是CMakeLists.txt。当在工作空间中配置包时,src文件夹中有CMakeLists.txt因为cmake调用它。这个文件是通过catkin_init_workspace命令创建的。
- build:中间编译文件,除非编译时有奇怪bug,在build文件夹里,cmake和catkin为功能包和项目保存缓存信息、配置和其他中间文件。
- devel:生成的所有exec/.py的目录,也是ROS系统引导自己编写的包的目录,后文还有详细介绍

开发空间(Development(devel)space):devel文件夹用来保存编译后的程序,这些是无须安装就能用来测试的程序。一旦项目通过测试,就可以安装或导出功能包从而与其他开发人员分享。
- install:可对外发布时,程序保存的目录

src目录


src目录下每个文件夹代表一个package,每个pakage可生成多个可执行文件,每个可执行文件是一个ROS节点。
每个package包含以下内容:

include:存放编写的头文件,在CMakeLists.txt添加时要指定include/*.h
src:保存编写的源文件,在CMakeLists.txt添加时要指定include/*.cpp
srv(可选):服务协议文件*.src的保存位置,配合CMakeLists.txt的add_service_files()使用,直接写文件名,不要加前缀
msg(可选):服务协议文件*.msg的保存位置,配合CMakeLists.txt的add_message_files()使用,直接写文件名,不要加前缀

devel 目录


这个目录通常是不独立出来的,但ROS要支持c++/Python两种输出,所以独立放到一个文件夹,且默认提供了ROS系统引导的文件。具体包括:
-setup.sh/.zsh/.bash:由不同shell调用的脚本,source后就在ROS系统 中引导了当前工作空间,之后可以用rosrun/roscd/…等命令调用生成的package。
-local_setup.sh/.zsh/.bash:用于在当前目录调用setup.sh
-__setup__util.py:类似于setup.sh,不过用于引导python加载
-env.sh:当前工作空间的环境设置,不需手工调用
-include:C++头文件目录
-lib:c++编译生成、python代码及配置文件目录

[pkg*]:c++可执行文件的输出目录,按package文件夹分割
[pkgconfig]:C++的外部引导配置,被其他库依赖时使用,其下为每个package提供了*.pc配置文件
python3:python输出文件目录,其下提供site-package,可供python外部调用

 创作ros工作空间

1.创建包        

        mkdir -p ~/catkin_ws/src

2.进入src文件夹并初始化

        cd ~/catkin_ws/src

        catkin_init_workspace

3.返回并编译

        cd ~/catkin_ws/         

        catkin_make

4.source一下将工作空间加入环境变量  

        source devel/setup.bash

猜你喜欢

转载自blog.csdn.net/weixin_62705892/article/details/127624030