ROS 工作空间和功能包

概念

工作空间是一个存放工程开发相关文件的文件夹

步骤

1.创建工作空间

在home下新建一个文件夹,比如叫catkin_ws,在它的下面新建一个src文件夹,以后用来放源代码,在src里面打开terminal,初始化,结束后会多出一个CMakeLists.txt文件。

catkin_init_workspace

ROS 工作空间和功能包_第1张图片

2.编译工作空间

切换到catkin_ws进行编译(编译均是在catkin_ws进行)。编译完后会多出build和devel两个文件夹。

cd ..
catkin_make

ROS 工作空间和功能包_第2张图片

ROS 工作空间和功能包_第3张图片

  • 参考链接
https://zhuanlan.zhihu.com/p/64559374
  • src源文件空间:这个文件夹放置各个功能包和一个用于这些功能包的CMake配置文件。CMakeLists.txt。由于ROS中的源码采用catkin工具进行编译,而catkin工具又是基于cmake技术的,所以我们会在src源文件空间和各个功能包中都会见到一个文件CMakeLists.txt,这个文件就是起编译配置的作用。
  • build编译空间:这个文件夹放置CMake和catkin编译功能包时产生的缓存、配置、中间文件等。
  • devel开发空间:这个文件夹放置编译好的可执行程序,这些可执行程序是不需要安装就能直接运行的。一旦功能包源码编译和测试通过后,可以将这些编译好的可执行文件直接导出与其他开发人员分享。

3.设置环境变量

  • 目的:为了让Linux找到ROS功能包的位置
source devel/setup.bash

这么写只会在当前终端生效,如若要使得每次打开新的terminal都有用,那么需要跟之前安装系统一样,将其写到相应的文件中去。可以打开~/.bashrc,写入路径。用下面的方法,或者参照安装时的方法,用echo写入。

gedit ~/.bashrc

在这里插入图片描述

terminal加上这样的一句使环境变量生效

source ~/.bashrc

在这里插入图片描述

4.检查环境变量

打开新的终端,讲道理现在是已经OK了,那么检查一下环境变量验证一下。

echo $ROS_PACKAGE_PATH

在这里插入图片描述

打印出来的路径以冒号分割,可以看到一个是之前安装的时候的默认路径,一个是刚设置的catkin_ws的路径,说明设置成功。

5.创建功能包

格式
catkin_create_pkg  depend1 depend2 ...

切换到src目录下,创建功能包并且指定依赖(std_msgs rospy roscpp等)

cd ~/catkin_ws/src
catkin_create_pkg communication std_msgs rospy roscpp

ROS 工作空间和功能包_第4张图片
communication里面的文件,package.xml文件里面主要是包的信息(比如各种depend)。后期如果要加依赖则需要在这里修改。

ROS 工作空间和功能包_第5张图片

ROS 工作空间和功能包_第6张图片

6.编译功能包

cd ~/catkin_ws
catkin_make

ROS 工作空间和功能包_第7张图片
和之前不同的,如下图,打印的东西会多出这个说明

ROS 工作空间和功能包_第8张图片

  • 同一个工作空间内不允许存在同名功能包,不同的工作空间下则允许

7.查找功能包所在的路径

rospack find roscpp_tutorials 

ROS 工作空间和功能包_第9张图片

你可能感兴趣的:(Linux,and,ROS)