一、工作空间概念
在ros中工作空间统称为workspace,是用来存放你一个工程开发需要用到的相关文件的,在ros中它是一个带有空座空间性质的文件夹。
该文件夹中通常会包含4个子文件夹;
src: 用来存放功能包的
build(编译空间):是用来存放编译过程中产生的二进制文件的
devel(开发空间):编译后生成的可执行文件,最终编译生成的东西最终都要在这里运行
install(安装空间):用install指令安装成功后的结果都放在这里
二、创建工作空间的过程和指令如下:
2.1 创建工作空间过程
1、创建工作空间
创建一个一个文件夹,然后在文件夹中创建一个src子文件夹(这里需要注意工作空间的名字可以随便去,但是工作空间中src名字不能更换,因为上述介绍中说src是用来存放功能包的,那今后ros工作的时候就会用src这个路径去找你的功能包)
将刚刚创建的文件夹赋予工作空间的性质,在src中输入指令:catkin_init_workspace
2、编译工作空间
编译是为了让ros知道有这么一个工作空间了,今后可以找到它:catkin_make(但是这里需要注意编译一定要在工作空间主目录下编译)
编译完的结果会放在build和devel文件夹下,因此你会看到你编译完了之后就会自动生成这两个文件夹了
最后说明一下,由于install文件夹在我们开发过程中不常用,而且ros2把install 和delve文件内容做了合并,因此其实不用关心它了。但是如果想要这个文件夹可自己创建:在工作空间主目录下:catkin_make install 即可
整体代码如下
创建工作空间
midir -p ~/catkoin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
编译工作空间
cd ~/catkin_ws/
catkin_make
三、创建功能包
ROS 的 Catkin 编译系统的一个特点是将程序做成 package (称为 catkin package 或者 ROS package) 的形式,可以理解成模块化。
创建功能包过程如下;
1、创建功能包:
catkin_create_pkg <功能报名字> 依赖项1 依赖性2...(创建功能包的时候要在工作空间的src目录下创建)
2、编译功能包:将c++等高级语言写的代码编译为机器能看理解的语言
catkin_make(要在工作空间主目录下进行编译)
3、配置工作空间环境变量:什么是环境变量?简单易懂解说「到底什么是环境变量?」| Code | Chihokyo BLOG | 旺财的博客这个网站说的还挺清楚的(读过之后我的理解是:当系统运行一个程序或者指令的时候,有的时候需要用到它的路径,而当你没有告诉具体路径的时候,那么就会在PATH里寻找,因此一些软件需要你指令路径。)
source ~/catkin_cs/devel/setup.bash
注:编译完成后必须使用source命令刷新一下工作空间的环境,初学时可能以为,在工作空间中进行一次source之后就一劳永逸以后都不用source了,这种看法是错的。事实是,每次进行catkin_make之后,都要进行source,但是如果怕忘记的话,也可以为该工作空间设置一个一劳永逸的方法:
在home下,找到隐藏文件 .bashrc(ctrl+h可以显示隐藏文件),然后在最后一行加入你要一直source的指令,例如source /home/你的用户名/catkin_ws/devel/setup.bash,保存该.bashrc文件,然后再重启终端,让刚刚的设置生效。
例如:
cd ~/catkin_ws/src
catkin_create_pkg test_pkg std_msgs rospy roscpp
cd ~/catkin_ws
catkin_make
source ~/catkin_ws/devel/setup.bash
其中:std_msgs 是ros中关于消息的依赖,rospy python的依赖,cpp是c++的依赖
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)