1.一些开头废话:
由于比赛需求以及备赛思路,笔者需要设计适用于特定模型的重力补偿,以达到零力控制的效果以及在机械臂出现异常时可以稳定姿态,不会直接砸下来损坏机械结构以及电机。笔者借鉴了中科大RM队伍的重力补偿思路,但又因其控制器模型不与我们控制器模型完全相同,故在此基础上做了一些改动,不能确保该设计思路能在其他模型上均可适用,如果有需要请自行摸索,或者联系笔者一起探讨。
2.大致思路:
机械臂正运动学--雅各比矩阵--计算末端重力在各关节上施加的力矩--消除重力的影响
3.各环节讲解:
-
机械臂正运动学:
我们早在小学二年级就学到,求得雅各比矩阵有两种方法:一是牛顿欧拉法,二是拉格朗日法。当然,也可以由雅各比矩阵的定义,对各关节求导达到获得雅各比矩阵的目的,在此不详细介绍。本文采用拉格朗日法进行雅各比矩阵的计算。又因拉格朗日法使用变换矩阵求得各连杆质心坐标,故使用正运动学来求得雅各比矩阵。具体思路参考B站UP主“德狗追求独立”的关于机械臂动力学求得雅各比矩阵的视频。 -
雅各比矩阵:
下面是我问智谱关于雅各比矩阵在机械臂运动学与动力学的作用时得到的回答:
在进行精细操作或力控制时,雅各比矩阵可以用来分配末端执行器所需的作用力/力矩到各个关节驱动器上,从而实现精确的力控制。 -
计算力矩:
由此可得,我们经机械臂正运动学得到雅各比矩阵后,就可以求得末端执行器重力对各关节施加的力矩。倘若控制器为并联型控制器,因各关节的运动并没有直接联系,此时由得到的力矩就可以实现重力补偿的效果。但控制器为串联型控制器时,更靠近地面的关节还需承受更靠近末端关节的重力。且由牛顿第三定律可得,当图中关节2对上方整体,即对上面连杆施加F2的力时,连杆会给关节2施加一个反作用力F2,又因关节2固定在下方连杆,故该反作用力F2会作用至关节1上。其他关节同理。
4.总结以及末尾的废话
由此,我们便得到了各关节抵消重力影响所需的力矩。有此基础,我们便可以进行路径规划。当然,如同机械臂逆运动学没有特定通解,需要根据实际模型来求解一般。路径规划也需要根据实际模型和需求来确定via-point(不要怪笔者为什么用英文来装,因为我也不知道其中文叫什么)以及fianl-point,从而规划路线以及姿态。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现