使用ROS的rqt_plot对任意语言的程序进行可视化
来源:互联网 发布:js indexof 多个 编辑:程序博客网 时间:2024/06/05 09:54
简介
经常做数据处理的同学可能比较熟悉MATLAB或者Python,而做图像或者机器人用到最多的其实是C和C++。经常需要在调试时实时看到某些数据的变化趋势,而C++却没有一套好的可视化库(或者需要很麻烦的配置。)于是写了这个工具。调用者只要在程序里打印需要实时显示的数据,然后将控制台信息通过管道传给Python程序即可自动在rqt_plot里显示,并自动发布ROS话题。
效果
使用方法及源码
#! /usr/bin/python# coding:utf-8""" 本脚本将任意程序输出转为ROS话题发布出来,便于通过可视化程序直接查看数据。 用法: cmd | python debug_in_ros.py [TOPIC_NAME] [PLOT_NUMS] 调用者需要在自己的程序中将需要调试的数据按如下格式打印: [TOPIC_NAME] [DATA] [NUMBER] 数据间用空格隔开。 如,我的程序a输出为: odom 1 2 3 调用 a | python debug_in_ros.py odom 3 则本程序将发布ros话题odom,并实时用rqt_plot绘制出波形,类型为Float64MultiArray。"""import sysimport osimport numpy as npimport rospyimport std_msgs.msg as ros_msgdef debug_in_ros(): array = ros_msg.Float64MultiArray() rospy.init_node('debug_in_ros') pub = rospy.Publisher(sys.argv[1], ros_msg.Float64MultiArray, queue_size=10) rate = rospy.Rate(100) while not rospy.is_shutdown(): try: line = raw_input("") except: break if line == '': return line = line.strip() tokens = line.split(' ') if len(tokens) <= 2: continue if tokens[0] == sys.argv[1]: array.data = [float(token) for token in tokens[1:]] pub.publish(array) rate.sleep()if __name__ == '__main__': if len(sys.argv) < 3: print __doc__ sys.exit() data = ['%s/data[%d]' % (sys.argv[1],i) for i in range(int(sys.argv[2]))] data = ' '.join(data) os.system('rosrun rqt_plot rqt_plot topics %s&' % data) debug_in_ros()
0 0
- 使用ROS的rqt_plot对任意语言的程序进行可视化
- rqt_plot的使用
- Go语言:使用sort包对任意类型元素的集合进行排序
- ros用rqt_graph显示节点关系、rqt_plot显示数据流、rqt_console显示节点的输出、rqt_logger_level
- 对数据分布进行可视化的方法
- 对数据分布进行可视化的方法
- ROS源代码阅读(5):ROS程序的初始化——对ros:init()的总结
- C#中使用进制转换思想对字符串进行任意进制任意字典的加密和解密
- 使用Echarts进行可视化的数据线呈现
- Ubuntu下对ROS进行开发的eclipse环境
- [Jackson] 使用ObjectMapper对含有任意key的JSON进行反序列化
- 使用链栈来对十进制数进行任意进制的转换
- tomcat自动运行磁盘任意位置上的项目、使用Maven对tomcat进行自动部署
- 有关使用字节流对任意文件进行加密的办法
- C语言getchar()=='\n'的使用,对输入的任意个字符操作
- 利用VTK对数据进行可视化的实例
- 利用VTK对数据进行可视化的实例
- 对人工神经网络的隐式行为进行可视化
- windows操作系统下的PHP memcache扩展安装
- Android中的绘图
- 人工智能手机面世,情感机器人已成未来必然?!
- Webcollector + Spring + MVC 搭建应用初探(二)
- 【软件测试】导致软件缺陷的最大原因是软件需求规格说明书
- 使用ROS的rqt_plot对任意语言的程序进行可视化
- guava之Multiset
- 17年1月9日,小程序来了。深度解析2017微信公开课
- 80. Remove Duplicates from Sorted Array II
- java的用户登录怎样记住上次登录的用户名和密码?
- CentOS环境PHP下安装memcache扩展
- domain unique 遇到的问题 即:@UniqueConstraint 和@indexes 用法
- 如何理解闭包
- JAVA技能包