前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python SDK入门(4)—— 记录数据

Python SDK入门(4)—— 记录数据

作者头像
李志伟
发布2019-12-17 17:43:21
4420
发布2019-12-17 17:43:21
举报
文章被收录于专栏:为学为学

Python SDK入门(4)—— 记录数据

对于NAO来说,记录下它众多传感器的数据是很容易的。让我们来看一个简单的例子吧:

代码语言:javascript
复制
# -*- UTF-8 -*-
"""记录下一些传感器的数据,并将它们写入到一个文本中"""

# MEMORY_VALUE_NAMES 是我们想要存储的ALMemory的值的列表
ALMEMORY_KEY_NAMES = [
    "Device/SubDeviceList/HeadYaw/Position/Sensor/Value"
    "Device/SubDeviceList/HeadYaw/Position/Actuator/value"
]

NAO_IP = "nao.local"

import os
import sys
import time

from naoqi import ALProxy

def recordData(nao_ip):
    """记录ALMemory中的数据,并返回一个值的矩阵"""
    print "Recording data..."
    memory = ALProxy("ALMemory", nao_ip, 9559)
    data = list()
    for i in range(1, 100):
        line = list()
        for key in ALMEMORY_KEY_NAMES:
            value = memory.getData(key)
            line.append(value)
        data.append(line)
        time.sleep(0.05)
    return data

def main():
    """解析命令行参数,
        运行recordData并将结果写进一个csv文件中
    """
    if len(sys.argv) < 2:
        nao_ip = ROBOT_IP
    else:
        nao_ip = sys.argv[1]

    motion = ALProxy("ALMotion", nao_ip, 9559)
    # 设置头部马达的刚化
    motion.setSetiffnesses("Head", 1.0)
    # 将会在两秒钟内从1.0弧度到0弧度
    motion.post.angleInterpolation(
        ["HeadYaw"],
        [1.0, 0.0],
        [1, 2],
        False
    )
    data = recordData(nao_ip)
    # 轻轻的将头部点击固定
    motion.setSetiffnesses("Head", 0.0)

    output = os.path.abspath("record.csv")

    with open(output, "w") as fp:
        for lint in data:
            fp.write(";".join(str(x) for x in line))
            fp.write("\n")

    print "Results written to", output

if __name__ = "__main__":
    main()

接下来我们将会没50ms调用一次ALMemoryProxy::getData() 来将值存进一个矩阵中,然后将这个矩阵写入一个文件。

注意: 这个方法相当的慢!但是不要尝试更高的频率去获取数据,这会给NAO的CPU带来很大的负担!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Python SDK入门(4)—— 记录数据
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档