首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >动力学主要在解决哪些方面的问题

动力学主要在解决哪些方面的问题

作者头像
索旭东
发布2026-09-15 21:11:10
发布2026-09-15 21:11:10
1200
举报
文章被收录于专栏:具身小站具身小站

动力学模型在实际工程中主要解决以下四大类问题:为了让机械臂这样动,电机要出多大力,(逆动力学/前馈);如果给电机这么大的力,机械臂会怎么动,(正动力学/仿真);如果它实际用的力和理论值不一样,是不是撞到了什么?(碰撞检测/安全)。

1. 控制前馈:让运动跟得更准

问题:纯位置环(PID)只有在产生了位置误差后才会发力,对于快速变化的轨迹,这会导致永远追不上、到处是滞后。

解决方案:利用逆动力学计算出为了达到这个加速度,电机现在该出多少力,提前发给驱动器(力矩前馈)。 机械臂场景:在 MIT 模式中,将重力项 G(q)和惯性项 M(q)q¨ 实时算好填入 τff,PD控制器只需要处理极小的扰动,实现零误差或者接近零误差的轨迹跟踪。

2. 力/柔顺控制:让机器卸下自身负担

问题:机械臂本身很重,想让它柔顺(比如手推得动),必须先让它感觉不到自己的重量。

解决方案:重力补偿,利用动力学模型实时算出抵消重力所需力矩,输出给电机。

零力拖动示教:把 MIT 模式的 Kp,Kd设为 0,只发重力补偿力矩 τff,此时机器人像漂浮在太空,操作员可以用手指轻松拨动它来录制清洁轨迹。

3. 碰撞检测:没有力传感器的地方也能感知

问题:六维力传感器只装在末端,如果机械臂的大臂或肘部撞到了,你怎么知道?

解决方案:力矩残差监测,利用动力学模型实时计算正常运动应该需要多少力矩,然后和驱动器反馈的实际力矩做差。如果差得很多,说明机械臂碰到了意料之外的东西。 机械臂场景:算法监测到 J1 关节的力矩异常飙升,但此时六维力传感器没有读数,系统判断为J1 连杆发生碰撞,立即急停,保护机械臂。

4. 仿真与设计验证:在电脑里试错

问题:直接上真机调试算法很危险,或者机械臂还没造出来。

解决方案:正动力学,给定电机力矩,计算机械臂会怎么动。 场景:在 Simulink 或 Gazebo 里搭建一个虚拟的 SCARA+俯仰机械臂,调整导纳参数,看接触力曲线是否稳定。或者在制造之前,仿真验证电机扭矩是否足够抬起最重的清洁模组。

5. 最后说下动力学方程

5.1 动力学方程的标准形

5.2 拉格朗日法能量出发得到:

5.3 牛顿-欧拉递推法平衡出发:

    正向算加速度:

    反向算力矩:

5.4 凯恩方法利用关节速度的线性组合:

5.5 铰接体算法将机械臂视为一个铰接体,递推计算等效惯量:

正向递推(计算铰接体惯量):

反向递推(计算加速度):

5.6 传递矩阵法分解为一系列的“集中质量-无质量弹簧-阻尼”单元

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-09-06,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 1. 控制前馈:让运动跟得更准
  • 2. 力/柔顺控制:让机器卸下自身负担
  • 3. 碰撞检测:没有力传感器的地方也能感知
  • 4. 仿真与设计验证:在电脑里试错
  • 5.1 动力学方程的标准形
  • 5.4 凯恩方法利用关节速度的线性组合:
  • 5.5 铰接体算法将机械臂视为一个铰接体,递推计算等效惯量:
  • 正向递推(计算铰接体惯量):
  • 反向递推(计算加速度):
  • 5.6 传递矩阵法分解为一系列的“集中质量-无质量弹簧-阻尼”单元
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档