本章介紹如何使用開源的Moco-8資料自己完成機器人的製作,相關資料被託管在github上,其包括了PCB和3D印表機架,對於機器人的軟體代碼來說我們建立了一個單獨的項目方便下載和維護。

golaced/MocoMoco_Software?

github.com
圖標

項目採用多種構建方式,可以根據自己已有的工具和預估經費進行選擇,項目的搭建模式如下表所示。

項目搭建模式(均不包括舵機)

上述不同模式區別主要在是否自己加工控制器和機架,前者我們提供了PDF版本的原理圖和可直接加工的製版文件以及BOM表,用戶可以選擇自己加工購買成品(560 RMB);對於後者我們提供了3D列印版本的機器人文件,用戶可以自行列印或者購買官方推出的採用碳纖維切割的機架(289 RMB)。

官方機架

3D印表機架

另外,在舵機選型方面我們推薦採用K-power的舵機,這裡給出低成本和高價格兩個不同的選擇版本,對於其他舵機來說則可能需要修改搖臂3D列印件的插槽。

(1)DMC810高性能無刷9g舵機(115 RMB)

(2)DMM016半鋁金屬16g舵機(60 RMB)

下面首先從如何組裝控制器開始介紹Moco-8機器人的製作過程。

  • 4.1 控制器的加工和製作

Moco-8的控制器使用我們推出的通用機器人控制硬體,其採用STM32作為核心處理器,板載10軸MEMS感測器、FLASH和NRF通訊晶元,具有多路PWM輸出和可擴展串口,其未來除了支持四足機器人外還將移植OLDX飛控項目並向其他機器人系統不斷擴展,其主要參數如下表所示。

控制器硬體參數

  • 4.1.1 控制器PCB的加工

為兼容圖像處理功能,控制器被設計為樹莓派的外擴載板,其尺寸與安裝孔能與樹莓派3B和3A全系列兼容,通過串口與樹莓派進行通訊(最大波特率115200);為保證舵機供電充足其採用可替換外部供電模塊的設計,板子3.3V降壓晶元舵機和控制器供電分離,同時能通過跳帽選擇4路腿感測器的供電電壓(3.3/5V);考慮後期兼容飛控固件和IMU替換擴展,採用了獨立IMU模塊的內減震設計;控制器固件採用SWD介面下載同時預留正點原子無線調試器模塊(無線下載調試KEIL5,免去連接下載器,288 RMB)的對應端子介面。控制器實物和介面端子明細如下圖所示。

控制器介面分佈
端子引腳明細(以上圖方向為例,LED方向為後文所示「機頭」)

則要完成控制器的加工主要包括如下幾個步驟:

(1)樹莓派載板加工:

PCB板加工文件在/hardware/控制器.zip中,對應的BOM表為/hardware/bom/控制器.xls。

(2)供電模塊加工:

PCB板加工文件為/hardware/供電模塊.PcbDoc,對應的BOM表為/hardware/bom/供電模塊.xls,為保證樹莓派正常工作(樹莓派供電電流<2A則進入低功耗模式Wifi無法連接)我們選擇了大電流5V-DCDC:

https://item.taobao.com/item.htm?spm=a1z09.2.0.0.332c2e8dVXk7Vi&amp;amp;amp;amp;amp;amp;amp;id=572382517694&amp;amp;amp;amp;amp;amp;amp;_u=p1klsj89d5c4

(3)遙控器加工:

PCB板加工文件為/hardware/遙控器.PcbDoc,對應的BOM表為/hardware/bom/遙控器.xls,同時遙控器需要購買OLED模組:

https://detail.tmall.com/item.htm?id=41844085048&amp;amp;amp;amp;amp;amp;amp;spm=a1z09.2.0.0.332c2e8dVXk7Vi&amp;amp;amp;amp;amp;amp;amp;_u=p1klsj893d13

以及3.7V鋰電池:

https://item.taobao.com/item.htm?spm=a1z09.2.0.0.332c2e8dVXk7Vi&amp;amp;amp;amp;amp;amp;amp;id=43805802003&amp;amp;amp;amp;amp;amp;amp;_u=p1klsj89aed0

(4)IMU板加工:

PCB板加工文件為/hardware/IMU.PcbDoc,對應的BOM表為/hardware/bom/IMU.xls,其中對應四足機器人來說如為降低控制器成本PCB中的磁力計LIS3MDL和氣壓計MS5611可以不焊接。

(5)下載器轉接板加工:

PCB板加工文件為/hardware/下載器.PcbDoc和/hardware/下載器轉接.PcbDoc,對應的BOM表為/hardware/bom/下載器.xls和/hardware/bom/下載器轉接.xls,其中需要購買STlink下載器:

https://item.taobao.com/item.htm?spm=a1z09.2.0.0.332c2e8dmcVVFR&amp;amp;amp;amp;amp;amp;amp;id=561379287900&amp;amp;amp;amp;amp;amp;amp;_u=p1klsj898221

如果不想使用有線下載則可不用加工上述下載器直接購買正點原子無線下載器連接控制板即可:

https://item.taobao.com/item.htm?spm=a1z09.2.0.0.332c2e8dmcVVFR&amp;amp;amp;amp;amp;amp;amp;id=579895934418&amp;amp;amp;amp;amp;amp;amp;_u=p1klsj896533

(6)購買配置樹莓派A3

默認控制器採用的是樹莓派A3,如採用其他的樹莓派版本則請自行設計控制器3D列印外殼。首先準備樹莓派A3:

https://item.taobao.com/item.htm?spm=a1z09.2.0.0.31212e8dlJw3wj&amp;amp;amp;amp;amp;amp;amp;id=535022021519&amp;amp;amp;amp;amp;amp;amp;_u=p1klsj895a9d

購買時需選配CPU對應的散熱銅片,另外默認機架中採用的攝像頭是CSI並口原裝攝像頭:

https://item.taobao.com/item.htm?spm=a1z09.2.0.0.31212e8dlJw3wj&amp;amp;amp;amp;amp;amp;amp;id=36938445542&amp;amp;amp;amp;amp;amp;amp;_u=p1klsj8918c1

為方便後續安裝最好在安裝控制器之前完成對SD的鏡像的燒錄,默認使用的是16G高速卡(建議首次燒錄使用未存儲鬼片任何東西的空卡),我們同時也提供了免費的樹莓派系統鏡像。

(7)控制器外殼列印

我們在項目中提供了控制器和遙控器外殼的3D列印文件,可從項目中進行下載,其中樹莓派支撐.STL需要列印4個用於支持控制器載板。

  • 4.1.2 控制器組裝

(1)安裝樹莓派:

將樹莓派按正確方向放入底部外殼中,為避免後續安裝相機在該步驟時最好將樹莓派相機對應的CSI排線安裝好並安裝好已燒錄鏡像的TF卡,將4個支撐柱子放入從底部用 M2.5螺絲或者直接用膠槍將其與樹莓派固定,將CSI排線從外殼對應槽中引出。

(2)安裝控制器載板:

將控制器載板上NRF模組天線從底殼壁上對應圓孔引出,將其按正確朝向安裝於樹莓派上,注意控制板上只有4P母口其頂頭引腳並非對應樹莓派頂頭引腳而且排針為外側,正確安裝應該如下圖所示:

(3)安裝控制器外殼蓋:

將上殼以正確方向安裝於控制器載板上,主要中心空槽應該完整包裹IMU板,完成後同樣用M2.5螺絲或者膠槍將上蓋固定完成控制器組裝。

  • 4.2 開源3D印表機架的製作與組裝
  • 4.2.1 3D印表機架的製作

我們提供了3D印表機架的文件如果用戶不想購買官方機架可以選擇自行使用3D印表機加工,所需要列印的文件主要包括中心體/quadruped/3D列印測試機架/中心體.STL:

4個 /quadruped/3D列印測試機架/機臂.STL,注意其需要鏡像列印:

4組 /quadruped/3D列印測試機架/腿舵機連接關節.STL和 /quadruped/3D列印測試機架/腿關節.STL:

4個 /quadruped/3D列印測試機架/足底帶感測器1.STL和足底帶感測器2,注意足底帶感測器2需要鏡像列印:

足底感測器需要購買4個微動開關(無鎖藍色按鈕)和4個軟墊(15*10),另外還需要購買一個帶開關的18650電池盒:

(https://item.taobao.com/item.htm?spm=a1z09.2.0.0.19132e8d4dukK2&amp;amp;amp;amp;amp;amp;amp;id=552736465061&amp;amp;amp;amp;amp;amp;amp;_u=q1klsj894152 ,18650 2節帶蓋開關)

機器人電池選用3400款(尖頭)(2支)。

  • 4.2.2 3D印表機架的組裝
  • 註:安裝校準教程視頻地址:

3D印表機架安裝校準視頻?

www.bilibili.com

(1)組裝電池盒

首先在中心體底部安裝電池盒:

採用M2.5*5的螺絲進行固定:

(2)使用3M膠將組裝好的控制器固定在中心體上:

(3)焊接供電模塊與電池盒輸出線並用2.54排線與控制器連接:

(4)使用膠槍垂直固定供電模塊(注意一定要提前插入燒好鏡像的TF卡)。

(5)安裝舵機使用M2*5的螺絲進行固定,並連接舵機線至控制器對應的PWM輸出引腳。

(6)將舵機搖臂插入小腿3D列印件槽中,如搖臂過長可適當剪短,注意帶齒輪一面的朝向,使用M1.5螺絲或502將二者固定。

(7)組裝搖臂與大腿,將大於的大腿使用M2.5螺絲與搖臂固定,主要在保證無間隙的前提下盡量減小摩擦。

(8)打開電源進入舵機校準模式並安裝搖臂:

首先參考後續教程燒錄最新固件,注意確定自己是否已有授權碼;則將遙控器撥碼12在左、上下波動遙桿多次提示音後舵機全部上電,在旋轉到初始化角度後以盡量水平的角度安裝舵機搖臂。

(9)微調校準搖臂:

校準模式中會以蜂鳴器次數提示,此時上下則微調搖臂角度,左右長時間則更換舵機選擇,順序調節所有舵機保證搖臂的絕對水平,完成後長按遙桿提示音後保存校準參數。

(10)保存參數並完成IMU校準:

完成舵機校準後12至右,長按遙桿提示音後校準IMU,此時遙控器P和R姿態角收斂至0。

(11)組裝足底感測器:

組裝足底感測器並焊接對應的轉接板,以減震墊垂直向下的方式安裝值大腿末端,並使用4P線連接感測器與控制器。

(12)使用扎帶整理走線。

  • 4.3 官方碳素機架套件的組裝

碳素機架安裝視頻?

www.bilibili.com

(1)組裝舵機和機臂。

(注意圖中黃圈所示結構件的方向,電池盒和控制器安裝方法同上)

注意:水平放置時兩側機臂均5°外擴

(2)如果安裝時機臂老掉,可以在底板對應槽處塗抹502,後續也方便上板的拆裝。

(3)將控制器使用3M膠固定或螺絲(注意絕緣)在底板上,控制器LED方向為機頭方向,電池盒開關方向為機尾。另外連接供電模塊將電池盒供電線焊接至模塊焊盤上,用8P-2.54排線與控制板連接,同時將其插入底板後部凹槽中以垂直固定。

注意:為更好的絕緣,建議在DCDC模塊下方8P引腳碳板處粘貼絕緣膠帶

(4)將舵機走線從機臂空槽下穿過後插入控制板對應PWM引腳。

朝向板子內側引腳為信號線(一般為橙色);機臂外部舵機連接板子邊緣引腳,內部舵機連接板中間引腳
控制板引腳明細

  • 4.4 固件的燒錄和機器人校準

默認情況下控制板已經燒錄好鏡像,用戶可能需要為自己製作的控制板或者程序更新時重新下載固件,首先需要使用下載器轉接板連接控制板上的SWD下載口,然後下載KEIL5單片機編程環境、破解並安裝對應的F4晶元庫:

鏈接:https://pan.baidu.com/s/1UNnMhOecPHUjdAQqanoYLQ
提取碼:az23

然後從項目中下載最新的固件代碼並燒錄在控制器中,此時需要注意的是如果未向我們獲取步態庫授權碼請將vmc.h中的USE_DEMO改為1否則後續的操作可能無法繼續,對於授權碼的獲取和寫入請聯繫我們

(1)在完成程序燒錄後安裝電池開機查看供電是否正常(音樂聲),如是連續兩聲DI DI則感測器初始化不正常。

注意:

如開機聲音不對可能是供電模塊電容充電問題,可以直接使用對控制側面按鍵複位,或者重新上電的方式;

如果多次嘗試仍無法正常開機則可能是控制板內部IMU軟線安裝不牢固,請重新安裝擦拭下排線;

(2)正常開機後打開遙控器查看是否能收到信號(SR有值)將撥碼12撥到右34到左,推動遙桿2s查看此時舵機是否均會轉動。

注意:

如開機後全部舵機都無法供電則可能首先是舵機供電部分連接有問題,請推動遙桿後查看機體後部供電模塊是否兩個工作指示燈都點亮,默認上電只有右邊控制部分供電工作;

如只有部分舵機不工作,請檢查舵機連線是否有插反錯差的問題,如沒有則可能是PCB焊接問題請將情況反饋給客服

另外在使用VMC庫授權碼時將不會供電,請有先下載最新程序的版本:

golaced/MocoMoco_Software?

github.com
圖標

Keil相關程序和應用請參考正點原子:

鏈接:https://pan.baidu.com/s/1UNnMhOecPHUjdAQqanoYLQ
提取碼:az23

並向客服索要授權碼(正確授權時Debug程序vmc_all結構體中key_right應當為1,遙控器對應參數界面 I17 為1

註:1.3.6固件新增遙控器直接修改參數請參考小節4.7

(4)將機器人放置於水平高臺以方便舵機校準。如果控制器從未燒錄過固件,則首先保證12撥碼在右34在左。長按遙控器遙感4s,在機器人(不是遙控器)發出提示音後完成加速度計和陀螺儀校準,此時查看遙控器方框P,R姿態角應當收斂至0°左右。

注意:新版本程序中加入了磁力計(需詢問客服是否焊接),用戶可以選擇對其進行校準,否則可能出現航向異常的情況。校準時1在左2在右,同樣長按遙桿提示音後,機器人LED藍色常亮同時蜂鳴器不斷BiBi,此時在12s時間內各方向旋轉機器人(類似Px4飛控校準),在提示音後完成校準。在複位後查看當前航向是否與地理朝向一致。

(5)完成IMU校準後,將12撥碼至左,此時上下反覆垂直撥動遙桿6s後應當有提示音並且舵機自動供電(後部左供電模塊LED常亮),此時所有舵機轉至90度初始化角度。

註:此時以左右兩舵機搖臂盡量與機體水平的方式將各腿搖安裝,可以些許誤差

(6)校準舵機時蜂鳴器會以次數提示當前舵機ID,左右長時間推遙桿則可改變ID(默認首先調整第一個舵機,為機頭右上方外側舵機)。遙桿上下則微調舵機,因此依據順序依次微調保證準確的搖臂水平。

(7)在完成微調後長按遙桿4s提示音後舵機自動斷電參數寫入FLASH。

(8)將12撥碼至右,再長按遙桿重新進行一次IMU校準。

注意:

在舵機校準中隨時可以通過將12撥碼至右退出該模式;

如期間出現機臂卡住的情況請馬上斷電;

(9)在完成所有舵機校準後將12至右,推動遙桿則舵機供電並開始不斷運動,確認無卡住的情況後斷電安裝小腿和足底,用螺絲或502固定搖臂。

注意:

IMU標定僅在機器人軟斷電(開機後未遙控或運行中將12撥碼至左保護斷電模式)下才能進行,因此當機器人工作後長按4s遙桿對應的是進入SDK模式。如要進行IMU標定可先將12同時至左強制斷電,再回復到右邊後如機器人未上電則可進行IMU標定;

機器人足底軟墊具有朝向,足尖的方向均需要朝向機頭,黑色軟墊均朝下;

固定腿部關節是要保證盡量不存在空隙的情況下無較大的摩擦(正常情況下斷電拉動足尖應該無特別大的阻力);

正常工作後LED燈會週期三閃,第一閃為藍表示連接上遙控,第二是為白表示樹莓派正常工作;

(10)如果使用的是感測器足底則採用相同的方式進行安裝並使用4P連線與控制板連接。

  • 4.5 第一次行走測試

測試視頻?

www.bilibili.com

(1)在完成舵機校準和IMU校準後既可以進行第一次行走測試,其中請注意以下幾點。

註:由於射頻通訊需要保證無遮擋,因此當有遮擋的時候可能出現遙控滯後,遙控失連後仍持續前進幾秒的情況;

如機器人在移動中突然保持當前動作不動,LED也不再閃爍則可能是內部演算法Bug,此時複位即可,我們也在不斷優化演算法以減少該情況;

在機器人正常工作後隨時可以使用將12撥碼至左的方式強制保護斷電,同時也注意是否正常使用是忘記將其至於右邊而導致無法上電移動;

在下載程序時可能會出現寫入FLASH影響供電模塊IO控制,此時機器人腿部往往會突然上電卡住,建議此時及時斷電後重新燒錄,否則會損壞舵機;

(2)目前遙控器有幾個基礎測試模式

註:撥碼1單獨至左,34在左,則進入姿態角Sin軌跡跟蹤模式(1.3.1版本以後已無用);

撥碼2單獨至左,34在左,則進入車輛模式此時上下遙桿對應為速度增量;

撥碼12均在左,軟斷電模式,控制器斷開舵機功能作為故障舵機卡死時的保護模式;

機器人供電後,長按遙桿4s提示音後進入SDK模式具體開發請參考SDK開發手冊;

  • 4.6 參數調節(Debug修改參數)

註:1.3.6固件新增遙控器直接修改參數請參考小節4.7

為保證獲得與官方視頻中一樣的步態效果可能需要用戶驗證相應初始化參數是否正確,首先需要從github中下載安裝相應的KEIL5環境,通過配套模擬器下載最新固件修改參數。

(1)重心偏移參數

由於機器人無法檢測自身重心變化因此在機體安裝不同模塊發生重心變化後可能需要重新調整重心偏差參數vmc_all.cog_off[0],vmc_all.cog_off[1]。

註:vmc_all.cog_off[0-F]為機器人前進時的重心偏移參數,安裝足底感測器默認值為-0.006無足底感測器為-0.012

vmc_all.cog_off[1-B]為機器人後退時的重心偏移參數,默認值為0.006

則通過在DEBUG時前後移動查看機器人是否會出現蹬空的問題來進行微調,完成後將12撥碼至左強制斷電保證機器人靜置,通過將mems.Gyro_CAL標誌位置改1完成參數存儲(注意由於直接使用陀螺儀標定來存儲參數所有過程中如果機器人移動可能會造成陀螺儀參數錯誤)

(2)下蹬力度

如機器人因為安裝模塊造成自身重量明顯增大,則可能需要調節下蹬幅度參數vmc_all.kp_deng[0]默認為16。同理在DEBUG過程中修改,移動測試後,靜置機器人通過標定陀螺儀完成參數的存儲。

(3)使能著地感測器

在1.3.3固件後增加了著地感測器(需要購買擴展足底感測器套件),安裝連接模組後修改vmc_all.use_ground_sensor[1]為1並使用陀螺儀標定的方式存儲參數,各腿著地判斷標誌在vmc_all.ground[1]中顯示。

(4)高度PID參數

高度PID參數為h_pid_all,其中kp為對角線失配參數,ki為積分係數,kd為微分係數。

(5)姿態PID參數

姿態PID參數為att_pid_all[0~2],其中0為俯仰軸,1為橫滾軸,2為航向(為串級)。

  • 4.7 參數調節(遙控器修改參數,1.3.6固件新增)

在1.3.6固件之後我們新增了使用遙控器來完成對13小節中所述參數的調節和保存,從而避免修改參數後保存時需要DEBUG機器人通過陀螺儀校準帶來的不便。

注意:首先參數保存只能在機器人上電後纔有用,因為其觸發方式與磁力計校準模式一樣,磁力計校準首先軟斷電然後撥碼1在左2在右長按遙桿,藍燈閃爍後開始校準。

因此啟動機器人後,當1在左2在右後進入參數修改模式,此時遙控命令和SDK觸發命令均失效,因此可以隨意在遙控器中對參數進行修改和界面切換,在完成某一個參數修改後同樣長按3秒當機器人蜂鳴器三連燜音後參數寫入FLASH。

(1)輸入授權碼

在獲取授權碼後可以直接通過遙控器寫入,將對應的授權碼順序寫入PID18中(註:需要修改一個保存一個)之後重啟查看修改是否成功,則當授權碼正確後D17為1。

(2)修改前後偏差

vmc_all.cog_off[0],vmc_all.cog_off[1]對應參數為P01和I01,其中P01已經乘以負號,二者均擴大了10000倍,因此默認參數為P01=60,I01=60。

(3)修改蹬腿幅度

vmc_all.kp_deng[0]對應參數為D01,參數擴大1倍則默認值為16。

(4)修改使能著地感測器

vmc_all.use_ground_sensor[1]對應參數為P02,參數擴大了1倍則默認值為0。

(5)修改角度默認偏差

在機器人移動中由於姿態角的傾斜可能會在重力作用下引起移動的側偏,如橫滾角存在偏差會造成機器人左右側偏。則俯仰角參數為I02為vmc_all.tar_att_bias[PITr],橫滾角參數D02為vmc_all.tar_att_bias[ROLr],由於存在正負偏差修改需要因此參數均被擴大了100倍並增加了1000的偏差,因此默認值為1000。

(6)修改通訊通道

機器人默認2.4G射頻通道為11,其對應參數為I17。遙控器自己的通道則為當頁參數中的CH,對其修改後的保存需要退會到主界面長按遙桿執行。

註:相關參數發送順序在rc_mine.c的pid_copy_param函數中,參數接收順序在rc_mine.c的param_copy_pid函數中。

在下一小節將對控制板詳細電路設計和開源代碼步態演算法進行詳細介紹,方便初學者快速上手!


推薦閱讀:
相關文章