QiSDK(带有 NAOqi 2.9.5 的 Pepper)中的 ALEngagementZones API 是否仍然可用?
Are the ALEngagementZones API still usable in QiSDK (Pepper with NAOqi 2.9.5)?
是否可以在 Android 的较新的 NAOqi 2.9.5 中以某种方式使用 NAOqi 2.5 或类似的东西?或者有什么方法可以持续检测 Pepper 前面或附近的人吗?
目前,我正尝试为此目的使用人类意识,但没有预设区域,而且大多数时候,Pepper 不认识任何人。
关于参与区域的API 尚未移植到 Qi SDK。
然而,重新实施它并不难。
The documentation 对它们的描述如下:
我发现 this function isInArc
你可以使用人头相对于机器人的位置:
fun zoneOfHuman(human: Human, robotFrame: Frame): Int {
val headFrame = human.headFrame
val timedTransform = headFrame.computeTransform(robotFrame)
val transform = timedTransform.transform
return if (isInArc(transform, 1.5, PI / 2)) 1
else if (isInArc(transform, 2.5, PI / 2)) 2
else 3
}
现在您可以使用 Kotlin timer
on the human you are interested in, typically the one that Pepper already engages autonomously 定期调用它。实际上,您可以非常可靠地开始交互,而不必太在意区域。
是否可以在 Android 的较新的 NAOqi 2.9.5 中以某种方式使用 NAOqi 2.5 或类似的东西?或者有什么方法可以持续检测 Pepper 前面或附近的人吗? 目前,我正尝试为此目的使用人类意识,但没有预设区域,而且大多数时候,Pepper 不认识任何人。
关于参与区域的API 尚未移植到 Qi SDK。 然而,重新实施它并不难。 The documentation 对它们的描述如下:
我发现 this function isInArc
你可以使用人头相对于机器人的位置:
fun zoneOfHuman(human: Human, robotFrame: Frame): Int {
val headFrame = human.headFrame
val timedTransform = headFrame.computeTransform(robotFrame)
val transform = timedTransform.transform
return if (isInArc(transform, 1.5, PI / 2)) 1
else if (isInArc(transform, 2.5, PI / 2)) 2
else 3
}
现在您可以使用 Kotlin timer
on the human you are interested in, typically the one that Pepper already engages autonomously 定期调用它。实际上,您可以非常可靠地开始交互,而不必太在意区域。