ROS学习笔记(二):工程结构,catkin,package

时间:2024-03-20 22:15:10

工程结构:我理解为一个项目的文件系统的结构。比如在C++中有放源文件的,有放头文件的,在ros的一个工程中,自然也有相应的文件结构。

ROS学习笔记(二):工程结构,catkin,package

catkin 是ROS定制的编译构建系统(Cmake的扩展),catkin是用来编译ros程序的。

catkin工作空间,可以对功能包的文件夹进行管理和组织。

指令catkin_make:1.建立工作空间 2.编译

ROS学习笔记(二):工程结构,catkin,package建立目录的时候一定要包含有src这个文件夹

 

(注意:在建立好工作空间之后需要 cd ~/catkin_ws回到工作空间。如果不回到工作空间直接catkin_make会报错

。另外,最后一句把我们的工作空间的路径刷新到环境变量里面去,这样系统才知道我们生成的ROS可执行文件的位置。)

ROS学习笔记(二):工程结构,catkin,package

src才是我们写代码的地方。其他两个catkin系统会帮我们搞定

所以先只关注src

rosbuild也是一个编译系统,比较老,不管。

而package是catkin编译的最基本的单元。一般结构如下:

ROS学习笔记(二):工程结构,catkin,package

package:

ros软件的基本组织形式,catkin编译的基本单元,一个package中可以包含多个可执行文件(节点)

package 的空架子结构:

ROS学习笔记(二):工程结构,catkin,package这两个文件代表着编译规则和包的自我描述(具体写法我不会,但是.xml中一般只需要修改编译和运行时候的依赖项)

ROS学习笔记(二):工程结构,catkin,package

 

ROS学习笔记(二):工程结构,catkin,package

代码文件一般有两种:一种脚本文件(.py ,.sh),一种是c++的文件

package的经典结构

ROS学习笔记(二):工程结构,catkin,package

package下的scripts和include,src放置源代码

msg和srv中放通信格式,(message和service)

launch文件和配置文件:由于包中可以放多个可执行文件,这时候可以把这些文件组织到launch文件中,它的作用就是一次性执行多个可执行文件。

常用指令:

ROS学习笔记(二):工程结构,catkin,package

Metapackage:(虚包)自身没有什么内容,但是它依赖了非常多别的软件包,通过这种方式把其他的软件包组合起来