快速链接:【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. 工作空间内文件结构
- 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 编译系统简介
catkin编译系统特点:
- catkin编译系统基于CMake编译系统构建,是CMake编译系统上层封装;
- 一个package内一定包含 package.xml & CMakeLists.txt两个文件.
catkin编译系统工作原理:
- 在工作空间 catkin_ws/src/ 下递归的查找其中每一个ROS的package;
- catkin(CMake)编译系统依据CMakeLists.txt文件, 生成makefiles(放在catkin_ws/build/);
- make刚刚生成的makefiles,编译链接生成可执行文件(放在catkin_ws/devel).
注意:
$ catkin_make [args]
-h, --help 帮助信息
--use-ninja 用ninja取代make
……