2019-12-06 15:42:39

先暂时做个资料保存

要同时用两个红外相机,但是没有做硬件上的 时间戳同步,就是笔记本上同时插着两个相机。

两个topic发布各自相机的图像,然后要有个节点同时订阅两个topic并把两张图像拼接成一张图像再做处理。

直接搜 ros sub two topic结果都是2个callback函数,各自处理各自的topic,和想要的不太一样。

自己融合两个线程中时间戳不那么严格一致的数据太麻烦了

想要的是两张图片的时间戳如果相近,就当做是在同一时刻采集的,然后合成一张图像或者一个topic。

然后发现了下面的链接:

https://stackoverflow.com/questions/55458218/is-it-possible-to-time-synchronize-two-topics-in-ros-of-same-message-type

https://www.cnblogs.com/gdut-gordon/p/10293446.html

http://wiki.ros.org/message_filters#Example_.28Python.29-1

https://blog.csdn.net/chishuideyu/article/details/77479758

https://github.com/DiaboloKiat/sis_lab_all/blob/de74759c3779aa32916a5c61dbc735f8d17c909c/03-ROS_tutorial_1/catkin_ws/src/tutorial/src/test_my_message.py

应该是一个 message_filters ,使用其  ApproximateTime Policy  ,然后就只有一个callback了

https://stackoverflow.com/questions/48830056/use-data-from-multiple-topics-in-ros-python

这个看起来也有点用,先保存

2019-12-06 16:42:49

下面是部分代码,直接改的上面的链接里的代码,384*288 的两张图像

 def callback(left_data, right_data):
temper_left = bridge1.imgmsg_to_cv2(left_data, "mono16")
temper_right = bridge2.imgmsg_to_cv2(right_data, "mono16") disp1 = cv2.normalize(temper_left, None, 0, 255, cv2.NORM_MINMAX)
disp1 = disp1.astype(np.uint8)
disp_color1 = cv2.applyColorMap(disp1, color_map_choice ) disp2 = cv2.normalize(temper_right, None, 0, 255, cv2.NORM_MINMAX)
disp2 = disp2.astype(np.uint8)
disp_color2 = cv2.applyColorMap(disp2, color_map_choice ) disp = np.concatenate((disp_color1, disp_color2), axis=1 ) cv2.imshow("Image window", disp)
cv2.waitKey( 10 ) def gotdesired():
rospy.init_node('image_converter', anonymous=True) sub_left = message_filters.Subscriber("left_infra", Image, queue_size=1, buff_size=110592*6 )
sub_right = message_filters.Subscriber("right_infra", Image, queue_size=1, buff_size=110592*6 ) ts = message_filters.ApproximateTimeSynchronizer([sub_left, sub_right], 10, 0.1, allow_headerless = True)
ts.registerCallback(callback) # spin() simply keeps python from exiting until this node is stopped
rospy.spin()

ros中同时订阅两个topic(2张图像)合并成一个topic(1张图像)的更多相关文章

  1. 如何将两个/多个PDF文件合并成一个?

    原文链接:https://docsmall.com/blog/how-to-merge-pdf 工作中我们总会遇到将PDF合并的问题,比如: 多次扫描的PDF文件,需要合并到一个 PDF文件需要追加一 ...

  2. Clojure:将两个list合并成一个map

    假设我们有两个list,分别是: (def a [“one” “two” “three”]) (def b [1 2 3]) 我们要把它们合为一个键值对应的map,做法很简单: 1. 先将a和b合为一 ...

  3. SQL Server 2005中的分区表(四):删除(合并)一个分区(转)

    在前面我们介绍过如何创建和使用一个分区表,并举了一个例子,将不 同年份的数据放在不同的物理分区表里.具体的分区方式为: 第1个小表:2010-1-1以前的数据(不包含2010-1-1). 第2个小表: ...

  4. SQL Server 2005中的分区表(四):删除(合并)一个分区

    在前面我们介绍过如何创建和使用一个分区表,并举了一个例子,将不 同年份的数据放在不同的物理分区表里.具体的分区方式为: 第1个小表:2010-1-1以前的数据(不包含2010-1-1). 第2个小表: ...

  5. mysql中的多行查询结果合并成一个

    SELECT GROUP_CONCAT(md.data1) FROM DATA md,contacts cc WHERE md.conskey=cc.id AND md.mimetype_id= 5 ...

  6. 将两个DataTable合并成一个DataTable

    转载自 http://blog.csdn.net/wangxiaojia42121/article/details/53330464 谢谢 //两个结构一样的DT合并DataTable DataTab ...

  7. remap——ROS中修改订阅的节点名称

    跑数据集或者使用不同传感器时,难免会遇到需要修改topic名称的时候,此时可以有两种做法. 一.直接修改源码.如果有launch文件,则修改launch文件对应的topic 二.直接进行remap操作 ...

  8. python中如何将两个list合并成一个list,不用for语句

    1, add 2, 用list的extend方法,L1.extend(L2),该方法将参数L2的全部元素添加到L1的尾部,例如: 3, 用切片(slice)操作,L1[len(L1):len(L1)] ...

  9. 牛客网:将两个单调递增的链表合并为一个单调递增的链表-Python实现-两种方法讲解

    方法一和方法二的执行效率,可以大致的计算时间复杂度加以对比,方法一优于方法二   1. 方法一: 思路: 1. 新创建一个链表节点头,假设这里就叫 head3: 2. 因为另外两个链表都为单调递增,所 ...

随机推荐

  1. varnish CLI管理

    命令:varnishadm [-t timeout] [-S secret_file] [-T address:port] [-n name] [command [...]] ./varnishadm ...

  2. 怎样理解JS的预解析机制

    JS的预解析包括两部分: 1. 变量提升 2. 函数声明 对于变量提升, 可以看下下面这块代码 console.log(name); // undefined var name = "Lil ...

  3. codeforce B. Petya and Exam

    wa一万次难受. #include<cstdio> #include<cstring> #include<cmath> #include<algorithm& ...

  4. ACCESS打得开mdb,但打不开表,弹框提示未知错误。

    我的电脑有个一个奇怪的错误ACCESS能打开mdb数据库,但是打不开表,一打开就提示错误,只有俩字“未知”.重装OFFICE也不行!而且电脑上使用Access数据库的应用软件都不行了!都提示“未知”错 ...

  5. python+django学习二

    所有模型类型的准备和迁移 在setting.py中添加:AUTH_USER_MODEL = 'users.UserProfile' 继承用户模板 确保子项目的url现在都是空的, 在pycharm的f ...

  6. Java Web-Cookie和Session

    Java Web-Cookie和Session 会话 会话的概念 一次会话是指浏览器从浏览器第一次给服务器发送请求建立到其中一方断开结束会话的一个过程.它包含多次请求和响应. 会话是用来在一次会话的范 ...

  7. weblogic 反序列化漏洞 getshell

    上传cmd.jsp,效果: 上传马:

  8. 页面加载完毕后调用js方法进行布局操控 已实验

    页面加载完毕后调用js方法进行布局操控 已实验 $(function(){ var check1 = $("[id$=SMS]").is(':checked'); var bl=$ ...

  9. 网页免费转换为可编辑的PDF

    Chrome自带的"打印"功能中,另存为PDF 可选择保存选中的内容.如果浏览器/网络出错,不能纠正.(推荐0) https://www.printfriendly.com (有C ...

  10. ARMA(p,q)模型数据的产生

    一.功能 产生自回归滑动平均模型\(ARMA(p,q)\)的数据. 二.方法简介 自回归滑动平均模型\(ARMA(p,q)\)为 \[ x(n)+\sum_{i=1}^{p}a_{i}x(n-i)=\ ...