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