亚洲天堂高清一二三,久久久久久久久久性生活,精品国产污污免费网站AⅤ,色橹橹欧美在线观看视频高清

Marlin中delta結(jié)構(gòu)的笛卡爾空間坐標和電機軸坐標的轉(zhuǎn)換詳解 

2020-02-25 11:47
Marlin固件中需要將從Gcode中獲取的待打印器件的3D模型中的坐標,轉(zhuǎn)換為三角洲3D打印機的三個電機軸上的坐標。
電機軸指的是三個電機對應(yīng)的線軌。
電機軸坐標指的是滑塊在電機軸上的位置。
笛卡爾空間坐標是指從Gcode中獲取的待打印器件的3D模型中的坐標。
實現(xiàn)坐標轉(zhuǎn)換功能的函數(shù)為calculate_delta()。
Marlin中delta結(jié)構(gòu)的笛卡爾空間坐標和電機軸坐標的轉(zhuǎn)換詳解 (2).png
變量中的tower指的是電機軸,tower1,tower2和tower3的位置如下圖所示
Marlin中delta結(jié)構(gòu)的笛卡爾空間坐標和電機軸坐標的轉(zhuǎn)換詳解 (3).png
變量delta_tower1_x為電機軸tower1在笛卡爾坐標系中坐標x的值,
變量delta_tower1_y為電機軸tower1在笛卡爾坐標系中坐標y的值,
變量delta_tower2_x為電機軸tower2在笛卡爾坐標系中坐標x的值,
變量delta_tower2_y,delta_tower3_x,delta_tower3_y類似。
這三個電機軸轉(zhuǎn)換到笛卡爾坐標系后的坐標如代碼所示,原理如下圖
Marlin中delta結(jié)構(gòu)的笛卡爾空間坐標和電機軸坐標的轉(zhuǎn)換詳解 (4).png
這是三角洲3D打印機抽象的俯視圖。點tower1,tower2和tower3分別為三個電機軸(因為是俯視圖,所以在圖中表示為一個點),這三個點構(gòu)成一個等邊三角形,內(nèi)切圓的圓心為點z,內(nèi)切圓的半徑為delta_radius。
笛卡爾坐標系的原點為等邊三角形內(nèi)切圓的圓心,即點z;x軸穿過原點,并且與tower1和toweer2組成的線段平行;y軸經(jīng)過tower3和原點;z軸經(jīng)過原點并且與tower3平行。
電機軸tower1轉(zhuǎn)換到笛卡爾坐標系的坐標x為點M,坐標y為點N。
電機軸tower2轉(zhuǎn)換到笛卡爾坐標系的坐標x為點P,坐標y為點N。
電機軸tower3轉(zhuǎn)換到笛卡爾坐標系的坐標x為0,坐標y為tower3本身。
M的坐標為(-sin60 * delta_radius, 0),
N的坐標為(0, -cos60 * delta_radius),
P的坐標為(sin60 * delta_radius, 0)
所以,tower1在笛卡爾空間坐標系中的x坐標delta_tower1_x= -sin60 * delta_radius,依次類推
delta_tower1_y =-cos60 * delta_radius ,
delta_tower2_x =sin60 * delta_radius ,
delta_tower2_y =-cos60 * delta_radius ,
delta_tower3_x =0 ,
delta_tower3_y =delta_radius ,
再來看下代碼是不是這樣的。
Marlin中delta結(jié)構(gòu)的笛卡爾空間坐標和電機軸坐標的轉(zhuǎn)換詳解.png
回過頭來看看是怎么計算電機軸上滑塊位置的。假設(shè)有下圖
Marlin中delta結(jié)構(gòu)的笛卡爾空間坐標和電機軸坐標的轉(zhuǎn)換詳解 (5).png
點A為噴頭的位置,
點B為點A投影到電機軸tower2(也是平行于笛卡爾坐標系的Z軸),
點C為滑塊的位置,
點D為點A投影到笛卡爾坐標系的xy平面的點,
點E為電機軸tower2與笛卡爾坐標系的xy平面相交的點。
其中BE就是打印物品笛卡爾坐標系的z值,AC為推桿長度,AB垂直于BC,根據(jù)直角三角形斜邊平方等于兩直角邊平方之和,即
AC*AC = AB *AB +BC*BC
其中AC已知,為推桿長度,AB可以通過噴頭在笛卡爾坐標系的X坐標和Y坐標算出來,所以BC也就可以算出來了。
AB = DE
XY平面如下所示
Marlin中delta結(jié)構(gòu)的笛卡爾空間坐標和電機軸坐標的轉(zhuǎn)換詳解 (6).png
點D為前一個圖點A的投影,點E為點B的投影,點A為噴頭的坐標,那么點D的xy坐標也是噴頭的xy坐標,是已知的。點E電機軸tower2在XY平面的點,坐標也是已知的,點K和I分別為點E在X和Y軸的投影。
那么DH = OK - OG ,即E的x坐標 - 噴頭的x坐標
EH = FI = OI -OF , 即E的y坐標 - 噴頭的y坐標
DE*DE = EH*EH +DH*DH
綜上所述,滑塊的z軸坐標
= BE + BC
=噴頭的z坐標 + BC
=噴頭的z坐標 + sqrt(推桿長度*推桿長度 -  AB*AB)
=噴頭的z坐標 + sqrt(推桿長度*推桿長度 -  (EH*EH + DH*DH))
=噴頭的z坐標 + sqrt(推桿長度*推桿長度 -  ((tower2的y坐標 - 噴頭的y坐標) * (tower2的y坐標 - 噴頭的y坐標) + (tower2的x坐標 - 噴頭的x坐標) * (tower2的x坐標 - 噴頭的x坐標)))
對應(yīng)代碼為
delta[TOWER_2] =sqrt(delta_diagonal_rod_2_tower_2
                          - sq(delta_tower2_x -cartesian[X_AXIS])
                          - sq(delta_tower2_y -cartesian[Y_AXIS])
                         ) + cartesian[Z_AXIS];
現(xiàn)在再看看函數(shù)calculate_delta()
友情提示電機軸坐標,三個電機軸平行,并且原點在限位開關(guān)處,即原點在上面。如下所示
Marlin中delta結(jié)構(gòu)的笛卡爾空間坐標和電機軸坐標的轉(zhuǎn)換詳解 (1).png
O1,O2,O3分別為三個電機軸的原點。
所以delta[TOWER_2] 是tower2對應(yīng)的滑塊在笛卡爾坐標系中z軸值。
聲明:3D打印資源庫(3dzyk)內(nèi)網(wǎng)友所發(fā)表的所有內(nèi)容及言論僅代表其本人,并不代表3D打印資源庫(3dzyk)觀點和立場;如對文章有異議或投訴,請联系kefu@3dzyk.cn。
Marlin中delta結(jié)構(gòu)的笛卡爾空間坐標和電機軸坐標的轉(zhuǎn)換詳解 
快速回復(fù) 返回頂部 返回列表
闵行区| 荆门市| 称多县| 晋宁县| 靖远县| 河池市| 余干县| 伊吾县| 故城县| 邻水| 镇宁| 峨眉山市| 铜川市| 喜德县| 达拉特旗| 泗水县| 石嘴山市| 遂川县| 吉安县| 杭锦旗| 海林市| 同仁县| 灵璧县| 榕江县| 年辖:市辖区| 荣昌县| 洮南市| 江陵县| 扬中市| 信宜市| 和静县| 永平县| 邵东县| 庆云县| 苗栗市| 修水县| 宁明县| 卫辉市| 梨树县| 广宗县| 丹阳市|