05综合实战与仿真
1. 实战练习:UR5 机器人 DH 参数表
UR5 是工业界最经典的 6 自由度协作机器人。以下是其标准 DH 参数(注意:不同厂商或文献可能使用改进型 DH,即 MDH,这里展示标准 DH 以符合本文档 2 的定义)。
单位: (毫米 mm), (弧度 rad)
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
练习题:请尝试使用文档 2 提供的 forward_kinematics 代码,输入上述参数,计算 UR5 处于零位 () 时的末端坐标。
2. 动力学仿真:单摆的相图与时域响应
我们在文档 3 中推导出了单摆的动力学方程。现在,我们使用 Python 的科学计算库 scipy 对其进行数值积分,模拟真实的物理运动。
微分方程形式:
我们将二阶微分方程 (加入阻尼项 ) 转换为一阶状态空间方程组:
令状态向量 ,则:
3. Python 仿真代码 (scipy.integrate.odeint)
代码块
Python
import numpy as np
from scipy.integrate import odeint
import matplotlib.pyplot as plt
# 1. 定义系统动力学方程 (导数函数)
def pendulum_dynamics(y, t, g, L, m, b):
"""
y: 状态向量 [theta, omega]
t: 时间点
g, L, m, b: 物理参数
"""
theta, omega = y
# 状态方程:
# d(theta)/dt = omega
# d(omega)/dt = -(g/L)sin(theta) - (b/(mL^2))omega
dydt = [omega, -(g/L)*np.sin(theta) - (b/(m*L**2))*omega]
return dydt
# 2. 设置参数
4. 结果分析
•
时域图 (上图): 你会看到单摆从高处落下,震荡几次后,由于阻尼
b
的存在,振幅逐渐减小,最终趋于 0(垂直向下)。
•
相图 (下图): 展示了
θ
和
ω
的轨迹。它应该是一个向原点收缩的螺旋线,这直观地展示了系统的稳定性。