基于接触感知的连续体机器人轨迹规划与控制框架在血管介入手术中的应用

基于接触感知的连续体机器人轨迹规划与控制框架在血管介入手术中的应用

1. 项目概述:当柔性“触手”遇见精密血管

想象一下,你需要将一根细长的导管,从大腿根部的股动脉送入,蜿蜒穿过主动脉弓,最终精准抵达大脑深处一根比头发丝粗不了多少的血管,进行血栓取出或动脉瘤栓塞。这个过程中,血管壁柔软脆弱、分支错综复杂、血流持续冲击,任何一点刚性碰撞或不当操作都可能导致血管穿孔或斑块脱落,引发灾难性后果。这就是血管介入手术医生每天都在面对的挑战,也是我们研发“基于接触感知的连续体机器人轨迹规划与控制框架”的初衷。

这个项目,本质上是在打造一双拥有“触觉”和“预判能力”的超级稳定的手。它不再是我们印象中那些由刚性连杆和关节组成的传统机械臂,而是一种模仿章鱼触手或象鼻的连续体机器人。它的“身体”是一段可以连续弯曲的柔性结构,没有明显的关节,因此能在狭窄、非结构化的血管腔内实现“无级”的灵活运动。而“接触感知”就是它的神经系统,能实时“感觉”到导管尖端与血管壁的接触力;“轨迹规划与控制框架”则是它的大脑和小脑,负责规划出一条安全、高效的运动路径,并确保机器人能精准、柔顺地沿着这条路径前进,在遇到意外接触时能即时调整,化“碰撞”为“轻抚”。

这套框架的目标用户非常明确:一是血管介入领域的医生和研究人员,旨在为他们提供一种超越人手极限的精准、稳定的操作平台,降低学习曲线和操作疲劳;二是医疗机器人领域的工程师,为解决柔性机器人在动态、受限环境中的自主控制这一核心难题,提供一个可参考的系统性解决方案。接下来,我将拆解这个框架是如何一步步从概念走向实现的。

2. 核心设计思路:感知、规划与控制的闭环交响

开发这样一个系统,绝不是简单地将力传感器装到机器人末端,然后写个PID控制器就能解决的。它需要一套环环相扣、紧密协作的顶层设计。我们的核心思路可以概括为“环境感知-实时规划-柔顺控制”的三层闭环架构。

2.1 为什么是“接触感知”而非“视觉导航”?

在血管内部,传统的基于光学或电磁的视觉导航面临巨大挑战。血液不透明,遮挡视线;血管壁结构相似,特征点稀少;电磁定位虽能提供末端位姿,但无法感知机器人与管壁的相互作用力。而接触力恰恰是手术安全最直接的指标。过大的径向力意味着可能顶到血管分叉处或粥样硬化斑块,过大的轴向摩擦力则可能导致导管扭结或推送困难。因此,我们将接触力/力矩传感器集成在机器人末端或关键段,作为核心的感知源。这不仅仅是安装一个传感器那么简单,关键在于如何从原始的力信号中,解算出有意义的“接触状态”——是轻微的侧壁滑动,还是顶住了分支开口?是均匀的周向接触,还是单点压迫?

2.2 “连续体”模型与运动学逆解难题

连续体机器人的运动学与传统机器人截然不同。我们通常用常曲率模型分段常曲率模型来近似描述其形变。简单理解,就是把一段柔性体看作一段圆弧,通过控制其弧长和曲率(弯曲程度)来控制末端位置。但问题来了:给定一个期望的末端位姿(位置和姿态),反推需要给机器人本体施加多大的驱动量(如拉线长度、气压压力)?这就是运动学逆解,对于连续体机器人,这往往没有唯一解,甚至可能无解。我们的框架需要包含一个高效、稳定的逆解算器,能够处理这种冗余性,并在多段连续体机器人(像多节车厢的火车)的情况下,协调各段的运动,实现整体的“蜿蜒前进”。

2.3 轨迹规划:在动态约束中寻找“绿波通道”

血管介入的轨迹规划,不是在空旷的笛卡尔空间画一条直线或曲线。它是在一个动态、柔性、充满不确定性的管状约束空间内,寻找一条安全通道。这条轨迹必须满足多重约束:

  1. 几何约束:不能穿透血管壁(硬约束)。
  2. 力学约束:接触力必须始终低于安全阈值(软约束,但至关重要)。
  3. 运动学约束:机器人的弯曲曲率有上限,不能打结。
  4. 动力学约束:运动速度不能太快,以免产生过大的流体扰动或惯性力。

我们的规划器(如基于采样RRT*的改进算法、或基于优化的CHOMP算法)需要以实时感知到的血管几何模型(可从术前CT/MRI重建)和接触力信息为输入,在线生成或调整一条满足所有约束的平滑轨迹。这就像为自动驾驶汽车在拥挤且车道线模糊的街道上规划路径,不仅要避障,还要开得平稳。

2.4 控制框架:从“位置伺服”到“阻抗交互”

传统的机器人位置控制,追求的是“严格跟踪指令位置”。但在血管里,这行不通。因为血管本身在随着心跳和呼吸微微运动,且机器人与之接触是常态。因此,我们采用阻抗控制导纳控制策略。其核心思想不是死板地控制位置,而是控制机器人与环境之间的动态关系——即“阻抗”:你推我,我就让一让;你拉我,我就跟着动一点。通过设定合适的刚度、阻尼和质量参数,我们可以让机器人末端表现得像一个柔软的弹簧阻尼系统。当感知到接触力增大时,控制器会自动调整期望位置,使机器人“顺应”血管壁的形态,将接触力维持在安全范围内。这就实现了从“对抗环境”到“顺应环境”的根本转变。

3. 系统实现与关键技术模块拆解

有了顶层设计,我们来看看各个模块是如何具体实现的。这套系统通常由硬件平台、感知模块、规划模块和控制模块四大部分组成。

3.1 硬件平台构建:驱动、传感与本体

连续体机器人本体:常见的有缆驱式气动/液压驱动式。血管介入场景更青睐缆驱式,因为其结构紧凑、推力大、响应快。通常采用镍钛合金超弹性骨架外覆编织鞘管的结构,通过精密布置的多根驱动钢丝的拉拽来实现弯曲。每根钢丝的收放量,就对应了一个运动学输入。

驱动单元:需要高精度、低回差的微型伺服电机或直线电机来收放驱动钢丝。电机的分辨率直接决定了机器人末端定位的精度。

感知单元:核心是六维力/力矩传感器,通常安装在机器人基座或近端刚性段,通过测量驱动钢丝的张力来间接估计末端接触力(节省空间)。更先进的方案是使用光纤光栅传感器嵌入机器人本体,实现分布式形状和力感知。此外,还需要电磁定位系统提供末端在全局坐标系下的粗略位置和姿态,与力感知信息融合。

3.2 感知模块:从原始信号到接触状态估计

传感器输出的电压信号需要经过一系列处理才能成为有用的信息:

  1. 标定与解耦:力传感器需要精确标定,以消除温度漂移、零点漂移的影响。对于多维力传感器,各方向间存在耦合,需要通过解耦算法得到纯净的Fx, Fy, Fz, Mx, My, Mz。
  2. 重力补偿:机器人本体和末端工具的重力会贡献一部分力信号,必须根据机器人实时姿态进行动态补偿。
  3. 接触点与力矢量估计:通过力/力矩信息,可以反推接触力在末端坐标系中的作用点和方向。例如,一个主要的径向力配合一个较小的力矩,可能提示接触发生在末端侧方。
  4. 血管局部几何推理:结合历史轨迹和当前的接触力方向,可以推测局部血管壁的法线方向,甚至判断是否遇到了分支路口。这为实时轨迹调整提供了关键的环境信息。

3.3 规划模块算法核心

我们采用了一种分层规划策略

  • 全局规划层:基于术前影像重建的血管三维模型,使用改进的快速探索随机树算法,在考虑机器人直径和最小转弯半径(曲率约束)的情况下,规划出一条从入口到靶点的无碰撞初始路径。这个路径由一系列路径点构成。
  • 局部重规划层:这是框架的智能所在。在机器人沿全局路径执行过程中,感知模块实时监测接触力。一旦接触力超过预设的阈值,或力矢量模式表明可能发生侧壁顶压(而非滑动),局部重规划器立即启动。它以当前机器人的实际形状和接触状态为起点,在力约束下,利用模型预测控制的思想,滚动优化未来几步的轨迹,使其既能趋近全局路径点,又能主动“绕开”高接触力区域,寻找力更小的通道。
# 伪代码示例:局部重规划的核心逻辑 def local_replanner(current_shape, contact_force, global_waypoint): """ current_shape: 机器人当前形状参数(如各段曲率) contact_force: 当前感知的接触力/力矩 global_waypoint: 下一个全局路径点 """ if contact_force.norm() > safety_threshold: # 1. 构建代价函数:距离目标 + 接触力惩罚 cost = alpha * distance_to_goal(global_waypoint) + beta * contact_force_cost(contact_force) # 2. 在机器人构型空间中进行采样,预测未来几步的形状 candidate_shapes = sample_shape_space(current_shape) # 3. 通过前向运动学模型,预测每个候选形状下的末端位置和可能产生的接触力(基于局部血管几何估计) for shape in candidate_shapes: predicted_pose = forward_kinematics(shape) # 简化的接触力估计:假设与血管模型的虚拟距离越小,力越大 predicted_force = estimate_force_from_distance(predicted_pose, vascular_model) total_cost = calculate_total_cost(shape, predicted_pose, predicted_force, global_waypoint) # 4. 选择总代价最小的形状作为下一时刻的期望形状 best_shape = select_shape_with_min_cost(candidate_shapes) return best_shape else: # 接触力安全,继续跟踪全局路径 return get_shape_from_global_plan(current_shape, global_waypoint)

3.4 控制模块:阻抗控制律的实现

控制器的输入是规划模块输出的期望末端位姿(或期望形状)感知模块提供的实时接触力,输出是发送给驱动电机的控制量(如钢丝目标长度或张力)。以阻抗控制为例,其核心方程如下:

F_ext = M * (d²x/dt²) + B * (dx/dt) + K * (x - x_d)

其中:

  • F_ext是测量到的接触力。
  • M, B, K是我们设定的虚拟质量、阻尼和刚度矩阵,决定了机器人的“性格”(是更迟钝还是更灵敏,是更刚硬还是更柔软)。
  • x是实际末端位置,x_d是期望位置。
  • d²x/dt²dx/dt是加速度和速度。

控制器通过这个方程实时解算出当前应有的加速度,进而通过动力学模型计算出需要施加的电机扭矩或位置修正量。当F_ext增大时,为了保持方程平衡,(x - x_d)项(即位置误差)会被允许增大,这意味着机器人实际位置会偏离期望位置,从而减小接触力。这就实现了“力控”下的柔顺运动。

实操心得:参数整定是门艺术阻抗参数K, B, M的设定没有黄金标准。K(刚度)设得太高,机器人显得“僵硬”,容易产生大的接触力;设得太低,机器人“软绵绵”,轨迹跟踪精度差。我们的经验是从较低的K值开始,在模拟环境或仿体血管中反复测试,观察力跟踪和位置跟踪的响应曲线,逐步调整。通常,在直线推送段可以设定较高的刚度以保证推进效率,在弯曲段或分支附近则自动切换为较低的刚度,提高安全性。

4. 仿真与实验验证全流程

理论设计和算法实现后,必须经过严格的仿真和实验验证。我们遵循“仿真先行,仿体验证,动物实验”的阶梯流程。

4.1 基于物理引擎的高保真仿真

我们使用PyBulletMuJoCo这类物理引擎搭建仿真环境。关键步骤包括:

  1. 机器人建模:用连杆和关节的离散化方式近似连续体,或者直接导入其CAD模型并设置柔体物理属性。为驱动“钢丝”建立绳索/滑轮模型。
  2. 血管环境建模:将三维重建的血管模型导入,并为其赋予柔体力学属性(如弹性模量、阻尼系数)。可以模拟血管的搏动。
  3. 传感器模拟:在仿真中虚拟出六维力传感器,其读数基于机器人模型与血管模型之间的碰撞检测和物理计算得出。
  4. 算法集成:将我们的规划与控制算法代码接入仿真循环,形成一个完整的“软件在环”测试。

在仿真中,我们可以安全、低成本地测试极端情况:比如让机器人强行通过狭窄的斑块区域,观察其接触力响应和规划器的避让能力;或者模拟导管在血管分叉处被“卡住”的情况,测试控制器的柔顺解脱策略。

4.2 仿体血管实验平台搭建

仿真通过后,需要面对真实的物理世界。我们搭建了仿体血管实验平台:

  1. 仿体血管模型:采用透明硅胶材料,通过3D打印的模具浇筑而成,其力学性能(如弹性、摩擦系数)经过调配,尽可能接近真实血管。
  2. 循环流体系统:使用蠕动泵模拟心脏搏动,推动模拟血液(通常为甘油水溶液)在仿体血管内循环,并可以调节流速和脉动频率。
  3. 机器人系统集成:将真实的连续体机器人、驱动箱、力传感器、电磁定位系统全部集成到实验台上。
  4. 数据采集与同步:所有传感器数据(力、位置、图像)通过统一的采集卡和上位机软件同步记录,用于后续分析。

在这个平台上,我们重复仿真中的测试场景,验证算法在真实传感器噪声、模型误差和不确定流体扰动下的鲁棒性。

4.3 性能评估指标

如何评判框架的优劣?我们主要看以下几组指标:

  • 安全性指标:最大接触力、平均接触力、力超过安全阈值的持续时间百分比。
  • 精准性指标:末端到达靶点的位置误差、姿态误差。
  • 效率指标:从起点到靶点的总操作时间、路径长度。
  • 鲁棒性指标:在人为施加外部干扰(如晃动血管模型)或改变血流速度后,系统能否恢复稳定并完成任务。

我们会将搭载了我们框架的机器人操作,与经验丰富的医生手动操作、以及使用传统“开环”位置控制的机器人操作进行对比实验,用数据证明其优势。

5. 开发中的挑战与实战排坑记录

在实际开发中,我们遇到了无数坑,以下是几个最具代表性的问题及其解决方案。

5.1 力传感器噪声与延迟带来的振荡

问题描述:在最初的阻抗控制测试中,机器人末端会出现高频的微小振荡,尤其在接近血管壁时。这非常危险,可能引发共振损伤血管。排查过程

  1. 首先检查机械结构,排除电机和传动机构的间隙。
  2. 观察原始力信号,发现噪声水平在±0.5N左右,对于需要检测1-2N接触力的场景来说,信噪比不足。
  3. 进一步分析控制回路,发现力信号的采集和处理存在约10ms的延迟。当控制器根据这个“过时”的力信号做出响应时,可能已经错过了最佳调整时机,导致控制指令滞后于实际状态,从而引发振荡。解决方案
  4. 硬件滤波:在传感器信号接入采集卡之前,增加硬件低通滤波电路,滤除高频电气噪声。
  5. 软件滤波:采用卡尔曼滤波器滑动窗口中值滤波,在保证实时性的前提下平滑力信号。卡尔曼滤波器还能利用机器人运动模型预测力的变化趋势,部分补偿延迟。
  6. 调整控制参数:适当增加阻抗控制中的虚拟阻尼B,相当于给系统增加了“粘性”,抑制振荡。但阻尼过大会导致系统响应迟钝,需要权衡。
  7. 前馈补偿:利用规划器提供的期望运动信息,计算出一个期望接触力的前馈量,提前补偿给控制器,减少对纯反馈信号的依赖。

5.2 运动学模型误差导致“路径偏移”

问题描述:在跟踪一个弯曲血管的规划路径时,机器人末端实际轨迹会逐渐偏离期望轨迹,误差累积。排查过程

  1. 检查控制器的跟踪误差,发现很小,说明控制器本身性能良好。
  2. 对比“命令的机器人形状”和“由电磁定位系统反馈的实际末端位置反算出的形状”,发现存在差异。问题出在运动学模型不准确
  3. 我们的常曲率模型假设机器人弯曲是完美的圆弧,且驱动钢丝与中心轴距离恒定。实际上,钢丝在鞘管内存在摩擦、有微小滑移,材料也存在非线性变形。解决方案
  4. 模型标定:设计一套标定流程。让机器人做出数十个不同的已知弯曲姿态,同时记录驱动量(钢丝长度)和实际末端位姿(由高精度光学追踪仪测量)。然后用这些数据拟合出一个数据驱动的修正模型(如神经网络或多项式回归模型),来补偿理论模型的误差。
  5. 在线自适应:在运行过程中,利用末端定位传感器(如电磁定位)的数据,与基于运动学模型预测的位置进行对比,产生误差信号。将这个误差信号作为一个反馈,在线微调运动学模型的参数(如等效曲率),实现模型的自适应更新。
  6. 采用更精确的模型:对于精度要求极高的场景,放弃简单的常曲率假设,采用基于Cosserat杆理论的几何精确模型,虽然计算更复杂,但能更真实地反映大变形下的机器人形态。

5.3 局部规划陷入“局部极小值”

问题描述:在血管分叉口,机器人末端可能卡在两个分支的“鞍点”位置,局部规划器反复尝试左右微调,但计算出的所有候选轨迹代价都很高(因为都会产生接触力),导致系统“僵住”,无法前进。排查过程:分析局部规划器的代价函数和采样空间。发现当机器人处于一个对称的、四周都有接触的困境时,任何小的扰动都无法显著降低总代价(距离目标远+接触力大),采样算法陷入局部最优。解决方案

  1. 引入随机扰动:当检测到规划器在多次迭代中未能找到更优解(代价下降不明显)时,主动向当前机器人的控制指令注入一个小的、随机的扰动信号,帮助其跳出当前的局部陷阱。
  2. 扩大采样范围:临时增加局部规划器的采样方差,允许它考虑一些看起来“偏离目标更远”但可能绕过接触区域的候选路径。
  3. 全局重规划介入:设置一个超时机制。如果局部规划器在特定位置卡住超过一定时间,则请求全局规划器以当前位置为新的起点,重新规划一条到达目标的全新路径,可能选择完全不同的血管分支迂回前进。
  4. 人工辅助模式切换:在完全自主遇到困难时,框架应支持降级为“半自主”模式,由医生通过主手设备施加一个微小的引导力,帮助机器人脱离困境,然后系统再恢复自主控制。

6. 未来展望与应用扩展思考

经过多轮迭代,这套框架已经能够在复杂的仿体血管环境中稳定运行。但站在临床应用的门口,我们看到了更广阔的天地和需要继续攀登的高峰。

首先是多模态感知融合。单一的接触力感知仍有局限,比如无法区分是接触了健康的血管壁还是脆弱的斑块。未来的方向是融合腔内超声成像光学相干断层扫描的实时图像信息。通过图像识别血管壁的形态和成分,为规划器提供更丰富的环境语义信息,实现“看得见”的智能避障。

其次是数字孪生与术前预演。我们可以为每位患者建立其血管系统的个性化高精度力学模型,构成一个“数字孪生体”。在手术前,医生就可以在这个虚拟孪生体上,利用我们的机器人控制框架进行手术路径的规划和模拟操作,提前发现潜在风险点,制定应急预案,并将最优的规划参数预加载到实际手术机器人中。

最后是从血管介入到更广阔的腔道手术。这套基于接触感知和柔顺控制的框架,其核心思想具有普适性。无论是支气管镜下的肺部诊疗,还是经自然腔道的胃肠镜手术,甚至是工业上的管路检测,只要是在柔软、非结构化的受限空间内进行精密操作,这套技术范式都有用武之地。我们正在尝试将平台模块化,通过更换不同的机器人末端执行器(如夹钳、注射针、消融电极)和适配不同的解剖模型,快速迁移到新的应用场景。

这条路还很长,从实验室的仿体到活体的动物实验,再到最终的人体临床试验,每一个环节都充满了工程和法规上的挑战。但每当看到机器人柔顺地滑过弯曲的血管,平稳地抵达目标,那种将精妙算法转化为真实安全感的成就感,正是驱动我们所有工程师和研究人员不断向前的核心动力。技术的最终归宿,始终是造福于生命。