ROS工作空间和功能包

一、工作空间

工作空间(workspace)(缩写ws)
工作空间是存放工程开发相关文件的文件夹

代码空间(source space)(src)是用来放置功能包的,所有功能包的代码、配置文件等都存放在src

编译空间(build space)(build)是放置编译过程中间所产生的文件(基本不用关心)

开发空间(development space)(devel)是放置编译生成的库、脚本等

安装空间(install space)(install)和devel还是存在重复部分,可能用不到这部分

1. 创建工作空间

终端输入

mkdir catkin_ws  //  创建catkin_ws的文件
cd catkin_ws    //打开catkin_ws这个文件
mkdir src      //然后在catkin_ws这个文件里再创建src这个文件
cd src        //打开src这个文件
mkdir catkin_ws 
cd catkin_ws   
mkdir src      
cd src  

注意:
终端输入cd …可以返回上一级目录
catkin是ROS里面的一个工具

2. 编译工作空间

终端输入

catkin_make        //在catkin_ws这个工作空间开始进行编译

此时,catkin_ws中有bulid文件、devel文件,若缺少install文件(安装空间),则在终端输入

catkin_make install

3. 设置环境变量

终端输入

source devel/setup.bash

4. 检查环境变量

终端输入

echo $ROS_PACKAGE_PATH

二、功能包

1. 创建功能包

终端输入

cd catkin_ws/src      //在catkin_ws/src/这个文件夹里面再进行创建

然后在src文件夹内

catkin_create_pkg test_pkg std_msgs rospy roscpp

它的格式为:

catkin_create_pkg [package_name] [std_msgs] [rospy] [roscpp]

[package_name]可以写[test_pkg](即自己命名的名称),后三个[ ]表示依赖的库
运行功能包里面某个程序,要先设置环境变量,如下面第2点
注意:在功能包test_pkg创建成功后,里面的两个重要文件是CMakeLists.txtpackage.xml,他们是任何一个功能包里面必须存在的两个文件,里面有具体的信息(包括所依赖的第三方功能包)

2. 编译功能包

终端输入

source devel/setup.bash         //设置环境变量

然后再输入

echo $ROS_PACKAGE_PATH  //查找ROS所有功能包的路径,目的是找到所写的功能包

ROS单独编译某个文件的指令

catkin_make -DCATKIN_WHITELIST_PACKAGES=”需要编译的包名”

注意
同一个工作空间下,不允许存在同名功能包
不同工作空间下,允许存在同名功能包

猜你喜欢

转载自blog.csdn.net/m0_64730542/article/details/124544147