
一句话介绍: 这套 MATLAB GUIDE 程序面向四足机器人的单腿机构设计:用户输入腿部尺寸、步长、步高和周期后,程序先生成足端摆动轨迹并求逆运动学,再把关节运动转换成液压执行缸的位移、速度和推力需求;另一套 GUI 还能根据目标推力、工况系数和液压压差初步估算液压缸直径。
设计四足液压机器人腿部时,不能只确定“大腿多长、小腿多长”。
真正需要把几个问题连起来:
足端想怎么走?各关节应该转多少角度?关节角度对应液压缸需要伸缩多少?
运动过程中液压缸最快要多快、最大要推多大力?
根据目标推力和系统压力,液压缸大概要选多粗?
这套程序正是把这些问题串成一条完整设计链:
腿部尺寸 + 步态参数 → 足端轨迹 → 逆运动学 → 缸长变化 → 关节动力学 → 缸速 / 推力 → 液压缸直径初选
因此它更准确地说是一套:
四足机器人单腿机构与液压执行器的辅助设计程序。
1. 工程里真正有哪两个功能模块?
文件 | 主要作用 |
|---|---|
| 四足单腿尺寸、步态、逆运动学以及执行缸位移/速度/推力计算 |
| 根据推力、工况系数和液压压差估算液压缸直径 |
另有一张 插图.bmp,用于说明腿部连杆与执行缸铰接点 K₁~K₄ 的几何关系。
程序不是四条腿同时做整机步态协调,而是:
围绕一条腿的机构尺寸与执行器需求进行设计计算。
2. 默认单腿模型是什么尺寸?
点击尺寸设计界面的 Reset 后,源码给出的默认示例如下:
项目 | 默认值 |
大腿 / 小腿质量 | 6.5 kg / 6.5 kg |
髋部 / 大腿 / 小腿长度 | 320 / 352 / 352.25 mm |
步长 / 步高 / 周期 | 300 mm / 100 mm / 0.5 s |
执行缸基准总长 / 起步零位 | 286 mm / 0 mm |
程序还固定使用:髋部侧向偏置 d₂ = 50 mm
以及机构铰接尺寸:
K₁=318.94 mm,K₂=52.63 mm,K₃=329.03 mm,K₄=44.64 mm
这些尺寸对应工程自带机构示意图中的执行缸安装几何。
3. 足端轨迹是怎样生成的?
程序把一个步态周期分成:21 个离散点
足端 x 方向使用带正弦修正的平滑前进轨迹:
x(t) = S[t/T - sin(2πt/T)/(2π)] - l_w
z 方向采用余弦抬脚轨迹:
z(t) = H[0.5 - 0.5cos(2πt/T)] - (L₂+L₃)√3/2
同时固定:y = 50 mm
其中:
S:步长;
H:步高;
T:一个周期;
l_w:起步零位。
这两条函数有一个明显特点:
足端在周期开始和结束附近变化较平滑,中间逐渐抬高再落下。
按默认参数:
x 从约 0 mm 前进到 300 mm;
z 在中间抬高约 100 mm;
周期为 0.5 s。
4. 程序怎样从足端位置反求关节角?
足端轨迹只是“脚应该到哪里”。
真正驱动腿部还需要知道:
髋关节、大腿关节和小腿关节应该处于什么角度。
程序对每一个轨迹点建立三自由度逆运动学。
先根据水平位置和侧向偏置求髋部转角,再定义:
A = cos(q₁)pₓ + sin(q₁)p_y
膝关节几何关系使用余弦定理:
cos(q₃) = [A² + p_z² - d₂² - L₂² - L₃²] / (2L₂L₃)
然后继续由几何关系求出 q₂。
这样每一个足端点:P = [pₓ, p_y, p_z]
都会转换成一组:Q = [q₁, q₂, q₃]
所以程序完成了最关键的转换:笛卡尔空间足端轨迹 → 关节空间运动角度
5. 关节角度怎样变成液压缸长度?
液压缸并不是直接安装在关节轴线上,而是通过机构上的铰接点推动腿部转动。
程序利用 K₁~K₄ 的安装尺寸,根据余弦定理求两个执行缸的瞬时长度。
大腿侧执行缸:l_g1 = √[K₁² + K₂² - 2K₁K₂cos(B₁)]
小腿侧执行缸:l_g2 = √[K₃² + K₄² - 2K₃K₄cos(B₂)]
再减去基准缸长:Δl = l_g - GT
就得到整个步态过程中执行缸的伸长需求。
因此机器人关节并不是直接由角度电机驱动,而是经过:
关节角 → 铰接几何 → 液压缸伸缩量转换。
6. 默认步态需要多大的执行缸运动范围?
按照源码默认参数复算,两个执行缸相对于 GT=286 mm 的伸长范围约为:
大腿侧:23.05~62.04 mm
小腿侧:24.71~63.95 mm
界面把两者中的最大值作为“液压缸行程”显示,因此默认结果约为:63.95 mm
更准确地说,这个数值是:
当前代码相对于基准总长 GT 计算出的最大伸长量。
它可以作为执行缸行程选择的一个直接参考量。
7. 程序怎样计算机器人行走速度?
源码根据步长和周期直接估算机器人运行速度:v_robot = 0.0036S / T
其中 S 使用 mm、T 使用 s,0.0036 用于转换成 km/h。
默认:S = 300 mmT = 0.5 s
所以:v_robot = 2.16 km/h
也就是足端每 0.5 s 完成约 300 mm 的前进运动时,对应的设计行走速度。
8. 为什么还要对关节角做五次多项式拟合?
动力学计算不仅需要关节角,还需要:
关节角速度;关节角加速度。
程序先对 q₂、q₃ 的 21 个离散点分别做:5 次多项式拟合
然后对拟合多项式求一阶、二阶导数。
于是可以得到:q(t) → q̇(t) → q̈(t)
这样避免直接对离散角度序列做简单差分,也让后面的动力学公式能够在同一解析多项式基础上计算速度与加速度。
9. 关节力矩怎样转换成液压缸推力?
程序根据大腿、小腿质量、长度、角速度、角加速度和重力项计算关节动态力矩。
它考虑的主要作用包括:
惯性项 + 两连杆耦合项 + 离心/科氏项 + 重力项
得到关节力矩 τ₂、τ₃ 后,再利用执行缸安装几何换算成缸推力。
大腿侧可以概括为:
F₁ = l_g1·τ₂ / [0.001K₁K₂sin(B₁)]
小腿侧同理:
F₂ = l_g2·τ₃ / [0.001K₃K₄sin(B₂)]
这里的核心物理关系很直观:
同样一个关节力矩,需要多大的液压缸推力,取决于液压缸当前安装角度和有效力臂。
所以推力不会在一个步态周期里保持恒定。
10. 液压缸速度又是怎样得到的?
缸长是关节角的函数,因此对几何关系求时间变化,就可以得到缸速。
程序对应关系可以概括成:v_g ∝ K_aK_b sin(B) · q̇ / l_g
因此:
关节转得越快;
当前机构几何传动比越大;
液压缸所需速度也越高。
按源码默认设置复算,两个执行缸整个步态中的最大绝对速度约为:223.85 mm/s
这个结果可以继续用于选择:
液压流量;阀口能力;执行缸动态性能。
11. 默认步态需要多大推力?
按照当前源码的动力学和执行缸几何换算,默认输入下程序得到的最大绝对执行缸推力约为:1224.21 N
因此尺寸设计 GUI 最终能够同时给出四个很直接的工程结果:
输出 | 默认结果 |
机器人运行速度 | 2.16 km/h |
最大伸长量 | 约 63.95 mm |
最大执行缸速度 | 约 223.85 mm/s |
最大执行缸推力 | 约 1224.21 N |
这四个数值把:步态设计直接连接到了执行器选型需求。
12. 第二套 GUI 怎样估算液压缸直径?
yougangcanshu.m 是一个独立的液压缸尺寸初选工具。
用户输入:输出力 F;工况系数 n;有效负载压差 p。
程序按:D = √[4Fn / (πp)]估算活塞直径。
因为:p × 活塞面积 ≈ 有效推力
而工况系数 n 用来给实际设计增加一定裕量。
程序随后简单设置:d = D - 10作为杆径输出。
这属于一个非常直接的液压缸初步尺寸估算,而不是完整的强度、稳定性和标准缸径系列校核。
13. 液压缸参数 GUI 的默认计算结果
点击 Reset 后,默认输入为:F = 4000 N、n = 1.3、p = 14 MPa
代入程序公式:、D ≈ 21.75 mm、d ≈ 11.75 mm
所以这套小工具可以快速回答:
如果希望液压缸在 14 MPa 有效压差下可靠输出约 4000 N,按当前公式需要多大的基本活塞直径?
它和前面的腿部动力学 GUI 可以组合使用:
先算机器人腿需要多大推力 → 再把目标推力带入液压缸尺寸初选。
14. 为什么这套程序适合四足机器人前期设计?
用户输入的是很容易理解的:
步长、步高、周期
程序最终给出的却是:
液压缸位移、速度和推力
这正是机构设计和液压系统设计之间需要的转换。
机器人真正控制的是关节和执行器,但任务通常在足端空间定义。
逆运动学解决了:
“脚要到这里,关节应该怎么转?”
这一核心问题。
液压缸推力不是简单等于关节力矩除以一个固定长度。
程序利用 K₁~K₄ 和瞬时夹角计算实际力臂,因此能够体现机构姿态改变带来的机械传动比变化。
缸行程决定长度需求;
最大速度影响液压流量;
最大推力影响缸径和压力等级。
所以程序输出和实际执行器设计之间具有比较直接的工程联系。
15. 程序最终能得到什么?
尺寸设计 GUI 可以得到:
21 个足端轨迹点;三个关节的逆运动学角度;两个执行缸的长度变化;
两个执行缸的速度变化;两个执行缸的动态推力;机器人设计运行速度;
最大伸长量、最大速度、最大推力。液压缸参数 GUI 则进一步根据:F、n、p
输出:活塞直径 D + 杆径 d
所以工程整体形成:
腿部结构参数 → 步态 → 运动学 → 动力学 → 执行器需求 → 液压缸初选
的一条完整辅助设计链。
16. 怎么运行?
主界面有两套,可以分别在 MATLAB 命令行运行:sizuchicunsheji
用于单腿尺寸、步态以及液压缸运动/受力计算。yougangcanshu
用于液压缸直径初步估算。
当前 GUIDE 的 OpeningFcn 没有自动调用默认参数初始化函数,因此打开界面后应先点击一次 Reset,再点击“计算”;否则 handles.metricdata 可能尚未建立。
尺寸设计程序开头还调用了 syms,因此直接按原代码运行需要 Symbolic Math Toolbox。插入机构示意图时可选择工程自带的 插图.bmp。
17. 一句话看懂这个项目
这是一个四足液压机器人单腿辅助设计程序:默认大腿和小腿质量均为 6.5 kg,大腿/小腿长度约 352/352.25 mm,按照 300 mm 步长、100 mm 步高和 0.5 s 周期生成平滑足端轨迹,再通过三自由度逆运动学得到关节角,利用 K₁~K₄ 执行缸铰接几何换算缸长,并通过五次多项式拟合、关节动力学和力臂关系计算缸速与推力。按源码默认值复算,机器人速度约 2.16 km/h、最大伸长量约 63.95 mm、最大缸速约 223.85 mm/s、最大推力约 1224.21 N;独立油缸参数界面在 F=4000 N、n=1.3、p=14 MPa 时估算 D≈21.75 mm、d≈11.75 mm。