1.创建工作空间和功能包
1.1 工作空间
工作空间是一个存在工程开发相关文件的文件夹,典型的工作空间中一般包括以下目录:
- src: 代码空间,存储所有ROS功能包的源码
- build: 编译空间,存储工作空间编译过程中产生的缓存信息和中间文件
- devel: 开发空间,放置放置编译生成的可执行文件
- install: 安装空间,非必须,编译成功后,可以使用make install命令将可执行文件安装到该空间中,运行该空间中的环境变量脚本。
1.2 创建工作空间
- 创建工作空间目录并初始化
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ catkin_init_workspace
- 编译工作空间
$ cd ~/catkin_ws/
$ catkin_make
- 编译过程中,在工作空间的根目录里会自动产生build和devel两个文件夹及其中的文件。编译完成后,devel文件中已经产生了一个setup.*sh形式的环境变量设置脚本。使用source使其生效:
$ source devel/setup.bash
- 可以使用echo命令检查环境变量是否生效
$ echo $ROS_PACKAGE_PATH
注,在终端中使用source命令设置的环境变量只能在当前终端中生效,如果希望环境变量在所有终端中有效,需要在终端配置文件中加入环境变量的设置:
$ echo "source/WORLSPACE/devel/setup.bash">>~/.bashrc
WORKSPACE为自己的工作空间路径
1.3创建功能包
ROS创建功能呢瑰宝的命令为catkin_create_pkg,使用方法如下:
$ catkin_create_pkg <package_name> [depend1] [depend2] [depend3]
depend1、depend2、depend3表示所以来的其他功能包的名称。
1.4 覆盖工作空间
ROS允许多个工作空间共存,每个工作空间的创建、编译和运行方法均相同。存在一种情况,即不同工作空间中存在相同命名的功能包 ,这时涉及到ROS中工作空间的覆盖问题。ROS中所有工作空间的路径会在ROS_PACKAGE_PATH环境变量中记录,当设置多个工作空间的环境变量后,新设置的路径在环境变量中会自动放置在最前端,运行时,ROS会优先查找最前端的工作空间中是否存在指定的功能包,若不存在就会按顺序向后查找。
2.话题中的Publisher和Subscriber
以"Hello World"为例,创建Publisher和Subscriber,具体步骤可以参考Writing a Simple Publisher and Subscriber (C++),该链接下的创建步骤比较老旧,根据其中内容进行适当调整
首先根据步骤1建立工作空间,然后再工作空间catkin_ws/src目录下创建包,本例创建包的命令如下:
catkin_create_pkg wk_tutorials std_msgs roscpp rospy
此时catkin_ws/src目录下多了wk_tutorials的文件夹,打开catkin_ws/src/wk_tutorials/src,在该文件夹下创建Publisher和Subscriber
2.1创建Publisher
流

本文详细介绍ROS环境下工作空间和功能包的创建过程,并演示如何通过创建Publisher和Subscriber进行基本的节点间通信,同时还介绍了如何自定义话题消息和服务。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



