ROS学习(二)——ROS基础命令

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

space_dandy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值