ROS | 工作空间及功能包的创建

ROS | 工作空间及功能包的创建

1. 创建工作空间

工作空间是一个存放工程开发相关文件的文件夹,创建工作空间首先在Linux系统中打开一个新的终端,并按照以下步骤输入指令。

$ mkdir -p ~/ROS_ws/src
$ cd ~/ROS_ws/src
$ catkin_init_workspace
$ cd ..
$ catkin_make install

说明:

  • 第一条指令表示在/home/用户名/下创建一个ROS工作空间,即文件夹ROS_ws。同时在工作空间ROS_ws下创建一个文件夹src。其中mkdir是Linux命令,用于建立子目录。参数-p确保目录名称存在,不存在的就建一个。
    这里也可以将工作空间ROS_ws换成其他名字xxx,那么下面的所有命令中的ROS_ws都要对应换成xxx。
    在这里插入图片描述
  • 第二条指令表示进入创建的工作空间ROS_ws下的文件夹src。
    在这里插入图片描述
  • 第三条指令表示对当前文件夹进行初始化,使它变成ROS的工作空间,同时src目录下会多出一个 CMakeLists.txt 文件。
  • 第四条指令表示返回到上一级目录,即ROS_ws文件夹。
  • 第五条指令表示对当前工作空间进行编译。编译完成后,工作空间ROS_ws中会再生成三个子目录:builddevelinstall

2. 创建功能包

在ROS中,提供了一种方式可以将不同的功能打包成一个功能包,当需要安装某个功能模块时,直接调用打包后的功能包即可。按照以下步骤输入指令,可以实现自定义功能包的创建。

$ catkin_create_pkg test_pkg std_msgs roscpp rospy
$ cd ~/ROS_ws
$ catkin_make
$ source devel/setup.bash
$ echo $ROS_PACKAGE_PATH

说明:

  • 第一条指令表示创建功能包,代码语句的格式可参考上面。test_pkg是功能包的名称,std_msgsroscpprospy分别是我们需要依赖的其他功能包。假如使用C++或Python编写程序时,那么就需要依赖相关的库roscpprospy。在之后的例程中将运用到int、bool等消息类型,因此需要依赖相关的库std_msgs
  • 第二条指令表示返回到ROS_ws文件夹目录下。
  • 第三条指令表示对当前工作空间进行编译。
  • 第四条指令表示将对应的工作空间的路径加入到环境变量ROS_PACKAGE_PATH中。有些电脑系统环境是zsh,则最后的.bash需要改成.zsh,可以通过如下语句查看当前环境设定的sh类型:
    在这里插入图片描述
    如果新开了一个终端命令行,在使用该工作空间前,必须先将该工作空间的路径加入环境变量ROS_PACKAGE_PATH中,否则无法运行功能包。要想避免反复设置环境变量带来的麻烦,可以按照如下步骤配置。
    • 进入主文件夹目录。
      在这里插入图片描述
    • 使用快捷键Ctrl + H,显示文件夹中的隐藏文件。
      在这里插入图片描述
    • 打开.bash文件,并拉到最后一行,添加下图中的最后一条语句:
      在这里插入图片描述
  • 第五条指令表示ROS_PACKAGE_PATH是ROS本身的环境变量,它会根据这个环境变量查找所有功能包的路径。如果打印出以下信息,说明工作环境已经设置完毕。
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/baoli8425/article/details/116903266