特点
1、工作空间的主要作用是存放工程文件和文件代码(存放工作空间和代码的一个文件夹)
2、ROS的开发依赖于工作空间
3、编写源代码、编译都是在工作空间下完成的
4、一般工作空间的目录下有三个文件夹(src、build、devel)
- src文件夹下放的是用户原代码,也就是功能包
- bulid文件夹里面是编译过程中产生的中间文件
- devel文件夹是编译生成的目标文件,也就是一些可执行文件
5、build和devel的文件夹在我们使用ros的过程中是可以忽略的
创建工作空间
有三个步骤
1、创建文件夹
mkdir -p ~/new_wheeltec/src
解释:
① mkdir:创建文件夹指令
② -p:检测路径下有没有那个文件夹
③ 在home文件下去创建new_wheeltec文件夹
④ 在new_wheeltec文件夹还有一个src的文件夹
2、进入文件夹
cd ~/new_wheeltec/src /src
3、初始化工作空间
catkin_init_workspace
要求:在sec中初始化
编译
(要求:必须在工作空间环境下编译)
-
整个工作空间
catkin_make
-
编译单独一个功能包
catkin_make -DCATKIN_WHITELIST_PACKAGES="package_name"
-
编译单独的功能包后,想重新编译整个工作空间
catkin_make -DCATKIN_WHITELIST_PACKAGES=""
-
自定义编译线程(编译速度)
catkin_make -j-l catkin_make -j2-l2
解释:
- ① -j表示–job可以同步进行的一个任务
- ② -l就是–load-average表示系统加载的任务数
- ③ 任务数越大就编译的的越快,对cpu的要求也会越高
添加环境变量
理解
1、编译完成工作空间之后,需要去添加工作空间的一个环境变量
2、作用是告诉系统这是我们工作空间的一个路径,这样我们运行工作空间里面程序的时候才能被正确的索引到
如果我们不添加环境变量
运行一个功能包试试,结果如图
roslaunch turn_on_wheeltec_robot turn_on_wheeltec_robot.launch
添加环境变量之后
① 添加环境变量
source devel/setup.bash
② 查看有没有添加成功
echo $ROS_PACKAGE_PATH
这是我们刚刚添加进来一个环境变量的路径
/home/passoni/catkin_ws/src
③ 重新运行一个刚刚的.launch文件
roslaunch turn_on_wheeltec_robot turn_on_wheeltec_robot.launch
- 可看到已经成功被索引到,但是打开这个功能包需要打开另一个功能包的内容,所以运行到一半被终止
- 这种添加环境变量的方法其实它的有效性就只局限于当前的这个终端
添加全局环境变量
① 编辑一个.bashrc文件
nano .bashrc
-
滑动到最下面
-
source就是我们的环境变量
② 我们再添加一行,然后输入我们刚刚的工作空间路径
③ 工作空间的路径后面跟着个devdel/setup.bash
④ 再进行这个source .bashrc
⑤ 运行一个刚刚的.launch文件
roslaunch turn_on_wheeltec_robot turn_on_wheeltec_robot.launch