《鴻蒙機(jī)器人比賽》課件-02-智能機(jī)器人運(yùn)動(dòng)控制_第1頁
《鴻蒙機(jī)器人比賽》課件-02-智能機(jī)器人運(yùn)動(dòng)控制_第2頁
《鴻蒙機(jī)器人比賽》課件-02-智能機(jī)器人運(yùn)動(dòng)控制_第3頁
《鴻蒙機(jī)器人比賽》課件-02-智能機(jī)器人運(yùn)動(dòng)控制_第4頁
《鴻蒙機(jī)器人比賽》課件-02-智能機(jī)器人運(yùn)動(dòng)控制_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

智能機(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é)?NXROBO20232知識(shí)介紹知識(shí)介紹?NXROBO20234分析智能機(jī)器人spark的通信機(jī)制。如何控制智能機(jī)器人spark?鍵盤操作輸入:指令輸出:運(yùn)動(dòng)速度底盤控制器控制指令前進(jìn)?后退?轉(zhuǎn)彎?知識(shí)介紹?NXROBO20235智能機(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í)介紹?NXROBO20236通訊方式在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)?NXROBO202312速度話題控制機(jī)器人底盤運(yùn)動(dòng)根據(jù)知識(shí)介紹我們知道機(jī)器人運(yùn)動(dòng)控制是使用話題通信的,那如何知道機(jī)器人的話題呢?保持之前的狀態(tài),Ctrl+Alt+t組合鍵打開新的終端輸入rostopiclist

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

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

查看這個(gè)話題的內(nèi)容,如圖,我們看到這個(gè)話題的消息類型是geometry_msgs/Twist?NXROBO202315速度話題控制機(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。?NXROBO202316速度話題控制機(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)?NXROBO202318首先我們打開move2grasp功能包,里面存放了一些參考代碼,我們可以學(xué)習(xí)。接著,我們新建code文件夾,用于存放我們自己編寫的代碼。Python程序控制底盤運(yùn)動(dòng)?NXROBO202319新建python_control.py文件,用于存放我們的python代碼。Python程序控制底盤運(yùn)動(dòng)?NXROBO202320編寫以上代碼,這個(gè)代碼的作用就是發(fā)布速度話題的相關(guān)消息給底盤,讓底盤根據(jù)我們?cè)O(shè)定好的速度移動(dòng)。Python程序控制底盤運(yùn)動(dòng)?NXROBO202321接著我們保持之前的狀態(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)?NXROBO202323之前,我們總是依賴于demo里的程序?qū)C(jī)器人控制,我們?nèi)绾瓮耆灾鞯膶?shí)現(xiàn)對(duì)機(jī)器人的控制呢?接下來,讓我們手動(dòng)實(shí)現(xiàn)鍵盤對(duì)機(jī)器人的運(yùn)動(dòng)控制操作。?NXROBO202324Python程序?qū)崿F(xiàn)鍵盤控制底盤運(yùn)動(dòng)繼續(xù)來到之前的code目錄,新建keyboard_control_robot.py文件。?NXROBO202325Python程序?qū)崿F(xiàn)鍵盤控制底盤運(yùn)動(dòng)首先導(dǎo)入相關(guān)庫接著是對(duì)一些參數(shù)的初始化,包括創(chuàng)建發(fā)布者對(duì)象,速度初始化。?NXROBO202326Python程序?qū)崿F(xiàn)鍵盤控制底盤運(yùn)動(dòng)這一段代碼就是在linux情況下讀取鍵盤輸入的值。?NXROBO202327Python程序?qū)崿F(xiàn)鍵盤控制底盤運(yùn)動(dòng)獲取到鍵盤輸入的值,執(zhí)行相應(yīng)的動(dòng)作,speed代表前后,正數(shù)為前,負(fù)數(shù)為后。turn代表左右,正數(shù)為左,負(fù)數(shù)為右。?NXROBO202328Python程序?qū)崿F(xiàn)鍵盤控制底盤運(yùn)動(dòng)通過publish方法,將消息發(fā)布出去,同時(shí)也定義了stop_robot方法,可以根據(jù)場(chǎng)景來使用這個(gè)方法。?NXROBO202329Python程序?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)。?NXROBO202330Python程序?qū)崿F(xiàn)鍵盤控制底盤運(yùn)動(dòng)打開我們move2grasp功能包中l(wèi)aunch文件夾,里面存放了一些launch文件,我們也可以學(xué)習(xí)參考。然后我們新建一個(gè)new_launch的文件夾,用于存放我們自己的launch文件。?NXROBO202331Python程序?qū)崿F(xiàn)鍵盤控制底盤運(yùn)動(dòng)新建teleop2robot.launch文件?NXROBO202332Python程序?qū)崿F(xiàn)鍵盤控制底盤運(yùn)動(dòng)這里面設(shè)定了相關(guān)參數(shù),其中包括攝像頭的類型、雷達(dá)類型,啟動(dòng)攝像頭、雷達(dá)、rviz、底盤驅(qū)動(dòng),同時(shí)在第22行也啟動(dòng)了我們剛剛編寫的程序。?NXROBO202333Python程序?qū)崿F(xiàn)鍵盤控制底盤運(yùn)動(dòng)新建終端,輸入以下指令,首先進(jìn)入spark_noetic工作空間。接著source環(huán)境變量,最后roslaunch啟動(dòng)我們寫好的launch程序。?NXROBO202334Python程序?qū)崿F(xiàn)鍵盤控制底盤運(yùn)動(dòng)我們稍微在rviz界面配置一下,比如

溫馨提示

  • 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)論