1. 创建ros工作空间,可以先在根目录下新建一个文件夹命名为catkin_ws,然后在里面再新建一个文件夹命名为src,然后在src中打开终端,运行ROS的工作空间初始化命令即可:
$ catkin_init_workspace
或者直接在桌面打开终端输入以下命令:
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ catkin_init_workspace
2.创建完成后,可以在工作空间的根目录下使用catkin_make命令编译整个工作空间,编译之后在工作空间的根目录里的会自动产生build、devel两个文件夹及其中的文件:
$ cd ~/catkin_ws
$ catkin_make
3.设置环境变量:
$ source devel/setup.bash
为了确保环境变量已经生效,可以使用如下命令进行检查, 如果打印的路径中已经包含当前工作空间的路径,则说明环境变量设置成功:
$ echo $ ROS_PACKAGE_PATH
4.创建功能包,ROS提供直接创建功能包的命令catkin_create_pkg,命令的使用方法如下:
$ catkin_create_pkg <package_name> [depend1] [depend2] [depend3]
接下来我们要创建一个包含消息类型、包含服务类型、python、c++的功能包:
$ cd ~/catkin_ws/src
$ catkin_create_pkg learning_communication std_msgs std_srvs rospy roscpp
创建完成后要再次回到工作空间的根目录下进行编译并设置环境变量:
$ cd ~/catkin_ws
$ catkin_make
$ source ~/catkin_ws/devel/setup.bash
注:在同一个工作空间下,不允许存在同名的功能包;不同工作空间下,允许存在同名功能包。
src文件夹中放置需要编译的C++代码
scripts文件中放置可以直接运行的Python脚本
5.ROS的工作空间的覆盖(Overlaying)机制,所有工作空间的路径会依次在ROS_PACKAGE_PATH环境变量中记录,当设置多个工作空间的环境变量后,新设置的路径在ROS_PACKAGE_PATH中会自动放置在最前端。在工作空间编译后会将之前编译过的给覆盖掉。