3轴舵机控制机械臂,成品的样子,用个夹子给夹在桌子边,就成了一个伴随工作的辅助工具。
最初的目标是做个5轴驱动的机械臂,是这个样子的:
但是我买的的舵机是20KG的,头太重,举起来很抖,很不稳定,然后就退而求其次,改为3舵机结构。
在这里分享个经验,玩金属多轴机械臂,50块钱以下的舵机就不要买了,真是一分钱一分货,可以买个30多块钱的做为机械夹的控制部分。
刚装好6轴结构,真的很酷,很重很有机械感,像头金属兽。但是驱动起来需要很大的动力,一个稍微好点的40KG舵机很贵,我一直想用最低成本做个耐用好用的机械臂,我尝试了多款舵机,低性能的舵机不仅控制精度不行,而且很容易坏,炸一次坏一个。
舵机尸体
所以就别浪费钱了,我最开始买的松甲舵机一直随我用到最后,炸过好几次,虽然轴已经歪了,但是还能用,不是做广告,良心推荐。
安装过程,耐心、细致点,然后一些必要的工具,尖嘴钳,镊子,螺丝刀。
前面已经写了必要的代码,方便调试,在这个基础上,继续添加所需的功能,自己写代码就是好,可以随便改。
再写代码之前先复习一下高中的数学知识,勾股定理:
正弦函数 sin a/c ∠A的对边比斜边
余弦函数 cos b/c ∠A的邻边比斜边
正切函数 tan a/b ∠A的对边比邻边
余切函数 cot b/a ∠A的邻边比对边
正割函数 sec c/b ∠A的斜边比邻边
余割函数 csc c/a ∠A的斜边比对边
三角函数最重要的作用是能通过角度算出边长,通过边长算出角度。
两条机械臂构成一个三角形,我们已知2条机械臂的长度,a = 后段机械臂的长度,b = 前段机械臂的长度,我们要到达的D点,设定D点相对于舵机的坐标dx,dy。
通过D点的坐标求出c边的长度,然后知道了c的长度和a、b的长度就能求出,A、B、C的角度。
我在这里列出一些公式算法:
// 已知直角三角形abc中 C=90度,斜边c、a, 求 A 角度
public int Solve_RT_AC_Angel(int al, int cl)
{
double l1 = al;