2. 工程机械基础

工程机械自动驾驶不是把乘用车的方案简单搬到工地,而是要先理解“车”本身。挖掘机、装载机、推土机、矿卡这四类装备在结构、运动学、作业节拍和控制接口上差异极大,决定了自动驾驶改造的切入点完全不同。本节从结构、作业流程和改造需求三个维度建立基础认知。

一、四类典型装备的结构与运动特征

挖掘机属于非行驶作业型装备,核心是“动臂—斗杆—铲斗”三节臂液压机构加回转平台。它的行走底盘只用于转场,真正的工作是液压缸驱动的多自由度平面运动。自动驾驶改造的重点不是方向盘,而是液压先导控制与铲斗轨迹规划。

装载机是铰接式底盘,前后车架通过铰接销连接,转向靠液压油缸折腰实现。工作装置是动臂加铲斗,典型作业是“铲装—举升—运输—卸料”循环。它的特点是转向与工作装置均为液压驱动,且铰接结构使运动学模型比刚性车复杂。

推土机多为履带式,靠两侧履带差速转向,前端铲刀通过液压缸升降和侧倾。作业是“切土—推运—摊铺”,对铲刀姿态与履带滑移的联合控制要求高,定位精度受履带打滑影响明显。

矿卡是刚性或铰接式大型运输车,结构最接近道路车辆,有方向盘、油门、制动和变速箱。它的自动驾驶改造最接近乘用车方案,但面临载重变化大、坡道多、扬尘遮挡等矿山特有挑战。

四类工程机械结构与自动驾驶改造切入点 挖掘机 • 动臂/斗杆/铲斗三节臂 • 回转平台 + 履带底盘 • 液压先导控制 • 行走仅用于转场 改造:轨迹规划+先导阀 装载机 • 铰接式底盘折腰转向 • 动臂 + 铲斗工作装置 • 转向/工作均液压驱动 • 铲装—运输—卸料循环 改造:铰接运动学+铲装 推土机 • 履带差速转向 • 前端铲刀升降/侧倾 • 切土—推运—摊铺 • 履带滑移影响定位 改造:铲刀姿态+滑移补偿 矿卡 • 刚性/铰接大型运输车 • 方向盘+油门+制动 • 载重变化大、坡道多 • 扬尘遮挡感知 改造:线控底盘+感知 自动驾驶改造需求对比 控制对象 定位难点 作业节拍 改造优先级 液压先导阀 回转角度+臂位 秒级循环 轨迹规划 转向油缸+动臂 铰接角+铲斗位 十秒级循环 铰接运动学 履带差速+铲刀 滑移+铲刀高程 连续推运 滑移补偿 方向盘+油门制动 GNSS+惯导 分钟级循环 线控底盘

二、作业流程与自动驾驶的对应关系

理解作业流程,才能把自动驾驶功能映射到具体动作。以装载机一个完整循环为例:

  1. 空载行驶:从卸料点驶向料堆,需要路径跟踪与避障。
  2. 铲装:铲斗插入料堆,需要控制插入深度、动臂举升力与铲斗收斗时机。
  3. 满载运输:举升铲斗行驶到卸料点,需要重心变化下的稳定性控制。
  4. 卸料:举升到指定高度翻转铲斗,需要位置与姿态协同。
  5. 返回:空载回到料堆,进入下一循环。

其中第 2 步“铲装”是自动化难度最高的环节,因为料堆形态不断变化,铲斗受力无法精确建模,通常需要力觉反馈 + 视觉识别 + 自适应策略共同完成。相比之下,矿卡的“装载—运输—卸载”流程更接近道路运输,自动驾驶改造可以优先落地。

核心结论:作业型装备(挖、装、推)的自动驾驶本质是“作业动作自动化”,运输型装备(矿卡)的本质是“行驶自动化”。两者的技术栈、传感器配置和评价指标都不同。

三、改造需求清单与优先级

不同装备的改造需求可以归纳为下表,便于在方案设计时快速对照:

装备 核心执行机构 关键感知量 改造难点 建议优先级
挖掘机 液压先导阀、回转马达 臂位、回转角、铲斗位 轨迹规划与力控 高(作业自动化)
装载机 转向油缸、动臂油缸 铰接角、铲斗位、料堆 铰接运动学、铲装策略 高(循环作业)
推土机 履带驱动、铲刀油缸 铲刀高程、履带滑移 滑移补偿、地形跟随 中(连续作业)
矿卡 方向盘、油门、制动 GNSS、惯导、障碍物 载重变化、扬尘 高(运输自动化)

四、常见误区与复盘要点

误区一:把矿卡方案直接套用到挖掘机。矿卡是行驶控制,挖掘机是液压臂控制,控制频率、执行器接口和安全策略完全不同,直接套用会导致动作迟滞甚至失控。
误区二:忽视铰接底盘的运动学特殊性。装载机前后车架夹角变化时,车体运动轨迹不是简单圆弧,若用刚性车模型做路径跟踪,会出现明显横向偏差。
复盘要点:改造前先做“作业流程分解表”,把每个动作拆成“感知—决策—执行”三列,标出哪些环节已有传感器、哪些需要新增、哪些执行器需要线控化。这张表比任何方案文档都更能暴露真实工作量。

下面是一段用于描述装载机铲装动作的伪代码,体现“感知—决策—执行”的闭环结构:

# 装载机铲装动作伪代码
while 循环未结束:
    pose = 读取铰接角() + 读取铲斗位()
    pile = 视觉识别料堆轮廓()
    if 铲斗未接触料堆:
        目标 = 规划插入轨迹(pile)
        控制转向油缸(目标.转向)
        控制动臂油缸(目标.举升)
    else:
        力 = 读取铲斗油缸压力()
        if 力 > 阈值:
            收斗()
            举升动臂()
        记录本次铲装量()

掌握这四类装备的结构差异与作业流程,是后续学习线控改造、传感器选型和作业规划算法的前提。只有先看清“机器本身怎么动”,才能设计出真正可落地的自动驾驶方案。