ROS工程结构
ROS工程结构
典型的Ros工程如下:
- src:代码空间——用来存放功能包;
- build:编译空间——存放编译中产生的中间文件;
- devel:开发空间——存放编译后生成的可执行文件;
- install:安装空间——用install指令安装时所指定的目标位置(一般开发情况下使用不到的);
catkin_ws
工作空间
概述
catkin:ros定制的编译构建系统 ,是对Cmake的扩展,编写原则与Cmake相似;
catkin工作空间:用来组织和管理功能包的文件夹,以catkin工具编译;
- 建立工作空间
mkdir -p ~/catkin_ws/src
cd src
catkin_init_wprkspace#初始化工作空间
- 编译
cd ~/catkin_ws
catkin_make #编译所有功能包
source ~/catkin_ws/devel/setup.bash #编译完成之后需要sorcerer刷新环境
catkin workspace初始化后的目录结构
rosbuild
命令:ros早期采用的编译系统,目前主流的ROS项目已经不采用此命令编译,大多使用catkin_make
src
src
下放的是各种功能包——package
,package
是catkin编译的基本单元,catkin编译的过程会在src
目录下进行递归的查找每一个package
,所以可以吧package
放在src
下的几个文件夹下;
功能包 package
package
:
ROS软件的基本组织形式,catkin编译的基本单元,一个package
可以包含多个可执行文件(节点);package
下必须包含两个文件,即最精简的package
文件下也要有CMakeLists.txt
和package.xml
;
CMakeLists.txt
文件
规定catkin
编译的规则,例如:源文件、依赖项、目标文件;
package.xml
文件
定义package
的属性,例如:包名、版本号、作者、依赖等;