创建工作空间和工具包

  • 什么是工作空间?
  • 创建工作空间
  • 创建功能包
什么是工作空间?
工作空间(workspace)是一个存放工程开发相关文件的文件夹。常使用的是Catkin编译系统。 典型的工作空间一般包含四个目录空间: 1.\src:源码空间 (Source Space), 开发过程中最常用的文件夹,用来存储所有ROS功能包的源码文件。 2.\build:编译空间 (Build Space), 用来存储工作空间编译过程中产生的缓存信息和中间文件。 3.\devel:开放空间 (Development Space),用来放置编译生成的可执行文件。 4.\install:安装空间(Install Space), 可将可执行文件安装到该空间中,运行该空间中的环境变量脚本,即可在终端中运行这些可执行文件。 如果有一个名为 tutorial_ws的工作空间,可使用tree软件查看结其构。
$ tree tutorial_ws/ -L 1// -L选项可以调节浏览目录的深度tutorial_ws/ ├── build ├── devel └── src

创建工作空间 首先使用系统命令创建工作空间目录,然后运行ROS的工作空间初始化命令:
$ mkdir -p ~/catkin_ws/src//-p选项连续创建目录$ cd ~/catkin_ws/src$ catkin_init_workspace

创建完成后,进入carkin_ws工作空间,使用catkin_make命令编译整个工作空间:
$ cd ~/catkin_ws/$ catkin_make

编译结束后,工作空间的根目录里便会产生’src’,'build’和’devel’目录。在’devel’目录中,产生了几个setup.*sh的文件,它们是环境变量设置脚本。使用source命令运行这些脚本,则工作空间中的环境变量可以生效:
$ source devel/setup.bash

【创建工作空间和工具包】为保证工作空间配置正确,需检查ROS_PACKAGE_PATH环境变量中包含你的工作空间目录,采用以下命令查看:
$ echo $ROS_PACKAGE_PATH //若路径中有之前建立的工作空间,则工作环境已经成功搭建完成

注意:在终端中使用source命令设置的环境变量只能在当前终端生效,如希望环境变量在所有终端中生效,则需在终端的配置文件中加入环境变量设置:
$ echo "source /WORKSPACE_NAME/devel/setup.bash">>~/.bashrc

创建功能包 ROS中功能包的形式如下:
my_package/
?CMakeLists.txt
?package.xml
CMakeLists.txt文件中包含了功能包的编译规则,是编译系统的输入; package.xml文件中包含了功能包的元信息。通常来说,功能包位于’src’中。
现在创建一个名为beginner_tutorials依赖于std_msgs, rospy, roscpp的功能包:
$ catkin_create_pkg beginner_tutorials std_msgs rospy roscpp

然后回到工作空间的根目录进行编译并设置环境变量:
$ cd ~/catkin_ws$ catkin_make$ . ~/catkin_ws/devel/setup.bash// source命令的另外一种写法

    推荐阅读