一種基於機器人開發平臺的運動控制方法與流程
2023-10-05 15:20:09 1
本發明涉及機器人開發運動模塊,具體涉及一種基於機器人開發平臺的運動控制方法。
背景技術:
:2016年是人工智慧元年,谷歌的AlphaGo震驚世界。機器是人工智慧技術的載體,由此,世界各地的研究所或者公司也推出多款機器人,從類人機器人,服務機器人到軍方的戰備機器人,可以說機器人行正如當年的移動網際網路一樣蓬勃火熱發展。市面上的機器人多以工業機器人和服務機器人為主,這些機器人一般是按照特定的功能定製的,比如焊接機器人,掃地機器人等,要在這些機器人上做進一步修改升級就相當困難,基本上都要重新設計。而一般的機器人開發平臺入門又比較高,而且基本都是大公司壟斷,價格昂貴,一些小的企業或個人基本上不會考慮。那些小的機器人開發平臺往往只提供一些開發板或開發模組,只適合用來學習或做簡易的玩具。目前,急需一種開發簡便、模塊化程度高的機器人開發平臺。在機器人開發平臺中,運動處理是機器人運動的核心,如何從單一重複性的動作到智能化高仿真動作,都是目前研究領域的空白。技術實現要素:本發明的目的在於克服現有技術存在的以上問題,提供一種基於機器人開發平臺的運動控制方法,本發明運動控制靈活,機器人動作仿真程度高。為實現上述技術目的,達到上述技術效果,本發明通過以下技術方案實現:一種基於機器人開發平臺的運動控制方法,包含動作響應方法、運動通信方法,所述的動作響應方法包含用戶動作響應、自由動作響應;所述的用戶動作響應用於響應用戶側定義的動作指令;所述的自由動作響應用於響應機器人空閒狀態自由動作指令;所述的運動通信採用總線通信協議進行傳輸;所述的運動通信包括指令發送、指令接收;所述的指令接收用於接收所述的動作指令;所述的指令發送以動作指令格式發送。進一步的,所述的用戶動作響應包含以下步驟:變量初始化、解析動作指令(動作類型判斷、動作狀態判斷、發送動作指令、執行動作指令、動作同步判斷、動作超時判斷、動作循環判斷)、更新機器人狀態、錯誤判斷、刪除動作指令。進一步的,所述的用戶動作響應方式包括單一動作響應、連續動作響應。進一步的,所述的自由動作響應包含以下步驟:變量初始化、延時設定、空閒狀態判斷、判斷用戶配置、設定情景模式、情景模式判斷(執行情景模式)、自由狀態模式判斷、避障判斷(執行避障)、生成隨機數判斷執行概率、執行隨機動作進一步的,所述的動作指令格式為幀頭+機器代號+指令類型+數據長度+子命令+子命令數據+校驗幀+幀尾。進一步的,所述的指令發送流程如下:用戶側發送動作指令,等待應答標誌,等待超時請求用戶側重新發送動作指令,收到應答標誌後,並進行動作指令數據校驗,動作指令數據包有誤請求用戶側重新發送動作指令數據包,動作指令數據包無誤返回應答標誌,指令發送結束。進一步的,所述的指令接收步驟如下:等待接收,等待用戶側動作指令數據接收;幀頭校驗,無誤後開始接受並保存用戶側動作指令數據,有誤則繼續等待;接受數據,接受並保存用戶側動作指令數據包;幀尾校驗,以接收到正確的幀尾結束用戶側動作指令數據包的接收;數據校驗,檢驗用戶側動作指令數據包裡所包含的數據長度和校驗幀,判斷用戶側動作指令數據包所包含的數據是否正確,數據正確返回應答正確標誌,否則返回應答錯誤標誌。進一步的,所述的子命令數據以動作數據包傳輸,所述的運動數據包格式動作執行數值A+動作執行數值B+動作執行數值C+優先權位+故障位+指令+動作執行預留位A+動作執行預留位B。進一步的,所述的總線通信協議設有發送優先權控制,發送優先權的級別由所述的優先權位大小決定;多個動作執行單元發送執行動作反饋信息時,總線優先響應發送優先權級別高的動作執行單元,優先權級別高的動作執行單元發送執行動作反饋信息,發送優先權級別低的動作執行單元放棄發送轉為接收指令。進一步的,所述的動作執行數值為角度值、速度值、電流值。本發明的有益效果是:本發明提供一種基於機器人開發平臺的運動控制方法,包含動作響應方法、運動通信方法,所述的動作響應方法包含用戶動作響應、自由動作響應;所述的用戶動作響應用於響應用戶側定義的動作指令;所述的自由動作響應用於響應機器人空閒狀態自由動作指令;所述的運動通信採用總線通信協議進行傳輸;所述的運動通信包括指令發送、指令接收;所述的指令接收用於接收所述的動作指令;所述的指令發送以動作指令格式發送。本發明運動控制靈活,控制精準度高,極大的提高了機器人動作的仿真程度。上述說明僅是本發明技術方案的概述,為了能夠更清楚了解本發明的技術手段,並可依照說明書的內容予以實施,以下以本發明的較佳實施例並配合附圖詳細說明如後。本發明的具體實施方式由以下實施例及其附圖詳細給出。附圖說明此處所說明的附圖用來提供對本發明的進一步理解,構成本申請的一部分,本發明的示意性實施例及其說明用於解釋本發明,並不構成對本發明的不當限定。在附圖中:圖1是本發明的一種基於機器人開發平臺的運動控制方法框架示意圖;圖2是本發明的用戶動作響應流程圖;圖3是本發明的自由動作響應流程圖;圖4是本發明的一種機器人的分解結構示意圖;圖5是本發明的一種機器人內部結構示意圖;圖6是本發明的一種機器人轉向示意圖;圖7是本發明的一種機器人連續動作響應可視化窗口示意圖;圖中標號:機器人1、頭部2、尾部3、仿生魚鰭4、骨架5、方向舵機6、輔助舵機7、下顎21、魚鰭骨架41、動力舵機60。具體實施方式下面將參考附圖並結合實施例,來詳細說明本發明。參照圖1-7所示,一種基於機器人開發平臺的運動控制方法,如圖1所示,包含動作響應方法、運動通信方法,所述的動作響應方法包含用戶動作響應、自由動作響應;所述的用戶動作響應用於響應用戶側定義的動作指令;所述的自由動作響應用於響應機器人空閒狀態自由動作指令;所述的運動通信採用總線通信協議進行傳輸;所述的運動通信包括指令發送、指令接收;所述的指令接收用於接收所述的動作指令;所述的指令發送以動作指令格式發送。如圖2所示,所述的處理單元包括用戶指令處理,所述的用戶指令處理用於響應用戶端發出的指令。用戶指令處理包含以下步驟:變量初始化,解析動作指令(動作類型判斷、動作狀態判斷、發送動作指令、執行動作指令、動作同步判斷、動作超時判斷、動作循環判斷)判斷是否是實時測試動作,根據分類,對待解析動作結構體指針賦予不同的指針值。接下來一步步解析動作,根據動作類型,超時,動作重複次數,每個動作狀態的同步位,動作控制模式等,設定舵機角度,舵機速度等,執行完一次動作解析後,將會判斷動作類型,釋放信號量,告訴處理單元可以開始繼續運行,更新機器人狀態,錯誤判斷並刪除動作指令。如圖3所示,所述的處理單元還包括自由動作處理,所述的自由動作處理用於響應用戶端指令空閒狀態下的隨機指令。自由動作處理流程如下:首先,優先級上,情景模式這種特殊情況優先級最高,檢測傳感單元數據,綜合判斷,符合某一情景模式的話,將直接執行該情景模式設置的動作命令,當沒有符合的情景模式時,先去判斷傳感單元值,進行避障操作,如果不需要避障,則判斷當前機器人狀態,執行相應的動作,如果為自由狀態,則首先生成在動作指令數量範圍內的隨機數,同時計算隨機數執行概率來決定是否執行該動作,到達出現次數後,執行對應隨機數的命令。如圖4所示,為一具體實施例中機器人1結構分解示意圖,機器人1包括頭部2、尾部3、仿生魚鰭4、骨架5,如圖5所示,骨架5上前部安裝有方向舵機6,骨架5中部與尾部各安裝有一動力舵機60;所述的方向舵機響應處理單元發出的方向指令;所述的動力舵機響應處理單元發出的前進指令。骨架5還安裝有4臺輔助舵機7;4臺輔助舵機7呈前後各一對仿生魚鰭4對稱布置;所述的輔助舵機7連接仿生魚鰭4;如圖6所示,機器人1轉向時,單側輔助舵機7運動帶動單側仿生魚鰭4運動,如機器人1向右轉向時,左側輔助舵機7運動帶動左側仿生魚鰭4運動,完成輔助向右轉向;向左轉向原理同上。同時,仿生魚鰭4還作為輔助動力舵機,當機器人1不執行轉向運動時,兩側輔助舵機7帶動兩側仿生魚鰭4運動,運動方式為同步遊動與異步遊動。優選地,所述的動作執行單元還包括動作定製單元;所述的動作定製單元包括沉浮動作單元、反向動力動作單元;所述的沉浮動作單元響應處理單元發出的上浮或下沉指令;所述的反向動力動作單元響應處理單元發出的後退指令。在沉浮動作單元響應上浮或下沉指令時,仿生魚鰭4在兩側輔助舵機7帶動兩側仿生魚鰭4運動,運動方式為同步遊動與異步遊動,起到仿真運動與輔助上浮、下沉作用。優選地,所述的傳感單元包括陀螺儀傳感器、加速度傳感器、距離傳感器、角度傳感器、溼度傳感器、溫度傳感器、水壓傳感器、電流傳感器、霍爾傳感器;所述的陀螺儀傳感器感應機器人位姿信息反饋至處理單元;所述的加速度傳感器感應機器人運動加速度信息反饋至處理單元;所述的距離傳感器包括紅外測距傳感器、超聲波測距傳感器、聲吶測距傳感器;所述的距離傳感器感應機器人與外界環境的距離信息反饋至處理單元;所述的角度傳感器感應舵機旋轉角度信息反饋至處理單元;所述的溼度傳感器感應舵機內溼度信息反饋至處理單元;所述的溫度傳感器感應舵機內溫度信息反饋至處理單元;所述的水壓傳感器感應沉浮動作單元內水壓信息反饋至處理單元;所述的電流傳感器感應舵機中相電流信息反饋至處理單元;所述的霍爾傳感器感應舵機內電機轉子位置信息反饋至處理單元。聲吶傳感器是一種專門應用在水中測距用的傳感器,聲吶信號在水中傳播不容易衰減,信號的穩定性好。在應用中把兩個聲吶傳感器安裝在魚頭的下方,兩個聲吶的夾角約20度,分別用來檢測左前方和右前方的距離變化。機器魚遊動時,處理單元間歇式控制聲吶傳感器發射聲吶信號,並實時接收聲吶的返回信號,通過計算聲吶發射後接收的時間差和聲吶在水中的傳輸速度,即可算出機器魚和障礙物之間的距離,聲吶從發射到收到反射信號這段時間就是聲吶一個來回的時間,這個時間與聲吶在水中傳輸速度的乘積結果除以2就是實際的距離值。處理單元實時判斷距離的變化,提前控制機器人1的左轉或者右轉,實現避開障礙物的功能。陀螺儀傳感器,加速度傳感器,水壓傳感器,配合兩個方向的聲納測距(前方和下方),可以實時檢測機器人1運動姿態和規劃運動路徑。流量計用來計量儲水罐的進水量和出水量,液位計用來檢測機器人在水池中的深度,水壓傳感器用來檢測儲水罐中的蓄水量。機器人1身體兩側各安裝若干個可見光感應器,感應器可以檢測光照強度,機器人通過對比兩側光強,控制前進方向,實現趨光或避光運動。機器人身體安裝雷射接收器,用於接收經過特殊調製的雷射束,用戶使用雷射筆照射不同接收器可以觸發機器人作出對應的動作;機器人1的某些運動部位有可能接觸或傷害到人和其他動物,在這些部位加入了壓力傳感器和微動開關,可以防止意外事故的發生;電流傳感器檢測舵機內無刷電機的相電流,霍爾傳感器舵機內無刷電機轉子的位置,溫度傳感器檢測電機模塊溫度,溼度傳感器檢測舵機內電機是否進水,磁角度傳感器檢測舵機內電機旋轉角度。優選地,運動通信包括數據發送、數據接收,運動通信以動作指令數據包傳輸,如表1所示,動作指令數據包格式為幀頭+機器代號+指令類型+數據長度+子命令+子命令數據+校驗幀+幀尾。表1動作指令數據包格式說明:(1)幀頭,用兩個字節表示,分別是0xfe、0xef;(2)機器代號,不同的設備,定義不同的代號來區分;(3)指令類型,用於表示這個數據包所要執行的功能,可以自行定義;(4)數據長度,除去幀頭,幀尾四個字節後的數據長度;(5)子命令,指令類型下面的子命令類,即二級命令;(6)子數據,傳輸的用戶端數據;(7)校驗幀,採用CRC校驗,幀頭後到CRC校驗值前的數據經CRC計算後的結果值。(8)幀尾,用兩個字節表示,分別是0xfd、0xdf。如圖2所示,數據發送根據用戶側的發送請求,按照動作指令數據格式將數據組成一串數據包,並把該串數據包通過無線發送出去,等待應答標誌接收,開啟等待應答超時計數。若超時計數完成未收到應答標誌或者收到的應答標誌錯誤則重新發送數據,若接收應答標誌正確,且未超時,則結束本次發送。數據接收端接收到第一個字節後判斷該字節是否是0xfe,如果是則繼續接收第二個字節,判斷第二個字節是0xef,幀頭正確,開始保存後面收到的有效數據,並記錄接收的數據長度。當接收到的數據是0xfd,且下一個收到的數據是0xdf時,表示收到幀尾,該數據包結束,比較數據包裡的長度值和接收記錄的長度值是否相等,如果不相等,說明數據在發送過程中有丟失,該數據包的數據有誤,不能使用。如果兩者長度相等則表明數據包長度正確,再通過CRC計算校驗值,把計算的校驗值和數據包裡的CRC校驗值對比,若相等,說明數據正確,若不等,說明數據在發送過程中由於其他原因出錯,該數據包不可用,請求重新發送。若收到的數據經過檢驗正確則返回正確的應答標誌,反之返回錯誤的應答標誌,請求發送端重新發送數據,確保每一次通信的數據都是正確的。表2中為指令類型。表2指令類型值定義0x01用戶側1(手機pad)發出讀取命令0x02用戶側2(動作模擬器)發出讀取命令0x03用戶側3(Pc配置軟體)發出讀取命令0x04用戶側1(手機pad)發出寫入命令0x05用戶側2(動作模擬器)發出寫入命令0x06用戶側3(PC配置軟體)發出寫入命令0x07用戶側1(手機pad)發出控制命令0x11終端向用戶側1(手機pad)反饋讀命令結果0x12終端向用戶側2(動作模擬器)反饋讀命令結果0x13終端向用戶側3(PC配置軟體)反饋讀命令結果0x14終端向用戶側1(手機pad)反饋寫命令結果0x15終端向用戶側2(動作模擬器)反饋寫命令結果0x16終端向用戶側3(PC配置軟體)反饋寫命令結果0x17終端向用戶側1(手機pad)反饋控制命令結果10x18終端向用戶側1(手機pad)反饋控制命令結果20x19終端向用戶側1(手機pad)反饋控制命令結果3表3中為子命令類型。表3子命令類型值定義0x01機器人狀態更新0x02靜止0x03自由遊動0x11查詢機器人信息0x12查詢舵機信息0x13查詢沉浮模塊信息0x14查詢can通訊錯誤率0x21實時舵機控制0x31寫入基本動作組合0x32測試基本動作組合0x33寫入用戶配置數據0x34擦除命令flash0x35IAP升級命令0x36用戶配置讀取0x37動作命令讀取0x38設定舵機絕對位置0x39設定機器人進入自由模式0x3A使機器人進入空閒狀態0x41機器人錯誤碼0x41使設備進入can燒寫模式0x42使主控進入can燒寫模式優選地,動作數據包中定義一個數據結構體struct{data1;data2;data3;data4;data5;data6;data7;data8};數據結構體裡面有8個字節的數據分別為動作執行數值A+動作執行數值B+動作執行數值C+優先權位+故障位+指令+動作執行預留位A+動作執行預留位B,在不同的動作執行單元中,每個字節所表示的意義也有所不同:(1)舵機執行模塊:data1表示舵機的角度;data2表示舵機的速度;data3表示舵機的電流;data4表示舵機模塊的ID;data5表示命令,data6表示舵機的故障信息,data7,data8預留。(2)伺服電機執行模塊:data1表示伺服電機的角度;data2表示伺服電機的速度;data3表示伺服電機的電流;data4表示伺服電機模塊ID;data5表示命令,data6表示伺服電機的故障信息,data7,data8預留。(3)步進電機模塊:data1表示步進電機的角度;data2表示步進電機的速度;data3表示步進電機的電流;data4表示步進電機模塊的ID;data5表示命令,data6表示步進電機的故障信息,data7,data8預留。下以如圖3所示的一種機器人為例,下稱機器魚,前進動作指令代碼如下:FEFF00064500320000BFFB000000004000020002000000030018000300400D0700000001503C00023C3200031E1400030018000300400D070000000150C4FF023CCEFF031EECFF000000DAF39A40FDDF這條命令通過控制機器魚魚頭舵機以速度30,角度範圍-20度至20度,機器魚魚身舵機以速度60,角度範圍-50度至50度,機器魚魚尾舵機以速度80,角度範圍-60度至60度的設定進行擺動實現遊行前進。在總線空閒時,所有的動作執行單元都可以發送數據,最先訪問的先獲得控制權。在總線協議中,所有的消息都以固定的格式發送。總線空閒時,所有與總線相連的動作執行單元都可以開始發送新消息。兩個以上的動作執行單元同時開始發送消息時,根據標識符ID決定優先級。ID並不是表示發送的目的地址,而是表示訪問總線的消息的優先級。兩個以上的單元同時開始發送消息時,對各消息ID的每個位進行逐個仲裁比較。仲裁獲勝(被判定為優先級最高)的單元可繼續發送消息,仲裁失利的單元則立刻停止發送而進行接收工作。當多個動作執行單元同時發送信息時,對各消息ID的每個位進行逐個仲裁比較。仲裁獲勝(被判定為優先級最高)的動作執行單元可繼續發送反饋信息給主控模塊,仲裁失利的動作執行單元則立刻停止發送而進入接收狀態。總線可以判斷出錯誤的類型是總線上暫時的數據錯誤(如外部噪聲等)還是持續的數據錯誤(如單元內部故障、驅動器故障、斷線等)。由此功能,當總線上發生持續數據錯誤時,可將引起此故障的單元從總線上隔離出去。總線是可同時連接多個單元的總線。可連接的單元總數理論上是沒有限制的。但實際上可連接的單元數受總線上的時間延遲及電氣負載的限制。降低通信速度,可連接的單元數增加;提高通信速度,則可連接的單元數減少。通信時主動作執行單元按結構體定義的數據包,通過總線的通信方式,把數據傳輸至總線上,掛載在總線上的從動作執行單元的總線過濾器會自動識別該數據幀裡包含的ID非主動作執行單元,該數據包會被過濾掉,不再接收後面的數據。如果過濾器識別出該幀數據ID是本主動作執行單元,則接收整幀數據,解析數據包裡的命令功能,從動作執行單元根據命令碼和數據執行相應的動作,並把反饋信息需要反饋給用戶側。優選地,用戶動作響應方式包括單一動作響應、連續動作響應;具體形式命令碼的格式,如表4所示:表4如圖7所示,連續動作響應時,用戶側想要生成需要的各種動作組合,可以在工作控制窗口選中上面建立的命令碼中的某幾個組成一個動作組,同樣可以選中多個動作組形成相應的組合命令碼。組合命令碼生成後你可以點擊測試按鈕,測試你生成的動作有沒有達到你預想的效果,如果不符合,還可以調整上面的參數,直到達到你的要求為止。創建傳感器與動作組聯繫起來,當傳感器的值符合設定的閾值範圍時,便執行相應的動作組命令碼。當用戶生成一條符合要求的組合命令碼時要及時命名並保存到本地資料庫,同時下載其他用戶動作組命令碼更新至本用戶的機器人硬體平臺,而命令碼的翻譯工作在硬體系統中進行。用戶也可以選擇將組合命令碼上傳到雲伺服器上共享或出售。本發明提供一種基於機器人開發平臺的運動控制方法,包含動作響應方法、運動通信方法,所述的動作響應方法包含用戶動作響應、自由動作響應;所述的用戶動作響應用於響應用戶側定義的動作指令;所述的自由動作響應用於響應機器人空閒狀態自由動作指令;所述的運動通信採用總線通信協議進行傳輸;所述的運動通信包括指令發送、指令接收;所述的指令接收用於接收所述的動作指令;所述的指令發送以動作指令格式發送。本發明運動控制靈活,控制精準度高,極大的提高了機器人動作的仿真程度。以上所述,僅為本發明的較佳實施例而已,並非對本發明作任何形式上的限制;凡本行業的普通技術人員均可按說明書附圖所示和以上所述而順暢地實施本發明;但是,凡熟悉本專業的技術人員在不脫離本發明技術方案範圍內,利用以上所揭示的技術內容而做出的些許更動、修飾與演變的等同變化,均為本發明的等效實施例;同時,凡依據本發明的實質技術對以上實施例所作的任何等同變化的更動、修飾與演變等,均仍屬於本發明的技術方案的保護範圍之內。當前第1頁1 2 3