《鴻蒙機(jī)器人比賽》課件(上)_第1頁
《鴻蒙機(jī)器人比賽》課件(上)_第2頁
《鴻蒙機(jī)器人比賽》課件(上)_第3頁
《鴻蒙機(jī)器人比賽》課件(上)_第4頁
《鴻蒙機(jī)器人比賽》課件(上)_第5頁
已閱讀5頁,還剩194頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1.機(jī)器人介紹智能機(jī)器人概述本課目的:通過理論與實(shí)踐結(jié)合的教學(xué)形式,讓學(xué)生熟悉ROS機(jī)器人操作系統(tǒng),機(jī)器人的基本構(gòu)造、原理、制作流程,學(xué)會(huì)控制機(jī)器人,實(shí)現(xiàn)機(jī)器人移動(dòng)、視覺識(shí)別、導(dǎo)航等,促使學(xué)生對(duì)智能機(jī)器人設(shè)計(jì)有清晰認(rèn)識(shí)。內(nèi)容:1.1機(jī)器人名稱的由來1.2機(jī)器人的發(fā)展歷史1.3機(jī)器人的定義1.4機(jī)器人的應(yīng)用場(chǎng)景與分類1.5智能機(jī)器人組成

?NXROBO20232機(jī)器人名稱的由來機(jī)器人的英文名詞是Robot,Robot一詞最早出現(xiàn)在1920年捷克作家卡雷爾·卡佩克(KarelCapek)所寫的一個(gè)劇本中,這個(gè)劇本的名字為《Rossum’sUniversalRobots》,中文意思是“羅薩姆的萬能機(jī)器人”。劇中的人造勞動(dòng)者取名為Robota,捷克語的意思是“苦力”、“奴隸”。英語的Robot一詞就是由此而來的,以后世界各國都用Robot作為機(jī)器人的代名詞。?NXROBO20233捷克作家卡雷爾·卡佩克卡雷爾作品機(jī)器人的發(fā)展歷史從有記載以來,人類對(duì)機(jī)器人的幻想與追求已有3000多年的歷史,我們可以從古代的機(jī)械發(fā)明中窺探現(xiàn)代機(jī)器人的雛形,以下列舉機(jī)器人發(fā)展史上的幾個(gè)標(biāo)志性事件:

西周時(shí)期,我國的能工巧匠偃師研制出的歌舞藝人,是我國最早記載的機(jī)器人。

春秋后期,據(jù)《墨經(jīng)》記載,魯班曾制造過一只木鳥,能在空中飛行“三日不下”。

公元前2世紀(jì),古希臘人發(fā)明了最原始的機(jī)器人──太羅斯,它是以水、空氣和蒸汽壓力為動(dòng)力的會(huì)動(dòng)的青銅雕像,它可以自己開門,還可以借助蒸汽唱歌。

漢代時(shí)期,大科學(xué)家張衡不僅發(fā)明了地動(dòng)儀,而且發(fā)明了計(jì)里鼓車,計(jì)里鼓車每行一里,車上木人擊鼓一下,每行十里擊鐘一下。

后漢三國時(shí)期,蜀國丞相諸葛亮成功地創(chuàng)造出了木牛流馬,并用其在崎嶇山路中運(yùn)送軍糧,支援前方戰(zhàn)爭。?NXROBO20234機(jī)器人的發(fā)展歷史?NXROBO20235巧匠魯班制造木鳥計(jì)里鼓車機(jī)器人的發(fā)展歷史從有記載以來,人類對(duì)機(jī)器人的幻想與追求已有3000多年的歷史,我們可以從古代的機(jī)械發(fā)明中窺探現(xiàn)代機(jī)器人的雛形,以下列舉機(jī)器人發(fā)展史上的幾個(gè)標(biāo)志性事件:1662年,日本的竹田近江利用鐘表技術(shù)發(fā)明了自動(dòng)機(jī)器玩偶,并在大阪的道頓堀演出。1738年,法國天才技師杰克·戴·瓦克遜發(fā)明了一只機(jī)器鴨,它會(huì)嘎嘎叫,會(huì)游泳和喝水,還會(huì)進(jìn)食和排泄。1773年,著名的瑞士鐘表匠杰克·道羅斯和他的兒子利·路易·道羅斯制造出自動(dòng)書寫玩偶、自動(dòng)演奏玩偶等,他們創(chuàng)造的自動(dòng)玩偶是利用齒輪和發(fā)條原理而制成的,它們有的拿著畫筆和顏色繪畫,有的拿著鵝毛蘸墨水寫字,結(jié)構(gòu)巧妙,服裝華麗,在歐洲風(fēng)靡一時(shí)。1927年,美國西屋公司工程師溫茲利制造了第一個(gè)機(jī)器人電報(bào)箱,并在紐約舉行的世界博覽會(huì)上展出,它是一個(gè)電動(dòng)機(jī)器人,裝有無線電發(fā)報(bào)機(jī),可以回答一些問題,但該機(jī)器人不能走動(dòng)。?NXROBO20236美國西屋公司可以接聽電話、回答問題的“Televox”機(jī)器人的發(fā)展歷史隨著歷史的發(fā)展,工業(yè)化進(jìn)程,數(shù)字控制和計(jì)算機(jī)控制革命的出現(xiàn),進(jìn)入到現(xiàn)代工業(yè)機(jī)器人的時(shí)代

1938-1945年二戰(zhàn)期間由于核工業(yè)和軍事工業(yè)的發(fā)展,研制了“遙控操縱器”(Teleoperator)主要用于放射性材料的生產(chǎn)和處理過程。

1947年,對(duì)這種較簡單的機(jī)械裝置進(jìn)行了改進(jìn),采用電動(dòng)伺服方式,使其從動(dòng)部分能跟隨主動(dòng)部分運(yùn)動(dòng),稱為"主從機(jī)械手"(Master-SlaveManipulator)。

1949-1953年美國麻省理工學(xué)院開始研制數(shù)控銑床隨著先進(jìn)飛機(jī)制造的需要,美國麻省理工學(xué)院輻射實(shí)驗(yàn)室(MITRadiationLaboratory)開始研制數(shù)控銑床。

1953年研制成功能按照模型軌跡做切削動(dòng)作的多軸數(shù)控銑床。?NXROBO20237MIT研發(fā)出來數(shù)控銑床機(jī)器人的發(fā)展歷史1954年“可編程”“示教再現(xiàn)”機(jī)器人美國人GeorgeC.Devol設(shè)計(jì)制作了世界上第一臺(tái)機(jī)器人實(shí)驗(yàn)裝置,并發(fā)表了題為《適用于重復(fù)作業(yè)的通用性工業(yè)機(jī)器人》的文章。60年代機(jī)器人產(chǎn)品正式問世,機(jī)器人技術(shù)開始形成1960年,美國“聯(lián)合控制公司”(ConsolidatedControl)根據(jù)Devol的專利技術(shù),研制出第一臺(tái)真正意義上的工業(yè)機(jī)器人,并成立了Unimation公司,開始定型生產(chǎn)名為Unimate的工業(yè)機(jī)器人。兩年后,美國“機(jī)床與鑄造公司”(AMF)也生產(chǎn)了另一種可編程工業(yè)機(jī)器人Versatran。?NXROBO20238Unimate工業(yè)機(jī)器人機(jī)器人的發(fā)展歷史70年代機(jī)器人技術(shù)發(fā)展成為專門學(xué)科機(jī)器人產(chǎn)業(yè)得到蓬勃發(fā)展,機(jī)器人技術(shù)發(fā)展成為專門學(xué)科,稱之為機(jī)器人學(xué)(Robotics)。機(jī)器人的應(yīng)用領(lǐng)域進(jìn)一步擴(kuò)大,不同的應(yīng)用場(chǎng)所,導(dǎo)致了各種坐標(biāo)系統(tǒng)、各種結(jié)構(gòu)的機(jī)器人相繼出現(xiàn),大規(guī)模集成電路和計(jì)算機(jī)技術(shù)飛躍發(fā)展使機(jī)器人的控制性能大大提高,成本不斷下降。80年代開始進(jìn)入智能機(jī)器人研究階段80年代

不同結(jié)構(gòu)、不同控制方法和不同用途的工業(yè)機(jī)器人在工業(yè)發(fā)達(dá)國家真正進(jìn)入了實(shí)用化的普及階段。隨著傳感技術(shù)和智能技術(shù)的發(fā)展,開始進(jìn)入智能機(jī)器人研究階段。機(jī)器人視覺、觸覺、力覺等項(xiàng)研究和應(yīng)用,大大提高了機(jī)器人的適應(yīng)能力,擴(kuò)大了機(jī)器人的應(yīng)用范圍,促進(jìn)了機(jī)器人的智能化進(jìn)程。?NXROBO20239機(jī)器人的發(fā)展歷史總體而言,智能機(jī)器人發(fā)展歷史可以總結(jié)為以下四個(gè)階段:第一階段(1940-1960):實(shí)驗(yàn)階段。主要以電子技術(shù)為基礎(chǔ),制造出一些簡單功能的電子玩具或模型,并嘗試賦予它們一些基本邏輯或算法。第二階段(1960-1980):探索階段。主要以計(jì)算機(jī)技術(shù)為基礎(chǔ),開發(fā)出一些具有專家系統(tǒng)或自然語言處理等高級(jí)功能的軟件程序,并嘗試將其與硬件結(jié)合起來,形成初步的智能系統(tǒng)。第三階段(1980-2000):發(fā)展階段。主要以人工神經(jīng)網(wǎng)絡(luò)、遺傳算法、模糊邏輯等人工智能技術(shù)為基礎(chǔ),開發(fā)出一些具有自學(xué)習(xí)、自適應(yīng)、自組織等能力的智能系統(tǒng),并嘗試將其應(yīng)用于各個(gè)領(lǐng)域,如工業(yè)、醫(yī)療、教育等。第四階段(2000-至今):創(chuàng)新階段。主要以云計(jì)算、大數(shù)據(jù)、深度學(xué)習(xí)等新興技術(shù)為基礎(chǔ),開發(fā)出一些具有超強(qiáng)計(jì)算能力和數(shù)據(jù)處理能力的智能系統(tǒng),并嘗試將其與物聯(lián)網(wǎng)、機(jī)器人云等技術(shù)結(jié)合起來,形成更高級(jí)的智能機(jī)器人。?NXROBO202310機(jī)器人的定義?NXROBO202311機(jī)器人問世已有幾十年,機(jī)器人的定義仍然是仁者見仁,智者見智,沒有一個(gè)統(tǒng)一的意見。原因之一是機(jī)器人還在發(fā)展,新的機(jī)型,新的功能不斷涌現(xiàn)。同時(shí)由于機(jī)器人涉及到了人的概念,成為一個(gè)難以回答的哲學(xué)問題。就像機(jī)器人一詞最早誕生于科幻小說之中一樣,人們對(duì)機(jī)器人充滿了幻想。也許正是由于機(jī)器人定義的模糊,才給了人們充分的想象和創(chuàng)造空間。隨著機(jī)器人技術(shù)的飛速發(fā)展和信息時(shí)代的到來,機(jī)器人所涵蓋的內(nèi)容越來越豐富,機(jī)器人的定義也不斷充實(shí)和創(chuàng)新。下面給出一些有代表性的定義。國際和國外相關(guān)組織的定義:

國際標(biāo)準(zhǔn)化組織(ISO)的定義:機(jī)器人是一種自動(dòng)的、位置可控的、具有編程能力的多功能機(jī)械手,這種機(jī)械手具有幾個(gè)軸,能夠借助可編程序操作來處理各種材料、零件、工具和專用裝置,以執(zhí)行種種任務(wù)。

美國國家標(biāo)準(zhǔn)局(NBS)的定義:機(jī)器人是一種能夠進(jìn)行編程并在自動(dòng)控制下執(zhí)行某些操作和移動(dòng)作業(yè)任務(wù)的機(jī)械裝置。

美國機(jī)器人協(xié)會(huì)(RIA)的定義:機(jī)器人是一種用于移動(dòng)各種材料、零件、工具或?qū)S醚b置的,通過可編程序動(dòng)作來執(zhí)行種種任務(wù)的,并具有編程能力的多功能機(jī)械手。

日本工業(yè)機(jī)器人協(xié)會(huì)(JIRA)的定義:工業(yè)機(jī)器人是一種裝備有記憶裝置和末端執(zhí)行器的,能夠轉(zhuǎn)動(dòng)并通過自動(dòng)完成各種移動(dòng)來代替人類勞動(dòng)的通用機(jī)器。機(jī)器人的定義?NXROBO202312有關(guān)學(xué)者的定義:在1967年日本召開的第一屆機(jī)器人學(xué)術(shù)會(huì)議上提出了兩個(gè)有代表性的定義。森政弘與合田周平提出的定義:“機(jī)器人是一種具有移動(dòng)性、個(gè)體性、智能性、通用性、半機(jī)械半人性、自動(dòng)性、奴隸性等7個(gè)特征的柔性機(jī)器”。從這一定義出發(fā),森政弘又提出了用自動(dòng)性、智能性、個(gè)體性、半機(jī)械半人性、作業(yè)性、通用性、信息性、柔性、有限性、移動(dòng)性等10個(gè)特性來表示機(jī)器人的形象。日本早稻田大學(xué)加藤一朗(日本機(jī)器人之父)教授認(rèn)為:機(jī)器人是由能工作的手,能行動(dòng)的腳和有意識(shí)的頭腦組成的個(gè)體,同時(shí)具有非接觸傳感器(相當(dāng)于耳、目)、接觸傳感器(相當(dāng)于皮膚)、固有感及平衡感等感覺器官的能力。也有一些組織和學(xué)者針對(duì)不同形式的機(jī)器人分別給出具體的解釋和定義,而機(jī)器人則只作為一種總稱。例如,日本工業(yè)機(jī)器人協(xié)會(huì)(JIRA)列舉了6種型式的機(jī)器人:(1)手動(dòng)操縱器:人操縱的機(jī)械手,缺乏獨(dú)立性;(2)固定程序機(jī)器人:缺乏通用性;(3)可編程機(jī)器人:非伺服控制;(4)示教再現(xiàn)機(jī)器人:通用工業(yè)機(jī)器人;(5)數(shù)控機(jī)器人:由計(jì)算機(jī)控制的機(jī)器人;(6)智能機(jī)器人:具有智能行為的自律型機(jī)器人。機(jī)器人應(yīng)用場(chǎng)景與分類?NXROBO202313按照開發(fā)內(nèi)容和目的區(qū)分,可分為以下三類機(jī)器人:工業(yè)機(jī)器人(IndustrialRobot):如焊接、噴漆、裝配、搬運(yùn)機(jī)器人。服務(wù)機(jī)器人(TeleoperatorRobot):如家用、教育、安防、醫(yī)用、公共服務(wù)機(jī)器人。特種機(jī)器人(IntelligentRobot):如軍事應(yīng)用、極限作業(yè)、應(yīng)急救援機(jī)器人。工業(yè)機(jī)器人?NXROBO202314

工業(yè)機(jī)器人是面向工業(yè)領(lǐng)域的多關(guān)節(jié)機(jī)械手或多自由度的機(jī)器裝置,具有可編程、自動(dòng)控制、多用途等特性。如下圖工業(yè)機(jī)械臂,常在工廠中完成裝配,焊接,抓取等任務(wù),或在手術(shù)室中進(jìn)行手術(shù)操作。ABB機(jī)械臂工業(yè)機(jī)器人?NXROBO202315

搬運(yùn)機(jī)器人是可以進(jìn)行自動(dòng)化搬運(yùn)作業(yè)的工業(yè)機(jī)器人,如下圖所示。搬運(yùn)機(jī)器人可安裝不同的末端執(zhí)行器以完成各種不同形狀和狀態(tài)的工件搬運(yùn)工作,大大減輕了人類繁重的體力勞動(dòng)。物流自動(dòng)搬運(yùn)輪式機(jī)器人工業(yè)機(jī)器人?NXROBO202316

碼垛機(jī)器人在碼垛行業(yè)有著相當(dāng)廣泛的應(yīng)用。大大節(jié)省了勞動(dòng)力,節(jié)省空間。碼垛機(jī)器人運(yùn)作靈活精準(zhǔn)、快速高效、穩(wěn)定性高,作業(yè)效率高,如下圖所示。碼垛機(jī)器人服務(wù)機(jī)器人?NXROBO202317

服務(wù)機(jī)器人是除工業(yè)機(jī)器人之外的、用于非制造業(yè)并服務(wù)于人類的各種先進(jìn)機(jī)器人,主要包括個(gè)人/家用服務(wù)機(jī)器人和專業(yè)服務(wù)機(jī)器人。其中,個(gè)人/家用機(jī)器人主要包括:家庭作業(yè)機(jī)器人、教育機(jī)器人、娛樂休閑機(jī)器人、殘障輔助機(jī)器人、住宅安全和監(jiān)視機(jī)器人等;專業(yè)服務(wù)機(jī)器人主要包括:場(chǎng)地機(jī)器人、醫(yī)用機(jī)器人、物流用途機(jī)器人、專業(yè)清潔機(jī)器人、檢查和維護(hù)保養(yǎng)機(jī)器人、建筑機(jī)器人、水下機(jī)器人,以及國防、營救和安全應(yīng)用機(jī)器人等。教育機(jī)器人-SPARK家庭作業(yè)機(jī)器人餐廳營銷服務(wù)機(jī)器人四足機(jī)器狗服務(wù)機(jī)器人?NXROBO202318

桌面級(jí)協(xié)作機(jī)械臂,具有體積小,重量輕,靈活易部署、簡單易用、安全協(xié)作的特點(diǎn)。符合中小企業(yè)省空間,省成本,省人力,省時(shí)間,多樣化的自動(dòng)化生產(chǎn)需求。桌面級(jí)協(xié)助機(jī)械臂射手座協(xié)助機(jī)械臂特種機(jī)器人?NXROBO202319

特種機(jī)器人主要分為軍事應(yīng)用、極限作業(yè)、應(yīng)急救援機(jī)器人。其中軍事機(jī)器人是以完成預(yù)定的戰(zhàn)術(shù)或戰(zhàn)略任務(wù)為目標(biāo)、以智能化信息處理技術(shù)和通信技術(shù)為核心的智能化武器裝備。救援機(jī)器人則是為救援而采取先進(jìn)科學(xué)技術(shù)研制的機(jī)器人。消防救援機(jī)器人履帶式掃雷機(jī)器人特種機(jī)器人?NXROBO202320

水下機(jī)器人是一種工作于水中的極限作業(yè)機(jī)器人,水下環(huán)境惡劣危險(xiǎn),人的潛水深度有限,所以水下機(jī)器人已成為開發(fā)海洋的重要工具。水下機(jī)器人主要應(yīng)用于水下攝影,打撈救援,管道檢測(cè),漁場(chǎng)養(yǎng)殖,船舶檢測(cè)等等。水下機(jī)器人小型水下作業(yè)機(jī)器人特種機(jī)器人?NXROBO202321

無人駕駛飛機(jī)簡稱“無人機(jī)”(“UAV”),是利用無線電遙控設(shè)備和自備的程序控制裝置操縱的不載人飛行器。無人機(jī)可實(shí)現(xiàn)航拍攝影,電力巡檢,新聞報(bào)道,環(huán)境監(jiān)測(cè),快遞送貨,智慧農(nóng)業(yè)等等。無人機(jī)進(jìn)行噴灑與播撒智能機(jī)器人組成?NXROBO202322

智能機(jī)器人是一種自動(dòng)化的機(jī)器,指能夠在各類環(huán)境中自主地或交互地執(zhí)行各種擬人任務(wù)(anthropomorphictasks)的機(jī)器,具備形形色色的內(nèi)部信息傳感器和外部信息傳感器。從控制層面看,機(jī)器人可以分成四大部分,即執(zhí)行系統(tǒng),驅(qū)動(dòng)系統(tǒng),傳感系統(tǒng)與控制系統(tǒng),如圖所示。機(jī)器人的組成智能機(jī)器人組成?NXROBO202323

各部分之間的控制關(guān)系如圖所示。機(jī)器人四大組成部分之間的控制關(guān)系執(zhí)行機(jī)構(gòu)?NXROBO202324

執(zhí)行機(jī)構(gòu)是直接面向工作對(duì)象的機(jī)械裝置,相當(dāng)于人體的手與腳。根據(jù)工作對(duì)象的不同,適用的執(zhí)行機(jī)構(gòu)也各不相同。機(jī)械臂一般采用伺服電機(jī)作為運(yùn)動(dòng)執(zhí)行機(jī)構(gòu),組成各個(gè)關(guān)節(jié);常用的移動(dòng)機(jī)器人一般采用直流電機(jī)作為移動(dòng)執(zhí)行機(jī)構(gòu),在任務(wù)場(chǎng)景中進(jìn)行運(yùn)動(dòng)。伺服電機(jī)驅(qū)動(dòng)系統(tǒng)?NXROBO202325驅(qū)動(dòng)系統(tǒng)負(fù)責(zé)驅(qū)動(dòng)執(zhí)行機(jī)構(gòu),將控制系統(tǒng)下達(dá)的命令轉(zhuǎn)換成執(zhí)行機(jī)構(gòu)需要的信號(hào),以驅(qū)動(dòng)關(guān)節(jié)運(yùn)動(dòng),實(shí)現(xiàn)機(jī)器人的各種運(yùn)動(dòng),相當(dāng)于人體的肌肉和筋絡(luò)。機(jī)器人的驅(qū)動(dòng)系統(tǒng)主要分為電氣驅(qū)動(dòng),液壓驅(qū)動(dòng)和氣壓驅(qū)動(dòng)。不同的執(zhí)行機(jī)構(gòu)所使用的驅(qū)動(dòng)系統(tǒng)也各不相同。驅(qū)動(dòng)電動(dòng)機(jī)是智能機(jī)器人的基本驅(qū)動(dòng)器:機(jī)器人驅(qū)動(dòng)器的本質(zhì)問題是控制電動(dòng)機(jī),控制電動(dòng)機(jī)的轉(zhuǎn)數(shù)就可以控制機(jī)器人移動(dòng)的距離和方向、機(jī)械臂的彎曲度或移動(dòng)距離等,驅(qū)動(dòng)電動(dòng)機(jī)主要有步進(jìn)電動(dòng)機(jī)和伺服電動(dòng)機(jī)。步進(jìn)電動(dòng)機(jī)是通過給內(nèi)部多個(gè)線圈依次施加脈沖電流實(shí)現(xiàn)電動(dòng)機(jī)的連續(xù)轉(zhuǎn)動(dòng),改變脈沖的頻率即可改變電動(dòng)機(jī)的轉(zhuǎn)速,改變施加脈沖的順序即可改變電動(dòng)機(jī)的轉(zhuǎn)動(dòng)方向,實(shí)現(xiàn)機(jī)器人的位置控制。而伺服電動(dòng)機(jī)是一個(gè)連續(xù)轉(zhuǎn)動(dòng)的直流電機(jī),通過閉環(huán)反饋控制回路,以實(shí)現(xiàn)精確的位置控制。新型驅(qū)動(dòng)器可實(shí)現(xiàn)優(yōu)良的特色驅(qū)動(dòng)特性:靜電驅(qū)動(dòng)器可利用電荷間引力和排斥力的互相作用順序驅(qū)動(dòng)電極而產(chǎn)生平移或旋轉(zhuǎn);形狀記憶合金驅(qū)動(dòng)器由于具有形狀記憶效應(yīng),即力作用后會(huì)發(fā)生彈性變形;壓電效應(yīng)驅(qū)動(dòng)器在外力作用下不僅幾何尺寸會(huì)發(fā)生變化,而且內(nèi)部也會(huì)出現(xiàn)極化,當(dāng)外力消失時(shí),材料重新恢復(fù)到原來的狀態(tài),電場(chǎng)也隨即消失,因此稱為壓電效應(yīng);為了更好地模擬生物體的運(yùn)動(dòng)功能以應(yīng)用于智能機(jī)器人,目前已經(jīng)研制出了各種不同類型的人工肌肉。步進(jìn)電機(jī)執(zhí)行機(jī)構(gòu)?NXROBO202326

執(zhí)行機(jī)構(gòu)是直接面向工作對(duì)象的機(jī)械裝置,相當(dāng)于人體的手與腳。根據(jù)工作對(duì)象的不同,適用的執(zhí)行機(jī)構(gòu)也各不相同。機(jī)械臂一般采用伺服電機(jī)作為運(yùn)動(dòng)執(zhí)行機(jī)構(gòu),組成各個(gè)關(guān)節(jié);常用的移動(dòng)機(jī)器人一般采用直流電機(jī)作為移動(dòng)執(zhí)行機(jī)構(gòu),在任務(wù)場(chǎng)景中進(jìn)行運(yùn)動(dòng)。伺服電機(jī)傳感系統(tǒng)?NXROBO202327傳感系統(tǒng)負(fù)責(zé)信號(hào)的采集和反饋,包括內(nèi)部傳感系統(tǒng)與外部傳感系統(tǒng),相當(dāng)于人體的神經(jīng)和感官。內(nèi)部傳感系統(tǒng)包括編碼器、陀螺儀等,可以通過自身信號(hào)反饋檢測(cè)位姿狀態(tài);外部傳感系統(tǒng)包括攝像頭、紅外、雷達(dá)等,可以檢測(cè)機(jī)器人所處的外部環(huán)境信息、障礙物信息,并與內(nèi)部傳感器數(shù)據(jù)進(jìn)行融合,優(yōu)化位姿估計(jì)。內(nèi)部傳感器組?NXROBO202328完成機(jī)器人自身位置、速度、力度等實(shí)時(shí)測(cè)量和感知,為實(shí)現(xiàn)伺服控制提供依據(jù)。位置(位移)傳感器:感知機(jī)器人位置和位移狀態(tài)。當(dāng)傳感器感受到壓力,只要讀出關(guān)節(jié)編碼器的讀數(shù),就可以及時(shí)調(diào)整伺服控制的給定值,防止機(jī)器人出現(xiàn)劇烈的運(yùn)動(dòng)。速度和加速度傳感器:主要用于感知旋轉(zhuǎn)運(yùn)動(dòng)的速度,常用光電脈沖式轉(zhuǎn)速傳感器來實(shí)現(xiàn);加速度傳感器可用于測(cè)量機(jī)器人的動(dòng)態(tài)控制信號(hào),一般由速度測(cè)量進(jìn)行推演。主流的傳感器有應(yīng)力傳感器和振動(dòng)式加速度傳感器。力覺傳感器:主要用于測(cè)量兩個(gè)物體之間的作用力分量和力矩分量。主要有半導(dǎo)體型力覺傳感器、轉(zhuǎn)矩傳感器及基于弦振動(dòng)原理的力覺傳感器等。加速度器力覺傳感器增量型編碼器外部傳感器通過視覺、觸覺及聲覺等感知,實(shí)現(xiàn)智能機(jī)器人實(shí)時(shí)反映環(huán)境變化,自主調(diào)節(jié)自身行為的能力。視覺傳感器:機(jī)器視覺是智能機(jī)器人感知的主要方法,攝像機(jī)是機(jī)器視覺的主要載體。觸覺傳感器:用于感知?jiǎng)幼鲌?zhí)行器與對(duì)象的接觸及其程度;微型開關(guān)是觸覺傳感器的常用選擇,隔離式雙態(tài)接觸傳感器、矩陣傳感器、光反射觸覺傳感器等也是新發(fā)展的觸覺傳感器。聲覺傳感器:用于感受和解釋氣體(非接觸感受)、液體或固體(接觸感受)中的聲波。聲波傳感器可以從簡單的聲波存在檢測(cè)到復(fù)雜的聲波頻率分析,直到對(duì)連續(xù)自然語言中單獨(dú)語音和詞匯的辨別。滑覺傳感器:用于檢測(cè)物體的滑動(dòng)。當(dāng)要求智能機(jī)器人抓住特性未知的物體時(shí),必須確定最適當(dāng)?shù)奈樟χ?,所以要事先檢測(cè)出握力不夠時(shí)所產(chǎn)生的物體滑動(dòng)信號(hào)。目前已有基于光學(xué)和利用晶體接收器等不同原理的滑覺傳感器,后者的檢測(cè)靈敏度與滑動(dòng)方向無關(guān)。其他外傳感器:用于智能移動(dòng)機(jī)器人的距離感知的激光測(cè)距儀、聲納傳感器等距離傳感器;用于感知環(huán)境溫度的接觸式或非接觸式溫度傳感器;用于檢測(cè)物體的存在和測(cè)量距離的超聲波接近度傳感器等。?NXROBO202329usb攝像頭聲波傳感器控制系統(tǒng)?NXROBO202330控制系統(tǒng)實(shí)現(xiàn)機(jī)器人系統(tǒng)任務(wù)與信息的處理,輸出控制命令信號(hào),類似與人的大腦??刂葡到y(tǒng)的硬件基礎(chǔ)是中央處理器(CPU),軟件基礎(chǔ)是操作系統(tǒng)。本書所使用的Spark機(jī)器人,控制系統(tǒng)采用i5-11代英特爾CPU,并集成GPU和VPN的AINUC系列迷你電腦,預(yù)裝ROS機(jī)器人操作系統(tǒng),可以滿足絕大部分移動(dòng)平臺(tái)開發(fā)需要,實(shí)現(xiàn)關(guān)節(jié)控制、人機(jī)交互、系統(tǒng)監(jiān)督、算法計(jì)算等功能。IntelNUC11主機(jī)Spark機(jī)器人介紹本課程采用Spark機(jī)器人作為ROS教學(xué)的智能機(jī)器人平臺(tái)。Spark機(jī)器人包含移動(dòng)底盤、機(jī)械臂、計(jì)算主機(jī)、運(yùn)動(dòng)控制器、觸摸屏,以及激光雷達(dá)、深度相機(jī)等傳感器。平臺(tái)結(jié)構(gòu)靈活性高,擴(kuò)充性強(qiáng),可根據(jù)不同的應(yīng)用增強(qiáng)或調(diào)整所需模塊,通過一個(gè)平臺(tái)就能對(duì)大部分機(jī)器人應(yīng)用進(jìn)行實(shí)驗(yàn)。軟件例程豐富,并在線更新,讓開發(fā)者可以迅速驗(yàn)證自編寫程序。

?NXROBO202331Spark機(jī)器人介紹Spark機(jī)器人的主要硬件包括:計(jì)算主機(jī):IntelNUC主機(jī),安裝了Ubuntu操作系統(tǒng)和ROS(機(jī)器人操作系統(tǒng)),以及相關(guān)Demo源碼;底盤運(yùn)動(dòng)控制器:采用STM32單片機(jī),機(jī)械臂運(yùn)動(dòng)控制器采用ATmega2560單片機(jī);傳感器子系統(tǒng):主要有底盤的輪式編碼器與里程計(jì)、激光雷達(dá)、IMU、深度攝像頭、紅外墻檢和地檢、麥克風(fēng);人機(jī)交互子系統(tǒng);集成7寸的觸摸顯示屏;電源子系統(tǒng);包含一個(gè)15000mAH容量的電池,充電輸入為DC19V,內(nèi)部提供DC5V與3.3V電源供電,以及兩路DC12V/3A輸出,供外部擴(kuò)展使用。?NXROBO202332捷克作家卡雷爾·卡佩克Spark組成部件圖2.智能機(jī)器人運(yùn)動(dòng)控制課程內(nèi)容知識(shí)介紹體驗(yàn)機(jī)器人的運(yùn)動(dòng)控制速度話題控制底盤運(yùn)動(dòng)Python程序控制底盤運(yùn)動(dòng)Python程序?qū)崿F(xiàn)鍵盤控制底盤運(yùn)動(dòng)總結(jié)?NXROBO202334知識(shí)介紹知識(shí)介紹?NXROBO202336分析智能機(jī)器人spark的通信機(jī)制。如何控制智能機(jī)器人spark?鍵盤操作輸入:指令輸出:運(yùn)動(dòng)速度底盤控制器控制指令前進(jìn)?后退?轉(zhuǎn)彎?知識(shí)介紹?NXROBO202337智能機(jī)器人平臺(tái)控制系統(tǒng)劃分為上下層結(jié)構(gòu)。上層操作系統(tǒng)負(fù)責(zé)執(zhí)行復(fù)雜算法與功能下層驅(qū)動(dòng)系統(tǒng)負(fù)責(zé)運(yùn)動(dòng)控制、傳感器數(shù)據(jù)讀取等。ROS操作系統(tǒng)與運(yùn)動(dòng)控制器(STM32)之間通過

串口通信的方式進(jìn)行數(shù)據(jù)傳輸。知識(shí)介紹?NXROBO202338通訊方式在ROS操作系統(tǒng)中,節(jié)點(diǎn)(node)可以通過話題(topic)、服務(wù)(service)、動(dòng)作(action)等方式進(jìn)行通信。在這里,我們通過話題通信的方式,將前進(jìn)、后退等消息通過同一個(gè)話題,傳遞過去。體驗(yàn)機(jī)器人的運(yùn)動(dòng)控制體驗(yàn)機(jī)器人的運(yùn)動(dòng)控制在機(jī)器人界面打開終端進(jìn)入工作空間spark_noetic體驗(yàn)機(jī)器人的運(yùn)動(dòng)控制通過我們內(nèi)置的demo,可以打開機(jī)器人運(yùn)動(dòng)控制的功能。其中指定攝像頭類型為d435、雷達(dá)類型為ydlidar_g6、關(guān)閉機(jī)械臂的功能。體驗(yàn)機(jī)器人的運(yùn)動(dòng)控制我們就可以體驗(yàn)式的使用鍵盤來控制機(jī)器人了,后面,我們將自己來實(shí)現(xiàn)對(duì)機(jī)器人的控制操作。速度話題控制底盤運(yùn)動(dòng)?NXROBO202344速度話題控制機(jī)器人底盤運(yùn)動(dòng)根據(jù)知識(shí)介紹我們知道機(jī)器人運(yùn)動(dòng)控制是使用話題通信的,那如何知道機(jī)器人的話題呢?保持之前的狀態(tài),Ctrl+Alt+t組合鍵打開新的終端輸入rostopiclist

顯示機(jī)器人目前所有的話題?NXROBO202345速度話題控制機(jī)器人底盤運(yùn)動(dòng)一直往下劃,找到/cmd_vel

這就是我們機(jī)器人的控制速度話題?NXROBO202346速度話題控制機(jī)器人底盤運(yùn)動(dòng)接著,輸入rostopicinfo/cmd_vel

查看這個(gè)話題的內(nèi)容,如圖,我們看到這個(gè)話題的消息類型是geometry_msgs/Twist?NXROBO202347速度話題控制機(jī)器人底盤運(yùn)動(dòng)geometry_msgs:Twist消息包含2個(gè)變量Vector3linear和Vector3angular。Vector3linear中的x,y,z表示機(jī)器人的X軸(前后)、Y軸(左右)、Z軸(上下)方向的移動(dòng)線速度,整數(shù)為正方向移動(dòng),單位為:m/s。Vector3angular中x,y,z表示機(jī)器人在繞坐標(biāo)軸X,Y,Z旋轉(zhuǎn)的角速度,單位為:弧度/s。?NXROBO202348速度話題控制機(jī)器人底盤運(yùn)動(dòng)接著我們輸入如圖的指令,同學(xué)們可以多用Tab鍵補(bǔ)齊。其中,圖中pub表示發(fā)布這個(gè)話題,-r10表示以10hz的頻率發(fā)布,后面就是話題名和消息類型。我們可以給角速度的z軸設(shè)置0.3,按回車確定,此時(shí)機(jī)器人開始轉(zhuǎn)圈。Python程序控制底盤運(yùn)動(dòng)Python程序控制底盤運(yùn)動(dòng)?NXROBO202350首先我們打開move2grasp功能包,里面存放了一些參考代碼,我們可以學(xué)習(xí)。接著,我們新建code文件夾,用于存放我們自己編寫的代碼。Python程序控制底盤運(yùn)動(dòng)?NXROBO202351新建python_control.py文件,用于存放我們的python代碼。Python程序控制底盤運(yùn)動(dòng)?NXROBO202352編寫以上代碼,這個(gè)代碼的作用就是發(fā)布速度話題的相關(guān)消息給底盤,讓底盤根據(jù)我們?cè)O(shè)定好的速度移動(dòng)。Python程序控制底盤運(yùn)動(dòng)?NXROBO202353接著我們保持之前的狀態(tài)(啟動(dòng)了./onekey.sh的1號(hào)demo),新開一個(gè)終端。首先進(jìn)入spark_noetic工作空間,接著使用source刷新環(huán)境變量。最后通過rosrun運(yùn)行我們剛剛寫好的python程序。回車確定,此時(shí)機(jī)器人開始不停的旋轉(zhuǎn),我們可以通過Ctrl+c的指令關(guān)閉。Python程序?qū)崿F(xiàn)鍵盤控制底盤運(yùn)動(dòng)Python程序?qū)崿F(xiàn)鍵盤控制底盤運(yùn)動(dòng)?NXROBO202355之前,我們總是依賴于demo里的程序?qū)C(jī)器人控制,我們?nèi)绾瓮耆灾鞯膶?shí)現(xiàn)對(duì)機(jī)器人的控制呢?接下來,讓我們手動(dòng)實(shí)現(xiàn)鍵盤對(duì)機(jī)器人的運(yùn)動(dòng)控制操作。?NXROBO202356Python程序?qū)崿F(xiàn)鍵盤控制底盤運(yùn)動(dòng)繼續(xù)來到之前的code目錄,新建keyboard_control_robot.py文件。?NXROBO202357Python程序?qū)崿F(xiàn)鍵盤控制底盤運(yùn)動(dòng)首先導(dǎo)入相關(guān)庫接著是對(duì)一些參數(shù)的初始化,包括創(chuàng)建發(fā)布者對(duì)象,速度初始化。?NXROBO202358Python程序?qū)崿F(xiàn)鍵盤控制底盤運(yùn)動(dòng)這一段代碼就是在linux情況下讀取鍵盤輸入的值。?NXROBO202359Python程序?qū)崿F(xiàn)鍵盤控制底盤運(yùn)動(dòng)獲取到鍵盤輸入的值,執(zhí)行相應(yīng)的動(dòng)作,speed代表前后,正數(shù)為前,負(fù)數(shù)為后。turn代表左右,正數(shù)為左,負(fù)數(shù)為右。?NXROBO202360Python程序?qū)崿F(xiàn)鍵盤控制底盤運(yùn)動(dòng)通過publish方法,將消息發(fā)布出去,同時(shí)也定義了stop_robot方法,可以根據(jù)場(chǎng)景來使用這個(gè)方法。?NXROBO202361Python程序?qū)崿F(xiàn)鍵盤控制底盤運(yùn)動(dòng)光寫一個(gè)Python程序肯定不能直接控制機(jī)器人,所以我們要啟動(dòng)底盤、攝像頭、雷達(dá)等相關(guān)部件的驅(qū)動(dòng)。然而一個(gè)一個(gè)啟動(dòng)又太慢了,所以我們直接使用launch文件將它們整合在一起啟動(dòng)。?NXROBO202362Python程序?qū)崿F(xiàn)鍵盤控制底盤運(yùn)動(dòng)打開我們move2grasp功能包中l(wèi)aunch文件夾,里面存放了一些launch文件,我們也可以學(xué)習(xí)參考。然后我們新建一個(gè)new_launch的文件夾,用于存放我們自己的launch文件。?NXROBO202363Python程序?qū)崿F(xiàn)鍵盤控制底盤運(yùn)動(dòng)新建teleop2robot.launch文件?NXROBO202364Python程序?qū)崿F(xiàn)鍵盤控制底盤運(yùn)動(dòng)這里面設(shè)定了相關(guān)參數(shù),其中包括攝像頭的類型、雷達(dá)類型,啟動(dòng)攝像頭、雷達(dá)、rviz、底盤驅(qū)動(dòng),同時(shí)在第22行也啟動(dòng)了我們剛剛編寫的程序。?NXROBO202365Python程序?qū)崿F(xiàn)鍵盤控制底盤運(yùn)動(dòng)新建終端,輸入以下指令,首先進(jìn)入spark_noetic工作空間。接著source環(huán)境變量,最后roslaunch啟動(dòng)我們寫好的launch程序。?NXROBO202366Python程序?qū)崿F(xiàn)鍵盤控制底盤運(yùn)動(dòng)我們稍微在rviz界面配置一下,比如添加機(jī)器人模型、雷達(dá)信息、圖像信息等。然后在我們創(chuàng)建的小終端就可以使用鍵盤控制機(jī)器人運(yùn)動(dòng)了??偨Y(jié)?NXROBO202368總結(jié)通過本次學(xué)習(xí),同學(xué)們不但了解如何查看機(jī)器人的相關(guān)話題、消息類型,也可通過相關(guān)話題、消息類型控制機(jī)器人運(yùn)動(dòng)。同時(shí)自己也可以完成一個(gè)程序控制機(jī)器人運(yùn)動(dòng),為后續(xù)學(xué)習(xí)打下基礎(chǔ)。3.ROS導(dǎo)航與定位課程內(nèi)容移動(dòng)機(jī)器人導(dǎo)航概述SLAM技術(shù)介紹移動(dòng)機(jī)器人定位技術(shù)介紹移動(dòng)機(jī)器人路徑規(guī)劃介紹代價(jià)地圖全局路徑規(guī)劃局部路徑規(guī)劃行為恢復(fù)ROSNavigation功能包參數(shù)介紹?NXROBO202370移動(dòng)機(jī)器人導(dǎo)航概述移動(dòng)機(jī)器人導(dǎo)航?NXROBO202372移動(dòng)機(jī)器人導(dǎo)航:機(jī)器人能自主地從當(dāng)前位置無碰撞地運(yùn)動(dòng)到指定的目標(biāo)位置。導(dǎo)航模塊的輸入和輸出分別是:目標(biāo)位置、運(yùn)動(dòng)速度(運(yùn)動(dòng)指令)設(shè)置目標(biāo)位置輸入:目標(biāo)位置輸出:運(yùn)動(dòng)速度底盤控制器控制指令導(dǎo)航模塊導(dǎo)航要解決3個(gè)問題:我在哪?我將要去哪?我如何到達(dá)??NXROBO202373Navigation是ROS中最常用的子系統(tǒng),是移動(dòng)機(jī)器人導(dǎo)航相關(guān)包的集合,實(shí)現(xiàn)定位規(guī)劃避障等相關(guān)功能Navigation提供了諸多功能包ROS中的Navigation導(dǎo)航系統(tǒng)ROS中的Navigation導(dǎo)航系統(tǒng)?NXROBO202374Navigation導(dǎo)航包總體框架地圖定位路徑規(guī)劃ROS中的Navigation導(dǎo)航系統(tǒng)?NXROBO202375ROS中的Navigation導(dǎo)航系統(tǒng)?NXROBO202376Navigation這個(gè)導(dǎo)航系統(tǒng)的架構(gòu)設(shè)計(jì)比較復(fù)雜,但是卻非常經(jīng)典以至于后來出現(xiàn)的其他機(jī)器人系統(tǒng),在導(dǎo)航部分都基本借鑒了Navigation這個(gè)經(jīng)典架構(gòu)該架構(gòu)將導(dǎo)航功能分為三大塊:地圖構(gòu)建(SLAM)機(jī)器人定位路徑規(guī)劃導(dǎo)航要解決3個(gè)問題:我在哪?我將要去哪?我如何到達(dá)?SLAM技術(shù)SLAM的核心思想?NXROBO202378SLAM:叫同步定位與構(gòu)圖(SimultaeousLocalizationAndMapping),即在機(jī)器人移動(dòng)時(shí),同時(shí)估計(jì)機(jī)器人的位姿和環(huán)境地圖?NXROBO202379SLAM的輸入和輸出輸入輸出?NXROBO202380按傳感器類型分:SLAM的分類?NXROBO202381按所采用的方法分:SLAM的分類?NXROBO202382基于圖優(yōu)化的SLAM處理的數(shù)學(xué)模型?NXROBO202383SLAM的一般框架?NXROBO202384SLAM的一般處理流程?NXROBO202385ROS中流行的SLAM功能包Gmapping:最為常用和成熟的slam功能包,其集成了Rao-Blackwellized粒子濾波算法,訂閱機(jī)器人的深度信息、IMU信息和里程計(jì)信息,同時(shí)完成一些必要參數(shù)配置,即可創(chuàng)建并輸出基于概率的二維格柵地圖hector_slam:使用高斯牛頓方法,不需要里程計(jì)數(shù)據(jù),只根據(jù)激光信息進(jìn)行地圖構(gòu)建,該算法對(duì)雷達(dá)幀率要求較高,一般要求高于20HZ。若雷達(dá)幀率較低,就要調(diào)低機(jī)器人運(yùn)行速度小于0.3m/s,如果不降低機(jī)器人行駛速度,建圖效果會(huì)非常差,甚至無法完成建圖Cartographer:可以實(shí)現(xiàn)機(jī)器人在二維和三維條件下的定位及建圖功能。目前該算法采用基于圖網(wǎng)絡(luò)的優(yōu)化方法,主要基于激光雷達(dá)來實(shí)現(xiàn)SLAMRTAB-Map:是具有實(shí)時(shí)約束的全局閉環(huán)檢測(cè)的RGB-DSLAM方法……?NXROBO202386GmappingGmapping概述?NXROBO202387GmappingGmapping的相關(guān)話題?NXROBO202388CartographerCartographer的總體框架移動(dòng)機(jī)器人定位?NXROBO202390蒙特卡洛定位方法蒙特卡洛方法簡介?NXROBO202391蒙特卡洛定位方法蒙特卡洛定位(MCL,MonteCarloLocalization)?NXROBO202392蒙特卡洛定位方法自適應(yīng)蒙特卡洛方法簡介移動(dòng)機(jī)器人路徑規(guī)劃?NXROBO202394回顧:navigation總體框架路徑規(guī)劃全局路徑規(guī)劃局部路徑規(guī)劃代價(jià)地圖?NXROBO202395代價(jià)地圖costmap:分類與構(gòu)成?NXROBO202396代價(jià)地圖costmap:分類與構(gòu)成局部代價(jià)地圖全局代價(jià)地圖全局地圖?NXROBO202397全局路徑規(guī)劃主要任務(wù):從外部獲得導(dǎo)航的目標(biāo)點(diǎn),然后在全局代價(jià)地圖里找出“代價(jià)最小”的那條路線,這條路線就是我們苦苦尋找的導(dǎo)航路線輸入:目標(biāo)點(diǎn)和全局代價(jià)地圖輸出:全局導(dǎo)航路徑點(diǎn),作為局部路徑規(guī)劃的輸入全局路徑規(guī)劃算法基于搜索的規(guī)劃算法A*、Dijkstra算法、D*、D*Lite、Floyd算法、BellmanFord算法、……基于采樣的規(guī)劃算法概率路圖算法(ProbabilisticRoadMap,PRM)、快速隨機(jī)擴(kuò)展樹算法(Rapidly-exploringRandomTree,RRT)、PRM和RRT的變種、……?NXROBO202398Navigation中全局路徑規(guī)劃的實(shí)現(xiàn)?NXROBO202399局部路徑規(guī)劃有了全局路徑,按理說直接循線走即可,無奈世界變化太快,需要個(gè)機(jī)靈點(diǎn)的老司機(jī)去應(yīng)對(duì)路上可能的突發(fā)情況,這位老司機(jī)就是局部規(guī)劃器主要任務(wù):從全局規(guī)劃器獲得導(dǎo)航路線,根據(jù)這個(gè)路線向機(jī)器人發(fā)送速度,驅(qū)動(dòng)機(jī)器人“盡可能”按照路線去行走輸入:全局路徑和局部代價(jià)地圖輸出:機(jī)器人的速度局部路徑規(guī)劃算法基于采樣的算法:動(dòng)態(tài)窗口法(dwa)基于數(shù)值優(yōu)化的算法:mpc、teb基于曲線擬合的算法:貝塞爾曲線、多項(xiàng)式曲線、B樣條曲線?NXROBO2023100Navigation中局部路徑規(guī)劃的實(shí)現(xiàn)?NXROBO2023101動(dòng)態(tài)窗口法(dwa)的思路基本思路:一定程度上采用了粒子濾波的思想,在速度空間(v,w)中采樣多組速度,并模擬出這些速度在一定時(shí)間內(nèi)的運(yùn)動(dòng)軌跡,并通過評(píng)價(jià)函數(shù)對(duì)這些軌跡進(jìn)行評(píng)價(jià),選取最優(yōu)軌跡對(duì)應(yīng)的速度驅(qū)動(dòng)機(jī)器人運(yùn)動(dòng)主要步驟:1)采樣機(jī)器人當(dāng)前的狀態(tài)(dx,dy,dtheta);2)針對(duì)每個(gè)采樣的速度,計(jì)算機(jī)器人以該速度行駛一段時(shí)間后的狀態(tài),得出一條行駛的路線;3)利用一些評(píng)價(jià)標(biāo)準(zhǔn)為多條路線打分;4)根據(jù)打分,選擇最優(yōu)路徑;5)重復(fù)上面過程。?NXROBO2023102動(dòng)態(tài)窗口法(dwa)的算法流程?NXROBO2023103恢復(fù)行為Navigation導(dǎo)航包參數(shù)配置?NXROBO2023105Navigation導(dǎo)航包中的參數(shù)amcl_demo_rviz.launch文件(1)啟動(dòng)機(jī)器人導(dǎo)航功能,可以在終端上運(yùn)行如下命令:$roslaunchspark_navigationamcl_demo_rviz.launch?NXROBO2023106Navigation導(dǎo)航包中的參數(shù)amcl_demo_rviz.launch文件(2)?NXROBO2023107Navigation導(dǎo)航包中的參數(shù)move_base.launch.xml文件?NXROBO2023108Navigation導(dǎo)航包中的參數(shù)costmap_common_params.yaml文件?NXROBO2023109Navigation導(dǎo)航包中的參數(shù)global_costmap_common_params.yaml文件?NXROBO2023110Navigation導(dǎo)航包中的參數(shù)local_costmap_common_params.yaml文件?NXROBO2023111Navigation導(dǎo)航包中的參數(shù)move_base_params.yaml文件?NXROBO2023112Navigation導(dǎo)航包中的參數(shù)dwa_local_planner_params.yaml文件小結(jié)?NXROBO2023113簡要介紹了ROSNavigation的總體框架講解了SLAM的基本工作原理及分類簡要介紹了AMCL移動(dòng)機(jī)器人定位方法講解了代價(jià)地圖、全局路徑規(guī)劃、局部路徑規(guī)劃、行為恢復(fù)等移動(dòng)機(jī)器人路徑規(guī)劃相關(guān)內(nèi)容介紹了ROSNavigation功能包參數(shù)?NXROBO2023114代價(jià)地圖costmap:初始化4.Spark機(jī)器人多點(diǎn)導(dǎo)航(實(shí)操)課程內(nèi)容編寫多點(diǎn)導(dǎo)航代碼機(jī)器人構(gòu)建地圖機(jī)器人獲取目標(biāo)點(diǎn)信息實(shí)現(xiàn)多點(diǎn)導(dǎo)航效果總結(jié)?NXROBO2023116編寫多點(diǎn)導(dǎo)航代碼編寫多點(diǎn)導(dǎo)航代碼?NXROBO2023118在我們code目錄下,新建multiNav.py文件,用于存放我們多點(diǎn)導(dǎo)航的程序代碼。?NXROBO2023119編寫多點(diǎn)導(dǎo)航代碼導(dǎo)入導(dǎo)航、動(dòng)作等相關(guān)的模塊。定義三個(gè)導(dǎo)航點(diǎn),這三個(gè)導(dǎo)航點(diǎn)的具體數(shù)值我們需要根據(jù)實(shí)際的地圖上的定位修改。?NXROBO2023120編寫多點(diǎn)導(dǎo)航代碼這里書初始化函數(shù)以及shutdown退出函數(shù),程序一開始會(huì)做初始化的一些功能。?NXROBO2023121編寫多點(diǎn)導(dǎo)航代碼這里是將我們前面設(shè)置好的導(dǎo)航點(diǎn)信息發(fā)給movebase服務(wù)器,movebase服務(wù)器獲取到導(dǎo)航點(diǎn)信息,開始導(dǎo)航。?NXROBO2023122編寫多點(diǎn)導(dǎo)航代碼接著我們就可以在主程序里面寫邏輯功能了,這個(gè)程序會(huì)先去目標(biāo)點(diǎn)A,接著去目標(biāo)點(diǎn)B,最后去目標(biāo)點(diǎn)C。機(jī)器人構(gòu)建地圖機(jī)器人構(gòu)建地圖?NXROBO2023124使用roslaunch啟動(dòng)我們構(gòu)建地圖相關(guān)的功能包節(jié)點(diǎn),注意要選一下類型。比如我們的建圖方法是gmapping、攝像頭類型是d435、雷達(dá)類型是ydlidar_g6。機(jī)器人構(gòu)建地圖?NXROBO2023125接著我們就可以使用前后左右對(duì)機(jī)器人進(jìn)行建圖了。機(jī)器人構(gòu)建地圖?NXROBO2023126在我們這個(gè)終端,按任意鍵就可以保存地圖了。機(jī)器人構(gòu)建地圖?NXROBO2023127我們地圖就保存在spark_slam功能包里面,當(dāng)我們實(shí)現(xiàn)導(dǎo)航功能的時(shí)候,會(huì)自動(dòng)去這里面找到地圖。機(jī)器人獲取目標(biāo)點(diǎn)信息?NXROBO2023129機(jī)器人獲取目標(biāo)點(diǎn)信息使用roslaunch啟動(dòng)我們導(dǎo)航相關(guān)的功能包節(jié)點(diǎn),注意要選一下類型。比如我們的攝像頭類型是d435、雷達(dá)類型是ydlidar_g6。?NXROBO2023130機(jī)器人獲取目標(biāo)點(diǎn)坐標(biāo)此處可以根據(jù)我們構(gòu)建的地圖進(jìn)行導(dǎo)航,其中2DPoseEstimate調(diào)整機(jī)器人模型在地圖中的位置,2DNavGoal可以讓機(jī)器人導(dǎo)航到目標(biāo)點(diǎn)去。?NXROBO2023131機(jī)器人獲取目標(biāo)點(diǎn)坐標(biāo)給機(jī)器人發(fā)布目標(biāo)點(diǎn)位置,機(jī)器人自主導(dǎo)航過去新開一個(gè)終端,用于顯示機(jī)器人當(dāng)前位置信息?NXROBO2023132機(jī)器人獲取目標(biāo)點(diǎn)坐標(biāo)將這些信息填入python程序?qū)Ш近c(diǎn)的位置信息里(具體信息根據(jù)實(shí)際情況確定)實(shí)現(xiàn)多點(diǎn)導(dǎo)航效果?NXROBO2023134實(shí)現(xiàn)多點(diǎn)導(dǎo)航效果運(yùn)行我們編寫的多點(diǎn)導(dǎo)航代碼,注意,機(jī)器人的導(dǎo)航功能不要關(guān)掉。?NXROBO2023135實(shí)現(xiàn)多點(diǎn)導(dǎo)航效果輸出如上信息,并且機(jī)器人實(shí)現(xiàn)相應(yīng)的動(dòng)作,說明機(jī)器人多點(diǎn)導(dǎo)航成功??偨Y(jié)?NXROBO2023137總結(jié)通過本次學(xué)習(xí),同學(xué)們不但了解如何實(shí)現(xiàn)機(jī)器人的建圖,還學(xué)習(xí)了機(jī)器人如何根據(jù)構(gòu)建的地圖進(jìn)行導(dǎo)航,并且通過自己的編程,讓機(jī)器人進(jìn)行多個(gè)點(diǎn)位的導(dǎo)航,為后續(xù)的學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ)。5.語音采集與處理課程提綱數(shù)字音頻基礎(chǔ)ALSA架構(gòu)與基礎(chǔ)安裝與使用ALSA139?NXROBO2023實(shí)現(xiàn)效果140?NXROBO2023利用AlsaMixer工具調(diào)音數(shù)字音頻基礎(chǔ)?NXROBO2023141聲音由變化的氣壓組成。它被麥克風(fēng)這樣的轉(zhuǎn)換器轉(zhuǎn)換成電子形式。模/數(shù)(ADC)轉(zhuǎn)換器將模擬電壓轉(zhuǎn)換成離散的樣本值。聲音以固定的時(shí)間間隔被采樣,采樣的速率稱為采樣率。把樣本輸出到數(shù)/模(DAC)轉(zhuǎn)換器,比如擴(kuò)音器,最后轉(zhuǎn)換成原來的模擬信號(hào)。樣本大小以位來表示。樣本大小是影響聲音被轉(zhuǎn)換成數(shù)字信號(hào)的精確程度的因素之一。另一個(gè)主要的因素是采樣率。奈奎斯特(Nyquist)理論中,只要離散系統(tǒng)的奈奎斯特頻率高于采樣信號(hào)的最高頻率或帶寬,就可以避免混疊現(xiàn)象ALSA聲音編程介紹&ALSA歷史?NXROBO2023142ALSA,高級(jí)Linux聲音體系結(jié)構(gòu)(AdvancedLinuxSoundArchitecture)。它在Linux操作系統(tǒng)上提供了音頻和MIDI的支持。在2.6系列內(nèi)核中,ALSA已經(jīng)成為默認(rèn)的聲音子系統(tǒng),用來替換2.4系列內(nèi)核中的OSS(OpenSoundSystem,開放聲音系統(tǒng))。成為了linux的主流音頻體系結(jié)構(gòu)。1.ALSA聲音編程介紹2.ALSA歷史ALSA項(xiàng)目發(fā)起的起因是Linux下的聲卡驅(qū)動(dòng)(OSS/Freedrivers)沒有得到積極的維護(hù)。并且落后于新的聲卡技術(shù)。JaroslavKysela早先寫了一個(gè)聲卡驅(qū)動(dòng),并由此開始了ALSA項(xiàng)目,隨便,更多的開發(fā)者加入到開發(fā)隊(duì)伍中,更多的聲卡得到支持,API的結(jié)構(gòu)也得到了重組。Linux內(nèi)核2.5在開發(fā)過程中,ALSA被合并到了官方的源碼樹中。在發(fā)布內(nèi)核2.6后,ALSA已經(jīng)內(nèi)建在穩(wěn)定的內(nèi)核版本中并將廣泛地使用。ALSA體系架構(gòu)?NXROBO2023143ALSA由許多聲卡的聲卡驅(qū)動(dòng)程序組成,同時(shí)它也提供一個(gè)稱為libasound的API庫。應(yīng)用程序開發(fā)者應(yīng)該使用libasound而不是內(nèi)核中的ALSA接口。因?yàn)閘ibasound提供最高級(jí)并且編程方便的編程接口。并且提供一個(gè)設(shè)備邏輯命名功能,這樣開發(fā)者甚至不需要知道類似設(shè)備文件這樣的低層接口。為了向后兼容,ALSA提供內(nèi)核模塊來模擬OSS,這樣之前的許多在OSS基礎(chǔ)上開發(fā)的應(yīng)用程序不需要任何改動(dòng)就可以在ALSA上運(yùn)行。ALSA包含插件功能,使用插件可以擴(kuò)展新的聲卡驅(qū)動(dòng),包括完全用軟件實(shí)現(xiàn)的虛擬聲卡。ALSA提供一系列基于命令行的工具集,比如混音器(mixer),音頻文件播放器(aplay),以及控制特定聲卡特定屬性的工具。ALSA接口?NXROBO2023144ALSAAPI可以分解成以下幾個(gè)主要的接口:控制接口:提供管理聲卡注冊(cè)和請(qǐng)求可用設(shè)備的通用功能

PCM接口:管理數(shù)字音頻回放(playback)和錄音(capture)的接口。本節(jié)課后續(xù)總結(jié)重點(diǎn)放在這個(gè)接口上,因?yàn)樗情_發(fā)數(shù)字音頻程序最常用到的接口。RawMIDI接口:支持MIDI(MusicalInstrumentDigitalInterface),標(biāo)準(zhǔn)的電子樂器。這些API提供對(duì)聲卡上MIDI總線的訪問。這個(gè)原始接口基于MIDI事件工作,由程序員負(fù)責(zé)管理協(xié)議以及時(shí)間處理。定時(shí)器(Timer)接口:為同步音頻事件提供對(duì)聲卡上時(shí)間處理硬件的訪問。時(shí)序器(Sequencer)接口混音器(Mixer)接口語音采集

1.測(cè)試首先在系統(tǒng)設(shè)置里sound中input設(shè)置內(nèi)置語音音量,不要太大。安裝完成后我們就可以運(yùn)行測(cè)試了。首先,插入你的麥克風(fēng)設(shè)備,然后在系統(tǒng)設(shè)置里測(cè)試麥克風(fēng)是否有語音輸入。然后,運(yùn)行包中的測(cè)試程序:?NXROBO2023語音采集2.系統(tǒng)更新3.安裝ALSA庫

簡要說明一下重要的庫:

alsa-tools:該庫提供了對(duì)音頻操作的相關(guān)指令

libasound2-dev:提供alsa應(yīng)用編程API,如果使用c/c++編程會(huì)用到該庫的一些函數(shù)。$sudoaptupdate$sudoaptupgrade

?NXROBO2023$sudoaptinstallalsa-toolsalsa-ossflexlibc-binlibc-dev-binpython-pexpectlibasound2-dev語音采集4.使用arecord錄音工具進(jìn)行錄音解析:

arecord工具為我們剛剛安裝的alsa-tools提供的音頻操作,即錄音

-d:錄制時(shí)間(秒)

-D:指明設(shè)備名(plughw:i,j):其中i是卡號(hào),j是這塊聲卡上的設(shè)備號(hào)

5.安裝sox播放工具

$arecord-d10-Dplughw:0,0test.wav

?NXROBO2023$sudoaptinstallsox語音采集

6.安裝并使用alsamixer7.驗(yàn)證與測(cè)試播放錄好的音?NXROBO2023$sudoapt-getinstallalsamixer$playtest.wav2.離線語音識(shí)別課程提綱學(xué)習(xí)VOSK包的安裝及接口調(diào)用方法使用不同的識(shí)別模型實(shí)時(shí)語音識(shí)別把識(shí)別結(jié)果作為ROS話題發(fā)布150?NXROBO2023實(shí)現(xiàn)效果151?NXROBO2023查看語音識(shí)別結(jié)果VOSK介紹?NXROBO2023152Vosk是言語識(shí)別工具包。Vosk是開源的語音識(shí)別開發(fā)套件,可以支持多種語言,并且可以和開源媒體服務(wù)器Asterisk,F(xiàn)reeSWITCH,unimrcp和Jigasi集成(開源jitsi視頻會(huì)議服務(wù)器的SIP接口)實(shí)現(xiàn)離線識(shí)別。其語音識(shí)別引擎使用的是基于開源語音識(shí)別引擎kaldi實(shí)現(xiàn)。其應(yīng)用場(chǎng)景包括輕量級(jí)的離線語音識(shí)別,支持安卓,樹莓派等終端設(shè)備。支持二十+種語言-中文,英語,印度英語,德語,法語,西班牙語,葡萄牙語,俄語,土耳其語,越南語,意大利語,荷蘭人,加泰羅尼亞語,阿拉伯,希臘語,波斯語,菲律賓語,烏克蘭語,哈薩克語,瑞典語,日語,世界語,印地語,捷克語移動(dòng)設(shè)備上脫機(jī)工作-RaspberryPi,Android,iOS使用簡單的pip3installvosk安裝每種語言的手提式模型只有是50Mb,但還有更大的服務(wù)器模型可用提供流媒體API,以提供最佳用戶體驗(yàn)(與流行的語音識(shí)別python包不同)還有用于不同編程語言的包裝器-java/csharp/javascript等可以快速重新配置詞匯以實(shí)現(xiàn)最佳準(zhǔn)確性支持說話人識(shí)別安裝依賴&VOSK?NXROBO2023153安裝依賴$pip3installsounddevice安裝VOSK$pip3installvosk$sudoaptinstallpython3-pippython3-yaml安裝模型?NXROBO2023154下載地址:我們可以在這個(gè)網(wǎng)址下載不同的語言模型,該網(wǎng)站提供兩種類型的模型——大模型和小模型,小模型非常適合移動(dòng)應(yīng)用程序上的一些有限的任務(wù)。它可以在智能手機(jī)和樹莓派上運(yùn)行,也可以在桌面應(yīng)用程序上使用。小型模型的大小通常在50Mb左右,運(yùn)行時(shí)需要大約300Mb的內(nèi)存。大模型用于服務(wù)器上的高精度轉(zhuǎn)錄。大型模型由于采用了先進(jìn)的人工智能算法,內(nèi)存容量最高可達(dá)16Gb。通常情況下,模型越大,識(shí)別精度越高,根據(jù)設(shè)備選擇合適的模型,這里我們選擇vosk-model-small-en-us-0.15和vosk-model-small-cn-0.3來分別實(shí)現(xiàn)英文和中文的語音識(shí)別。同學(xué)們可以根據(jù)自己機(jī)器的性能,嘗試使用其他模型對(duì)比效果。安裝模型?NXROBO2023155在包voice_02下面建一個(gè)models目錄,存放語音模型文件$cd~/voice_02$mkdirmodels$cdmodels將下載好的模型下載后,解壓至此目錄。測(cè)試離線語音識(shí)別?NXROBO2023156終端運(yùn)行rosrun啟動(dòng)程序$rosrunvoice_02local_asr.py對(duì)著麥克風(fēng),講一些簡單的語句,(如果使用英文庫,請(qǐng)說英文;如果使用普通話庫,請(qǐng)說中文)用rostopicecho進(jìn)行查看識(shí)別的輸出,即ROS發(fā)布的結(jié)果消息$rostopicecho/voice/stt3.在線語音識(shí)別課程提綱開通百度語音功能websocket接口調(diào)用參數(shù)調(diào)整及功能調(diào)試158?NXROBO2023實(shí)現(xiàn)效果159?NXROBO2023查看語音識(shí)別結(jié)果注冊(cè)百度AI開放平臺(tái)?NXROBO20231601、注冊(cè)賬號(hào),并登錄百度大腦AI開放平臺(tái)2、通過控制臺(tái)左側(cè)導(dǎo)航,選擇語音技術(shù)注冊(cè)百度AI開放平臺(tái)?NXROBO20231613、點(diǎn)擊創(chuàng)建應(yīng)用,按要求填入信息百度大腦AI開放平臺(tái)4、選擇管理應(yīng)用,記住AppID和APIKEY備用將百度語音應(yīng)用到ros節(jié)點(diǎn)?NXROBO2023162安裝依賴創(chuàng)建包$cdvoice_kit/src$pip3installwebsocket-client$catkin_creat_pkgvoice_03roscpprospystd_msgs將百度語音應(yīng)用到ros節(jié)點(diǎn)?NXROBO2023163創(chuàng)建節(jié)點(diǎn)文件編寫CMakeLists.txt文件$cd~/voice_kit在scripts文件夾下創(chuàng)建baidu_asr.py$catkin_make參考下文代碼部分編譯$source~/voice_kit/devel/setup.bash測(cè)試在線語音識(shí)別?NXROBO2023164終端運(yùn)行node節(jié)點(diǎn)$rosrunvoice_03baidu_asr.py$roscore對(duì)著麥克風(fēng)講話,會(huì)識(shí)別出來,如下圖4.自然語言理解課程提綱自然語言理解開發(fā)平臺(tái)新建機(jī)器人機(jī)器人添加技能插件調(diào)用參數(shù)調(diào)整JSON格式處理166?NXROBO2023實(shí)現(xiàn)效果167?NXROBO2023使用百度機(jī)器人進(jìn)行對(duì)話自然語言理解?NXROBO2023168自然語言理解是所有支持機(jī)器理解文本內(nèi)容的方法模型或任務(wù)的總稱。NLU在文本信息處理系統(tǒng)中扮演著非常重要的角色,是推薦、問答、搜索等系統(tǒng)的必備模塊。人機(jī)交互過程中,機(jī)器人理解我的訴求的環(huán)節(jié),使用的技術(shù),就是所謂的自然語言理解(NaturalLanguageUnderstanding,NLU)。登錄百度AI開放平臺(tái)?NXROBO2023169選擇云端版,免費(fèi)使用進(jìn)行注冊(cè)后,進(jìn)入平臺(tái)注冊(cè)百度AI開放平臺(tái)賬號(hào)并進(jìn)入平臺(tái)注冊(cè)百度AI開放平臺(tái)?NXROBO2023170點(diǎn)擊左側(cè)的“+”號(hào),新建機(jī)器人注冊(cè)百度AI開放平臺(tái)?NXROBO20231711.設(shè)置機(jī)器人名稱2.選擇技能分發(fā)3.修改機(jī)器人描述注冊(cè)百度AI開放平臺(tái)?NXROBO2023172然后進(jìn)入新創(chuàng)建的機(jī)器人,點(diǎn)擊“技能管理”,添加“閑聊”技能,這里大家可以嘗試創(chuàng)建自定義技能,并添加到自己的機(jī)器人中。注冊(cè)百度AI開放平臺(tái)?NXROBO2023173點(diǎn)擊左上角的“對(duì)話”,測(cè)試一下剛添加的技能是否生效,并注意記錄機(jī)器人的ID,比如這里的“S67717”,后面代碼中需要用到這個(gè)ID。注冊(cè)百度AI開放平臺(tái)?NXROBO2023174確認(rèn)技能無誤后,選擇發(fā)布上線,選擇研發(fā)/生產(chǎn)環(huán)境通過查看發(fā)布至研發(fā)環(huán)境中的對(duì)話API接口3.0,進(jìn)行對(duì)話配置測(cè)試;點(diǎn)擊獲取APIKey/SecretKey,查看自己的AppID,APIKey以及SecretKey將百度語音應(yīng)用到ros節(jié)點(diǎn)?NXROBO2023175安裝依賴編寫ROS自然語言理解節(jié)點(diǎn)$cd~/voice_kit/src$sudopip3installrequests$catkin_creat_pkgvoice_04roscpprospystd_msgs在scrip

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論