国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

NAO機器人學習小計

zzzmh / 1748人閱讀

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

NAO APIs

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

ALModule APIs

namespace : AL

#include 

任務調度

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

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

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

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

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

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

ALModule::exit()
void ALModule::exit();
將這個模塊從父經紀人(parent broker)中注銷。一旦這個方法被調用,這個模塊將不再可用。開發人員應該在希望執行徹底的關機任務時重寫這個方法。


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


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

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

return: 父經紀人的名稱。

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

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

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

params: methodName - 方法的名稱
return: 一個包含了方法的描述內容的結構體

注:
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: 一個包含模塊描述的結構體。

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

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

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

params: methodName - 函數名稱。
return: 總結了該函數用法的字符串。

ALModule::ping()
bool ALModule::ping();
單純為了測試連接的ping。永遠返回true

return: true

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

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

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


由于我們的項目以通信為主,因此我們優先關注通信模塊ALConnectionManagerProxy

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

列舉出所有可用的網路服務。

連接到一個網絡服務。

創建一個網絡服務(包括WiFi熱點以及藍牙個人局域網(Bluetooth PAN))。

列舉可用的網絡技術(WiFi、藍牙、以太網)。

對一個網絡服務進行配置。

這個模塊提供網絡服務的一些有用的信息,比如WiFi連接的強度、現在的狀態、以及安全要求。

這個模塊通過事件機制來通知網絡的變化。

性能和約束:

ALConnectionManager只在機器人端可用。

暫時不支持WPA安全加密。

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

ALConnectionManager不處理藍牙設備的配對過程。

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();
返回網絡連接的狀態(全局)。可能的值包括:
· "online" - 當有互聯網連接可用時。
· "ready" - 至少有一個設備被成功地連接
· "offline" - 目前沒有設備連接到nao

return: 全局的連接管理器狀態。

示例代碼:

#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();
搜索臨近的網絡服務(包括所有可用的網絡技術)。可用服務的列表會被刷新,并在稍后被顯示,這很有用。

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

return: 一個ALValueNetworkInfo的數組。

示例代碼:

#列出所有可用的網絡服務

#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);
返回一個指定的服務名稱的服務的網絡屬性。網絡信息NetworkInfo通過ALValue來表示。

params: serviceId - 希望獲得屬性的網絡服務名稱
return: 指定的服務名稱網絡的屬性。
throws: 該網絡服務不可用時,拋出ALError

示例代碼:

#獲得一個網絡服務的屬性
#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);
連接到一個網絡服務。

params: serviceId - 將要連接到的網絡的名稱
throws: 該網絡服務不可用時,拋出ALError

注意:

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

See also

NetworkServiceInputRequired(), NetworkConnectStatus()

示例代碼:

#連接到一個網絡
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);
斷開到一個網絡服務的連接。

params: serviceId - 將要斷開的網絡的名稱
throws: 該網絡服務不可用時,拋出ALError

示例代碼:

#斷開一個網絡連接
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);
忘記一個偏好網絡。需要獲得網絡服務的名稱來忘記相關聯的信息。這還會使得這個網絡不再是偏好網絡,并且不會被自動連接。

params: serviceId - 將要忘記的網絡的名稱
throws: 該網絡服務不可用時,拋出ALError

示例代碼:

#忘記一個網絡
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)
給定需要應用的靜態網絡配置。以下屬性在靜態配置中是可用的:
· 是否自動連接
· 域名
· 域名服務器
· IPv4
· IPv6(實驗性的)

params: configuration - 一個將要被應用網絡配置的包含了NetWorkInfo的ALValue。
throws: 當網絡服務不可用的時候拋出ALError
        當配置信息不合法時拋出ALError
        當網絡服務不需要配置時拋出ALError

See also
NetworkInfo

(未完)




ALRobotPosture模塊 概覽

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

如果想要創建一個自動化的應用,務必選擇ALRobotPostureProxy::goToPosture().

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

這如何工作?

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

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

定義 姿勢

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

預定義的姿勢

下面是預定義的姿勢列表:

蹲伏(Crouch)

仰面躺(LyingBack)

面向下趴著(LyingBelly)

正坐(Sit)

箕踞(SitRelax)

站立(Stand)

預行走站立(StandInit)

向前看齊(StandZero)

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

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

姿勢族

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

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

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

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();
返回一個包含所有已經定義姿勢的列表。

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

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

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

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

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

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

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

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

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

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

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

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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44181.html

相關文章

  • 神經架構優化(NAO):新的神經架構搜索(NAS)算法

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

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

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

    Flink_China 評論0 收藏0
  • 12.16前端無障礙學習小計

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

    Kerr1Gan 評論0 收藏0
  • 2019.1.21 canvas學習小計

    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 無障礙學習小計

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

    Fundebug 評論0 收藏0

發表評論

0條評論

zzzmh

|高級講師

TA的文章

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