Nao笔记1|NAOqi APIs|Core(核心)——ALBehaviorManager (行为管理器)
来源:互联网 发布:淘宝虚假交易新规 编辑:程序博客网 时间:2024/06/05 15:43
ALBehaviorManager从名字中可以看出该模块是用来管理行为的。本节介绍ALBehaviorManager的作用,如何工作,API
主要有三个作用:
- 加载、启动、停止行为
- 设置默认行为
获取行为信息
一些行为可以设为“默认”,默认的行为在机器人启动时就会自动开启,ALBehaviorManager 模块可以让开发者添加、移除、启动和停止行为。
如何使用行为?
从Choregraphe上传
该图标意为行为已经切换到默认状态
API介绍:
方法
ALBehaviorManagerProxy::addDefaultBehavior()添加默认行为
ALBehaviorManagerProxy::getBehaviorTags()获取行为标签
ALBehaviorManagerProxy::getBehaviorsByTag()获取安装的行为目录名称,并通过标签进行过滤。
ALBehaviorManagerProxy::getBehaviorNature()获得给定行为的种类
ALBehaviorManagerProxy::getDefaultBehaviors()获取默认行为
ALBehaviorManagerProxy::getInstalledBehaviors()获取已经安装的行为
ALBehaviorManagerProxy::getLoadedBehaviors()获取加载的行为
ALBehaviorManagerProxy::getRunningBehaviors()获取运行的行为
ALBehaviorManagerProxy::getTagList()获取已经安装的行为的标签
ALBehaviorManagerProxy::isBehaviorInstalled()判断该行为是否导入(有效)
ALBehaviorManagerProxy::isBehaviorLoaded()判断该行为是否加载
ALBehaviorManagerProxy::isBehaviorRunning()判断该行为是否运行
ALBehaviorManagerProxy::playDefaultProject()运行默认行为
ALBehaviorManagerProxy::preloadBehavior()加载行为
ALBehaviorManagerProxy::removeDefaultBehavior()移除默认行为
ALBehaviorManagerProxy::resolveBehaviorName()获取该行为或者是安装包的路径,注意:如果两个名字存在冲突,会抛出一个错误。
ALBehaviorManagerProxy::runBehavior()运行该行为一直等到它结束
ALBehaviorManagerProxy::startBehavior()开始该行为
ALBehaviorManagerProxy::stopAllBehavior关闭所有行为
AllBehavior关闭所有行为
ALBehaviorManagerProxy::stopBehavior()关闭某一个行为
.
事件
ALBehaviorManager/BehaviorAdded()当安装行为时引发。
ALBehaviorManager/BehaviorRemoved()当移除行为时引发。
ALBehaviorManager/BehaviorUpdated()当更新行为时引发。
ALBehaviorManager/BehaviorsAdded()当添加行为时引发。
BehaviorsRun()当运行行为列表发生变化时引发
.
信号
ALBehaviorManager::behaviorsRemoved()当行为被删除时触发
ALBehaviorManager::behaviorFailed()当行为被失败时触发
ALBehaviorManager::behaviorsAdded()当行为被添加触发
ALBehaviorManager::behaviorStopped()当行为停止时触发
ALBehaviorManager::behaviorStarted()当行为开始时触发
ALBehaviorManager::behaviorLoaded()行为加载时触发
代码示例:
# -*- encoding: UTF-8 -*- import sysimport timefrom naoqi import ALProxydef main(robotIP, behaviorName): # Create proxy to ALBehaviorManager managerProxy = ALProxy("ALBehaviorManager", robotIP, 9559) getBehaviors(managerProxy) launchAndStopBehavior(managerProxy, behaviorName) defaultBehaviors(managerProxy, behaviorName)def getBehaviors(managerProxy): ''' Know which behaviors are on the robot ''' names = managerProxy.getInstalledBehaviors()#获取已经安装的行为名称 print "Behaviors on the robot:" print names names = managerProxy.getRunningBehaviors()#获取正在运行的行为名称 print "Running behaviors:" print namesdef launchAndStopBehavior(managerProxy, behaviorName): ''' Launch and stop a behavior, if possible. ''' # Check that the behavior exists. if (managerProxy.isBehaviorInstalled(behaviorName)): # Check that it is not already running. if (not managerProxy.isBehaviorRunning(behaviorName)): # Launch behavior. This is a blocking call, use post if you do not # want to wait for the behavior to finish. managerProxy.post.runBehavior(behaviorName) time.sleep(0.5) else: print "Behavior is already running." else: print "Behavior not found." return names = managerProxy.getRunningBehaviors() print "Running behaviors:" print names # Stop the behavior. if (managerProxy.isBehaviorRunning(behaviorName)): managerProxy.stopBehavior(behaviorName) time.sleep(1.0) else: print "Behavior is already stopped." names = managerProxy.getRunningBehaviors() print "Running behaviors:" print namesdef defaultBehaviors(managerProxy, behaviorName): ''' Set a behavior as default and remove it from default behavior. ''' # Get default behaviors. names = managerProxy.getDefaultBehaviors() print "Default behaviors:" print names # Add behavior to default. managerProxy.addDefaultBehavior(behaviorName) names = managerProxy.getDefaultBehaviors() print "Default behaviors:" print names # Remove behavior from default. managerProxy.removeDefaultBehavior(behaviorName) names = managerProxy.getDefaultBehaviors() print "Default behaviors:" print namesif __name__ == "__main__": if (len(sys.argv) < 3): print "Usage python albehaviormanager_example.py robotIP behaviorName" sys.exit(1) main(sys.argv[1], sys.argv[2])
- Nao笔记1|NAOqi APIs|Core(核心)——ALBehaviorManager (行为管理器)
- Nao笔记1|NAOqi APIs|Core(核心)——ALAutonomousLife (自主生活)
- Nao笔记4|NAOqi APIs|Core(核心)——Extractors¶(提取器)
- 入门篇(3)NAO机器人的NAOqi框架和模块代理
- Core Audio APIs 技术笔记一(扬声器音量设置)
- 使用ALBehaviorManager为nao机器人添加或删除动作
- Core Audio APIs 技术笔记二(麦克风音量和增强设置)
- Core Audio APIs 技术笔记二(麦克风音量和增强设置)
- OpenCV学习笔记2 OpenCV核心模块与核心功能Core Module & Core Functionality(一)
- OpenCV学习笔记3 OpenCV核心模块与核心功能Core Module & Core Functionality(二)
- OpenCV学习笔记4 OpenCV核心模块与核心功能Core Module & Core Functionality(三)
- OpenCV学习笔记5 OpenCV核心模块与核心功能Core Module & Core Functionality(四)
- OpenCV学习笔记6 OpenCV核心模块与核心功能Core Module & Core Functionality(五)
- OpenCV学习笔记7 OpenCV核心模块与核心功能Core Module & Core Functionality(六)
- nao机器人学习笔记1
- NAO学习笔记1--获取nao本地图片并展示
- ROS-NAOqi(rviz moveit gazebo等)
- ROS-NAOqi(rviz moveit gazebo等)
- 第十章 基本数据结构
- Eagle 分布式rpc调用
- 动态规划-416. Partition Equal Subset Sum
- 解决Consider increasing spark.rpc.message.maxSize
- iOS10.0对用户的隐私权限越来越重视,要想正常访问相册,相机,位置,麦克风,蓝牙,健康等
- Nao笔记1|NAOqi APIs|Core(核心)——ALBehaviorManager (行为管理器)
- NIO随笔
- java学习之补充新知识-文件传输 IO流
- 用pygame写游戏 处理键盘事件
- netty源码分析(六)Reactor模式透彻理解及其在Netty中的应用
- python socket.error: [Errno 48] Address already in use
- Win2k8&&vCenter部署全流程
- HDU——1018Big Number
- 第四周 项目5- 猴子选大王