gpt4 book ai didi

linux - 无法使用 IMU 制造商的 python2.7 示例脚本传递 OSC 数据

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:22:36 25 4
gpt4 key购买 nike

我正在使用高刷新率 IMU(x-IO 技术 NGIMU),它以 osc 格式输出所有数据。制造商提供了以下 python 脚本来在 linux 平台上提供数据(我正在运行 Ubuntu 16.04)

'''
NGIMU Demo python v2.7 script written by Tom Mitchell (teamxe.co.uk) 2016
Requires pyOSC https://trac.v2.nl/wiki/pyOSC
'''

import socket, OSC, threading, time

# Change this to the NGIMU IP address
send_address = '192.168.1.1', 9000

# Set the NGIMU to send to this machine's IP address
c = OSC.OSCClient()
c.connect(send_address)
msg = OSC.OSCMessage()
msg.setAddress('/wifi/send/ip')
msg.append(str(socket.gethostbyname(socket.gethostname())))
c.send(msg)
c.close()

# Set up receiver
receive_address = '192.168.1.2', 8000
s = OSC.OSCServer(receive_address)
s.addDefaultHandlers()

def sensorsHandler(add, tags, args, source):
print add + str(args)

def quaternionHandler(add, tags, args, source):
print add + str(args)

def batteryHandler(add, tags, args, source):
print add + str(args)

# Add OSC handlers
s.addMsgHandler("/sensors", sensorsHandler)
s.addMsgHandler("/quaternion", quaternionHandler)
s.addMsgHandler("/battery", batteryHandler)

# Start OSCServer
print "\nUse ctrl-C to quit."
st = threading.Thread(target = s.serve_forever)
st.start()

# Loop while threads are running
try :
while 1 :
time.sleep(10)

except KeyboardInterrupt :
print "\nClosing OSCServer."
s.close()
print "Waiting for Server-thread to finish"
st.join()
print "Done"

IMU 拥有自己的网络,我将其连接到接收数据的计算机。我已经从脚本中引用的位置安装了 pyOSC。当我运行脚本时,没有传递任何数据,只有消息“使用 ctrl-C 退出”。所有连接似乎都正常进行。当脚本运行时,我可以使用 Ubuntu 防火墙配置 gui 在正确的 ip 和端口上看到 udp 连接。我试过禁用防火墙,但没有效果。另外,我使用另一台计算机向该 ip 和端口发送 udp 数据包并确认收到。说我是一个编码新手也太慷慨了。尽管如此,我还是需要运行这个脚本。非常感谢您提供的任何帮助。

最佳答案

问题是

socket.gethostbyname(socket.gethostname())

没有设置正确的 IP。你应该改成

msg.setAddress('/wifi/send/ip')
msg.append('192.168.1.2')

关于linux - 无法使用 IMU 制造商的 python2.7 示例脚本传递 OSC 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40796936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com