ROS编程基础发布者节点的创建和运行
Posted kay2018
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ROS编程基础发布者节点的创建和运行相关的知识,希望对你有一定的参考价值。
ROS消息通信中使用的发布者(Publisher)和订阅者(Subscriber)可以被发送和接收所代替。在ROS中,发送端称为发布者,接收端称为订阅者。本节旨在创建一个简单的msg文件,并创建和运行发布者和订阅者节点。
1.创建功能包
以下命令是创建ros_tutorials_topic功能包的命令。这个功能包依赖于message_generation、std_msgs和roscpp功能包,因此将这些用作依赖选项。第二行命令意味着将使用创建新的功能包时用到的message_generation表示将使用创建新消息的功能包std_msgs(ROS标准消息功能包)和roscpp(在ROS中使用C/C ++的客户端程序库)必须在创建功能包之前安装。用户可以在创建功能包时指定这些相关的功能包设置,但也可以在创建功能包之后直接在package.xml中修改。
cd ~/catkin_ws/src catkin_create_pkg ros_tutorials_topic message_generation std_msgs roscpp
创建功能包时,将在~/catkin_ws/src目录中创建ros_tutorials_topic功能包目录,并在该功能包目录中创建ROS功能包的默认目录和CMakeLists.txt和package.xml文件。可以使用下面的ls命令检查它,并使用基于GUI的Nautilus(类似Windows资源管理器)来检查功能包的内部。
cd ros_tutorials_topic ls include → 头文件目录 src → 源代码目录 CMakeLists.txt → 构建配置文件 package.xml → 功能包配置文件
2.修改功能包配置文件
ROS的必备配置文件package.xml是一个包含功能包信息的XML文件,其中包含用于描述功能包名称、作者、许可证和依赖包的信息。使用以下命令,利用编辑器(gedit、vim、emacs等)打开文件,并修改它以匹配当前节点。
vim package.xml
以下代码显示如何修改package.xml文件以匹配我们这次要创建功能包。笔者的个人信息包含在如下文件内容中,您可以修改它,以适应您的需求。有关每个选项的详细说明,咱们后面再说。
3.修改构建配置文件(CMakeLists.txt)
ROS的构建系统catkin基本上使用CMake,它在功能包目录中的CMakeLists.txt文件中描述了构建环境。该文件设置可执行文件的创建、依赖包优先构建、链接创建等。
vim CMakeLists.txt
以下是为了匹配正在创建的功能包而修改的CMakeLists.txt。同样,有关每个选项的详细说明,咱们后面再讲。
4.创建消息文件
在上述的CMakeLists.txt文中添加了如下选项。
add_message_files(FILES MsgTutorial.msg)
这意味着在构建时要包含消息MsgTutorial.msg,该消息将在此节点中被使用。现在我们还没有创建MsgTutorial.msg,因此按以下顺序创建它:
roscd ros_tutorials_topic → 移动到功能包目录 mkdir msg → 功能包中创建新的msg消息目录 cd msg → 转到创建的msg目录 vim MsgTutorial.msg → 创建新的MsgTutorial.msg文件并修改内容
内容很简单。如下所示,创建一个time消息类型的stamp消息和一个int32消息类型的data消息, 除了这些消息类型之外,还有一些如bool、int8、int16、float32、string、time、duration和common_msgs等基本消息类型,以及在ROS中收集常用消息的common_msgs。这里我们只是为了创建一个简单的例子,因此用了time和int32。
以上是关于ROS编程基础发布者节点的创建和运行的主要内容,如果未能解决你的问题,请参考以下文章