【ROS入门篇·一】ROS文件系统 & catkin编译系统

快速链接:【ROS入门篇】ROS学习简介

一、ROS工作空间创建 & 编译

1) 创建工作空间

mkdir -p catkin_ws/src
cd catkin_ws/src

2)创建功能包

catkin_create_pkg my_pkg_name* roscpp rospy... (other dependencies pkg names)

3) 编译(也可以使用catkin_make编译工具)

cd ~/catkin_ws
catkin build
source devel/setup.bash

ROS编译系统演化:

rosbuild -> catkin_make -> catkin_make_isolated -> catkin build (catkin tools中的一个) -> ament (ROS2)

二、ROS文件结构

1. 工作空间内文件结构

【ROS入门篇·一】ROS文件系统 & catkin编译系统_第1张图片

  • src/: ROS软件包(源代码包)
  • build/: catkin (CMake) 的缓存信息和中间文件
  • devel/: 生成的目标文件(包括头文件,动态链接库,静态链接库,可执行文件等), 环境变量

2. package内的文件结构

├── CMakeLists.txt         #package的编译规则(必须)

├── package.xml            #package的描述信息(必须)

├── src/                  #源代码文件

├── include/        #C++头文件

├── scripts/         #可执行脚本,例如Shell脚本,Python脚本

├── msg/             #自定义消息 (.msg)

├── srv/                #自定义服务 (.srv)

├── models/      #3D模型文件 (.sda, .stl, .sar)

├── urdf/             #urdf文件 (.urdf, .xacro)

├── param/        #yaml文件, 用于加载参数信息 (.yaml)

├── launch/       #launch文件

├── rviz/             #rviz配置文件

三、catkin编译系统

1. catkin 编译系统简介

【ROS入门篇·一】ROS文件系统 & catkin编译系统_第2张图片

catkin编译系统特点:

  1.  catkin编译系统基于CMake编译系统构建,是CMake编译系统上层封装;
  2.  一个package内一定包含 package.xml & CMakeLists.txt两个文件.

 catkin编译系统工作原理:

  1.  在工作空间 catkin_ws/src/ 下递归的查找其中每一个ROS的package;
  2. catkin(CMake)编译系统依据CMakeLists.txt文件, 生成makefiles(放在catkin_ws/build/);
  3.  make刚刚生成的makefiles,编译链接生成可执行文件(放在catkin_ws/devel).

注意:

$ catkin_make [args]

        -h, --help           帮助信息

        --use-ninja       用ninja取代make

        ……

2. 源码编译 VS 二进制包

【ROS入门篇·一】ROS文件系统 & catkin编译系统_第3张图片

NEXT:【ROS入门篇·二】CMakeLists.txt & package.xml

你可能感兴趣的:(ROS入门篇,自动驾驶,人工智能,机器学习)