今天構思了機械手的關節部位和坐標計算方法,可能最終會最多用到四軸聯動,如果用不同轉速來控制四周軸的話,單線程可能會很吃力。所以如果用到的話,盡量用等速來控制,這是后話。
下面是關節的草圖,設計的初中是盡量大范圍的并從指定角度抓取物體,并用制定軌跡移動物體。
各臂的長短沒有按照最終比例繪出,最終可能會舍去某些關節。
下面是終端坐標算法
上圖所示,B點到B‘點X,Y的相對坐標等于A點到A‘點的相對坐標,而A和A’其實就是R圓軌跡上的兩點,為了坐標的計算,必須取一點作為參考點O,O點坐標為R圓零度坐標(R,0),設A點距O點旋轉了a°,根據圓的角度公示為Ax=rcosa,Ay=rsina。A’點的坐標為A'x=rcosa',A'y=rsina'。得出A和A‘的相對位置為(Ax-A'x,Ay-A'y)。同理如果在R1上也有轉動的話也可以用這個方法算出,最后將坐標相加就可得出B點移動了多少,如果需要在移動的過程中B點X坐標保持不變,只要控制伸縮臂進行插補即可。同樣水平方向的Z坐標也可如此計算。
下面一步要在實際中模擬出這一動作,也就是程序的編寫和各軸數據的存儲,以及參考點的設定與返回方法。
C51完成這些計算可能有些能力不足,考慮上位機交互的方法,單片機只處理各電機最終要走的步數即可,其他有電腦完成。