IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【ROS学习笔记】7.订阅者Subscriber的编程实现(C++和Python) -> 正文阅读

[人工智能]【ROS学习笔记】7.订阅者Subscriber的编程实现(C++和Python)


本节通过创建一个订阅者Subscriber来控制海龟。
我们先看要实现的这个小程序的图。
(部分图摘自:b站【古月居】古月·ROS入门21讲)

1 模型图

ROS Master管理两个主要节点:
Publisher,海龟仿真器turtlesim
Subscriber,Pose Listener
这次海龟仿真器turtlesim为Publisher,发布Message(传输的是动作信息 turtlesim::Pose),通过Topic(/turtle1/pose)的管道,将数据传输给Subscriber。Subscriber订阅得到的数据,获得Pose信息。

在这里插入图片描述

2 创建功能包

我们之前已经创建了工作空间和功能包learning topic了。
直接上代码。

3 创建Subscriber代码(C++)

如何实现一个Subscriber:

  • 初始化ROS节点
  • 订阅需要的话题
  • 循环等待话题消息,接收到消息后进入回调函数
  • 在回调函数中完成消息处理

(源码:https://github.com/guyuehome/ros_21_tutorials/blob/master/learning_topic/src/pose_subscriber.cpp)
在这里插入图片描述

4 编译代码(C++)

有了代码,接下来编译。

配置代码编译规则

配置CMakeLists.txt中的编译规则:

  • 设置需要编译的代码和生成的可执行文件
  • 设置链接库

将下列代码拷贝至CMakeLists.txt中:
直接加到之前那两行下面即可

add_executable(pose_subscriber src/pose_subscriber.cpp)
target_link_libraries(pose_subscriber ${catkin_LIBRARIES})

在这里插入图片描述

执行编译

回到工作空间目录,执行编译.

cd ~/catkin_ws
catkin_make

在这里插入图片描述

source 一下 setup.bash

source devel/setup.bash放入环境变量.bashrc中,之前已完成。

运行

打开终端,分别运行:

roscore
rosrun turtlesim turtlesim_node
rosrun learning_topic pose_subscriber

在这里插入图片描述这时海龟的位置就会一直被pose_subscriber监听,现在因为海龟没动,所以x、y的坐标值是不会变的。
我们让海龟动起来,再建立一个之前用过的键盘控制节点:

rosrun turtlesim turtle_teleop_key

控制它移动,坐标就发生实时变化啦!
在这里插入图片描述

5 Python实现

(源码:https://github.com/guyuehome/ros_21_tutorials/blob/master/learning_topic/scripts/pose_subscriber.py)

创建Python代码

源码拷贝到scripts下
在这里插入图片描述
右击文件→属性,打开执行权限。

配置代码编译规则

配置一下CMakeLists.txt中的编译规则:
之前已将文件中的catkin_install_python这段取消注释,并将默认的my_python_script改成了velocity_publisher.py
这次再加上一个关于pose_subscriber.py的catkin_install_python方法:
在这里插入图片描述

编译代码

回到工作空间目录,执行编译.

cd ~/catkin_ws
catkin_make

source 一下 setup.bash

略过。

运行

打开终端,分别运行:

roscore
rosrun turtlesim turtlesim_node
rosrun learning_topic pose_subscriber.py
rosrun turtlesim turtle_teleop_key

控制它移动,成功!
在这里插入图片描述

试着查看一下系统当前的计算图

再打开一个终端,输入:

rqt_graph

调到所有活动active节点/话题视图,可看到:
在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-01-17 11:30:57  更:2022-01-17 11:33:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/24 17:06:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码