工作空间
工作空间(workspace)是存放工程开发相关文件的目录,目录里面包括
- src :代码空间,ROS的catkin软件包(源代码包)
- build:编译空间,catkin(CMake)的缓存信息和中间文件
- devel:开发空间,生成的目标文件(包括头文件,动态链接库,静态链接库,可执行文件等)、
环境变量 - install:安装空间
目录结构如下,并非每一个都是必须的,根据业务需求添加
最顶层的工作空间(可以任意命名)和src (必须为src)文件夹是需要自己创建
- build 和devel 文件夹由catkin_make 命令自动创建;
- install 文件夹由catkin_make install 命令自动创建,几乎不怎么使用,一般不创建
注意:使用catkin_make编译之前一定要回到最顶层的工作空间,同一个工作空间下,不允许存在同名功能包,不同工作空间下,允许存在同名功能包
1.创建工程
1.1 创建工作空间
# 创建工作空间目录
mkdir -p catkin_ws/src
cd catkin_ws/src
# 初始化空间
catkin_init_workspace
1.2 编译
cd catkin_ws
catkin_make
自动生成build devel
1.3 安装
catkin_make install
自动生成 install
1.4 更新工作空间环境变量
source devel/setup.bash
2.创建功能包
2.1 创建功能包模块
cd catkin_ws/src
catkin_create_pkg test_pkg std_msgs rospy roscpp
catkin_create_pkg 是创建功能包命令
test_pkg 功能包名称
std_msgs rospy roscpp 功能包依赖
功能包目录结构
|-- CMakeLists.txt # (必须)当前package的编译规则。通常需要为c++代码添加编译时的依赖,执行等操作。
|—— package.xml # (必须)package的描述信息。通常添加一些ros库的支持。
|—— include文件夹 # 存放c++ 头文件的
|—— config文件夹 # 存放参数配置文件
|—— launch文件夹 # 存放launch文件(.launch或.xml)
|—— meshes文件夹 # 存放机器人或仿真场景的3D模型(.sda, .stl, .dae等) ;
|—— urdf文件夹 # 存放机器人的模型描述(.urdf或.xacro) ;
|—— rviz文件夹 # rviz文件
|—— src文件夹 # c++源代码
|—— scripts文件夹 # 可执行脚本;例如shell脚本(.sh)、Python脚本(.py) ;
|—— srv文件夹 # 自定义service
|—— msg文件夹 # 自定义topic
|—— action文件夹 # 自定义action
2.2 编译功能包
cd catkin_ws
catkin_make
2.3 更新环境变量
source devel/setup.sh
2.4 查看环境变量
echo $ROS_PACKAGE_PATH