data_analysis9

笔记

# matplotlib显示中文字符
from matplotlib import pyplot as plt
from matplotlib.font_manager import FontProperties

font = FontProperties(fname='C:/Windows/Fonts/msyh.ttc')
plt.rcParams['font.family'] = font.get_name()

a = [131,98,125,131,124,139,131,117,128,108,135,138,131,102,107,114,119,128,121,142,127,130,124,101,110,
     116,117,110,128,128,115,99,136,126,134,95,138,117,111,78,132,124,113,150,110,117,86,95,144,105,126,
     130,126,130,126,116,123,106,112,138,123,86,101,99,136,123,117,119,105,137,123,128,125,104,109,134,
     125,127,105,120,107,129,116,108,132,103,136,118,102,120,114,105,115,132,145,119,121,112,139,125,138,109,
     132,134,156,106,117,127,144,139,139,119,140,83,110,102,123,107,143,115,136,118,139,123,112,118,125,109,
     119,133,112,114,122,109,106,123,116,131,127,115,118,112,135,115,146,137,116,103,144,83,123,111,110,111,
     100,154,136,100,118,119,133,134,106,129,126,110,111,109,141,120,117,106,149,122,122,110,118,127,121,114,
     125,126,114,140,103,130,141,117,106,114,121,114,133,137,92,121,112,146,97,137,105,98,117,112,81,97,
     139,113,134,106,144,110,137,137,111,104,117,100,111,101,110,105,129,137,112,120,113,133,112,83,94,146,
     133,101,131,116,111,84,137,115,122,106,144,109,123,116,111,111,133,150]

# 计算组数
d=3 # 组距
num_bins = (max(a)-min(a))//d
print(max(a),min(a),max(a)-min(a))
print(num_bins)

# 设置图形大小
plt.figure(figsize=(20,8),dpi=80)
plt.hist(a,num_bins)

# 设置X轴的刻度
plt.xticks(range(min(a),max(a)+d,d))

plt.grid()

plt.show()
### ROS Topic `/data_analysis/real_joint_pos` 的使用方法 在机器人操作系统(ROS)中,`rostopic` 是用于与话题(topics)交互的命令行工具。通过 `rostopic` 命令可以查看、发布和监控消息流。以下是关于如何使用 `rostopic` 来操作名为 `/data_analysis/real_joint_pos` 主题的具体说明。 #### 查看主题的消息类型 要了解 `/data_analysis/real_joint_pos` 所使用的具体消息类型及其字段结构,可运行以下命令: ```bash rostopic type /data_analysis/real_joint_pos ``` 此命令会返回该主题对应的消息类型的名称,例如 `sensor_msgs/JointState` 或其他自定义类型[^2]。 如果需要进一步确认消息的内容格式,则可以通过以下方式获取详细描述: ```bash rosmsg show <message_type> ``` #### 发布测试数据到主题 为了模拟向 `/data_analysis/real_joint_pos` 发送数据的过程,可以利用 `rostopic pub` 命令手动创建并发送一条消息实例。假设其消息类型为标准的 `JointState` 类型,那么执行如下脚本即可完成一次简单的发布动作: ```bash rostopic pub /data_analysis/real_joint_pos sensor_msgs/JointState "{header: {stamp: now, frame_id: &#39;&#39;}, name: [&#39;joint1&#39;, &#39;joint2&#39;], position: [0.1, 0.2], velocity: [], effort: []}" --once ``` 上述例子中的参数可以根据实际需求调整;其中 `"--once"` 参数表示仅推送单条记录而不是持续广播[^3]。 #### 订阅并打印接收到的数据 当有节点正在往 `/data_analysis/real_joint_pos` 上写入信息时,我们也可以借助 `rostopic echo` 实现对接收端内容的实时观察功能: ```bash rostopic echo /data_analysis/real_joint_pos ``` 这一步骤有助于验证当前订阅状态以及调试过程中定位潜在错误源[^4]。 #### 编码实现示例 下面给出一段 Python 风格代码片段作为参考,展示怎样基于 rospy 库开发程序来处理这个特定的主题通信逻辑。 ```python import rospy from std_msgs.msg import Float64MultiArray def callback(data): joint_positions = data.data rospy.loginfo(f"Received Joint Positions: {joint_positions}") if __name__ == &#39;__main__&#39;: rospy.init_node(&#39;joint_position_subscriber&#39;) sub = rospy.Subscriber(&#39;/data_analysis/real_joint_pos&#39;, Float64MultiArray, callback) rate = rospy.Rate(10) # 10 Hz while not rospy.is_shutdown(): rate.sleep() ``` 以上展示了订阅者模式下的基本框架设计思路[^5]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值