ROS学习笔记(五)——工作空间和功能包

ROS学习笔记(5)——工作空间及Vocode创建功能包

​    前面几节的学习,我们对ROS已经有了初步的了解,这里我们在认识ROS中的新概念,工作空间。

​    工作空间就相当于我们跑python项目时建立的项目,用于存放一系列的工程开发相关文件的文件夹。其中包括四个主文件夹:src(代码空间)、build(编译空间)、 devel(开发空间)、install(安装空间)。

​    src(代码空间):存放功能包,所有功能包的代码及配置文件。

​    build(编译空间):存放编译过程中产生的中间文件。

​    devel(开发空间):存放编译生成的可执行文件,包括一些脚本。

​    install(安装空间):安装指定的目标位置。

大致框架如下:

ROS学习笔记(五)——工作空间和功能包_第1张图片

接下来讲解实际操作:

首先在主目录下打开终端(因为我已经配置过所以有这么多文件):
ROS学习笔记(五)——工作空间和功能包_第2张图片

​    输入:mkdir -p catkin_ws/src (先创建一个文件名叫catkin_ws的文件夹再在其中创建src文件夹,也可手动鼠标创建)

(注意:这里文件名一定要叫src) 在这里插入图片描述
随后输入:cd catkin_ws/(进入文件夹)
在这里插入图片描述
   此时,本来应该输入: catkin init 初始化工作空间的,但是我们之前没有安装过catkin build工具,直接输入时会报错。所以要输入如下代码:

​              sudo apt install python3-catkin-tools python3-osrf-pycommon

安装对应的catkin build工具。

安装完以后,输入: catkin init 初始化工作空间
ROS学习笔记(五)——工作空间和功能包_第3张图片

随后输入: cd …(两个点) 回到上级目录(根目录)进行随后操作。

(此时输入: pwd 可看当前路径)

分别输入: catkin_make

​            catkin_make install (安装剩下的文件夹,即工作空间)

一下操作有两种选择(创建功能包):

(1)VScode创建

​    然后,终端输入 code . 打开vscode(提前下载好)

ROS学习笔记(五)——工作空间和功能包_第4张图片

随后进行如下操作:
ROS学习笔记(五)——工作空间和功能包_第5张图片

输入文件夹名字:(我这里取名叫test)
在这里插入图片描述

输入依赖: roscpp rospy
在这里插入图片描述
此时文件目录下即会产生对应的功能包(test):
ROS学习笔记(五)——工作空间和功能包_第6张图片

(2).命令行创建

以上操作也可通过输入:
​            catkin_create_pkg test_pkg roscpp rospy std_msgs

​    来实现,此时文件名叫test_pkg, 依赖为roscpp rospy 其中std_msgs是ros的标准结构。
ROS学习笔记(五)——工作空间和功能包_第7张图片
随后就可以输入cd … 回到catkin路径下,输入:

​           catkin_make 就可编译我们的工作空间了。
ROS学习笔记(五)——工作空间和功能包_第8张图片
(因为还没有代码文件,所以就没什么效果)

随后我们来设置一下环境变量,输入:

​                      source devel/setup.bash

设置环境变量系统才能找到我们的工作空间。

输入:               echo $ROS_PACKAGE_PATH

就可根据环境变量搜索所有功能包的路径。

在这里插入图片描述

最后介绍一下,

Cmake文件和package文件

ROS学习笔记(五)——工作空间和功能包_第9张图片

​    其中,package.xml文件是用xml语言来描述功能包的相关信息,比如依赖信息,功能包名字等。

​     Cmakelist文件,设置代码编译的相关规则。
Ros学习笔记(八)——各部分代码实现(三)_风声向寂的博客-CSDN博客
ROS学习笔记(七)——各部分代码实现(二)_风声向寂的博客-CSDN博客
Ros学习笔记(六)——Publisher代码实现_风声向寂的博客-CSDN博客

ROS学习笔记(四)——ROS命令行工具使用讲解_风声向寂的博客-CSDN博客

ROS学习笔记(三)——ROS的简单了解_风声向寂的博客-CSDN博客

ROS学习笔记(二)——python、C++编译器以及ROS的安装_风声向寂的博客-CSDN博客

Ros学习笔记系列(一):_风声向寂的博客-CSDN博客

你可能感兴趣的:(ROS学习笔记,算法,机器学习,python,自然语言处理)