【ROS】创建工作空间和程序包

版权声明:欢迎转载,但请注明出处https://me.csdn.net/qq_28753373 。谢谢! https://blog.csdn.net/qq_28753373/article/details/82109711

要使用ROS系统进行开发,首先需要在ROS下创建工作空间(workspace)和程序包(package)。

创建工作空间:

$ mkdir -p ~/catkin_ws/src

执行上述命令即在用户主目录下创建了catkin_ws文件夹及其子文件夹src(-p表示创建目标路径上的所有文件夹)。此时,catkin_ws即为你的工作空间,src为存放程序包的文件夹(src可以存放多个程序包)。

下面切换到工作空间下,并对其进行编译(工作空间下没有任何程序包依然可以进行编译):

$ cd ~/catkin_ws/
$ catkin_make

此时,会发现catkin_ws文件夹下除了src,又多出两个文件夹build和devel。build文件夹是build space的默认所在位置,同时catkin_make也是在这里被调用来配置并编译你的程序包。devel文件夹是devel space的默认所在位置, 同时也是在你安装程序包之前存放可执行文件和库文件的地方。在devel文件夹里有多个setup.*sh文件。source这些文件中的任何一个都可以将当前工作空间设置在ROS工作环境的最顶层。接下来首先source一下新生成的setup.*sh

为了确保ROS_PACKAGE_PATH环境变量包含你的工作空间目录,采用以下命令查看:

$ echo $ROS_PACKAGE_PATH

若返回以下信息:(我安装的ROS是kinetic版本)

/home/你的用户名/你的工作空间名/src:/opt/ros/kinetic(ROS的版本名)/share

则表示你的工作变量已经配置正确。

接下来在src文件夹中创建一个新的程序包:

$ cd ~/catkin_ws/src/
$ catkin_create_pkg beginner_tutorials std_msgs rospy roscpp

执行上述命令后,src文件夹下就会出现一个新文件夹beginner_tutorials和一个新文件CMakeList.txt,beginner_tutorials即为我们新建的程序包,该文件夹下至少包括CMakeList.txt和package.xml两个文件。std_msgs、rospy、roscpp为beginner_tutorials的依赖包,其作用相当于一个程序源文件所需要的头文件。

需要注意的是程序包的目录不能相互嵌套,即若需要创建一个新的程序包,不能建在beginner_tutorials文件夹下。

由上述的创建过程,我们可以知道,一个工作空间和程序包的典型结构应为:

workspace_folder/        -- WORKSPACE
  src/                   -- SOURCE SPACE
    CMakeLists.txt       -- 'Toplevel' CMake file, provided by catkin
    package_1/
      CMakeLists.txt     -- CMakeLists.txt file for package_1
      package.xml        -- Package manifest for package_1
    ...
    package_n/
      CMakeLists.txt     -- CMakeLists.txt file for package_n
      package.xml        -- Package manifest for package_n
  devel/
    setup.*sh
  build/

在工作空间下完成程序包的创建后,再次在工作空间目录下进行编译(编译其中的程序包):

首先source一下你的环境配置文件:

$ source /opt/ros/kinetic/setup.bash

再在工作空间下编译程序包:

$ cd ~/catkin_ws/
$ catkin_make

至此,我们就完成了一个新的工作空间和程序包的创建和编译。

猜你喜欢

转载自blog.csdn.net/qq_28753373/article/details/82109711