在行为之间管理资源
资源是执行任务或程序时必须的因素。例如,说话时,NAO使用TextToSpeech资源。在说话的同时移动左手时,NAO使用TextToSpeech、以及左臂与左手的电机资源。 NAO拥有许多资源,如LED、扩音器、电机、TextToSpeech、摄像头设定等。 您可以为每个指令盒设定所需资源以及如何在行为之间管理资源。 改变行为时进行资源管理非常重要,原因主要有以下两个:
解决冲突
| 范例: | 您设计了两个行为,一个让NAO随着音乐起舞(如“太极拳”指令盒),而另外一个行为则是当左碰撞器被按下时,NAO开始走路(“Walk Toward”指令盒 + “Bumper”指令盒)。 由于跳舞和行走时都需要用到双腿,因此,您应该合理管理资源,以避免当这两个行为都加载至NAO上时,向NAO的双腿发送相互矛盾的指令。 |
|---|
使资源同步
| 范例: | 您设计的行为让NAO伸出左手打招呼,并说“Hello”。 只有在NAO可以同时使用这两个资源时,才能执行这个行为。 |
|---|
设定资源管理器(Resource Manager)
- 右击一个指令盒。
- 在环境菜单中,选择(编辑资源)。
- 规定第一个设定:即当同一资源被另一个行为调用时,会发生什么情况:
- (锁定):正在进行中的行为没有停止。
- (根据要求停止):正在进行中的行为停止(该行为指令盒的“OnStop”输入点被激活)。
- (根据要求回调):(仅限高级用户使用)应用“onResource”函数。您应在指令盒脚本中定义“onResource”函数(更多信息,请参见下文)。
- (根据要求暂停,测试版):正在进行中的行为被中断;当资源被释放后,会重新开始。 这只应用于移动(即与时间轴一起使用)。
- 规定(超时): 即一个行为应等候多长时间,以获得可用资源
- (立刻):如果可用资源无法立刻使用,就不会播放指令盒。
- (等待n秒):规定行为应等候多长时间,设定等待多少秒。
- (不限时):这一设定应只用于一些可以永久等待的特殊情况。 该行为不会释放资源,也不会停止。
- 在列表中选择资源(建议多选)。
- 点击。
设定onResource函数
当设定为时,调用onResource函数。
| 范例: | 以下为一个编码范例: |
|---|
def onResource(self, resource): print "another behavior asks for your resource ", resource

