ROS的一些基本操作(二)

8 篇文章 0 订阅
5 篇文章 0 订阅
ros订阅/发布节点编程实现

ros系统是通过各个节点完成传递话题消息或者提供服务来进行通信。

启动:roscore  (运行roscore指令后会自动启动:rosmaster,Parameter Server,rosout)
查看当前活跃节点:rosnode list
运行节点:1. rosrun ~
	     2. roslaunch ~
ros应用程序发布时,通常都是以包package为单位,查看package:rosrun package (然后按tab tab)
查看关于传送数据都能有什么操作:rosmsg
查看关于传送话题都能有什么操作:rostopic
查看当前ros系统中活跃的话题:rostopic list
来查看相关指令的功能:rossrv
查看当前系统活跃的服务:rosservice list
话题

话题和节点是ros系统中两大基本组件,节点是基本的处理单元,话题是节点间基本的通信单元之一

发布节点编程实现
过程
  1. 创建话题文件 .cpp/.py

    由四部分构成:1. 初始化ROS节点 2.向Ros Master注册节点信息,包括发布的话题名和话题消息类型。3.创建消息数据(无论是官方提供的还是自定义的消息,在消息类型文件(.msg文件)中只是声明了变量及其数据类型,因此你自己在这里需要为变量复等…)4.按照一定的频率循环发布消息。
    img

  2. 编译 .cpp文件需要编译,.py文件不需要

    保存该文件后,就该去编译了,注意cpp文件需要编译,py文件不需要。具体编译方法为:

2.1设置编译规则
​ 回到功能包目录下,找到CMakeLists.txt(设置编译规则),然后把下面两行代码复制到Install上边

   add_executable(文件名字 src/文件名字.cpp)#设置需要编译的代码文件的名字和生成的可执行文件,即把哪一个程序文件编译成按一个可执行文件

   target_link_libraries(velocity_publisher${catkin_LIBRARIES})#设置链接库,把你的可执行文件和ROS中的库做一个链接。

​ 2.2 catkin_make
​ 修改好之后就可以回到工作空间根目录去编译了。catkin_make

  1. 配置环境变量

    编译好之后再用source配置个环境变量就OK了。source devel/setup.bash

    具体的编译和配置环境变量内容在ROS学习笔记1中有介绍。

  2. 执行发布话题文件

    rosrun 文件夹名 文件名

订阅节点编程实现

订阅话题和发布话题大体思路都一样

1.创建订阅者程序 在相应的工作空间的Src下创建.cpp或.py文件

文件至少由四部分组成: 1.初始化ROS节点 2.订阅需要的话题,注册回调函数(订阅话题就像响应中断,你也不知道你订阅的话题什么时候会来,因此需要像响应终端一样,在话题没来的时候一直等待,在话题来了之后就马上调用回调函数响应,因此回调函数尽可能写的短一点。主要是打印消息或者对消息做简单的处理)3.循环等待话题消息,一旦接受到消息后就进入回调函数 4.在回调函数中完成消息的处理(此时需注意,回调函数不能太复杂,不然在程序运行的时候就光运行你的函数了,等到下一次话题消息再来也不响应。)
img

2.编译

​ 1.设置编译规则

​ 2.在工作空间中catkin_make

3.配置环境变量

​ source devel/setup.bash

4.执行订阅话题文件

​ rosrun 文件夹名 话题名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值