本發(fā)明屬于自動(dòng)控制和機(jī)器人領(lǐng)域,具體涉及一種可在基于ROS(Robot Operating System,機(jī)器人操作系統(tǒng))計(jì)算機(jī)上使用的模塊化機(jī)器人控制系統(tǒng)。
背景技術(shù):
機(jī)器人是一個(gè)集環(huán)境感知、動(dòng)態(tài)決策與規(guī)劃、行為控制與執(zhí)行等多功能于一體的綜合機(jī)電系統(tǒng),能自動(dòng)或半自動(dòng)執(zhí)行任務(wù)。目前機(jī)器人的功能需求不斷擴(kuò)大,單一的控制器控制整個(gè)機(jī)器人的運(yùn)行變得越加困難,多個(gè)模塊協(xié)同化控制機(jī)器人能大大提高機(jī)器人的控制性能。目前大部分的控制系統(tǒng)的無線網(wǎng)絡(luò)模塊著重于多機(jī)器人控制而非單個(gè)機(jī)器人的各個(gè)功能之間的使用,所涉及使用的ROS系統(tǒng),較多的是無線網(wǎng)絡(luò)通信,控制多機(jī)器人運(yùn)動(dòng)?,F(xiàn)有大部分單機(jī)器人模塊化的控制系統(tǒng)一般建立在一種有線的總線通信形式上,例如CAN總線,導(dǎo)致模塊只能安裝在機(jī)器人本體上;其次,如果想要對(duì)機(jī)器人遠(yuǎn)程控制,各個(gè)模塊數(shù)據(jù)必須通過一個(gè)無線模塊,并且將各個(gè)模塊數(shù)據(jù)統(tǒng)一發(fā)送,大大降低了各個(gè)模塊數(shù)據(jù)的使用效率和實(shí)時(shí)性。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種基于局域網(wǎng)的模塊化機(jī)器人控制系統(tǒng),實(shí)現(xiàn)將任意數(shù)量的基于ROS操作系統(tǒng)的控制器通過有線或者無線局域網(wǎng)方式建立成一種整體的機(jī)器人控制系統(tǒng),在該系統(tǒng)下,還可以形成多種局域網(wǎng)結(jié)構(gòu)的模塊化控制。本發(fā)明可用于輪式機(jī)器人、足式機(jī)器人等常見多功能機(jī)器人。
本發(fā)明所述基于局域網(wǎng)的模塊化機(jī)器人控制系統(tǒng)包括主控模塊、擴(kuò)展功能模塊、局域網(wǎng)和遠(yuǎn)程控制模塊。在機(jī)器人本體上安裝有路由器,建立其局域網(wǎng),實(shí)現(xiàn)局域網(wǎng)內(nèi)數(shù)據(jù)的傳輸。主控模塊、各擴(kuò)展功能模塊以及遠(yuǎn)程控制模塊通過局域網(wǎng)進(jìn)行數(shù)據(jù)傳輸。
主控模塊安裝于機(jī)器人本體,通過有線網(wǎng)線的方式和路由器相連。安裝在機(jī)器人本體上的擴(kuò)展功能模塊,通過有線網(wǎng)線的方式和路由器相連。不安裝在機(jī)器人本體上的擴(kuò)展功能模塊,通過無線網(wǎng)絡(luò)連接到局域網(wǎng)內(nèi)。遠(yuǎn)程控制模塊過無線網(wǎng)絡(luò)連接到局域網(wǎng)。
所述遠(yuǎn)程控制模塊通過局域網(wǎng)發(fā)送主控指令給主控模塊,發(fā)送控制指令給擴(kuò)展功能模塊;所述擴(kuò)展功能模塊解析控制指令并進(jìn)行相應(yīng)的擴(kuò)展功能運(yùn)算,產(chǎn)生實(shí)時(shí)的主控指令發(fā)送給主控模塊,或產(chǎn)生實(shí)時(shí)的控制指令發(fā)送給其他擴(kuò)展功能模塊;所述主控模塊解析主控指令,將當(dāng)前無法執(zhí)行的指令舍棄并且返回錯(cuò)誤代碼,將可執(zhí)行主控指令的內(nèi)容劃分相應(yīng)的指令優(yōu)先級(jí),在同時(shí)收到不同可執(zhí)行的主控指令下,只執(zhí)行優(yōu)先級(jí)最高的指令,從而舍棄其他指令。
相對(duì)于現(xiàn)有技術(shù),本發(fā)明的優(yōu)點(diǎn)和積極效果在于:
(1)本發(fā)明基于局域網(wǎng)的思想,改變了較為簡(jiǎn)單地機(jī)器人系統(tǒng),適合現(xiàn)有復(fù)雜功能的機(jī)器人系統(tǒng)?;诰钟蚓W(wǎng)的基本構(gòu)架下,可以任意改變機(jī)器人的功能模塊和傳感器模塊,而不破壞原有的機(jī)器人系統(tǒng),大大提高了系統(tǒng)的通用性和模塊可替換性。
(2)本發(fā)明基于局域網(wǎng)的思想,在各個(gè)模塊使用了有線網(wǎng)絡(luò)的連接方式,大大提高了各個(gè)模塊之間的通信效率和穩(wěn)定性。由于使用的路由器,保證了遠(yuǎn)程控制端無線網(wǎng)絡(luò)的穩(wěn)定性和較為遠(yuǎn)距離通信的能力。
(3)本發(fā)明基于局域網(wǎng)的思想,可以根據(jù)機(jī)器人作業(yè)的需求建立不同的模塊之間的結(jié)構(gòu)構(gòu)架,適用于更多種類的機(jī)器人,對(duì)多功能機(jī)器人的各個(gè)模塊之間可以更好地協(xié)調(diào)作業(yè)。
(4)本發(fā)明所使用的底層都是現(xiàn)有的開源的ROS系統(tǒng),移植性好。
(5)對(duì)于不同的機(jī)器人,只要其系統(tǒng)按照本發(fā)明所述框架去設(shè)計(jì),即使具體實(shí)現(xiàn)不同,只需創(chuàng)建相應(yīng)的配置,即可采用同一客戶端去控制,因此本發(fā)明為實(shí)現(xiàn)機(jī)器人控制系統(tǒng)提供了一種解決方案。
附圖說明
圖1是本發(fā)明基于局域網(wǎng)的模塊化機(jī)器人控制系統(tǒng)的硬件連接的一個(gè)實(shí)例圖;
圖2是本發(fā)明基于局域網(wǎng)的模塊化機(jī)器人控制系統(tǒng)的軟件功能模塊通信示意圖;
圖3是本發(fā)明實(shí)施例所提供的各模塊的控制流程示意圖;
圖4是本發(fā)明實(shí)施例所提供的各模塊的分層主從結(jié)構(gòu)示意圖;
圖5是本發(fā)明實(shí)施例所提供的各模塊的星型結(jié)構(gòu)示意圖;
圖6是本發(fā)明實(shí)施例所提供的各模塊的復(fù)合分層結(jié)構(gòu)示意圖;
圖7是本發(fā)明所實(shí)施例提供的具體應(yīng)用在六足機(jī)器人的主程序框架示意圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例來說明本發(fā)明技術(shù)方案的實(shí)現(xiàn)。
本發(fā)明實(shí)施例實(shí)現(xiàn)的一種基于局域網(wǎng)的模塊化機(jī)器人控制系統(tǒng)中,所有的控制板使用的操作系統(tǒng)均為Ubuntu12.04版本,系統(tǒng)是基于Hydro的ROS版本,所用的集成開發(fā)環(huán)境是QT4。所述的基于局域網(wǎng)的模塊化機(jī)器人控制系統(tǒng)包括主控模塊、擴(kuò)展功能模塊、局域網(wǎng)和遠(yuǎn)程控制模塊。設(shè)擴(kuò)展功能模塊有N個(gè),N為正整數(shù)。
如圖1所示,在機(jī)器人本體上安裝有路由器,用于建立起局域網(wǎng),實(shí)現(xiàn)局域網(wǎng)內(nèi)數(shù)據(jù)的傳輸。如圖2所示,主控模塊、N個(gè)擴(kuò)展功能模塊和遠(yuǎn)程控制模塊通過局域網(wǎng)進(jìn)行通信。
主控模塊位于機(jī)器人本體,主控模塊的電路板通過有線網(wǎng)線與路由器連接。主控模塊運(yùn)行ROS系統(tǒng)內(nèi)核和主控制程序。擴(kuò)展功能模塊位于機(jī)器人本體時(shí),擴(kuò)展功能模塊的電路板通過有線網(wǎng)線與路由器連接。路由器通過無線網(wǎng)絡(luò)與遠(yuǎn)程控制模塊通信。位于機(jī)器人本體的擴(kuò)展功能模塊,可以實(shí)現(xiàn)的是一種具體的任務(wù),比如是導(dǎo)航定位模塊,手勢(shì)識(shí)別模塊,人機(jī)交互功能等。擴(kuò)展功能模塊不安裝在機(jī)器人本地時(shí),通過無線網(wǎng)絡(luò)連接到局域網(wǎng)內(nèi)。擴(kuò)展功能模塊可以是一種實(shí)現(xiàn)某種功能的算法或者運(yùn)算,例如是機(jī)器人穩(wěn)定裕度運(yùn)算模塊、大數(shù)據(jù)的云端運(yùn)算、最優(yōu)化控制模塊等,機(jī)器人工作可以根據(jù)功能需求進(jìn)行不同擴(kuò)展功能模塊的使用,實(shí)現(xiàn)機(jī)器人的控制運(yùn)動(dòng)。
在主控模塊中,運(yùn)行ROS內(nèi)核并且局域網(wǎng)的網(wǎng)關(guān)為主控模塊,保證整個(gè)局域網(wǎng)的ROS系統(tǒng)和通信機(jī)制正常運(yùn)行。主控模塊解析主控指令,協(xié)調(diào)各個(gè)擴(kuò)展功能模塊以最終決定機(jī)器人的實(shí)際運(yùn)動(dòng),控制電機(jī)或者舵機(jī)進(jìn)行運(yùn)動(dòng),完成作業(yè)。主控模塊主要有命令分析模塊、主程序執(zhí)行模塊和狀態(tài)發(fā)布模塊。命令分析模塊只針對(duì)局域網(wǎng)內(nèi)主控指令進(jìn)行解析,判斷是否可以執(zhí)行,并且返回執(zhí)行結(jié)果,命令分析模塊在主程序中為中斷式的接受指令。主程序執(zhí)行模塊主要根據(jù)主控指令進(jìn)行機(jī)器人的運(yùn)動(dòng)學(xué)正反解的運(yùn)算,機(jī)器人機(jī)身整體運(yùn)動(dòng)的控制規(guī)劃,發(fā)送電機(jī)或舵機(jī)的控制指令,判斷機(jī)器人狀態(tài)等基礎(chǔ)功能。狀態(tài)發(fā)布模塊主要將機(jī)器人的各個(gè)狀態(tài)通過廣播的方式發(fā)送出去,各個(gè)狀態(tài)包括機(jī)器人的數(shù)據(jù)參數(shù)和機(jī)器人的錯(cuò)誤狀態(tài)數(shù)據(jù),在局域網(wǎng)內(nèi)共享機(jī)器人狀態(tài)數(shù)據(jù)。機(jī)器人本體通過所載傳感器,獲取機(jī)器人本體與環(huán)境信息。主程序執(zhí)行模塊和狀態(tài)發(fā)布模塊為實(shí)時(shí)運(yùn)行。機(jī)器人可搭載攝像頭、麥克風(fēng)、氣壓計(jì)、高度計(jì)、溫度計(jì)等采集環(huán)境信息,搭載GPS、IMU(慣性導(dǎo)航單元)、加速度計(jì)等獲取機(jī)器人本體各個(gè)狀態(tài)信息。主控模塊解析主控指令,將當(dāng)前無法執(zhí)行的指令舍棄并且返回錯(cuò)誤代碼,將可執(zhí)行主控指令的內(nèi)容劃分相應(yīng)的指令優(yōu)先級(jí),在同時(shí)收到不同可執(zhí)行的主控指令下,只執(zhí)行優(yōu)先級(jí)最高的指令,從而舍棄其他指令。
擴(kuò)展功能模塊可以實(shí)現(xiàn)機(jī)器人的擴(kuò)展性功能要求,可以通過有線的方式直接安裝在機(jī)器人本體上,也可以通過無線的方式遠(yuǎn)程控制運(yùn)算,對(duì)于多功能機(jī)器人,它可以是導(dǎo)航定位功能、人機(jī)交互功能、最優(yōu)化算法功能、自適應(yīng)算法等功能。它主要有狀態(tài)接收模塊,命令分析模塊,主程序執(zhí)行模塊,命令發(fā)布模塊,以及狀態(tài)發(fā)布模塊。狀態(tài)接收模塊主要接收機(jī)器人本體和其他擴(kuò)展功能模塊運(yùn)算的狀態(tài),以便于本擴(kuò)展功能模塊的運(yùn)算;命令分析模塊只要針對(duì)局域網(wǎng)內(nèi)對(duì)本模塊控制指令進(jìn)行解析,并且分析是否可以執(zhí)行;主程序執(zhí)行模塊主要根據(jù)指令對(duì)機(jī)器人進(jìn)行擴(kuò)展的功能運(yùn)算,并且產(chǎn)生實(shí)時(shí)的主控指令或者其他擴(kuò)展模塊的控制指令;命令發(fā)布模塊主要將產(chǎn)生的實(shí)時(shí)產(chǎn)生的控制指令通過局域網(wǎng)發(fā)送出去;狀態(tài)發(fā)布模塊主要將機(jī)器人的功能運(yùn)算結(jié)果和狀態(tài)通過廣播的方式發(fā)送出去。
遠(yuǎn)程控制模塊主要有狀態(tài)接收模塊,模擬仿真模塊,主程序執(zhí)行模塊,命令發(fā)布模塊,人機(jī)交互模塊。狀態(tài)接收模塊主要接收機(jī)器人本體和各個(gè)擴(kuò)展功能模塊的狀態(tài),包括它們的錯(cuò)誤狀態(tài)信息,以便于顯示;模擬仿真模塊通過接收到的數(shù)據(jù),可以通過ROS的RVIZ仿真模塊進(jìn)行真實(shí)仿真或者虛擬仿真,可以在遠(yuǎn)程端對(duì)機(jī)器人的3D狀態(tài)有較為清晰的顯示;主程序執(zhí)行模塊主要對(duì)人機(jī)交互模塊接收的一些命令和顯示進(jìn)行處理,產(chǎn)生實(shí)時(shí)的主控指令或者擴(kuò)展功能的控制指令;人機(jī)交互模塊主要接收人的行為指令,較為簡(jiǎn)單地方式就是普通的按鍵控制界面;命令發(fā)布模塊主要將產(chǎn)生的實(shí)時(shí)的主控指令或者控制指令發(fā)送出去。
如圖3所示,主控模塊、擴(kuò)展功能模塊和遠(yuǎn)程控制模塊所涉及的命令分析模塊、狀態(tài)接收模塊、主程序執(zhí)行模塊、命令發(fā)布模塊、狀態(tài)發(fā)布模塊中的流程。其中主控模塊、擴(kuò)展功能模塊和遠(yuǎn)程控制模塊中的命令分析模塊均為單獨(dú)的中斷程序,針對(duì)所有的指令進(jìn)行分析解析最終得出一個(gè)可執(zhí)行的指令。擴(kuò)展功能模塊和遠(yuǎn)程控制模塊中的狀態(tài)接收模塊均為單獨(dú)的中斷程序,針對(duì)所有的接受狀態(tài)存入全局變量中,準(zhǔn)備給主程序執(zhí)行模塊使用。擴(kuò)展功能模塊中的主程序執(zhí)行模塊、命令發(fā)布模塊和狀態(tài)發(fā)布模塊為順序執(zhí)行,如圖3中的最右側(cè)圖,在主程序執(zhí)行模塊運(yùn)行計(jì)算出結(jié)果后,針對(duì)其他模塊發(fā)布命令和狀態(tài)。主控模塊的主程序執(zhí)行模塊和狀態(tài)發(fā)布模塊為順序執(zhí)行,流程為圖3中的最右側(cè)圖中對(duì)應(yīng)模塊。遠(yuǎn)程控制模塊的主程序執(zhí)行模塊和命令發(fā)布模塊為順序執(zhí)行,流程為圖3中的最右側(cè)圖中對(duì)應(yīng)模塊。
局域網(wǎng)可以采用主控模塊和路由器兩種方式建立。在使用主控模塊建立局域網(wǎng)的模塊的方式下,可以使用主控模塊的無線網(wǎng)卡建立熱點(diǎn)和主控模塊本身的有線網(wǎng)口建立局域網(wǎng)。此方式建立的局域網(wǎng)由于受到主控模塊功率和接口等影響只能有一個(gè)擴(kuò)展功能模塊使用有線連接,并且不需要增加局域網(wǎng)模塊建立的設(shè)備,簡(jiǎn)單可行,所以此方式適合小型并且功能簡(jiǎn)單的機(jī)器人。對(duì)于使用無線網(wǎng)卡的方式,需要將有線連接的局域網(wǎng)建立成無線網(wǎng)卡形成的無線網(wǎng)的子網(wǎng),并且需要將網(wǎng)絡(luò)的搜索IP地址包含兩個(gè)網(wǎng)絡(luò)的IP地址,具體實(shí)施方案需要將有線網(wǎng)的DNS設(shè)立成無線網(wǎng)卡的IP地址,并且主控板上無線網(wǎng)卡和有線網(wǎng)絡(luò)的IP必須不相同。在使用路由器建立局域網(wǎng)模塊的方式下,可以將主控模塊連接到路由上建立局域網(wǎng),由于路由的功率和接口的能力,在這種方式下遠(yuǎn)程控制端的無線連接更加穩(wěn)定,可以接入的功能模塊可以更多,因此這個(gè)方法更加適合大型并且復(fù)雜的機(jī)器人。局域網(wǎng)內(nèi)的各個(gè)模塊具有唯一的IP地址,在通信過程中利用IP地址可以進(jìn)行指定的指令發(fā)送。在具體實(shí)施時(shí)候,需要將路由的DNS設(shè)立為主控運(yùn)行的ROS的IP地址。
本發(fā)明基于局域網(wǎng)功能模塊的特點(diǎn),可以根據(jù)實(shí)際需求形成多種物理拓?fù)浣Y(jié)構(gòu)。例如采用分層主從結(jié)構(gòu)、星型結(jié)構(gòu)、復(fù)合分層結(jié)構(gòu)等。
如圖4所示,為分層主從結(jié)構(gòu),根據(jù)功能需求,可以從上層的遠(yuǎn)程控制模塊經(jīng)過分層的各個(gè)擴(kuò)展功能模塊最終控制主控模塊。在此結(jié)構(gòu)中,最上層的擴(kuò)展功能模塊通過無線連接到遠(yuǎn)程控制模塊,最下層的擴(kuò)展功能模塊通過有線網(wǎng)絡(luò)與主控模塊連接,相鄰上下層的擴(kuò)展功能模塊通過有線網(wǎng)線連接。各個(gè)擴(kuò)展功能模塊功能明確,每層的擴(kuò)展功能模塊可以通過下層的擴(kuò)展功能模塊的狀態(tài),進(jìn)行錯(cuò)誤識(shí)別,形成多層錯(cuò)誤監(jiān)測(cè)機(jī)制,可以有效地提高執(zhí)行的成功率。由于機(jī)器人本體的各個(gè)擴(kuò)展功能模塊是有線連接到局域網(wǎng),所以傳輸容錯(cuò)率底,適用于較為重要的機(jī)器人安全作業(yè)中。
如圖5所示,為星型結(jié)構(gòu),各個(gè)擴(kuò)展功能模塊和主控模塊都分別通過無線網(wǎng)絡(luò)連接到遠(yuǎn)程控制模塊,可以同時(shí)使用多個(gè)擴(kuò)展功能模塊同時(shí)運(yùn)行,大大提高了運(yùn)行效率,能夠更好地協(xié)調(diào)各個(gè)模塊的工作,實(shí)現(xiàn)了效益最大化的運(yùn)作,并且一個(gè)擴(kuò)展功能模塊發(fā)生故障不會(huì)影響整個(gè)機(jī)器人的工作。在這種模式下,機(jī)器人的復(fù)雜算法可以使用多個(gè)芯片同時(shí)運(yùn)算,可以大大提高運(yùn)算效率,這種結(jié)構(gòu)適用于高效率需求或者算法復(fù)雜的機(jī)器人中。
如圖6所示,為復(fù)合分層結(jié)構(gòu),擴(kuò)展功能模塊采用分層結(jié)構(gòu),最上層的擴(kuò)展功能模塊通過無線連接到遠(yuǎn)程控制模塊,最下層的擴(kuò)展功能模塊通過有線網(wǎng)絡(luò)與主控模塊連接,位于機(jī)器人本體的相鄰上下層的擴(kuò)展功能模塊通過有線網(wǎng)線連接,同時(shí),對(duì)于要求高效運(yùn)行的擴(kuò)展功能模塊,通過無線網(wǎng)絡(luò)連接到遠(yuǎn)程控制模塊。這種結(jié)構(gòu)既保留了分層結(jié)構(gòu)的穩(wěn)定性,又能夠協(xié)同各個(gè)模塊實(shí)現(xiàn)較為高效地運(yùn)行,在復(fù)合分層結(jié)構(gòu)中,各個(gè)擴(kuò)展功能模塊的算法編寫較為復(fù)雜,但是通信模塊不需要改變,錯(cuò)誤檢查較為嚴(yán)謹(jǐn),這個(gè)結(jié)構(gòu)更加適合具有較為復(fù)雜功能并且具有需要高效性的機(jī)器人。
本發(fā)明所述的基于局域網(wǎng)的模塊化機(jī)器人控制系統(tǒng)中,由于各個(gè)擴(kuò)展功能模塊和主控模塊都是有線或者無線的方式直接接入局域網(wǎng),所以可以實(shí)現(xiàn)機(jī)器人系統(tǒng)模塊化的組合和拆分,只需要對(duì)程序邏輯進(jìn)行修改就可以在不改變?cè)袡C(jī)器人的系統(tǒng)下加入或者消除一些功能模塊,大大提高的機(jī)器人的功能模塊的可替代性。由于各個(gè)模塊的狀態(tài)數(shù)據(jù)也是廣播的方式發(fā)送到局域網(wǎng)內(nèi),所以提高了信息的共享性,保證各個(gè)模塊都可以相互獲取需求的信息,而不增加過多的通信協(xié)議。
本發(fā)明所述的基于局域網(wǎng)的模塊化機(jī)器人控制系統(tǒng)中,主控模塊使用的操作系統(tǒng)為Ubuntu下的ROS操作系統(tǒng),由于ROS的開源性和可移植性好,下層通信使用的是網(wǎng)口通信,通信層使用的ROS的服務(wù)與消息功能,可以實(shí)現(xiàn)各種所需要的通信需求,無需再進(jìn)行通信底層的設(shè)計(jì)和編程。通信方式既可以是廣播形式的數(shù)據(jù)流,比如發(fā)布機(jī)器人的各個(gè)關(guān)節(jié)的狀態(tài),不需要在特定的模塊之間再進(jìn)行特定的通信,共用一個(gè)廣播消息,大大提高了信息的使用效率;也可以是一對(duì)一之間的特定通信,比如需要機(jī)器人的特定運(yùn)算功能,保證了數(shù)據(jù)的安全性。在ROS系統(tǒng)下可以使用QT等頁面化編程環(huán)境,遠(yuǎn)程控制模塊可以根據(jù)需求設(shè)計(jì),完全可以定制所需要的功能。
將本發(fā)明控制系統(tǒng)應(yīng)用于六足機(jī)器人中,按照本發(fā)明所述的系統(tǒng)框架,建立了復(fù)合分層結(jié)構(gòu)作為六足機(jī)器人的物理拓?fù)浣Y(jié)構(gòu)。以六足機(jī)器人為實(shí)例的系統(tǒng)中,主要有三塊單板機(jī)構(gòu)成,分別為主控模塊,導(dǎo)航定位模塊和遠(yuǎn)程控制模塊。主控模塊和導(dǎo)航定位模塊安裝于機(jī)器人上,導(dǎo)航定位模塊和主控模塊通過有線進(jìn)行連接,遠(yuǎn)程控制端通過無線和局域網(wǎng)相連。導(dǎo)航定位模塊還通過無線連接如局域網(wǎng)。整個(gè)控制系統(tǒng)的框架如圖7所示。
以六足機(jī)器人為實(shí)例的系統(tǒng)中,主控模塊的狀態(tài)消息定義為MainState,其內(nèi)容包括主控制狀態(tài)參數(shù),步態(tài)參數(shù),手臂控制參數(shù),關(guān)節(jié)角和機(jī)身參數(shù)。主控模塊的被控制指令定義為MainControl,其內(nèi)容包括控制指令,步態(tài)指令,手臂指令。導(dǎo)航定位模塊的狀態(tài)消息定義為SlamState,其內(nèi)容包括六足機(jī)器人的定位坐標(biāo)和周圍的地圖映射;導(dǎo)航定位的被控制指令定義為SlamControl,其內(nèi)容包括自主導(dǎo)航定位的目標(biāo)位置和手臂操作的參數(shù)。
以六足機(jī)器人為實(shí)例的系統(tǒng)中,主控模塊通過得到的MainControl指令和機(jī)器人的慣性導(dǎo)航傳感器,規(guī)劃?rùn)C(jī)器人的步態(tài)和手臂操作功能,進(jìn)行機(jī)器人的反解運(yùn)算,得出機(jī)器人的各個(gè)關(guān)節(jié)角度,發(fā)送控制舵機(jī)的指令使得機(jī)器人運(yùn)動(dòng),之后發(fā)送機(jī)器人各個(gè)關(guān)節(jié)狀態(tài)和機(jī)器人本體的位姿狀態(tài)。導(dǎo)航定位模塊通過機(jī)器人本體的雙目視覺和慣性導(dǎo)航傳感器,建立局部地圖,通過定位和路勁規(guī)劃計(jì)算出機(jī)身運(yùn)動(dòng)的離散化數(shù)據(jù),發(fā)送給主控模塊,通過主控模塊的狀態(tài)和主控模塊進(jìn)行交互。遠(yuǎn)程控制端,通過接受到MainState和SlamState實(shí)時(shí)監(jiān)控,并且可以根據(jù)遠(yuǎn)程控制需求進(jìn)行混合控制。
對(duì)于不同的機(jī)器人,只要其系統(tǒng)按照本發(fā)明所述框架去設(shè)計(jì),即使具體實(shí)現(xiàn)不同,只需創(chuàng)建相應(yīng)的配置,即可采用同一客戶端去控制,因此本發(fā)明為實(shí)現(xiàn)機(jī)器人控制系統(tǒng)提供了一種解決方案。