通过 rqt_plot 完成ATI F/T 力和力矩传感器六轴数据可视化

基于该篇博客https://blog.csdn.net/qq_34935373/article/details/103481401,实现了通过ROS节点的方式启动ATI sensor,完成配置归零和设置软件矢量偏移,并且获取六轴数据,实时的打印在终端上。但是由于数据的刷新非常迅速,人眼很难捕捉到所有信息,所以想着能不能通过python库或者ROS插件完成数据的可视化。

偶然看到了ATI结合UR的自动装配视频,感觉这个界面很nice,官网找了半天却也没找到。

 之前的java版的可视化界面虽然也不错,但是却很难集成在ROS当中,于是我尝试了pyqtgraph这个python库。

1.PyQtGraph的安装:

$ pip install pyqtgraph

2.PyQtGraph样例:

$ ipython3
$ import pyqtgraph.examples
$ pyqtgraph.examples.run()

3.PyQtGraph测试:

会显示一个界面,提供了各种demo和代码。复制修改成自己的即可。

复制上述代码,稍作修改运行(一共三个update函数,主要就修改了第一个,看看效果),效果如下:

# -*- coding: utf-8 -*-

import pyqtgraph as pg
from pyqtgraph.Qt import QtCore, QtGui
import numpy as np


win = pg.GraphicsWindow()
win.setWindowTitle('ATI F/T sensor data')
label = pg.LabelItem(justify='right
### rqt_plot 显示 joint_states 图表不全的解决方案 在使用 `rqt_plot` 显示 `/joint_states` 主题时,如果发现图表显示不完整,可能是由于以下几个原因造成的: #### 1. 数据采样频率不足 `/joint_states` 的更新频率可能较低,导致某些关节状态的数据未能及时被记录并绘制到图表上。可以通过调整节点发布频率来改善这一情况[^1]。 ```bash rostopic hz /joint_states ``` 上述命令可以用来检测 `/joint_states` 的实际发布频率。如果频率过低,则需要优化机器人控制程序中的数据发布逻辑。 #### 2. 绘图工具配置不当 默认情况下,`rqt_plot` 可能只选择了部分字段进行绘图。确保所有相关的字段都被选中以便完整展示关节的状态变化曲线。操作方法如下: - 打开 `rqt_plot` 工具。 - 添加 `/joint_states` 中的所有目标字段(例如 position, velocity 或 effort),具体路径为 `/joint_states/position`, `/joint_states/velocity` 等。 ```python import rospy from sensor_msgs.msg import JointState def callback(data): rospy.loginfo(f"Position: {data.position}, Velocity: {data.velocity}") if __name__ == '__main__': rospy.init_node('joint_state_listener', anonymous=True) sub = rospy.Subscriber('/joint_states', JointState, callback) rospy.spin() ``` 此代码片段可以帮助验证 `/joint_states` 是否正常接收全部所需数据。 #### 3. 时间窗口设置有限制 `rqt_plot` 默认的时间窗口较短,可能会遗漏长时间跨度内的数据点。增加时间范围有助于更全面地观察关节的变化趋势。右键单击图形区域,在弹出菜单中选择 **Time Range** 并适当延长秒数即可。 #### 4. 资源占用过高影响性能 当系统资源紧张时也可能引发图表渲染异常的现象。建议监控 CPU 内存利用率,必要时重启相关进程释放压。 --- ### 总结 针对 `rqt_plot` 展示 `/joint_states` 不完全的情况,应逐一排查以上几个方面的原因,并采取相应措施加以修正。最终目的是让每一个关节的位置、速度以及努程度都能清晰呈现在同一个界面里供分析研究之用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值