据官方文档,自QiSDK 2.5.5版起,ALEngagementZones API已经被弃用,从而不再建议使用。如果您使用的是NAOqi 2.9.5和QiSDK 2.5.5及更高版本,则应该使用ALBasicAwareness API来代替它。
以下是一个使用ALBasicAwareness API的示例代码:
import qi
import time
# Session连接到Pepper
session = qi.Session()
session.connect("tcp://{robot_ip}:9559".format(robot_ip=))
# 获取awareness服务
awareness = session.service("ALBasicAwareness")
# 开启人类跟踪
awareness.setPeopleDetectionEnabled(True)
awareness.setEngagementMode("FullyEngaged")
# 等待10秒钟,让Pepper发现一个人
time.sleep(10)
# 检查是否有人在前方半径1米范围内
if not awareness.isAwarenessTriggered():
print("Pepper没有发现任何人")
else:
print("Pepper发现了人")
这个示例会开启Pepper的人类跟踪,并在前方半径1米范围内检查是否有人。如果没有人,则输出“Pepper没有发现任何人”,否则输出“Pepper发现了人”。