ROS教程(三):创建程序包及节点(图文)

本教程详细介绍了如何在ROS中创建一个名为learning_cplus的功能包,包括创建包、编写发布和订阅节点、修改CMakeList.txt和package.xml文件,以及编译和执行节点。还讲解了如何使用rostopic工具查看节点间通信关系,帮助理解ROS系统的运作。
摘要由CSDN通过智能技术生成

ros教程:创建程序包


前言

ros教程:创建程序包
根据前篇教程已经创建好了工作空间,并已经成功生效了环境变量,接下来创建一个功能包


一、创建功能包

功能包的名字根据我们这个功能包的作用来命名。比如我现在的功能包是用来学习ROS的C++编程,那么我的功能包名称就叫做learning_cplus。
打开终端,输入下面指令。

cd catkin_ws/src 
catkin_create_pkg learning_cplus roscpp rospy std_msgs

我们通过cd指令切换当前路径到src文件夹下,在该路径下使用catkin_create_pkg指令 来创建一个功能包。
格式如下:catkin_create_pkg 功能包名称 依赖项1 依赖项2 ......

依赖项是你的这个功能包依赖于哪些功能模块,比如该功能包,就导入了C++、Python和std_msgs(后面会有详细介绍)。

然后返回到catkin_ws目录下进行编译。

在这里插入图片描述在这里插入图片描述
我们可以看到learning_cplus功能包在catkin_ws工作空间编译成功,我们生效一下环 境变量,通过roscd learning_cplus指令即可进入该功能包。

目前我们的learning_cplus下有include(头文件)和src(源文件)两个文件夹,还有CMakelist.txt编译配置文件和package.xml功能包列表文件。
到这里,我们的learning_cplus功能包创建结束。

二、创建节点

先进入learning_cplus功能包内,进入src文件夹内,创建一个发布节点。

roscd learning_cplus 
cd src 
touch publisher.cpp

在这里插入图片描述

发布节点publisher.cpp内容如下。这里建议大家自行修改内容。

#include "ros/ros.h" //导入ROS系统包含核心公共头文件 
#include "std_msgs/String.h" //导入std_msgs/String消息头文件,这个是由std_m sgs包的string.msg文件自动生成。
#include <sstream> 
int main(int argc, char **argv) 
{
    
    ros::init(argc, argv, "talker"); //初始化ROS,指定节点名称为“talker”,节点 名称要保持唯一性。名称定义参考 
    ros::NodeHandle n; //实例化节点 
    ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000); //发布一个消息类型为std_msgs/String,命名为chatter的话题。 
    //定义消息队列大小为1000,即超过1000条消息之后,旧的消息就会丢弃。
    ros::Rate loop_rate(10); //指定发布消息的频率,这里指10Hz,也即每秒10次 
    //通过 Rate::sleep()来处理睡眠的时间来控制对应的发布频率。 
    
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值