Pepper:暂时禁用事件
Pepper: disable events temporally
我正在使用 Choregraphe 编写一个 Pepper 应用程序来进行对话。此对话有一些不同的排序状态:
- 你好(对话开始)
- 索取资料
- 指定信息
- 再见(对话结束)
要开始对话,人们必须靠近机器人,而机器人必须检测到人脸。
问题是,如果我在谈话中间,机器人检测到另一张脸,它会从头开始谈话。所以我需要在机器人进行对话时暂时禁用该事件。有办法吗?
这些是 Choregraphe 的事件输出:
您不能在该格式上禁用它们,但是如果您使用 "subscribe to event" 框,则有 start/stop 个输入可用于 enable/disable 该框,即 subscribe/unsubscribe 到事件。
在你那里,我会将它编程为有限状态机:你决定你的检测以及从一种状态切换到另一种状态的方式,以一种简单的方式。当您更改状态时,一个状态的每个处理都会停止。
您可以在这里下载一个简单的状态机:http://protolab.aldebaran.com/public/the_3_templates.zip
最后我访问了这个part of documentation并查看了参与模式。
To allow a wider range of behaviors, ALBasicAwareness provides 3 engagement modes that specify how “focused” the robot is on the engaged person.
“Unengaged”: (Default mode) when the robot is engaged with a user, it can be distracted by any stimulus, and engage with another person.
“FullyEngaged”: as soon as the robot is engaged with a person, it stops listening to stimuli and stays engaged with the same person. If it loses the engaged person, it will listen to stimuli again and may engage with a different person.
“SemiEngaged”: when the robot is engaged with a person, it keeps listening to the stimuli, and if it gets a stimulus, it will look in its direction, but it will always go back to the person it is engaged with. If it loses the person, it will listen to stimuli again and may engage with a different person.
我用过FullyEngaged
机器人只关注第一个进入机器人的人Zone 1.
这样做是这样的:
basic_awareness = ALProxy("ALBasicAwareness", ip_robot, port_robot)
basic_awareness.setEngagementMode("FullyEngaged")
basic_awareness.startAwareness()
我正在使用 Choregraphe 编写一个 Pepper 应用程序来进行对话。此对话有一些不同的排序状态:
- 你好(对话开始)
- 索取资料
- 指定信息
- 再见(对话结束)
要开始对话,人们必须靠近机器人,而机器人必须检测到人脸。
问题是,如果我在谈话中间,机器人检测到另一张脸,它会从头开始谈话。所以我需要在机器人进行对话时暂时禁用该事件。有办法吗?
这些是 Choregraphe 的事件输出:
您不能在该格式上禁用它们,但是如果您使用 "subscribe to event" 框,则有 start/stop 个输入可用于 enable/disable 该框,即 subscribe/unsubscribe 到事件。
在你那里,我会将它编程为有限状态机:你决定你的检测以及从一种状态切换到另一种状态的方式,以一种简单的方式。当您更改状态时,一个状态的每个处理都会停止。
您可以在这里下载一个简单的状态机:http://protolab.aldebaran.com/public/the_3_templates.zip
最后我访问了这个part of documentation并查看了参与模式。
To allow a wider range of behaviors, ALBasicAwareness provides 3 engagement modes that specify how “focused” the robot is on the engaged person.
“Unengaged”: (Default mode) when the robot is engaged with a user, it can be distracted by any stimulus, and engage with another person.
“FullyEngaged”: as soon as the robot is engaged with a person, it stops listening to stimuli and stays engaged with the same person. If it loses the engaged person, it will listen to stimuli again and may engage with a different person.
“SemiEngaged”: when the robot is engaged with a person, it keeps listening to the stimuli, and if it gets a stimulus, it will look in its direction, but it will always go back to the person it is engaged with. If it loses the person, it will listen to stimuli again and may engage with a different person.
我用过FullyEngaged
机器人只关注第一个进入机器人的人Zone 1.
这样做是这样的:
basic_awareness = ALProxy("ALBasicAwareness", ip_robot, port_robot)
basic_awareness.setEngagementMode("FullyEngaged")
basic_awareness.startAwareness()