gpt4 book ai didi

python - Webots 机器人在尝试与外部 Kinect 一起使用时不说话

转载 作者:太空宇宙 更新时间:2023-11-03 14:26:30 25 4
gpt4 key购买 nike

我正在尝试创建一个 Webots 模拟,当 Kinect 摄像头检测到一个人时,我希望我的机器人能够说话。

我有一个连接到 USB 端口的 Kinect V2,它可以通过使用 PyKinect2 和 pygame 运行我的 Python 代码来自行检测人员。

下一步,我将该代码放入 Webots 环境中,并添加了一个机器人,以便在 Kinect 检测到用户时与用户对话。然而,当 Kinect 开始运行并弹出窗口时,Webots 时钟停止滴答,机器人不执行任何操作。关闭 Kinect 窗口后,机器人会说出该消息,但该代码应该在 Kinect 代码内执行,如下所示。

我相信这可能是一个同步问题,因为 Kinect 和 Webots 有自己的时钟,但我不确定。即使是这样,我也不知道该如何继续。欢迎任何建议。

这是我的代码的相关部分,如果需要,我可以提供完整的代码。 Kinect 人体检测是 this example 的稍微修改版本。 :

class BodyGameRuntime(object):

# ----- other functions here -----

def run(self):
# -------- Main Program Loop -----------
while not self._done:

# --- frame and window resize logic here

# --- Draw skeletons to _frame_surface
if self._bodies is not None:

# ---------- Body Found ----------
speaker.speak("User detected!", volume=1.0) # Speak to the user

for i in range(0, self._kinect.max_body_count):
body = self._bodies.bodies[i]
if not body.is_tracked:
continue

joints = body.joints
# convert joint coordinates to color space
joint_points = self._kinect.body_joints_to_color_space(joints)
self.draw_body(joints, joint_points, SKELETON_COLORS[i])

# --- copy back buffer logic here

# --- Update the screen with what we've drawn.
pygame.display.update()
pygame.display.flip()

# --- Limit to 30 frames per second
self._clock.tick(30)

# Close our Kinect sensor, close the window and quit.
self._kinect.close()
pygame.quit()

robot = Robot()
speaker = Speaker("Speaker")
#timestep = int(robot.getBasicTimeStep())

__main__ = "Kinect"
game = BodyGameRuntime()
game.run()

最佳答案

Webots 需要您定期调用 robot.step(timeStep) 函数,以便在模拟时间上取得进展,否则它只会停止模拟并等待下一次调用robot.step(timeStep)。我只需在主循环中添加对 robot.step(timeStep) 的调用,就在 self._clock.tick(30) 之前,并取消注释 的初始化timeStep 在你的主程序中。

请注意,如果您的 Webots 模拟实时运行,则调用 robot.step(X) 将持续大约 X 毫秒。因此,您应该在世界文件中将 WorldInfo.basicTimeStep 设置为 30 毫秒,并取消对 self._clock.tick(30) 的调用。

关于python - Webots 机器人在尝试与外部 Kinect 一起使用时不说话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47603024/

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