楊一通 王樹國 嚴衛慶 張駿杰 趙 輝
(東北林業大學,黑龍江哈爾濱150040)
3D驅動在人們的生活中有著廣泛的應用,最常見的3D驅動裝置為“天車式”驅動裝置[1],圖1為工程天車簡圖。工作平臺首先在兩根軌道梁上進行x軸方向的運動,其次進行垂直于軌道梁的y軸方向的運動,最后進行z軸方向的運動,從而實現3D驅動。“天車式”3D驅動在吊裝、3D打印等眾多領域都有所應用。

圖1 工程天車簡圖
“三角爪式”3D驅動應用在三角洲系列3D打印機等裝置中,如圖2所示。工作原理為三個步進電機通過齒條帶帶動三組滑車在三根立柱上進行豎直運動。三組滑車分別通過三組連桿與工作平臺連接,從而實現對工作平臺的3D驅動[2-3]。
本文所研究的繩索式3D驅動裝置,以“三角爪式”3D驅動裝置為基礎,建立新的三角形框架結構,將帶動平臺運動的連桿用繩索加以替換,通過對程序的重新改寫,進而實現通過繩索對工作平臺進行3D驅動[4],形成結構簡單、成本低、大范圍運動的3D平臺。
繩索式驅動裝置包括機架、電路控制板、步進電機三個、容繩機構三組、滑輪三組、繩索三組、工作平臺一套,如圖3所示。三組步進電機接收到程序信號,分別帶動各自的容繩機構,通過控制繩索的長度,對工作平臺進行空間驅動。電路控制板通過連接線與計算機相連接,通過在Cura[5]軟件輸入目標圖形或路徑后運行,便可帶動工作平臺進行3D驅動。

圖2“三角爪式”3D打印機機架模型

圖3 裝置示意圖
裝置的電路控制板采用Arduino Mega 2560開發板[6],程序以3D打印機Marlin固件[7]為基礎重新進行編譯。
首先,在空間直角坐標系任取xOy平面上方三點A、B、C,連接AB、BC、AC,形成△ABC。將△ABC投影到xOy平面為△A1B1C1,A、B、C三點到xOy平面的距離分別為h1、h2、h3。
令BC、AC、AB邊長分別為a、b、c,B1C1、A1C1、A1B1邊長分別為a1、b1、c1,如圖4所示,則有關系:


圖4 空間坐標關系示意圖
我們以△A1B1C1的外接圓的圓心為坐標系原點O,以過圓心且平行于B1C1邊的射線作為坐標系的x軸建立平面直角坐標系,此坐標系也為程序所用坐標系。設B1C1與y軸的交點為P,如圖5所示。

圖5 平面坐標關系示意圖
根據正弦定理及余弦定理,可以計算出外接圓的半徑R為:

根據坐標系中的三角關系,有如下關系:


則在程序坐標系下:A1坐標為(Rsin α,Rcos α),B1坐標為

在坐標系的確立上,空間任意三角形定義到固件的主要參數為A、B、C三點到xOy平面的距離h1、h2、h3和△ABC的各邊長a、b、c,以及角1的正弦值sinα與角α的余弦值cosα,共計8個參數。
“三角爪式”3D打印機與其他打印機的區別在于“三角爪式”打印機的程序中有一個笛卡爾坐標系的轉換函數,該函數位于控制打印機運動的核心部分Process_commands()中。在Process_commands()中,主要含有get_coordinates()和prepare_move()兩個子程序以及一個計算目的坐標的程序段。
get_coordinates()的主要功能是獲取被控制點當前所在位置的坐標,即當前坐標。計算目的坐標的程序段是根據計算機所得到的指令計算出被控制點所要達到的下一點的位置坐標,即目的坐標。prepare_move()的主要功能是根據獲得的目的坐標和當前坐標控制步進電機運動。而在子程序prepare_move()中含有子程序calculate_delta()和plan_buffer_line()。其中calculate_delta()是將被控制點的坐標變化轉換為步進電機的運動量,而plan_buffer_line()則根據calculate_delta()輸出的結果控制電機運動。對于Process_commands()的主體流程,可用如圖6所示流程圖表示。

圖6 主體程序流程圖
本驅動裝置是將傳統的控制平臺運動的連桿改為柔性繩索。所以,若要完成該創新改造,除需要對硬件進行改造外,還需進行控制算法的重新編寫[8-10]。由于連桿結構被改成了繩索,所以其空間位置坐標改變量轉換為步進電機運動量的方式發生了改變,這就要求我們對calculate_delta()的函數進行重新編寫。
傳統的機構是連桿傳動,其結構關系如圖7所示,其中l是連桿長度,為定長。

圖7 連桿式桿長關系
運算關系為:

經過理論分析和數學推理發現,與電機和工作平臺相連的柔性繩索與被控制點滿足如圖8所示的關系。
其中總繩長l′為定值,分為步進電機到滑輪的繩長l1′和滑輪到工作平臺的繩長l2′。

圖8 繩索式繩長關系
運算關系為:

因l1的變化量即步進電機的運動量,所以將calculate_delta()的輸出值定為l1,則plan_buffer_line()即可控制步進電機根據指令運動。
運動關系程序語句如下:
delta[X_AXIS]=DELTA_STRING_LONG-sqrt(sq(DELTA_TOWER1_X-cartesian[X_AXIS])+sq(DELTA_TOWER1_Y-cartesian[Y_AXIS])+sq(DELTA_TOWER_Z-cartesian[Z_AXIS]));
delta[Y_AXIS]=DELTA_STRING_LONG-sqrt(sq(DELTA_TOWER2_X-cartesian[X_AXIS])+sq(DELTA_TOWER2_Y-cartesian[Y_AXIS])+sq(DELTA_TOWER_Z-cartesian[Z_AXIS]));
delta[Z_AXIS]=DELTA_STRING_LONG-sqrt(sq(DELTA_TOWER3_X-cartesian[X_AXIS])+sq(DELTA_TOWER3_Y-cartesian[Y_AXIS])+sq(DELTA_TOWER_Z-cartesian[Z_AXIS]))
實驗裝置是在等邊三角形機架的基礎上建立的,建立好的裝置如圖9所示。應用Cura軟件分別進行了圓環(半徑為6 mm)和直線打印工作,記錄方式采用工作平臺搭載激光筆,對工作過程進行視頻錄制,將激光筆走過的軌跡在坐標紙上描繪,把相應的點輸入到Matlab軟件中擬合成圓和直線,如圖10和圖11所示,并存有相應部分的視頻文件。

圖9 裝置實物圖

圖10 圓的擬合圖

圖11 直線擬合圖
通過圖中這兩組具有代表性的數據可以看出,運動軌跡較為圓滑平穩。在打印頭從初始位置降落到打印平臺的過程中,由于振動較大,導致前面的幾個點誤差有較大波動。終止點由于慣性的作用,也有較大的誤差。總體誤差為毫米級。
通過本文可以得出以下結論:繩索式3D驅動裝置可以實現對工作平臺的3D驅動。裝置可根據現場情況,將電機安置于建筑物或者其他穩固物體上。工作臺可根據工作需要,搭載不同的機械裝置(例如打印噴頭、機械手臂、電磁鐵、搜尋裝置等)進行3D打印、智能分揀、搬運以及搜尋工作。相比于傳統的固定式工作臺有靈活性高、適應性強、可用范圍廣以及成本低等特點,可大幅度降低勞動成本,提高勞動效率。