小车yolo机械臂(三)ROS消息订阅监听 rospy.Subscriber 订阅监听yolo python实现订阅/darknet_ros/bounding_boxes topic

2023-05-16

目录总览

小车yolo机械臂(一)ros下gazebo搭建小车(可键盘控制)安装摄像头仿真 加载yolo检测识别标记物体
小车yolo机械臂(二)机械臂仿真 ros下从xacro模型文件搭建Moveit!+Gazebo仿真系统
小车yolo机械臂(三)ROS消息订阅监听 rospy.Subscriber 订阅监听yolo python实现订阅/darknet_ros/bounding_boxes topic
小车yolo机械臂(四)python ros 和darknet_ros 使用launch文件启动脚本
小车yolo机械臂(五)让小车在命令下运动起来 rostopic pub /cmd_vel geometry_msgs/Twist
小车yolo机械臂(六)ros gazebo 小车摄像头根据darknet_ros中yolo目标检测的信息进行自主运动
小车yolo机械臂(七)小车与机械臂融合,并控制机械臂运动 gazebo control
小车yolo机械臂(八)ros小车和机械臂gazebo仿真,机械臂根据darknet_ros中yolo检测结果来自动运动 python实现

准备

最近在做一个项目,要在小车上安装摄像头,摄像头的图像的topic(话题)传递给darknet_ros里的yolo进行检测,现在要做的就是,单独写个python。

项目基础:
ros下gazebo搭建小车(可键盘控制)安装摄像头仿真 加载yolo检测识别标记物体

在上面项目的基础上,在mrobot_gazebo下新建scripts,再在scripts下新建一个python文件:listener_yolo.py,作用就是用于订阅/darknet_ros/bounding_boxes话题的信息,这个话题含有yolo识别检测出的信息。
在这里插入图片描述

终端查看topic信息

首先,我们先看看,怎么使用终端查看darnet_ros下yolo识别出来的信息。
1,把上面说的项目运行起来

运行小车及摄像头的gazebo仿真

 roslaunch mrobot_gazebo my_gazebo3.launch

运行darknet_ros

roslaunch darknet_ros darknet_ros.launch

2,查看当前所有的topic

rostopic list

在这里插入图片描述
可以看到很多以darknet_ros开头的

输出话题

我们将/darknet_ros/bounding_boxes这个话题输出,执行指令

rostopic echo /darknet_ros/bounding_boxes

在这里插入图片描述
yolo的检测出的信息就输出在了终端里

下一步我们就要使用python来订阅这一话题,然后讲订阅后的信息打印在终端上。

新建listener_yolo.py

在mrobot_gazebo下新建scripts,再在scripts下新建一个python文件:listener_yolo.py

我们先要给listener_yolo.py权限,不然无法执行。
在listener_yolo所在目录执行:

chmod +x listener_yolo.py

在写里面的内容之前,我先把我查阅的比较有用的资料先罗列出来:

Rospy的官方教程代码讲解(一)发布与订阅

ROS消息传递——std_msgs

ROS自定义msg类型及使用 这篇的评价里的内容激发了我:

Python 使用自定义 msg 导入方式: 
from 功能包名.msg import 消息文件名

我们这里需要实现对yolo检测信息话题的订阅(即:/darknet_ros/bounding_boxes),所以我们不需要写话题的发布,直接写订阅。

listener_yolo.py的代码:

#!/usr/bin/env python  
import rospy
from darknet_ros_msgs.msg import BoundingBoxes


def callback(data):
    print data
def listener():
    rospy.init_node('topic_subscriber')
    sub = rospy.Subscriber('/darknet_ros/bounding_boxes', BoundingBoxes, callback)
    print sub

    print type(sub)
    rospy.spin()

if __name__ == '__main__':
    listener()

直接划重点:
导入darknet_ros_msgs中的BoundingBoxes消息类型

这个导入我在网上查了很多,饶了很多弯路,网上的资料几乎都是导入:from std_msgs.msg import String,在一个博客中看到的一个评论,让我知道了如何修改。

首先,在终端运行:

rosmsg list

在这里插入图片描述
可以看到很多msg,我们找到我们需要的
在这里插入图片描述
可以看到有:

darknet_ros_msgs/BoundingBox

根据这条信息,我们写出:

from darknet_ros_msgs.msg import BoundingBoxes

在订阅话题命令中,这样写:

sub = rospy.Subscriber('/darknet_ros/bounding_boxes', BoundingBoxes, callback)

结果

最后在终端执行命令:

rosrun mrobot_gazebo listener_yolo.py

在这里插入图片描述
可以看到结果的输出

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

小车yolo机械臂(三)ROS消息订阅监听 rospy.Subscriber 订阅监听yolo python实现订阅/darknet_ros/bounding_boxes topic 的相关文章

  • 【第02题】给定 n,求 1 + 2 + 3 + ... + n 的和 | 四种解法

    文章目录 零 写在前面一 题目描述二 解题思路三 代码详解1 错误解法2 正确解法1 xff1a 循环枚举3 正确解法2 xff1a 奇偶性判断4 正确解法3 xff1a 无符号整型5 正确解法4 xff1a 64位整型 五 推荐专栏六 习
  • 【第01题】A + B | 基础输入输出,开启学习C语言打卡的序章

    文章目录 零 写在前面一 例题1 1 题目描述2 解题思路3 代码详解 二 例题2 1 题目描述2 解题思路3 代码详解 三 例题3 1 题目描述2 解题思路3 代码详解 四 例题4 1 题目描述2 解题思路3 代码详解 五 例题5 1 题
  • 《画解数据结构》七个动图,画解链表

    本文已收录于专栏 x1f333 画解数据结构 x1f333 零 前言 目前本专栏正在进行优惠活动 xff0c 在博主主页添加博主好友 xff08 好友位没有满的话 xff09 xff0c 可以获取 付费专栏优惠券 数据结构 和 算法 是密不
  • 《画解数据结构》九个动图,画解栈

    本文已收录于专栏 画解数据结构 零 前言 目前本专栏正在进行优惠活动 在博主主页添加博主好友 好友位没有满的话 可以获取 付费专栏优惠券 数据结构 和 算法 是密不可分的 两者往往是 相辅相成 的存在 所以 在学习 数据结构 的过程中 不免
  • 《画解数据结构》九张动图,画解队列

    本文已收录于专栏 画解数据结构 零 前言 目前本专栏正在进行优惠活动 在博主主页添加博主好友 好友位没有满的话 可以获取 付费专栏优惠券 数据结构 和 算法 是密不可分的 两者往往是 相辅相成 的存在 所以 在学习 数据结构 的过程中 不免
  • 《画解数据结构》(2 - 1)- 树

    本文已收录于专栏 画解数据结构 前言 目前本专栏正在进行优惠活动 在博主主页添加博主好友 好友位没有满的话 可以获取 付费专栏优惠券 数据结构 和 算法 是密不可分的 两者往往是 相辅相成 的存在 所以 在学习 数据结构 的过程中 不免会遇
  • 《画解数据结构》三张动图,画解哈希

    本文已收录于专栏 x1f333 画解数据结构 x1f333 零 前言 目前本专栏正在进行优惠活动 xff0c 在博主主页添加博主好友 xff08 好友位没有满的话 xff09 xff0c 可以获取 付费专栏优惠券 数据结构 和 算法 是密不
  • 《画解数据结构》九张动图,画解顺序表

    本文已收录于专栏 画解数据结构 零 前言 目前本专栏正在进行优惠活动 在博主主页添加博主好友 好友位没有满的话 可以获取 付费专栏优惠券 这篇文章 作者将用 七张动图 来阐述一种最基础的顺序结构 顺序表 相信看我文章的大多数都是 大学生 能
  • 《画解数据结构》十张动图,画解双端队列

    本文已收录于专栏 画解数据结构 零 前言 目前本专栏正在进行优惠活动 在博主主页添加博主好友 好友位没有满的话 可以获取 付费专栏优惠券 数据结构 和 算法 是密不可分的 两者往往是 相辅相成 的存在 所以 在学习 数据结构 的过程中 不免
  • 《画解数据结构》二十五彩图,画解平衡二叉树

    本文已收录于专栏 画解数据结构 前言 目前本专栏正在进行优惠活动 在博主主页添加博主好友 好友位没有满的话 可以获取 付费专栏优惠券 上一篇文章 二叉搜索树 中 对于 增 删 改 查 的时间复杂度为 O l o g
  • 安装ofsoftswitch13的问题解决

    安装ofsoftswitch13的问题解决 cmake时出现错误 xff0c 是因为前面的库有的没有安装好 xff0c 安装好以后 xff0c 错误消失 根据CPqD ofsoftswitch13 OpenFlow 1 3 switch 给
  • 《画解数据结构》之画解二叉树

    本文已收录于专栏 画解数据结构 前言 目前本专栏正在进行优惠活动 在博主主页添加博主好友 好友位没有满的话 可以获取 付费专栏优惠券 数据结构 和 算法 是密不可分的 两者往往是 相辅相成 的存在 所以 在学习 数据结构 的过程中 不免会遇
  • 《画解数据结构》三十张彩图,画解二叉搜索树

    本文已收录于专栏 画解数据结构 前言 目前本专栏正在进行优惠活动 在博主主页添加博主好友 好友位没有满的话 可以获取 付费专栏优惠券 我们知道 顺序表 可以 快速索引 数据 而 链表 则可以快速的进行数据的 插入 和 删除 那么 有没有一种
  • 《画解数据结构》九张图画解二叉堆

    本文已收录于专栏 x1f333 画解数据结构 x1f333 前言 目前本专栏正在进行优惠活动 xff0c 在博主主页添加博主好友 xff08 好友位没有满的话 xff09 xff0c 可以获取 付费专栏优惠券 在之前的文章 二叉搜索树 中
  • 《算法零基础100讲》(第1讲) 幂和对数

    文章目录 零 写在前面 一 概念定义 1 幂 2 对数 3 换底公式 二 题目描述 三 算法详解 四 源码剖析 五 推荐专栏 六 习题练习 零 写在前面 目前本专栏正在进行优惠活动 在博主主页添加博主好友 好友位没有满的话 可以获取 付费专
  • 《算法零基础100讲》(第2讲) 数列

    文章目录 零 写在前面 一 概念定义 1 等差数列 2 等比数列 3 斐波那契数列 二 题目描述 三 算法详解 四 源码剖析 五 推荐专栏 六 习题练习 零 写在前面 这是 算法零基础100讲 专栏打卡学习的第 2 天了 如果觉得本专栏太贵
  • 《LeetCode零基础指南》(第九讲) 简单递归

    文章目录 零 了解网站 1 输入输出 2 刷题步骤 3 尝试编码 4 调试提交 一 概念定义 1 递归的含义 2 递归调用阶乘 1 实现一个函数 2 递归出口 3 递推关系 3 为什么叫递归 二 题目分析 1 阶乘尾后零 2 将数字变成 0
  • 《LeetCode零基础指南》(第八讲) 二级指针

    文章目录 零 了解网站 1 输入输出 2 刷题步骤 3 尝试编码 4 调试提交 一 概念定义 1 二级指针 2 解引用 3 力扣中的二级指针 4 内存申请模板 二 题目分析 1 翻转图像 2 转置矩阵 3 重塑矩阵 4 将一维数组转变成二维
  • 《LeetCode零基础指南》(第七讲) 二维数组

    文章目录 零 了解网站 1 输入输出 2 刷题步骤 3 尝试编码 4 调试提交 一 概念定义 1 矩阵的定义 2 矩阵的水平翻转 3 矩阵的垂直翻转 4 矩阵的顺时针旋转 5 矩阵的逆时针旋转 6 矩阵的转置 7 二维数组 8 二维数组的索
  • 《LeetCode零基础指南》(第五讲) 排序API

    文章目录 零 了解网站 1 输入输出 2 刷题步骤 3 尝试编码 4 调试提交 一 概念定义 1 排序简介 2 qsort 简介 3 qsort 调用 4 比较函数 1 函数原型 2 函数定义 3 简化写法 5 更多比较函数 二 题目分析

随机推荐

  • 《LeetCode零基础指南》(第三讲) 一维数组

    文章目录 零 了解网站1 输入输出2 刷题步骤3 尝试编码4 调试提交 一 概念定义1 顺序存储2 存储方式3 长度和容量4 数组的索引5 数组的函数传参 二 题目分析1 数组的查找2 数组的最小值3 斐波那契数列4 绝对值为 k 的数对5
  • js拼字符串,显示在页面上,出现undefined字样处理办法

    首先 xff0c 你需要明白为什么会出现undefined xff0c 这个东西是什么 xff1f undefined是说明你所使用的对象未定义 xff0c 为什么会未定义 xff1f 例如 xff1a var str str 61 str
  • 《LeetCode零基础指南》导读

    文章目录 一 出该专栏的目的 二 本专栏适宜人群 三 本专栏涉及的知识点 四 本专栏收费模式 五 付费玩家专属福利 六 专栏阅读须知 七 配套赠送福利 一 出该专栏的目的 由于之前的 算法零基础100讲 为很多真正零基础的同学造成了困扰 他
  • 《LeetCode零基础指南》(第一讲) 函数

    文章目录 零 了解网站1 输入输出2 刷题步骤3 尝试编码4 调试提交 一 概念定义1 函数简介2 函数的基本概念3 函数的基本结构4 返回类型5 函数名6 参数列表7 函数体8 返回值 二 题目分析1 整数乘法2 整数除法3 次幂函数4
  • 《算法零基础100讲》导读

    文章目录 一 为什么要学算法 二 本专栏适宜人群 三 本专栏涉及的算法 四 本专栏收费模式 五 收费玩家专属福利 六 专栏阅读须知 七 配套赠送福利 一 为什么要学算法 如果你只是想学会写代码 或许 算法与数据结构 并不是那么重要 但是 想
  • 《LeetCode零基础指南》(第二讲) 循环

    文章目录 零 了解网站1 输入输出2 刷题步骤3 尝试编码4 调试提交 一 概念定义1 语法规则2 简单应用3 初始化表达式1 xff09 初始化表达式外置2 xff09 初始化表达式内置 4 条件表达式5 执行表达式 二 题目分析1 2
  • 《LeetCode零基础指南》(第四讲) 指针

    文章目录 零 了解网站 1 输入输出 2 刷题步骤 3 尝试编码 4 调试提交 一 概念定义 1 指针即地址 2 指针的定义 3 定义指针变量 4 取地址 5 数组的地址 6 解引用 7 内存申请 8 返回数组 9 范式 10 概念总结 二
  • 《LeetCode零基础指南》(第六讲) 贪心

    文章目录 零 了解网站 1 输入输出 2 刷题步骤 3 尝试编码 4 调试提交 一 概念定义 二 题目分析 1 最大乘积差 2 三角形的最大周长 3 数组拆分 I 4 救生艇 5 摆动排序 II 6 分发饼干 7 最少操作使数组递增 8 有
  • 关于我,一个35岁的老程序员的心路历程

    打工十余年 xff0c 从盛大 网易 电魂 再到字节 xff0c 再到 130w粉 的知识博主 xff0c 我都经历了什么 xff1f 如果你现在正为是否要在 编程行业 深耕下去而头疼 xff0c 那么可以看一下我的故事 xff0c 希望可
  • 【英雄算法联盟】新人指引

    文章目录 一 知识交流1 发布笔记2 阅读笔记1 xff09 搜索栏2 xff09 星球标签 3 自我介绍4 交流群 二 精选专栏1 九日集训2 31天学会算法3 每日八股文 三 学习指导1 向我提问 四 免费资源 欢迎成为 英雄算法联盟
  • 球友的一个帖子,半夜三点给我整睡不着了……

    文章目录 一 起因二 建议1 括号和缩进2 仔细审题3 独立思考4 早起的好办法5 chatgpt会代替人类吗 xff1f 三 解决1 数据结构2 初始化3 判定 一 起因 事情的起因源自于星球里面一位球友的帖子 xff0c 本来三点醒来上
  • 夜深人静写算法(一)- 搜索入门

    新地址 xff1a 夜深人静写算法 xff08 一 xff09 搜索入门
  • FEC功能是什么?有哪些配置注意事项

    一 FEC功能产生的背景 光纤通信的两个重要发展方向是提高传输速率和延长传输距离 随着传输速率的提高 xff0c 信号传输过程中限制传输距离的因素变得更多 xff0c 比如色度色散 非线性效应 偏振模色散等 xff0c 影响两者的同时提升
  • ❤️粉丝专属福利❤️

    粉丝专属福利 语言入门 xff1a 光天化日学C语言 示例代码 语言训练 xff1a C语言入门100例 试用版 数据结构 xff1a 画解数据结构 源码 算法入门 xff1a 算法入门 指引 算法进阶 xff1a 夜深人静写算法 算法模板
  • 夜深人静写算法(四十三)- 线段树

    目录 一 引例 nbsp nbsp nbsp nbsp 1 区间最值 nbsp nbsp nbsp nbsp
  • 夜深人静写算法(九)- Dancing Links X(跳舞链)

    目录 nbsp nbsp 一 引例 nbsp nbsp nbsp nbsp nbsp nbsp 1 买点彩票压压惊 二 精确覆盖 nbsp nbsp nbsp nbsp nbsp nbsp 1 精确覆盖的定义
  • Redis底层详解(一) 哈希表和字典

    一 哈希表概述 首先简单介绍几个概念 xff1a 哈希表 xff08 散列表 xff09 映射 冲突 链地址 哈希函数 哈希表 xff08 Hash table xff09 的初衷是为了将数据映射到数组中的某个位置 xff0c 这样就能够通
  • 格式化日志提取模拟写入Elasticsearch

    1 目标 任务场景和目标 xff1a 已有服务的格式化日志 利用Ingest Pipeline提取通过Simulate Pipeline API模拟写入Elasticesearch 目的是对Pipeline文件进行验证 日志格式如下 xff
  • 小车yolo机械臂(一)ros下gazebo搭建小车(可键盘控制)安装摄像头仿真 加载yolo检测识别标记物体

    ros下gazebo搭建小车 xff08 可键盘控制 xff09 安装摄像头仿真 加载yolo检测识别标记物体 目录总览一 xff0c 项目代码下载二 xff0c ros下实现darknet ros YOLO V3 检测2 1 编译整个项目
  • 小车yolo机械臂(三)ROS消息订阅监听 rospy.Subscriber 订阅监听yolo python实现订阅/darknet_ros/bounding_boxes topic

    目录总览 小车yolo机械臂 xff08 一 xff09 ros下gazebo搭建小车 xff08 可键盘控制 xff09 安装摄像头仿真 加载yolo检测识别标记物体 小车yolo机械臂 xff08 二 xff09 机械臂仿真 ros下从