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

1.创建工作空间

1.1Ctrl + Alt + T打开一个新终端

1.2输入以下代码

1
$ mkdir -p ~/ROS_ws/src

说明:
mkdir是Linux命令,用于建立子目录。参数-p确保目录名称存在,不存在的就建一个。
这条语句的作用是在/home/用户名/下创建一个ROS工作空间,即文件夹ROS_ws。同时在工作空间ROS_ws下创建一个文件夹src。
你也可以将工作空间ROS_ws换成其他名字xxx,那么下面的所有命令中的ROS_ws都要对应换成xxx。

1.3输入以下代码

1
$ cd ~/ROS_ws/src

说明:
进入工作空间ROS_ws下的文件夹src。

1.4输入以下代码

1
$ catkin_init_workspace

说明:
对当前文件夹进行初始化,使它变成ROS的工作空间,同时src目录下会多出一个 CMakeLists.txt 文件。

1.5输入以下代码

1
$ cd ~/ROS_ws


1
$ cd ..

说明:
返回到上一级目录,即ROS_ws文件夹。

1.6输入以下代码

1
$ catkin_make install

说明:
对当前工作空间进行编译,编译完成后,工作空间ROS_ws中会再生成三个子目录:build、devel和install。

2.创建功能包

2.1输入以下代码

1
$ catkin_create_pkg test_pkg std_msgs roscpp rospy

说明:

1
$ catkin_create_pkg <功能包名称> [依赖的功能包1] [依赖的功能包2]...

这条语句的作用是创建功能包,代码语句的格式可参考上面。
test_pkg是功能包的名称,std_msgs、roscpp、rospy则是我们需要依赖的其他功能包。当我们使用C++或Python编写程序时,我们就需要依赖相关的库roscpp、rospy。我们在之后的例程中将运用到int、bool等消息类型,因此需要依赖相关的库std_msgs。

2.2输入以下代码

1
$ cd ~/ROS_ws


1
$ cd ..

说明:
返回到ROS_ws文件夹目录下。

2.3输入以下代码

1
$ catkin_make

说明:
对当前工作空间进行编译。

2.4输入以下代码

1
$ source devel/setup.bash

说明:
将对应的工作空间的路径加入到环境变量ROS_PACKAGE_PATH中。有些电脑系统环境是zsh,则最后的.bash需要改成.zsh,可以通过如下语句查看当前环境设定的sh类型:

1
$ echo $SHELL


如果新开了一个终端命令行,在使用该工作空间前,必须先将该工作空间的路径加入环境变量ROS_PACKAGE_PATH中,否则无法运行功能包。要想避免反复设置环境变量带来的麻烦,可以按照如下步骤配置。

2.4.1

进入主文件夹目录。

2.4.2

使用快捷键Ctrl + H,显示文件夹中的隐藏文件。

2.4.3

打开.bash文件,并拉到最后一行,添加如下语句:

1
$ source /home/用户名/ROS_ws/devel/setup.bash

2.5输入以下代码

1
$ echo $ROS_PACKAGE_PATH

说明:
ROS_PACKAGE_PATH是ROS本身的环境变量,它会根据这个环境变量查找所有功能包的路径。如果打印出以下信息,说明你的工作环境设置好了。