[機器人-2]:開源MIT Min cheetah機械狗設計(二):機械結構設計

目錄

1、四肢朝向的選擇

2、電機布局形式的選擇

3、電機的選型及測試(非常重要)

4、結構優化

5、尺寸效應

6、其他


1、四肢朝向的選擇

機械狗的結構設計,第一個擺在我們面前的就說四肢的朝向問題,如下圖,我們是選擇獵豹的向前彎曲,還是角馬的向后彎曲呢?其實為了方便爬樓梯選擇了向后彎曲,也即角馬的骨骼形式。

不同動物的骨骼形式

2、電機布局形式的選擇

一般我們在設計四肢運動的時候,最先想到的就是在各個關節上直接加一個電機,如下圖的左邊所示,兩個關節處各加裝一個電機,但是,這樣當小腿在擺動的時候,慣性會非常大,可以想象如果在你的膝蓋住綁一個沙袋,在行走時就會非常的費勁,非常消耗能量,因此我們自然而然會想到將膝蓋處的電機移動到上端,通過一個同步帶和膝蓋相連,如右圖所示。

左圖:電機安裝在關節處,右圖:電機集中安裝在髖關節

除此之外還要考慮一個問題,如果機械狗摔倒后還要能夠翻身起來,我們自然而然會想到再增加一個自由度,也即還要增加一個傾斜電機,原因如下面視頻所示:

00:22

3、電機的選型及測試(非常重要)

一個機械狗動力強不強勁,電機起到至關重要的作用,機械狗的電機比較特殊,類似于公版電機T-Motor U8的型號,這款電機是廣泛應用于四旋翼的,需要很高的能量密度(不然就無法完成后空翻這樣的經典動作),因此機械狗的動力選擇的是無人機的無刷電機+行星齒輪組的形式,每個執行器都由一個定制的高耦合到單級6:1的行星齒輪減速機(背隙0.005rad/0.28°)。有效改善機器人的承載能力和低速效率,(至于這里減速比為什么選擇6,網上有不少討論,比如這篇文章MIT Mini Cheetah的關節驅動器為何選用減速比為6的單級內嵌式行星減速器? - 知乎,我個人比較傾向于,MIT在設計驅動器的時候,使用了成熟的商用驅動器,也算是一種妥協,機械狗的整個重量,結構布局可能都會受驅動器的影響,后期的Cheetah 3系列就采用了自研的驅動電機。)

使用電機驅動一體化的一大優點是,不需要額外的機械結構和昂貴的傳感器就能做到力控。這是因為小減速箱的非線性誤差可以忽略不計,因此直接使用電機的電流環和相應的減速比,就能得到驅動器端的輸出扭矩。

以上的設計思路,就帶來了一個極其緊湊、輕量化的驅動器整體集成效果,當然缺點也很明顯,采用鏤空減重設計,防水防塵比較麻煩。

機械狗電機結構圖

使用到的相關齒輪箱和軸承的型號如下:

行星輪:Misumi GEFHB0.5-40-5-8-W3

太陽輪:Misumi GEABN0.5-20-8-K-4

環形齒輪: KHG SI0.5-100

滾動軸承: HK0408

下腿由通過的同步帶驅動和上腿相連,提供額外的1.15減速比。可以旋轉360度,
讓機器人任意改變膝蓋向前或向后的方向。而且同步帶可以有效的緩沖猛烈的沖擊,
具有很好的緩沖效果。髖關節可以連續旋轉,僅受連接膝關節執行器的電線長度影響。
允許機器人倒著操作,爬上障礙物,或者用腳在身體上方操縱。四條腿的總重量為2.7千克,
只有機器人質量的30%。每條腿的末端有一個由10毫米厚的60A聚氨酯橡膠制成的蓋子。
提供緩沖和抓地力。

驅動器的參數:

電機設計完成后,如果加工組裝完成還需要對電機進行一系列的測試,包括:

1)、扭矩測試、功率測試、效率圖繪制,這里需要使用到扭矩測量儀。

2)、電流扭矩測試

左圖:扭矩/電流特性 右圖:扭矩常數/電流特性

3)、電角度校準(用于FOC算法調試)

另外電機采用的FOC控制,還要對電角度進行校準,FOC算法中一個重要的指標就是要知道電角度,電角度由磁編碼器獲得,由于電機摩擦和慣量的存在,實際運行時,它總是稍微滯后于參考角度,如下圖左上角;位置傳感器的偏心會引起低頻紋波,如下圖左下角;齒槽轉矩又會引起高頻紋波,如下圖右上角;消除這些誤差以后會建立一個表記錄下來,只要磁編碼器沒有重新拆裝,下次上電,表記錄的數值依然有效,這樣在程序運行的時候,可以通過查表來消除傳感器誤差。

磁編碼器誤差消除

4)、熱分析

除此之外由于機械狗頻繁的運動,還要對電機進行高溫測試,防止電機高溫消磁,高溫報警等。

高溫試驗

4、結構優化

現在機械狗的基本構型就有了,現在我們最關心的還是腿部,希望腿部的慣性盡量的小,這里我們需要對腿部的結構進行拓撲優化,滿足性能的同時,質量最小。需要用到有限元模擬軟件ANSYS進行拓撲優化,特別是對質量要求比較苛刻,構件材料比較昂貴,這種就體現出了有限元仿真的價值,可以減少不少試錯成本。

結構優化

5、尺寸效應

轉自知乎網友的一段話

在關節式機器人爆發運動能力這方面,尺寸越大的機器人對驅動器的功率輸出密度要求越高,技術實現也越困難。具體定量一點說:機器人尺寸假設擴大?�?倍,那么相應質量是?�3?量級的增長,而所需要驅動扭矩則是?�4?量級的增大。對于驅動器輸出性能而言(現有的永磁體+線圈式電機,扭矩是�2的增長,就是4次方的增長與2次方增長的區別),增大機器人尺寸簡直是噩夢,反之縮小機器人尺寸,能占很大的便宜。

6、其他

除上述分析以外,還有沖擊性能分析,軸承載荷校準等,這些這里不做具體分析,詳細可以見相關論文。

到此為止,一個完整的機械狗機械部分就有了雛形了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/529407.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/529407.shtml
英文地址,請注明出處:http://en.pswp.cn/news/529407.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python傳文件給java_用java pyhont通過HTTP協議傳輸文件流

// 代碼網上抄的 忘記鏈接了 抱歉哈packageupload;importjava.io.BufferedReader;importjava.io.DataOutputStream;importjava.io.FileInputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.net.HttpURLConnection;im…

mysql挪到小數點位置_mysql數據庫遷移到另一個硬盤上

archliun系統mysql數據庫1、對新硬盤分區與格式化1)# fdisk /dev/sdb2) # mkfs.ext4 /dev/sdb12、停止MYSQL服務systemctl stop mysqld3、對數據庫文件拷貝# cp -Rp data /mnt/data/4、刪除原data文件# rm -rf /data5、禁止開機自啟MYSQL服務# systemctl disable mysqld6、對自…

mysql用戶權限表join_MyBatis映射利用mysql left join 解決N+1查詢問題

1.權限是幾乎每個系統都需要的2.一般在用戶請求某個url的時候,都需要驗證用戶是否擁有該url的訪問權限3.最簡單的權限系統需要 用戶表,角色表,用戶角色表,權限表,角色權限表# Host: 127.0.0.1 (Version: 5.6.22)# Date…

python 爬取貝殼網小區名稱_如何使用 python 爬取全國小區名稱

前言筆者在做一個 NLPNLPNLP 項目時,需要識別小區名,因此想要查詢網上是否有相關的數據集。經過一番搜索后一無所獲…從而決定自己來爬取這份數據。由于爬取網站的內容信息之后可能會發生變更,因此此處給出具體的爬蟲思路,便于應對…

mysql hint 簡書_MySQL

為滿足不同數據庫設計要求,減少數據冗余而指定設計規范,可稱為數據庫范式數據庫范式呈遞次規范,即高階范式必然滿足低階范式越高的數據庫范式意味著越嚴格的設計要求,同時數據冗余越小第一范式(1NF):數據庫表的每一列都…

python獲取手機通知欄消息_Python編寫簡單的通知欄腳本啟動工具

隨著自己編寫的腳本與安裝的工具越來越多,電腦的桌面和文件夾也越來越亂了。就在前幾天因為一個不小心,我把自己的一個項目給刪了,所以決定將電腦整理一下。不過這一整理我很多腳本和工具的位置我就忘記了,所以決定寫個小工具來快速啟動一些常用的腳本或工具這里選擇Python是因…

java 圓 繼承_java 類的繼承(轉)

這個星期主要是學習了Java中類的繼承問題.繼承就是由已有的類創建新類,通過子類繼承父類的方法,實現一些功能.下面就是老師布置作業的其中一個:定義父類圓,通過繼承,獲得子類球、圓錐、圓柱,子類具有計算體積的功能。1)新建文件夾Test1&#…

java爬蟲 京東_Java爬蟲實現京東物流查詢

網上沒有免費的接口,只能自己寫一套了,參考代碼如下public static JSONObject getLastInfo(String no){JSONObject jsonObjectnew JSONObject();jsonObject.put("no", no);Connection connectionJsoup.connect("http://www.jdwl.com/orde…

java list stream avg_Java 8 Stream API中的多個聚合函數

要在沒有自定義收集器的情況下執行此操作(不再對結果進行流式傳輸),您可以這樣做.它有點臟,因為它首先收集到Map< String,List< TimePeriodCalc>>然后流式傳輸該列表并獲得平均加倍.由于你需要兩個平均值,它們被收集到一個Holder或一對,在這種情況下我使用的是Abst…

java 發送郵件昵稱_利用JavaMail發送QQ郵件

一、RFC882文檔簡單說明RFC882文檔規定了如何編寫一封簡單的郵件(純文本郵件)&#xff0c;一封簡單的郵件包含郵件頭和郵件體兩個部分&#xff0c;郵件頭和郵件體之間使用空行分隔。郵件頭包含的內容有&#xff1a;from字段   --用于指明發件人to字段    --用于指明收件…

java沒有timer類_Java中的Java.util.Timer類 - Break易站

scheduleAtFixedRate(TimerTask task, long delay, long period): java.util.Timer.scheduleAtFixedRate(TimerTask task, long delay, long period)在指定的延遲語法后開始&#xff0c;為重復的固定速率執行調度指定的任務&#xff1a;public void scheduleAtFixedRate(TimerT…

java select下拉標簽_java中下拉框select和單選按鈕的回顯操作

前提&#xff1a;1.下拉框select請選擇部門selected"selected">${department.department}2.單選按鈕radio的回顯checked"checked">checked"checked">補充知識&#xff1a;java使用apache commons-fileupload組件實現文件上傳(控制文件上…

java 訪問控制權限_Java訪問控制權限有哪些?區別是什么?

原標題&#xff1a;Java訪問控制權限有哪些&#xff1f;區別是什么?Java中的類和方法等都是有訪問控制權限的&#xff0c;用來控制方法、類、屬性等的生效范圍&#xff0c;Java有四種訪問控制權限&#xff0c;其中比較常用的就是public和private&#xff0c;今天華清遠見Java學…

java 操作cursor數據庫_Java連接各種數據庫以及調用存儲過程

準備工作&#xff1a;1. 創建表drop table T_TEST_PROCEDURE cascade constraints;/**//*Table: T_TEST_PROCEDURE*//**/createtable T_TEST_PROCEDURE (IDNUMBER(19) not null,NAMEVARCHAR2(40),AGE NUMBER(3),constraintPK_T_TEST_PROCEDURE primary key (ID));2. 創建存儲過…

java 規格overview_《Java數據結構和算法》- OverView

Q: 不同數據結構的優缺點&#xff1f;數據結構優點缺點數組(Array)快速訪問&#xff0c;如果知道下標&#xff0c;就可以非常快地存取查找慢&#xff0c; 插入或刪除慢&#xff0c; 大小固定有序數組(OrderedArray)比無序的數組查找快插入或刪除慢&#xff0c;大小固定棧(Stack…

mysql 集群怎么卸載節點_Greenplum移除節點

基于某某原因&#xff0c;我們的Greenplum需要卸載一個節點(測試環境的Greenplum集群)&#xff0c;由于該集群使用了很久&#xff0c;里面有許多開發所需要的數據&#xff0c;所以在卸掉一個節點后&#xff0c;還要保證數據不會丟失。當然&#xff0c;期間也遇到了點問題&#…

mysql2012更改表名_T-SQL入門攻略之13-修改數據表

--> Title : T-SQL入門攻略之13-修改數據表--> Author : wufeng4552--> Date : 2010-07-12修改表名與字段名—sp_rename--1修改表名SQL Server不直接提供修改表名的T-SQL語句&#xff0c;但是可以通過存儲過程實現語法格式&#xff1a;sp_rename tablename,newtabl…

python中不論類的名字是什么歌_Python自動猜歌名,還愁排名上不去嘛?

前言相傳&#xff0c;就在前幾日&#xff0c;在網上閑逛時&#xff0c;刷到了一個猜歌的小程序。這個小程序通過播放歌曲部分片段&#xff0c;然后讓用戶來猜它的歌名&#xff0c;大概是這樣的&#xff1a;作為一個腦熱的聽歌愛好者&#xff0c;于是他越陷越深&#xff0c;越刷…

java調用oracle存儲過程_做一點,記一點 ~ Java調用Oracle存儲過程

一、需求傳入一個參數&#xff0c;返回一條或多條記錄(列表)。二、實現步驟1. 編寫Oracle存儲過程。-- 聲明包和包體的語句應該分兩次執行&#xff0c;即使聲明在前定義在后&#xff0c;如果一起執行依然會編譯出錯--調用能夠返回多條記錄的存儲過程需要定義在包內--聲明包及包…

java 從控制臺讀取_轉載 java從控制臺讀取輸入的方法

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Scanner; public class MainClass { public static void method1() { //使用Scanner Scanner scannernew Sca…