[ROS]三、建立工作空间

系列文章目录

[ROS]一、ROS的基本概念
[ROS]二、命令与工具的使用


前言

在前两个章节中我们已经学习了ros相关基本概念和基本工具的使用,今天我们来学习,ros工作空间的建立。工作空间就是存放一个工程开发相关文件的文件夹,类似于stm32中工程的创建。


一、工作空间

工作空间是存放工程中的所有配置文件的文件夹,在工作空间中主要包含四个文件夹:

  • src:存放代码的文件夹(source space)
  • build:存放编译生成的中间文件,不需要特别关注这个文件夹(Build Space)
  • devel:开发空间,存放编译生成的可执行文件、库、脚本,编译生成的文件都是在这运行的(Development Space)
  • install:安装空间,这个需要手动添加(不加也可以)(Install Space)
    工作空间的第一层的结构如图。
    在这里插入图片描述

二、创建步骤

1.命令

mkdir -p ~/catkin_ws_me/src  #这个命令是创建文件的,-p代表文件夹下还可以生成子文件夹,catkin_ws_me/src表示生成文件夹catkin_ws_me,且在生成的catkin_ws_me下又生成了src
cd ~/catkin_ws_me/src	#切换到~/catkin_ws_me/src目录,“~”代表根目录的意思
catkin_init_workspace	#初始化工作空间,将文件夹变成工作空间,属性上的变化
cd ~/catkin_ws_me	#切换路径
catkin_make			#编译工作空间
source devel/setup.bash	#设置环境变量,如同win10下的添加环境变量,系统才能找到这个目录,不过只能在当前的终端生效,当打开新的终端的时候需要再执行这条命令。为了避免麻烦,下面将会介绍一个一劳永逸的方法。
echo $ROS_PACKAGE_PATH		#检查环境变量是否设置成功(即打印设置的环境变量到终端上)

执行到这个命令时catkin_init_workspace,将会生成如下图的文件,说明初始化成功了。

在这里插入图片描述
接下来我们来编译工作空间,就如同在其他的IDE中的编译一样,只不过这里是使用命令来完成的,注意的是编译的时候路径必须要切换到工作空间的根目录此下。执行编译命令后,没有报错代表编译成功。
在这里插入图片描述如果先要创建install目录的话可以执行命令,注意也在工作空间的根目录下执行的:

catkin_make install

在这里插入图片描述

2.创建功能包

功能包是放在src文件夹下的,注意:同一个工作空间下,不允许存在同名的功能包,在不同的工作空间下允许同名的功能包。
创建功能包之后的目录结构为:
在这里插入图片描述

创建功能包的命令格式:

catkin_create_pkg <功能包名称> [依赖1][依赖2][依赖3]

创建功能包的命令:

cd ~/catkin_ws_me/src
catkin_create_pkg test_pkg std_msgs rospy roscpp

编译功能包:

cd ~/catkin_ws_me
catkin_make
source ~/catkin_ws_me/devel/setup.bash	#设置环境变量

在src目录下生成了功能包test_pkg
在这里插入图片描述在功能包test_pkg下有如下的文件和文件夹,文件夹include是存放功能包的头文件,比如C++的头文件,src是存放功能包代码的地方;文件CMakeLists.txt和package.xml是每一个功能包必须要有的文件,是功能包的标志。
在这里插入图片描述
完成以上操作可以用cd命令返回工作空间的根目录进行编译,检查是否有错误。

cd ~/catkin_ws_me
catkin_make

执行echo $ROS_PACKAGE_PATH 命令将会打印出你设置的所用环境变量。
在这里插入图片描述
为了避免每次打开一个新的终端都必须要source一下可以在home目录下按ctr+h快捷键显示隐藏的文件,找到.bashrc文件
在这里插入图片描述
双击打开,在最后面添加source ~/catkin_ws_me/devel/setup.bash如图,点击保存退出即可。

在这里插入图片描述CMakeLists.txt描述的是功能包代码编译的规则,语法是cmake的语法。
在这里插入图片描述
下面的代码是这个功能包所需要的依赖库、功能包、头文件等。
find_package(catkin REQUIRED COMPONENTS roscpp rospy std_msgs )
在下一章节中将会介绍如何修改CMakeLists.txt文件使得代码能够成功编译

总结

今天的ros学习先到这里了,加油向前冲,向那个优秀的自己更近了一步,冲冲冲。
  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值