经过一周的研究,对六自由度机械臂运动进行了研究,利用高中几何知识进行了运动控制策略的设计,无偿贡献出源码,可以为入门的小伙伴提供一定的借鉴。
1、机械臂物理参数的介绍
买了一个六轴机械臂,作为研究对象,如果是其它机械臂,可以根据机械臂参数对代码进行修改。机械臂参数如下图所示:
1.1 部件与尺寸
机械臂如下部件组成,描述如下表:
1.2坐标系与工作空间
机械臂坐标系为数学直角正交坐标系,每个电机绕着旋转轴顺时针、逆时针旋转(正负已经标明),方向如图1所示,机械臂通过6个电机的旋转运动,实现了一系列复杂的动作。
注意,由于机械结构和设计的原因,有的电机不能进行-180°至180°的全向转动,会有一个转动的范围(见上表),这部分没有在python中实现。
2、机械臂运动控制原理
机械臂运动控制要解决的核心问题是,知道物体的位置(中心点坐标)和主方向(物体的朝向),程序自动计算出机械臂的各关节角度位置,将夹具准确送到抓取物体的部位,并对准抓取位置。
2.1机械臂运动的几何简化
总体思路是将机械臂的三维复杂运动简化为两个平面的运动,即“俯视平面”,和“垂直平面(本文叫R平面)”的组合运动。如下两个图:
2.2机械臂抓手即后面末关节的处理
普通的机械臂的控制以上就可以,由于我手头这个大象机械臂比较特殊,有很多90度弯头,而且抓手安装后,他的落点与上面简化模型就出现了偏差,因此,还需要根据这个特点,根据实际的物体坐标和主方向,计算出上节的理想抓手坐标点(x,y),然后就能求出全部关节的角度了。
3、python源码
以下是源代码,可以直接运行,本站源码链接:对六自由度机械臂的运动控制及python实现(源码)
或关注文末公众号,免费获取
按键盘"O"键,进入自动鼠标点击右侧图机械臂工作半径范围的地方,自动计算各关节的旋转坐标。
再按键盘"O"键,退出鼠标点击计算模式,改用监盘手动操作模式,按“[”或 “]”,是J1关节旋转,按“w"是扩大作业半径,按"s"是缩小作业半径。
运行效果如下:
以上是几何实现。
www.dzkfw.com.cn/hangye/UploadFiles_3492/202402/2024021416105679.zip