亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

NAO機器人學(xué)習(xí)小計

zzzmh / 1869人閱讀

摘要:性能和約束只在機器人端可用。機器人的中心在腳上,并且機器人的軀干是筆直向上的的。相對速度,范圍從一個布爾值,表明目標姿勢是否正確達到。在操控機器人時,使用這個方法以達到顯示出動作的效果。機器人可能需要使用者的幫助以達到這個姿勢。

NAO APIs

nao的接口全部以AL開頭,全部繼承自ALModule,它被包含在中。
下面是ALModule的主要methods。

ALModule APIs

namespace : AL

#include 

任務(wù)調(diào)度

ALModule::isRunning()
bool ALModule::isRunning(const int& id);
確定被一個‘post’創(chuàng)建的方法是否還在運行。(注:post可能類似于一個線程池管理員,方法的編號可能類似于線程號)。

params: id - 被post所返回的函數(shù)的編號
return: true表示該方法正在被執(zhí)行,false表示該方法沒有被執(zhí)行。

ALModule::wait()
bool ALModule::wait(const int& id, const int& timeour);
等待編號為id的方法執(zhí)行完畢。

params: id - 被post所返回的函數(shù)的編號
        timeout - ms為單位,表示
return: true表示該方法正在被執(zhí)行,false表示該方法沒有被執(zhí)行。

ALModule::stop()
void ALModule::stop(const int& id);
根據(jù)id停止相應(yīng)方法。比較提倡模塊開發(fā)人員實現(xiàn)這個接口,當模塊內(nèi)包含長時間執(zhí)行的方法,而又希望允許用戶打斷。

params: id - 被post返回的方法的編號
return:

ALModule::exit()
void ALModule::exit();
將這個模塊從父經(jīng)紀人(parent broker)中注銷。一旦這個方法被調(diào)用,這個模塊將不再可用。開發(fā)人員應(yīng)該在希望執(zhí)行徹底的關(guān)機任務(wù)時重寫這個方法。


——warning:
不建議在核心模塊(例如 ALMemory 或者 ALMotion)中存在別的模塊或者方法正在調(diào)用它們時使用。


Bound Methods - Introspection
(↑不太理解,字面翻譯是:綁定的方法-反思)

ALModule::getBrokerName()
std::string ALModule::getBrokerName();
獲取父經(jīng)紀人的名稱

return: 父經(jīng)紀人的名稱。

ALModule::getMethodList()
std::vectore ALModule::getMethodList();
獲取當前模塊的方法名稱列表。

return: 包含方法名稱的向量。

ALModule::getMethodHelp()
AL::ALValue ALModule::getMethodHelp(const std::string& methodName);
獲取一個方法的描述文檔。

params: methodName - 方法的名稱
return: 一個包含了方法的描述內(nèi)容的結(jié)構(gòu)體

注:
AL::ALValue [
    std::string methodName, 
    [ parameter, ... ]
    std::string returnName,
    std::string returnDescription
]

parameter:
[
    std::string parameterName,
    std::string parameterDescription
]

ALModule::getModuleHelp()
AL::ALValue ALModule::getModuleHelp();
獲取當前模塊的描述。

return: 一個包含模塊描述的結(jié)構(gòu)體。

注:
AL::ALValue
[
    std::string moduleDescription,
    [ moduleExample, ... ]
]

moduleExample:
[
    std::string language,
    std::string example
]

ALModule::getUsage()
std::string ALModule::stop(const std::string& methodName);
根據(jù)函數(shù)名稱返回該函數(shù)的用法。

params: methodName - 函數(shù)名稱。
return: 總結(jié)了該函數(shù)用法的字符串。

ALModule::ping()
bool ALModule::ping();
單純?yōu)榱藴y試連接的ping。永遠返回true

return: true

ALModule::version()
std::string ALModule::version();
返回模塊的版本

return: 模塊的版本信息字符串。

以上接口將作為公共接口存在于所有模塊中。


由于我們的項目以通信為主,因此我們優(yōu)先關(guān)注通信模塊ALConnectionManagerProxy

概覽:
ALConnectionManager提供管理網(wǎng)絡(luò)連接的方法。它包含了一些允許你連接或配置一個網(wǎng)絡(luò)的命令,并且也可以獲取網(wǎng)絡(luò)的屬性或者創(chuàng)建一個網(wǎng)絡(luò)。
ALConnectionManager支持的網(wǎng)絡(luò)包括:以太網(wǎng)、無線網(wǎng)和藍牙。
主要的特性包括:

列舉出所有可用的網(wǎng)路服務(wù)。

連接到一個網(wǎng)絡(luò)服務(wù)。

創(chuàng)建一個網(wǎng)絡(luò)服務(wù)(包括WiFi熱點以及藍牙個人局域網(wǎng)(Bluetooth PAN))。

列舉可用的網(wǎng)絡(luò)技術(shù)(WiFi、藍牙、以太網(wǎng))。

對一個網(wǎng)絡(luò)服務(wù)進行配置。

這個模塊提供網(wǎng)絡(luò)服務(wù)的一些有用的信息,比如WiFi連接的強度、現(xiàn)在的狀態(tài)、以及安全要求。

這個模塊通過事件機制來通知網(wǎng)絡(luò)的變化。

性能和約束:

ALConnectionManager只在機器人端可用。

暫時不支持WPA安全加密。

搜索可用wifi熱點的功能在熱點模式下不可用。

ALConnectionManager不處理藍牙設(shè)備的配對過程。

ALConnectionManager APIs

namespace : AL

#include 

連接管理模塊繼承自ALModule API。它也有自有的下列方法:

ALConnectionManagerProxy::state()
ALConnectionManagerProxy::services()
ALConnectionManagerProxy::technologies()
ALConnectionManagerProxy::service()
ALConnectionManagerProxy::connect()
ALConnectionManagerProxy::disconnect()
ALConnectionManagerProxy::forget()
ALConnectionManagerProxy::setServiceConfiguration()
ALConnectionManagerProxy::setServiceInput()
ALConnectionManagerProxy::scan()
ALConnectionManagerProxy::enableTethering()
ALConnectionManagerProxy::disableTethering()
ALConnectionManagerProxy::getTetheringEnable()
ALConnectionManagerProxy::tetheringName()
ALConnectionManagerProxy::tetheringPassphrase()
ALConnectionManagerProxy::countries()
ALConnectionManagerProxy::country()
ALConnectionManagerProxy::setCountry()
ALConnectionManagerProxy::interfaces()

ALConnectionManagerProxy::state()
std::string ALConnectionManagerProxy::state();
返回網(wǎng)絡(luò)連接的狀態(tài)(全局)??赡艿闹蛋ǎ?· "online" - 當有互聯(lián)網(wǎng)連接可用時。
· "ready" - 至少有一個設(shè)備被成功地連接
· "offline" - 目前沒有設(shè)備連接到nao

return: 全局的連接管理器狀態(tài)。

示例代碼:

#python 2.7
 
from naoqi import ALProxy

NAO_IP = "127.0.0.1"

alConnectionManager = ALProxy("ALConnectionManager", NAO_IP, 9559)

print "network state: " + alConnectionManager.state()

ALConnectionManagerProxy::scan()
std::string ALConnectionManagerProxy::state();
搜索臨近的網(wǎng)絡(luò)服務(wù)(包括所有可用的網(wǎng)絡(luò)技術(shù))??捎梅?wù)的列表會被刷新,并在稍后被顯示,這很有用。

ALConnectionManagerProxy::services()
AL::ALValue ALConnectionManagerProxy::services();
返回包含所有可用網(wǎng)絡(luò)服務(wù)的名稱以及屬性的列表。在此之前調(diào)用`ALConnectionManagerProxy::scan()`會更有用。

return: 一個ALValueNetworkInfo的數(shù)組。

示例代碼:

#列出所有可用的網(wǎng)絡(luò)服務(wù)

#coding=utf-8

from naoqi       import ALProxy

NAO_IP = "127.0.0.1"

alconnman = ALProxy("ALConnectionManager", NAO_IP, 9559)

#Scanning is required to update the services list
alconnman.scan()
services = alconnman.services()

for service in services:
    network = dict(service)
    if network["Name"] == "":
        print "{hidden} " + network["ServiceId"]
    else:
        print network["Name"] + " " + network["ServiceId"]

ALConnectionManagerProxy::service()
AL::ALValue ALConnectionManagerProxy::service(const std::string& serviceId);
返回一個指定的服務(wù)名稱的服務(wù)的網(wǎng)絡(luò)屬性。網(wǎng)絡(luò)信息NetworkInfo通過ALValue來表示。

params: serviceId - 希望獲得屬性的網(wǎng)絡(luò)服務(wù)名稱
return: 指定的服務(wù)名稱網(wǎng)絡(luò)的屬性。
throws: 該網(wǎng)絡(luò)服務(wù)不可用時,拋出ALError

示例代碼:

#獲得一個網(wǎng)絡(luò)服務(wù)的屬性
#coding=utf-8
from naoqi import ALProxy
import sys

NAO_IP = "127.0.0.1"

if len(sys.argv) != 2:
    print sys.argv[0] + " "
    sys.exit(1)

alconnman = ALProxy("ALConnectionManager", NAO_IP, 9559)

try:
  service = alconnman.service(sys.argv[1])
except Exception as e:
    print e.what()
    sys.exit(1)

service = dict(service)
print "Network Service: " + sys.argv[1]
for key, value in service.iteritems():
    print "	" + key + ": " + str(value)

ALConnectionManagerProxy::connect()
void ALConnectionManagerProxy::connect(const std::string& serviceId);
連接到一個網(wǎng)絡(luò)服務(wù)。

params: serviceId - 將要連接到的網(wǎng)絡(luò)的名稱
throws: 該網(wǎng)絡(luò)服務(wù)不可用時,拋出ALError

注意:

如果在連接到這個網(wǎng)絡(luò)時需要別的信息(比如需要登錄密碼,或者登錄隱藏網(wǎng)絡(luò)需要網(wǎng)絡(luò)名稱時),將會產(chǎn)生一個event。

See also

NetworkServiceInputRequired(), NetworkConnectStatus()

示例代碼:

#連接到一個網(wǎng)絡(luò)
from naoqi import ALProxy
import sys

NAO_IP = "127.0.0.1"

if len(sys.argv) != 2:
    print sys.argv[0] + " "
    sys.exit(1)

alconnman = ALProxy("ALConnectionManager", NAO_IP, 9559)

try:
    alconnman.connect(sys.argv[1])
except Exception as e:
    print e.what()
    sys.exit(1)

ALConnectionManagerProxy::disconnect()
void ALConnectionManagerProxy::disconnect(const std::string& serviceId);
斷開到一個網(wǎng)絡(luò)服務(wù)的連接。

params: serviceId - 將要斷開的網(wǎng)絡(luò)的名稱
throws: 該網(wǎng)絡(luò)服務(wù)不可用時,拋出ALError

示例代碼:

#斷開一個網(wǎng)絡(luò)連接
from naoqi import ALProxy
import sys

NAO_IP = "127.0.0.1"

if len(sys.argv) != 2:
    print sys.argv[0] + " "
    sys.exit(1)

alconnman = ALProxy("ALConnectionManager", NAO_IP, 9559)

try:
  alconnman.disconnect(sys.argv[1])
except Exception as e:
    print e.what()
    sys.exit(1)
ALConnectionManagerProxy::disconnect()
void ALConnectionManagerProxy::forget(const std::string& serviceId);
忘記一個偏好網(wǎng)絡(luò)。需要獲得網(wǎng)絡(luò)服務(wù)的名稱來忘記相關(guān)聯(lián)的信息。這還會使得這個網(wǎng)絡(luò)不再是偏好網(wǎng)絡(luò),并且不會被自動連接。

params: serviceId - 將要忘記的網(wǎng)絡(luò)的名稱
throws: 該網(wǎng)絡(luò)服務(wù)不可用時,拋出ALError

示例代碼:

#忘記一個網(wǎng)絡(luò)
from naoqi import ALProxy
import sys

NAO_IP = "127.0.0.1"

if len(sys.argv) != 2:
    print sys.argv[0] + " "
    sys.exit(1)

alconnman = ALProxy("ALConnectionManager", NAO_IP, 9559)

try:
  service = alconnman.forget(sys.argv[1])
except Exception as e:
    print e.what()
    sys.exit(1)

ALConnectionManagerProxy::setServiceConfiguration()
void ALConnectionManagerProxy::setServiceConfiguration(const AL::ALValue& configuration)
給定需要應(yīng)用的靜態(tài)網(wǎng)絡(luò)配置。以下屬性在靜態(tài)配置中是可用的:
· 是否自動連接
· 域名
· 域名服務(wù)器
· IPv4
· IPv6(實驗性的)

params: configuration - 一個將要被應(yīng)用網(wǎng)絡(luò)配置的包含了NetWorkInfo的ALValue。
throws: 當網(wǎng)絡(luò)服務(wù)不可用的時候拋出ALError
        當配置信息不合法時拋出ALError
        當網(wǎng)絡(luò)服務(wù)不需要配置時拋出ALError

See also
NetworkInfo

(未完)




ALRobotPosture模塊 概覽

暫時現(xiàn)在看看motion部分的模塊。ALRobotPosture模塊允許用戶將機器人定位到已經(jīng)定義好的姿勢。
可以選擇使用ALRobotPostureProxy::goToPosture()或者ALRobotPosture::applyPosture.

如果想要創(chuàng)建一個自動化的應(yīng)用,務(wù)必選擇ALRobotPostureProxy::goToPosture().

如果你僅僅希望在操控機器人時,迅速達到某個姿勢,可以選擇ALRobotPostureProxy::applyPosture,(你必須要協(xié)助機器人)。

這如何工作?

機器人會偵測到現(xiàn)在它正處于那種姿勢,然后計算出一個路徑,使得它可以從現(xiàn)在的姿勢變換到目標姿勢,然后執(zhí)行這條線路。

可能允許選擇姿勢變換的速度。

定義 姿勢

機器人的姿勢是一個獨特的,對他的關(guān)節(jié)和慣性傳感器的配置。
由于姿勢是由一組實數(shù)(比如說float)定義的,所以會有無數(shù)種姿勢。

預(yù)定義的姿勢

下面是預(yù)定義的姿勢列表:

蹲伏(Crouch)

仰面躺(LyingBack)

面向下趴著(LyingBelly)

正坐(Sit)

箕踞(SitRelax)

站立(Stand)

預(yù)行走站立(StandInit)

向前看齊(StandZero)

有一些姿勢(比如Sit或Lying)并不是對所有機器人都是可用的。

使用ALRobotPostureProxy::getPostureList()來獲取你的機器人上可用的預(yù)定義的姿勢列表。

姿勢族

由于姿勢的種類有無數(shù)種,姿勢被劃分為姿勢族,以是的姿勢更加容易理解。
以下是姿勢族列表:

使用ALRobotPostureProxy::getPostureFamilyList(),就可以知道你的機器人上有哪些可用的姿勢族。它一定是下面這個列表的子集。

Posture Family Description
Standing 機器人的中心在腳上,并且機器人的軀干是筆直向上的的。
Sitting 機器人的尾部接觸地面,并且軀干是筆直向上的。
SittingOnChair 機器人的尾部接觸一個高約10cm的椅子,并且軀干是筆直向上的。
LyingBelly 身體平展,并且面向下
LyingBack 身體平展,并且面向上
LyingLeft 身體平展,并且面向右側(cè)
LyingRight 身體平展,并且面向左側(cè)
Belly 面向下并且軀干懸空
Back 面向后并且軀干懸空
Left 膝蓋跪向左側(cè),并且手部著地
Right 膝蓋跪向右側(cè),并且手部著地

namespace:AL

方法列表

和別的模塊一樣,這個模塊繼承自ALModule API。它也有自有的下列方法。

class ALRobotPostureProxy

ALRobotPostureProxy::getPostureList()

ALRobotPostureProxy::getPosture()

ALRobotPostureProxy::goToPosture()

ALRobotPostureProxy::applyPosture()

ALRobotPostureProxy::stopMove()

ALRobotPostureProxy::getPostureFamily()

ALRobotPostureProxy::getPostureFamilyList()

ALRobotPostureProxy::setMaxTryNumber()

事件

PostureFamilyChanged()

PostureChanged()

方法 ALRobotPostureProxy::getPostureList()
std::vector ALRobotPostureProxy::getPostureList();
返回一個包含所有已經(jīng)定義姿勢的列表。

return: 包含所有已定義姿勢的向量

ALRobotPostureProxy::getPosture()
std::string ALRobotPostureProxy::getPosture()
返回現(xiàn)在的**預(yù)定義姿勢**名稱。如果現(xiàn)在的姿勢不是預(yù)定義姿勢,就會返回"Unknown".
return: 一個包含現(xiàn)在姿勢的名稱的字符串。
ALRobotPostureProxy::goToPoture()
bool ALRobotPostureProxy::gotoPosture(const std::string postureName, const float speed);
讓機器人變換到預(yù)定義的姿勢。速度可能是可以調(diào)節(jié)的。這個變化是“智能的”,它會從現(xiàn)在已有的開始姿勢,自動選擇每一步,以變換到目標姿勢。
這是一個會阻塞的函數(shù)調(diào)用。如果希望它不會阻塞線程,使用post。
params: postureName - 預(yù)定義的姿勢名稱字符串。
        speed - 相對速度,范圍從0.0 - 1.0
return: 一個布爾值,表明目標姿勢是否正確達到。

ALRobotPostureProxy::applyPosture()
bool ALRobotPostureProxy::applyPosture(const std::string& postureName, const float& speed);
將所有的預(yù)定義姿勢中提到的關(guān)節(jié)設(shè)置到定義中的狀態(tài)。
在操控機器人時,使用這個方法以達到顯示出動作的效果。請將他想象成一條姿勢變換的捷徑,假設(shè)這是你想要快速達到某一個姿勢。機器人可能需要使用者的幫助以達到這個姿勢。
這個方法的效果是立即的,并且其中沒有只能因素在里面。所以在設(shè)置姿勢時,請小心。比方說,如果機器人現(xiàn)在正坐著,你調(diào)用了applyPosture("StandInit", 1.0)。這對于機器人可能是非常危險的,如果你不幫助機器人站起來的話,它就會跌倒。
如果你想要機器人獨立地站起來,調(diào)用goToPosture().
這是一個會阻塞的函數(shù)調(diào)用。如果希望它不會阻塞線程,使用post。

params: postureName - 預(yù)定義的姿勢名稱字符串。
        speed - 相對速度,范圍從0.0 - 1.0
return: 一個布爾值,表明目標姿勢是否正確達到。

ALRobotPostureProxy::stopMove()
void ALRobotPostureProxy::stopMove();
停止當前的姿勢插補動作。

ALRobotPostureProxy::getPostureFamily()
std::string ALRobotPostureProxy::getPostureFamily();
返回姿勢族。

return: 返回當前的姿勢族名稱。

ALRobotPostureProxy::getPostureFamilyList()
std::vector ALRobotPostureProxy::getPostureFamilyList();
返回一個包含了所有預(yù)定義的姿勢族名稱的向量。

return: 一個包含了所有預(yù)定義姿勢族名稱的vector.

ALRobotPostureProxy::setMaxTryNumber(const int& maxTryNumber)
void ALRobotPostureProxy::setMaxTryNumber(const int& maxTryNumber);
設(shè)置當調(diào)用`ALRobotPostureProxy::goToPosture()`返回失敗之前,最大的嘗試次數(shù)。

params: maxTryNumber - 嘗試的次數(shù),默認值是3.
Event: "PostureFamilyChanged"
callback(std::string eventName, std::string PostureFamily, std::string subscriberIdentifier);
當姿勢族發(fā)生改變時,傳遞出姿勢族的名稱。
這個事件的更新頻率大約是一秒鐘。

Event: "PostureChanged"
callback(std::string eventName, std::string Posture, std::string subscriberIdentifier):
當姿勢發(fā)生改變時,傳遞出姿勢的名稱。
這個事件的更新頻率大約是一秒鐘。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/44181.html

相關(guān)文章

  • 神經(jīng)架構(gòu)優(yōu)化(NAO):新的神經(jīng)架構(gòu)搜索(NAS)算法

    摘要:有了我們的新方法,叫做神經(jīng)架構(gòu)優(yōu)化,我們利用基于梯度的方法在更緊密的空間中做優(yōu)化。表如下展示了不同卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)在圖片分類數(shù)據(jù)集上的表現(xiàn),這些架構(gòu)由不同算法生成。 如果你是一名深度學(xué)習(xí)實踐者,你可能發(fā)現(xiàn)自己經(jīng)常會遇到同一個關(guān)鍵問題:我應(yīng)該為現(xiàn)在的任務(wù)選擇哪種神經(jīng)網(wǎng)絡(luò)架構(gòu)?這個決定取決于多種因素以及很多其他問題的答案。我應(yīng)該給這一層選擇什么操作----卷積,深度可分卷積,或者較大池化?卷積層...

    ThreeWords 評論0 收藏0
  • 小計算大能量,新技術(shù)促使數(shù)據(jù)中心體量變小

    摘要:如今,數(shù)據(jù)中心是計算領(lǐng)域最大的參與者,為了能夠跟上互聯(lián)網(wǎng)經(jīng)濟指數(shù)增長,人們有必要了解未來的數(shù)據(jù)中心會是什么樣子。隨著技術(shù)發(fā)展允許小型計算單元處理大量的工作,因此這些規(guī)模較小的數(shù)據(jù)中心分布更廣泛的動機將變得非常明顯。如今,數(shù)據(jù)中心是計算領(lǐng)域最大的參與者,為了能夠跟上互聯(lián)網(wǎng)經(jīng)濟指數(shù)增長,人們有必要了解未來的數(shù)據(jù)中心會是什么樣子。多年來,人們一直認為大量的服務(wù)器將被安置在類似科幻小說的摩天大樓中。...

    Flink_China 評論0 收藏0
  • 12.16前端無障礙學(xué)習(xí)小計

    摘要:屏幕閱讀器的兩種方式讀角色名輕松識別的聲音一般,如果配置正確,屏幕閱讀器一般會有,,,控件的文字綁定放入標簽或標簽加入目標綁定目標交互控件的屬性是圖片的替代文本將圖片不需要的代替文本設(shè)置為空,將會從無障礙樹移除,從而跳過在合適的情況下,應(yīng)該 屏幕閱讀器的兩種方式:1.讀角色名;2.輕松識別的聲音 一般,如果配置正確,屏幕閱讀器一般會有Role,Name(lable),State,Val...

    Kerr1Gan 評論0 收藏0
  • 2019.1.21 canvas學(xué)習(xí)小計

    var c = document.querySelector(#drawing); var ctx = c.getContext(2d); var image = new Image(); image.onload = function() { ctx.drawImage(image, 0, 0); } image.src = images/palette.jpg; var makePixe...

    MangoGoing 評論0 收藏0
  • 2018.12.24 無障礙學(xué)習(xí)小計

    摘要:在中的規(guī)范,包括關(guān)于角色可以使用哪些元素和不使用哪些元素的指導(dǎo)英不啟用將網(wǎng)頁某個部分標記為,以便及時向用戶顯示更新內(nèi)容,而不是用戶瀏覽這部分網(wǎng)站時更新可能位于初始頁面加載中不同的屏幕閱讀器和輔助技術(shù)對不同更改的響應(yīng)不同,如果輔助技術(shù)不 ARIA 在 HTML 中的規(guī)范,包括關(guān)于 ARIA 角色可以使用哪些 HTML 元素和不使用哪些 HTML 元素的指導(dǎo) https://www.w3....

    Fundebug 評論0 收藏0

發(fā)表評論

0條評論

zzzmh

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<