BACK_TO_BASE
Engineering Notebook // Build Log
/
11:41:58
/
NOTEBOOK_ENTRY

可展开柔顺腿(DCL)技术详解文档

一、研究背景与动机 1.1 四足机器人跳跃的挑战 当前四足机器人 如Unitree Go2 在跳跃能力上受限于: 电机扭矩饱和 : 电机峰值扭矩不足以产生爆发性跳跃 功率密度限制 : 传统刚性驱动系统无法在短时间内释放足够能量 动力学约束 : 地面摩擦力、运动学极限限制了速度生成 1.2 现有解决方案的局限 并联弹性执行器 PEA : 虽能增强功率密度,但存在"寄生刚度"问题 弹性元件永久集成在运动链中 在正常行走时增加CoT 运输成本…

Notebook Time
4 min
Image Frames
0
View Tracks
87
FIELD_GUIDE

FIELD GUIDE

Use the guide rail to jump between sections.

一、研究背景与动机

1.1 四足机器人跳跃的挑战

当前四足机器人(如Unitree Go2)在跳跃能力上受限于:

  • 电机扭矩饱和: 电机峰值扭矩不足以产生爆发性跳跃
  • 功率密度限制: 传统刚性驱动系统无法在短时间内释放足够能量
  • 动力学约束: 地面摩擦力、运动学极限限制了速度生成

1.2 现有解决方案的局限

  • 并联弹性执行器(PEA): 虽能增强功率密度,但存在"寄生刚度"问题
    • 弹性元件永久集成在运动链中
    • 在正常行走时增加CoT(运输成本)
    • 限制非爆发性任务的关节控制带宽
  • 变刚度执行器(VSA): 需要复杂传动机构和额外电机,增加重量

1.3 生物学启发

沫蝉(Philaenus spumarius)的半月突机制:

  • 利用弹性蛋白质(resilin)储存能量
  • 通过"半月突过程"(semi-lunar process)实现能量快速释放
  • 关键特征: 扇形截面几何结构 + 非线性刚度曲线

二、核心设计原理

2.1 整体架构

DCL = 扇形柔顺模块(SSCM) + 可展开翻转机构 + 刚性支撑结构

[机器人大腿]
    ↓
[推杆(2) - 线性驱动]
    ↓
[旋转套筒(4) - 螺旋凸轮约束]
    ↓
[SSCM晶格结构(1) - 能量储存]
    ↓
[导向销(7) + 滑动块(8)]

2.2 扇形柔顺模块(SSCM)设计

2.2.1 几何形态

  • 扇形截面: 模仿沫蝉转子关节的弧形结构
  • 角度范围: 深蹲时压缩约30°至90°
  • 功能:
    • 几何兼容性: 最大化关节约束内的储能体积
    • 渐进刚度: 扇形形状产生非均匀压缩(内半径压缩更密集)

2.2.2 材料选择: PEBA (Arkema Pebax® 3533 SP 01)

为什么选择PEBA而非TPU/TPE?

特性PEBATPU/TPE
弹性模量中等
能量损失因子低(高回弹)较高
疲劳寿命优异一般
密度低(减轻质量)较高
抗弯曲性优秀一般

PEBA的组成:

  • 硬段(聚酰胺): 提供刚度和物理交联
  • 软段(聚醚): 提供柔韧性和弹性

超弹性本构模型: 采用Marlow势能模型

  • 基于制造商单轴拉伸数据
  • 泊松比: 0.48(近似不可压缩)

2.2.3 Gyroid晶格结构

为什么选择Gyroid而非Diamond/Schwarz?

晶格类型优势劣势
Diamond高刚度节点应力集中
Schwarz高刚度节点应力集中
Gyroid各向同性 + 自支撑刚度略低

Gyroid数学定义:

sin(x)cos(y) + sin(y)cos(z) + sin(z)cos(x) = t

其中 t 为常数,控制平均曲率

设计优势:

  1. 各向同性: 在不同加载角度下性能稳定
  2. 自支撑: 3D打印时无需支撑结构(减少后处理)
  3. 连续变化倾角: 避免阶梯效应,提高打印质量
  4. 结构稳定性: 减少测试时不同角度的复杂性

优化参数:

  • 使用nTopology软件生成晶格
  • 通过Hypermesh进行网格优化
  • 在Abaqus中进行FEA验证

三、可展开翻转机构

3.1 设计目标

解决"寄生刚度"问题: 在正常行走时不影响关节控制,仅在跳跃时激活

3.2 机构运动学

3.2.1 收起状态(Stowed State)

  • SSCM模块缩回至小腿侧面
  • 与地面/站立姿态保持间隙
  • 零寄生刚度: 不干扰正常步态

3.2.2 展开状态(Deployed State)

  • 模块旋转90°对齐大腿
  • 作为硬止挡接合PEBA晶格
  • 储存弹性能量

3.3 传动链设计

运动转换机制:

垂直推杆(2)线性输入
    ↓
驱动滑动块(8)垂直平移
    ↓
导向销(7)约束 → 旋转套筒(4)螺旋运动
    ↓
SSCM模块(1)旋转90°

关键组件:

  1. 推杆(Push Rod, 2): 由外部线性驱动器驱动
  2. 旋转套筒(Rotating Sleeve, 4): 侧面安装导向销(7)
  3. 导向销(Guide Pin, 7): 强制螺旋凸轮约束
  4. 滑动块(Sliding Block, 8): 受内固定柱(6)约束,仅垂直移动
  5. 锁定销(Locking Pin, 9): 双稳态机械锁定(无需持续扭矩)

双稳态锁定机制:

  • 在收起/展开状态时,锁定销卡入预设凹槽
  • 无需持续驱动即可保持状态
  • 避免能量浪费

四、有限元分析(FEA)与刚度建模

4.1 本构建模

4.1.1 超弹性材料模型

  • Marlow势能: 严格复现制造商单轴测试数据
  • 避免曲线拟合振荡: 不使用Yeoh等多项式模型
  • 近似不可压缩性: 泊松比0.48

4.1.2 网格离散化

  • 单元类型: 修正四面体单元(C3D10M)
  • 优势:
    • 对大变形下的网格畸变鲁棒
    • 避免接触不稳定性
    • 适合非线性几何

4.2 边界条件

4.2.1 运动学耦合

  • 在膝关节旋转中心建立运动学耦合
  • 复制Unitree Go2的物理关节机制
  • 标准跳跃压缩范围: 约20°

4.2.2 扩展范围测试

  • 将压缩角度扩展至45°
  • 覆盖安全裕度(Safety Margin)
  • 识别结构致密化起始点

4.3 刚度特性曲线

4.3.1 三区域划分

根据FEA结果(图7),刚度曲线分为:

  1. 工作区域(Operating Region): 0° < θ ≤ 29°

    • 动态跳跃发生的区域
    • 刚度渐进增长
  2. 安全裕度(Safety Margin): 29° < θ < 39°

    • 10°缓冲区,防止突然触底
    • 刚度快速上升
  3. 致密化区域(Densification Region): θ > 39°

    • 结构完全压缩
    • 刚度急剧增加(红色区域)

4.3.2 解析模型拟合

三阶多项式扭矩模型:

拟合精度:

  • R² ≈ 0.87 (在工作区域内)
  • 最大关节扭矩限制: 6.8N·m
  • FEA验证: 在安全裕度内保持单调递增刚度

用途:

  • 实时前馈控制
  • 高保真度解析模型
  • 避免全局拟合导致的局部精度损失

五、实验验证方法

5.1 实验平台

5.1.1 机器人平台

  • 型号: Unitree Go2
  • 质量: 基准组 656.3mm, 展开组 720.3mm
  • 增重: 64mm (仅0.43%性能下降)

5.1.2 运动捕捉系统

  • 系统: Luster FZ-Motion
  • 精度: 0.1mm骨架点追踪
  • 配置: 15个MoCap追踪球
    • 躯干前侧: 1个
    • 躯干两侧: 各2个
    • 沿每条腿分布: 前、中、远端

刚体定义: 三标记配置定义唯一刚体,实现完整6-DoF姿态解算

5.2 实验分组

5.2.1 基准组(Baseline)

  • 原始Unitree Go2,无附加结构
  • 峰值高度: 656.3mm
  • 有效跳跃高度: ΔH = 373.1mm

5.2.2 收起组(Stowed)

  • 安装SSCM但保持收起状态
  • 峰值高度: 654.9mm
  • 有效跳跃高度: ΔH = 371.7mm
  • 性能下降: -0.4% (可忽略不计)

5.2.3 展开组(Deployed)

  • SSCM展开并参与能量储存
  • 峰值高度: 720.3mm
  • 有效跳跃高度: ΔH = 437.1mm
  • 性能提升: +17.1%

5.3 控制变量

标准化蹲高: 所有试验中蹲高 = 283.1mm

  • 消除电池电压下降的影响
  • 确保电机扭矩-速度包络一致性
  • 每组测试前充电至>95% SoC

统计可靠性: 每组N=5次试验

5.4 性能评估指标

相对性能变化:

其中:

  • ΔH = H_max - H_base
  • H_max: 躯干质心最大高度
  • H_base: 蹲姿时质心高度

六、关键技术参数总结

6.1 材料参数

参数数值
材料Arkema Pebax® 3533 SP 01
泊松比0.48
本构模型Marlow超弹性势能
打印技术3D打印(FDM/SLS)

6.2 几何参数

参数数值
扇形角度范围30° - 90°
工作压缩角度0° - 29°
安全裕度29° - 39°
旋转角度(展开)90°

6.3 性能参数

指标基准组展开组提升
有效跳跃高度373.1mm437.1mm+17.1%
峰值高度656.3mm720.3mm+64mm
质量增加-64g+0.43%

七、控制策略与算法

7.1 当前控制方法

手动触发 + 被动释放:

  • 展开机构由外部线性驱动器手动触发
  • 能量储存在深蹲阶段被动发生
  • 释放时刻由机器人自然跳跃动作决定

7.2 刚度模型集成

前馈控制潜力:

  • 三阶多项式模型可集成到控制器
  • 实时补偿SSCM的非线性刚度
  • 优化电机扭矩分配

7.3 未来控制方向

7.3.1 模型预测控制(MPC)

目标函数:

约束:
- 地面接触约束

7.3.2 强化学习(RL)

状态空间:

  • 关节角度、角速度
  • SSCM压缩状态
  • 躯干姿态、速度

动作空间:

  • 四腿关节扭矩
  • SSCM展开时机(离散)

奖励函数:

R = w₁·jump_height - w₂·energy_cost - w₃·landing_impact

八、优化方向与研究建议

8.1 立即可实施(1-2个月)

8.1.1 自动化展开机制

当前问题: 手动触发,无法动态响应 解决方案:

  • 集成微型伺服电机(如Dynamixel XL330)
  • 基于IMU数据的触发逻辑:
    if (squat_depth > threshold) and (vertical_velocity < 0):
        trigger_deployment()
    

8.1.2 参数优化

晶格密度优化:

  • 当前: 固定Gyroid参数
  • 优化: 变密度晶格(内层密集,外层稀疏)
  • 工具: nTopology + 拓扑优化算法

材料配比:

  • 测试不同Shore硬度的PEBA
  • 探索硬段/软段比例对储能的影响

8.2 中期研究(3-6个月)

8.2.1 方向性跳跃

前跳实现:

  • 四腿异步展开策略
  • 后腿先展开 → 前腿延迟展开
  • 产生俯仰力矩

侧跳实现:

  • 单侧腿(左/右)展开
  • 产生滚转力矩

8.2.2 着陆能量回收

双向储能机制:

  • 着陆冲击 → 压缩SSCM → 储存能量
  • 下次跳跃时释放
  • 需要单向锁止机构防止意外释放

8.2.3 四腿协同优化

当前: 仅后腿安装DCL 优化: 四腿全部安装

  • 挑战: 质量增加、控制复杂度
  • 潜在收益: 跳跃高度可能>50%提升

8.3 长期创新(6-12个月)

8.3.1 主动变刚度系统

概念: 可调节晶格压缩程度 实现:

  • 内置气动/液压腔室
  • 改变内部压力 → 调节有效刚度
  • 适应不同地形和任务

8.3.2 完整仿生肌腱系统

灵感: 袋鼠跟腱 + 沫蝉半月突 设计:

  • 串联弹性执行器(SEA) + DCL
  • SEA处理连续任务
  • DCL处理爆发性任务

8.3.3 极限环境应用

目标: 跨越>1米障碍物 需求:

  • 更高能量密度材料(碳纤维复合材料)
  • 更大压缩行程(当前30°→扩展至60°)
  • 更强的锁定机构

九、算法实现伪代码

9.1 SSCM刚度模型

class SSCMStiffnessModel:
    def __init__(self):
        # 三阶多项式系数(从FEA拟合)
        self.alpha_3 = 0.0234  # 示例值
        self.alpha_2 = 0.1567
     self.alpha_1 = 0.8923
        self.alpha_0 = 0.0

        # 区域边界
        self.operating_limit = 29  # 度
        self.safety_limit = 39

    def compute_torque(self, theta_deg):
        """
        计算给定压缩角度下的扭矩
        theta_deg: 压缩角度(度)
        返回: 扭矩(N·m)
        """
        if theta_deg < 0:
         return 0
        elif theta_deg <= self.operating_limit:
            # 工作区域: 使用多项式模型
            theta = np.deg2rad(theta_deg)
          tau = (self.alpha_3 * theta**3 +
            self.alpha_2 * theta**2 +
                   self.alpha_1 * theta +
            self.alpha_0)
            return tau
        elif theta_deg <= self.safety_limit:
            # 安全裕度: 快速增长
            return self.compute_torque(self.operating_limit) * \
                   (1 + 5*(theta_deg - self.operating_limit)/10)
        else:
            # 致密化区域: 极高刚度
            return float('inf')  # 实际应避免进入此区域

9.2 跳跃控制器

class JumpController:
    def __init__(self, robot, sscm_model):
        self.robot = robot
        self.sscm = sscm_model
        self.state = "IDLE"  # IDLE, SQUAT, DEPLOY, JUMP, LAND

    def update(self, dt):
        if self.state == "IDLE":
            if self.detect_jump_command():
                self.state = "SQUAT"
           self.target_squat_height = 0.283  # 标准化蹲高

        elif self.state == "SQUAT":
        # 执行深蹲
          current_height = self.robot.get_com_height()
            if current_height <= self.target_squat_height:
                self.state = "DEPLOY"
                self.trigger_sscm_deployment()

        elif self.state == "DEPLOY":
            # 等待SSCM展开完成(90°旋转)
            if self.sscm.is_deployed():
                self.state = "JUMP"

        elif self.state == "JUMP":
            # 计算总扭矩 = 电机扭矩 + SSCM扭矩
          for leg in self.robot.legs:
                theta_compression = leg.get_knee_compression()
                tau_sscm = self.sscm.compute_torque(theta_compression)
                tau_motor = self.compute_motor_torque(leg)
              tau_total = tau_motor + tau_sscm
                leg.apply_torque(tau_total)

        # 检测离地
            if self.robot.is_airborne():
           self.state = "LAND"

        elif self.state == "LAND":
         # 着陆控制
            if self.robot.is_grounded():
              self.retract_sscm()
                self.state = "IDLE"

    def compute_motor_torque(self, leg):
        """
        考虑SSCM补偿的电机扭矩计算
        """
        # 期望总扭矩(来自轨迹规划)
      tau_desired = leg.get_desired_torque()

        # SSCM提供的扭矩
        theta = leg.get_knee_compression()
     tau_sscm = self.sscm.compute_torque(theta)

        # 电机只需补偿差值
        tau_motor = tau_desired - tau_sscm

        # 限幅
        tau_motor = np.clip(tau_motor, -6.8, 6.8)

        return tau_motor

9.3 FEA优化脚本

import numpy as np
from scipy.optimize import minimize

class LatticeOptimizer:
    def __init__(self, target_stiffness_curve):
        self.target = target_stiffness_curve

    def objective(self, params):
        "
        优化目标: 最小化实际刚度与目标刚度的差异
        params: [cell_size, strut_thickness, density]
        """
        cell_size, thickness, density = params

      # 运行FEA仿真(简化为查表)
        simulated_curve = self.run_fea_simulation(
            cell_size, thickness, density
        )

     # 计算误差
        error = np.sum((simulated_curve - self.target)**2)

        # 添加质量惩罚
    mass = self.estimate_mass(cell_size, thickness, density)
        mass_penalty = 0.1 * mass

        return error + mass_penalty

    def optimize(self):
        # 初始猜测
        x0 = [5.0, 1.0, 0.3]  # mm, mm, ratio

        # 约束
        bounds = [
            (3.0, 10.0),   # cell_size
            (0.5, 2.0),    # thickness
        (0.2, 0.5)     # density
        ]

        result = minimize(
            self.objective, x0,
        method='L-BFGS-B',
       bounds=bounds
        )

        return result.x

十、实验复现指南

10.1 硬件清单

  1. 机器人: Unitree Go2 (或类似四足平台)
  2. 3D打印机:
    • FDM打印机(用于PLA刚性部件)
    • SLS打印机(用于PEBA柔性部件,推荐EOS P396)
  3. 材料:
    • Arkema Pebax® 3533 SP 01 (约500g)
    • PLA/ABS (刚性结构)
  4. 运动捕捉: Luster FZ-Motion或OptiTrack系统
  5. 线性驱动器: 用于触发展开机构

10.2 制造流程

  1. CAD建模:
    • 使用nTopology生成Gyroid晶格
    • 导出STL文件
  2. 3D打印:
    • PEBA部件: SLS打印,层厚0.1mm
    • 刚性部件: FDM打印,100%填充
  3. 组装:
    • 安装推杆、旋转套筒、锁定销
    • 连接到机器人小腿
  4. 校准:
    • 运动捕捉系统标定
    • SSCM零位标定

10.3 测试协议

  1. 静态测试:
    • 压缩测试台测量刚度曲线
    • 验证FEA模型精度
  2. 动态测试:
    • 5次基准跳跃(无DCL)
    • 5次收起状态跳跃
    • 5次展开状态跳跃
  3. 数据分析:
    • 提取质心轨迹
    • 计算有效跳跃高度
    • 统计显著性检验(t-test)

十一、论文的创新点总结

  1. 首创可展开柔顺腿设计: 解决了PEA的寄生刚度问题
  2. 仿生扇形几何: 直接借鉴沫蝉半月突的力学原理
  3. Gyroid晶格优化: 首次将TPMS晶格应用于机器人跳跃
  4. 高保真解析模型: 三阶多项式模型实现实时控制集成
  5. 实验验证: 在真实四足机器人上实现17.1%性能提升