非完整约束下机器人重排规划:ReloPush-BOSS框架解析
1. 非完整约束下的重排规划挑战
在机器人路径规划领域,非完整约束系统(如汽车式机器人)的操纵能力受到严格限制。这类机器人无法像全向移动平台那样自由平移,其运动轨迹必须遵循特定的动力学约束。当面对密集环境中的多目标重排任务时,问题复杂度呈指数级增长——机器人不仅需要规划自身的运动路径,还要通过物理交互(如推动)改变环境中多个物体的位置状态。
传统解决方案主要存在三大局限:
- 预抓取依赖:多数方法假设机器人配备高自由度机械臂和专用夹具,通过精确抓取实现物体位移。这在实际仓储或建筑场景中成本过高,且难以处理形状各异的物体。
- 单调动作假设:早期算法要求每个物体最多被移动一次(单调重排),这在密集场景中会导致大量不可行解。如图1所示,当目标位置被其他物体阻挡时,必须允许临时移开障碍物(非单调操作)。
- 解空间狭窄:基于采样的规划器在非完整约束下容易陷入局部极小值,特别是当Dubins路径的最小转弯半径(实验中ρ=1.43m)接近环境尺寸时(4×5.2m²工作空间)。
关键物理约束:准静态推动要求机器人的转向半径ρₚ必须大于稳定推动下限(实验取ρₚₘᵢₙ=0.815m)。过小的转向会导致物体在推动过程中打滑或旋转失控。
2. ReloPush-BOSS框架设计原理
2.1 核心架构创新
ReloPush-BOSS通过三级分层设计解决上述挑战:
- 高层序列规划:深度优先搜索(DFS)遍历物体重排顺序,动态维护候选队列。与ReloPush的贪婪策略不同,当遇到不可行解时会回溯并尝试次优选项(图2)。
- 中层图表示:构建Push-Traversability(PT)图,其顶点包含物体初始/目标位姿的所有可推动接触点(K=4对应矩形物体)。边权重为Dubins路径长度,编码运动学与几何约束。
- 底层路径优化:当直接路径不可行时,引入优化后的预重定位(prerelocation)作为中间状态,将单次推动分解为两个可行Dubins段(公式1-5)。
图:PT图将物体位姿(黄色)、目标位姿(青色)与预重定位位姿(红色)通过Dubins路径连接,形成可搜索的图结构
2.2 预重定位优化关键技术
传统方法沿物体坐标系轴采样预重定位点(图4a),而ReloPush-BOSS的创新在于:
连续空间搜索:
- 建立成本函数C(oₚᵣₑ) = L(P₁) + L(P₂),其中P₁、P₂为Dubins路径段
- 通过SE(2)空间梯度下降寻找使总长度最小的中间位姿
- 约束条件包括:工作空间边界、物体碰撞避免、准静态推动限制
Dubins路径分类启动:
- 识别路径类型(CSC或CCC):当起止点距离d<4ρ时,CCC类型路径更长且空间占用大(图5)
- 构造初始猜测:
- 方案A:P₁为SC曲线,P₂为直线(S)
- 方案B:P₁为直线(S),P₂为CS曲线
- 通过3PDP(三点Dubins问题)转换获得高质量初始解(图7),确保优化起点位于全局最优解附近
# 伪代码:预重定位优化流程 def optimize_prerelocation(start_pose, goal_pose): # 生成初始猜测 init_guess = generate_3PDP_seed(start_pose, goal_pose) # 梯度下降优化 result = scipy.optimize.minimize( cost_function, init_guess, constraints=[ workspace_boundary_constraint, collision_avoidance_constraint, quasistatic_pushing_constraint ] ) return result.x3. 物理交互与系统实现
3.1 硬件配置参数
实验采用MuSHR开源1/10比例赛车平台(图8),关键参数如下表:
| 组件 | 参数 | 值 |
|---|---|---|
| 机器人 | 最小转向半径(空载) | 1.09m |
| 推动模块 | 最小转向半径(负载) | 1.43m |
| 物体 | 尺寸/重量/摩擦系数 | 0.15m³ / 0.44kg / 0.73 |
| 工作空间 | 尺寸/分辨率 | 4×5.2m² / 0.1m |
3.2 准静态推动建模
推动过程中的力学平衡通过极限曲面(Limit Surface)分析实现:
- 计算物体与地面摩擦锥的力矩-力关系
- 确保推动力始终位于摩擦锥内:‖Fₜ‖ ≤ μFₙ
- 转向半径约束:ρₚ ≥ (Iₒμ)/(mgb),其中Iₒ为物体转动惯量,b为接触点到质心距离
实测技巧:在矩形物体推动中,接触点应位于边长的1/4至3/4区间以避免旋转失稳。实验采用K=4多边形意味着每个物体有4个稳定推动方向。
4. 性能对比与场景验证
4.1 基准测试结果
在6个场景(8-13个物体)的统计测试中(各100次随机初始化),关键指标对比如下:
| 方法 | 平均成功率 | 路径长度缩减 | 规划时间 |
|---|---|---|---|
| plRS-Push | 42% | - | 683s |
| ReloPush | 58% | Baseline | 112s |
| ReloPush-BOSS | 93% | 28% | 135s |
图:随着物体数量增加,ReloPush-BOSS保持高成功率,在13物体场景仍达89%
4.2 典型问题解决案例
场景A:嵌套障碍(图8b)
- 传统方法失败原因:中心物体被环形障碍包围,单调移动导致碰撞
- BOSS解决方案:
- 将障碍物B₁向外预重定位Δx=0.3m(优化后角度15°)
- 推动目标物体A到达中心
- 将B₁沿Dubins路径移回原位
场景B:窄通道穿越(图8e)
- 挑战:通道宽度(0.5m)接近2倍转向直径(2.86m)
- 关键操作:
- 采用CCC型Dubins路径分段通过
- 优化后总长度从18.7m降至13.2m
5. 工程实践中的经验总结
5.1 参数调优指南
转向半径设置:
- 理论下限ρₚₘᵢₙ=0.815m
- 安全建议:取1.2-1.5倍理论值(实验用1.43m)
优化器配置:
- 使用L-BFGS-B算法处理边界约束
- 最大迭代次数设置为50(实测90%案例在30步内收敛)
碰撞检测加速:
- 对矩形物体建立OBB树(Oriented Bounding Box)
- 预计算机器人转向时的扫掠体积包络
5.2 常见故障排查
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 优化不收敛 | 初始猜测质量差 | 改用3PDP种子启动 |
| 推动时物体旋转 | 接触点偏离中心 | 调整bumper接触位置至边长中点±10% |
| 路径碰撞漏检 | 离散化分辨率不足 | 将碰撞检测分辨率从0.1m提升至0.05m |
5.3 扩展应用方向
动态环境适应:
- 增量式PT图更新(当物体位置被动改变时)
- 结合视觉SLAM实现实时位姿修正
多机器人协同:
- 扩展PT图包含多机器人状态
- 通过冲突-Based回溯协调动作序列
异形物体支持:
- 通用多边形接触点生成(K>4)
- 基于FCL(Flexible Collision Library)的精确碰撞检测
在实际物流仓库测试中,该系统已成功应用于托盘重排任务,将传统人工操作的效率提升3倍。一个有趣的发现是:优化后的预重定位往往符合人类操作员的直觉选择——这暗示了物理约束下存在某种自然的最优解模式。