Nao代理订阅模式分析

基于naoqi相关api-python,对在nao机器人上使用的代理行为api做一个分析。

Posted by LJJ on June 8, 2019

Nao代理订阅模式分析

Target List

今日份任务:

1.熟悉python在nao上执行的代理订阅模式

2.完全掌握以上几个模块事件:需要提供详细的文件说明每一个模块的作用和使用方法

模块事件详细汇总

ALAutonomousLife

是NAO自主生活的代理订阅模块,继承了ALModule的方法,通过调用ALAutonomousLife

模块的方法可以在NAO自主时的获取它的当前相关信息和实现相关功能,该代理模块的方法和功能如下:

  1. 自主生活状态管理方法:(方法作用在方法下方)
[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) ` ``ALAutonomousLifeProxy::**setState**`([const std::string&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss) *state*)

允许开发人员手动设置自主生命中的有限状态更改,state是自主生活状态。

[std::string](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss) `ALAutonomousLifeProxy::**getState**`()

检索自主生命的当前状态,返回状态。

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALAutonomousLifeProxy::**setRobotOffsetFromFloor**`([const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *offset*)

设置偏移量(offset)。

[float](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) `ALAutonomousLifeProxy::**getRobotOffsetFromFloor**`()

获取当前偏移量。

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALAutonomousLifeProxy::**setSafeguardEnabled**`([const std::string&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss) *name*)

设置关节是否为安全劲度。

[bool](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#b) `ALAutonomousLifeProxy::**isSafeguardEnabled**`([const std::string&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss) *name*)

检测关节是否安全。
  1. 活动重点管理方法:
[std::string](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss) `ALAutonomousLifeProxy::**focusedActivity**`()

检索当前聚焦的活动。

[int](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#i) `ALAutonomousLifeProxy::**switchFocus**`([const std::string&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss) *activity_name*)

将聚焦活动处于运行。

[int](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#i) `ALAutonomousLifeProxy::**switchFocus**`([const std::string&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss) *activity_name*, [const int&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#i) *flags*)

将聚焦活动处于运行,允许叠加聚焦活动。

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALAutonomousLifeProxy::**stopFocus**`()

停止当前的聚焦活动。

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALAutonomousLifeProxy::**stopAll**`()

停止所有聚焦活动。
  1. 活动实用程序的方法:
[int](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#i) `ALAutonomousLifeProxy::**getLifeTime**`()

获取生存时间。

[AL::ALValue](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue) `ALAutonomousLifeProxy::**getActivityStatistics**`()

获取每个活动的焦点计数。

[AL::ALValue](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue) `ALAutonomousLifeProxy::**getAutonomousActivityStatistics**`()

获取每个活动的焦点计数,返回焦点计数。

[AL::ALValue](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue) `ALAutonomousLifeProxy::**getFocusHistory**`()

获取聚焦活动的时间顺序列表。

[AL::ALValue](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue) `ALAutonomousLifeProxy::**getFocusHistory**`([const int&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#i) *depth*)

Depth是最近最大值,获取聚焦活动的时间顺序列表。

[AL::ALValue](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue) `ALAutonomousLifeProxy::**getStateHistory**`()

[AL::ALValue](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue) `ALAutonomousLifeProxy::**getStateHistory**`([const int&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#i) *depth*)

获取已输入的顺序及其输入的时间的列表。

[std::string](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss) `ALAutonomousLifeProxy::**getActivityNature**`([const std::string&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss) *activity_name*)

获取活动是否处于孤立状态。

ALMemory

是NAO的代理订阅模块,继承了ALModule的方法,通过调用ALMemory模块的方法可以在NAO相关信息和实现相关功能,该代理模块的方法和功能如下:

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALMemoryProxy::**declareEvent**`([const std::string&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss) *eventName*)

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALMemoryProxy::**declareEvent**`([conststd::string&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss) *eventName*, 

[const std::string&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss) *extractorName*)

声明允许订阅事件。

[AL::ALValue](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue) `ALMemoryProxy::**getData**`([const std::string&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss) *key*)

获取存储在内存中的键值对应值。

[std::vector](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#std::vector:ss:) `ALMemoryProxy::**getDataList**`([const std::string&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss) *filter*)

获取包含给定字符串的所有键名的列表,filter搜索词。

[std::vector](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#std::vector:ss:) `ALMemoryProxy::**getDataListName**`()

获取内存中所有键值对的键名。

[std::vector](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#std::vector:ss:) `ALMemoryProxy::**getEventList**`()

获取包含所有声明事件的名称的列表。

[AL::ALValue](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue) `ALMemoryProxy::**getTimestamp**`([const std::string&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss) *memoryKey*)

获取MemyKey值及其时间戳。

[AL::ALValue](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue) `ALMemoryProxy::**getListData**`([const AL::ALValue&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue) *keyList*)

获取与给定的键列表关联的值。

[std::string](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss) `ALMemoryProxy::**getType**`([const std::string&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss) *key*)

获取存储数据的存储类。

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALMemoryProxy::**insertData**`([const std::string&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss) *key*, [const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *value*)

将键值插入内存。

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALMemoryProxy::**insertListData**`([const AL::ALValue&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue) *list*)

将键值列表插入内存。

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALMemoryProxy::**unsubscribeToEvent**`([const std::string&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss) *name*,[const std::string&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss)*callbackModule*)

取消订阅模块事件。

ALMotion

ALMotion提供了帮助机器人移动的API,它包含允许操作关节刚度、关节角度和允许您控制行走的更高级别API的命令,该代理模块的方法和功能如下:

  1. 刚度控制API
[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALMotionProxy::**wakeUp**`()

唤醒机器人。

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALMotionProxy::**rest**`()

使机器人进入休眠。

[bool](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#b) `ALMotionProxy::**robotIsWakeUp**`()

判断机器人是否是苏醒状态。

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALMotionProxy::**stiffnessInterpolation**`([constAL::ALValue&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue)*names*, [const AL::ALValue&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue) *stiffnessLists*, [const AL::ALValue&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue)*timeLists*)

将一个或多个关节在规定时间内完成某个刚度的设置。

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALMotionProxy::**setStiffnesses**`([constAL::ALValue&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue) *names*, [const AL::ALValue&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue) *stiffnesses*)

设置关节的刚度。

[std::vector](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#std::vector:float:) `ALMotionProxy::**getStiffnesses**`([const AL::ALValue&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue)*jointName*)

获取关节的刚度。
  1. 联合控制API
[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALMotionProxy::**angleInterpolation**`([constAL::ALValue&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue) *names*, [const AL::ALValue&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue) *angleLists*, [const AL::ALValue&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue) *timeLists*, [const bool&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#b) *isAbsolute*)

将一个或多个关节以某一角度定时运动。

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALMotionProxy::**angleInterpolationWithSpeed**`([constAL::ALValue&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue)*names*, [const AL::ALValue&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue) *targetAngles*, [const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float)*maxSpeedFraction*)

将一个或多个关节以某一角度最大速度运动。

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALMotionProxy::**setAngles**`([const AL::ALValue&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue) *names*, [const AL::ALValue&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue) *angles*, [const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *fractionMaxSpeed*)

设置关节的角度。

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALMotionProxy::**changeAngles**`([constAL::ALValue&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue) *names*, [const AL::ALValue&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue) *changes*, [const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *fractionMaxSpeed*)

改变关节的角度。

[std::vector](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#std::vector:float:) `ALMotionProxy::**getAngles**`([constAL::ALValue&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue)*names*, [const bool&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#b) *useSensors*)

获取关节的角度。

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALMotionProxy::**closeHand**`([const std::string&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss) *handName*)

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALMotionProxy::**openHand**`([const std::string&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss) *handName*)

关闭和打开手。
  1. 运动控制API
[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALMotionProxy::**move**`([const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *x*, [const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float)*y*, [const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *theta*) 

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALMotionProxy::**move**`([const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *x*, [const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float)*y*, [const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *theta*, [const AL::ALValue](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue) *moveConfig*)

给定x,y方向的移动,具有移动配置。

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALMotionProxy::**moveToward**`([const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *x*, [const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *y*, [const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *theta*)

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALMotionProxy::**moveToward**`([constfloat&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *x*, [constfloat&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *y*, [const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *theta*, [const AL::ALValue](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue)*moveConfig*)

给定x,y使机器人归一化的移动,具有移动配置

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALMotionProxy::**setWalkTargetVelocity**`([const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *x*, [const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *y*, [const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *theta*, [const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *frequency*)

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALMotionProxy::**setWalkTargetVelocity**`([const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *x*, [const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *y*, [const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *theta*, [const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *frequency*, [const AL::ALValue&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue) *feetGaitConfig*)

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALMotionProxy::**setWalkTargetVelocity**`([const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *x*, [const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *y*, [const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *theta*, [const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *frequency*, [const AL::ALValue&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue)*leftFootGaitConfig*, [const AL::ALValue&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue)*rightFootGaitConfig*)

三个重载函数,以移动速度行走。

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALMotionProxy::**moveTo**`([const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *x*, [const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *y*, [const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *theta*)

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALMotionProxy::**moveTo**`([const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *x*, [const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *y*, [const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *theta*, [const AL::ALValue&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue)*moveConfig*)                              ,机器人在地面以给定的x,y的角度移动,具有移动配置。

 

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALMotionProxy::**moveTo**`([const AL::ALValue&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue)*controlPoints*)

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALMotionProxy::**moveTo**`([const AL::ALValue&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue)*controlPoints*, [const AL::ALValue&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue) *moveConfig*)

`ALMotionProxy::**moveTo**`([const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *x*, [const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *y*, [const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *theta*, [const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *pTime*)

使机器人相对于框架机器人在地面平面上移动到给定的姿态,同时通过具有自定义的移动配置的检查点。

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALMotionProxy::**walkTo**`([const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *x*, [const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *y*, [const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *theta*)

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALMotionProxy::**walkTo**`([const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *x*, [const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *y*, [const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *theta*, [const AL::ALValue&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue)*feetGaitConfig*)

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALMotionProxy::**walkTo**`([const AL::ALValue&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue)*controlPoints*)

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALMotionProxy::**walkTo**`([constAL::ALValue&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue)*controlPoints*, [const AL::ALValue&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue) *feetGaitConfig*)

四个重载与moveTo类似,用于行走。

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALMotionProxy::**setFootSteps**`([const std::vector&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#std::vector:ss:) *legName*, [const AL::ALValue&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue)*footSteps*, [const std::vector&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#std::vector:float:) *timeList*, [const bool&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#b) *clearExisting*)

在给定时间设置腿与另一腿之间的距离和角度。

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALMotionProxy::**setFootStepsWithSpeed**`([const std::vector&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#std::vector:ss:) *legName*, [const AL::ALValue&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue)*footSteps*, [conststd::vector&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#std::vector:float:) *fractionMaxSpeed*, [const bool&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#b) *clearExisting*)

以规定的最大速度设置。

[AL::ALValue](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue) `ALMotionProxy::**getFootSteps**`()

获取实际的步长向量。

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALMotionProxy::**moveInit**`()

初始化移动进程。                 [void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALMotionProxy::**waitUntilMoveIsFinished**`()                       等待行走任务的完成。

[bool](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#b) `ALMotionProxy::**moveIsActive**`()

判断是否在运动。

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALMotionProxy::**stopMove**`()

停止运动。

[AL::ALValue](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#AL::ALValue) `ALMotionProxy::**getMoveConfig**`([const std::string&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss) *config*)

获取移动的配置信息。

ALTextToSpeech

是NAO的ALTextToSpeech代理订阅模块,继承了ALModule的方法,通过调用ALTextToSpeech

模块的方法可以实现NAO语言方面的设置,该代理模块的方法和功能如下:

[std::vector](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#std::vector:ss:)`ALTextToSpeechProxy::**getAvailableLanguages**`()

获取当前安装在系统上的语言的列表。

[std::vector](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#std::vector:ss:)`ALTextToSpeechProxy::**getAvailableVoices**`()

获取当前安装在系统上的声音列表。

[std::string](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss) `ALTextToSpeechProxy::**getLanguage**`()

获取当前语言。

[float](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) `ALTextToSpeechProxy::**getParameter**`([const std::string&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss) *parameter*)

获取指定参数的值。

[std::string](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss) `ALTextToSpeechProxy::**getVoice**`()

获取当前声音。

[std::string](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss) `ALTextToSpeechProxy::**locale**`()

获取与机器人上当前语言集关联的区域设置。

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALTextToSpeechProxy::**say**`([const std::string&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss)*stringToSay*)

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALTextToSpeechProxy::**say**`([const std::string&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss)*stringToSay*, [const std::string&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss) *language*)

机器人用语言表达指定字符串。

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALTextToSpeechProxy::**setLanguage**`([const std::string&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss)*language*)

设置语言。

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALTextToSpeechProxy::**setLanguageDefaultVoice**`([const std::string&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss) *language*, [const std::string&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss) *voice*)

设置默认情况下使用指定语言。

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALTextToSpeechProxy::**setParameter**`([const std::string&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss)*parameter*, [const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *value*)

设置参数。

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALTextToSpeechProxy::**setVoice**`([const std::string&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss)*voiceID*)

设置声音。

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALTextToSpeechProxy::**stopAll**`()

停止所有任务。

ALRobotPosture

是NAO的ALRobotPosture代理订阅模块,继承了ALModule的方法,通过调用ALRobotPosture

模块的方法可以在NAO关节的调节和完成各种姿势的方法,该代理模块的方法和功能如下:

[std::vector](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#std::vector:ss:)`ALRobotPostureProxy::**getPostureList**`()

获取所有预定义姿势的向量。

[bool](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#b) `ALRobotPostureProxy::**goToPosture**`([const std::string](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss)*postureName*, [const float](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *speed*)

使机器人达到在参数中要求的预定义的姿态。

[bool](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#b) `ALRobotPostureProxy::**applyPosture**`([const std::string&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#ss)*postureName*, [const float&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#float) *speed*)

将机器人的所有关节设置为所要求的预定姿势的配置。

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALRobotPostureProxy::**stopMove**`()

停止当前的姿态。

[std::vector](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#std::vector:ss:)`ALRobotPostureProxy::**getPostureFamilyList**`()

获取当前的姿态名称。

[void](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#void) `ALRobotPostureProxy::**setMaxTryNumber**`([const int&](file:///F:/MyDownloads/所谓工具/NAO/share/doc/naoqi/stdtypes.html#i)*maxTryNumber*)

ALLandMarkDetection

该代理订阅模块用于机器人地标识别,主要的类是class **ALLandMarkDetectionProxy**