ROS学习笔记(六)--catkin_make编译(这篇写得实在是太好了!!!!)

摘自:https://blog.csdn.net/hhaowang/article/details/101691986

ROS学习笔记(六)--catkin_make编译

Techblog of HaoWANG 2019-09-29 15:07:10 4719 收藏 61

分类专栏: ROS学习笔记 文章标签: ROS catkin_make rospack package

版权

介绍catkin的编译系统,catkin工作空间的创建和结构,package软件包的创建和结构,介绍CMakeLists.txt文件,package.xml以及其他常见文件。从而系统的梳理了ROS文件空间的结构,对于我们ROS学习和开发有着重要的作用。

目录

1. catkin编译系统

1.1 Catkin_make结构及特点

1.2 Catkin_make编译流程

1.3 Catkin_make文件系统

2. Package软件包

2.1 package结构

2.2 Package指令

2.3 ROS指令小结


1. catkin编译系统

对于源代码包,我们只有编译才能在系统上运行。而Linux下的编译器有gcc、g++,随着源文件的增加,直接用gcc/g++命令的方式显得效率低下,人们开始用Makefile来进行编译。然而随着工程体量的增大,Makefile也不能满足需求,于是便出现了Cmake工具。CMake是对make工具的生成器,是更高层的工具,它简化了编译构建过程,能够管理大型项目,具有良好的扩展性。对于ROS这样大体量的平台来说,就采用的是CMake,并且ROS对CMake进行了扩展,于是便有了Catkin编译系统。

早期的ROS编译系统是rosbuild,但随着ROS的不断发展,rosbuild逐渐暴露出许多缺点,不能很好满足系统需要。在Groovy版本面世后,Catkin作为rosbuild的替代品被正式投入使用。Catkin操作更加简化且工作效率更高,可移植性更好,而且支持交叉编译和更加合理的功能包分配。目前的ROS同时支持着rosbuild和Catkin两种编译系统,但ROS的核心软件包也已经全部转换为Catkin。rosbuild已经被逐步淘汰,所以建议直接上手Catkin。

1.1 Catkin_make结构及特点

1.2 Catkin_make编译流程

1.3 Catkin_make文件系统

catkin工作空间基本就是以上的结构,package是catkin工作空间的基本单元,我们在ROS开发时,写好代码,然后catkin_make,系统就会完成所有编译构建的工作。


2. Package软件包

package也是ROS源代码存放的地方,任何ROS的代码无论是C++还是Python都要放到package中,这样才能正常的编译和运行。

一个package可以编译出来多个目标文件(ROS可执行程序、动态静态库、头文件等等)。

2.1 package结构

自定义消息、通信结构

2.2 Package指令

2.3 ROS指令小结

猜你喜欢

转载自blog.csdn.net/sinat_16643223/article/details/113935412