1. 引言
支气管镜属于内镜的一种,可以有效的诊断肺部以及气管内其他的疾病 [1] 。传统支气管镜诊疗过程中,医生需要站在病患身旁手动将导管经由其口或鼻送入人体并控制其运动 [2] ,而支气管镜机器人可以实现医患分离,满足了传染性疾病患者和异地患者的就医需求,对支气管镜机器人的应用研究有着现实意义。
科技不断发展的今天,机器人越来越广泛的应用于医疗领域,在内镜机器人领域诞生了众多成熟的技术。在国际上,以色列法海医院研发的Remote navigation system (RNS)内镜手术机器人系统 [3] 结构为主从控制式,医生操纵主端控制从端跟随,已在血管介入领域成熟应用。美国Corindus公司研发的Corpath200系统 [4] 第一次实现了主从端距离超过20公里的远程手术。日本香川大学研发的介入器械机器人 [5] 系统添加了力反馈环节,可以让医生实时感受操作导管在人体内的受阻情况。国内,北京理工大学研发的导管介入机器人辅助系统 [6] 通过磁场来实现医生的控制动作并通过磁流变液容器给医生提供力学反馈。不足的是,国内外的研究控制模式单一,多采用传统PID控制,其跟踪位置精度不足,而医生在手术过程中需要频繁细调导管位置,再加上支气管较其他人体腔道更狭小敏感,这就导致了现今众多成熟的内镜机器人技术并不能直接应用到支气管镜机器人领域,该领域目前尚在起步阶段。沈阳理工大学的赵希梅 [7] 设计出变论域模糊PID手术机器人控制系统,将系统的误差和误差变化率作为输入,根据事先制定好的模糊规则表动态调整kp、ki和kD,缺点是模糊规则表制定困难且需要一定的人工经验。Wei Li, Jian Fang等 [8] 设计出BP神经网络(BPNN) PID控制器,神经网络通过Gradient descent在动态过程中输出自适应控制系数取得了不错的调优结果,但随机初始化的网络初值限制了神经网络的性能。
合理的神经网络初值可以提高神经网络的性能,本文决定利用优化算法的全局寻优能力来为神经网络找寻合适的初值。蚁狮算法(ALO)是2015年提出的一种新型元启发式算法 [9] [10] ,文献 [11] [12] 中证明了该算法的在优化求解问题上的有效性,基于此设计了一种全新的IALO (Improve Antlion Optimization Algoritm) BP-PID控制算法,与传统PID控制、随机初始化的BP-PID控制以及使用其他优化算法的BP-PID控制在matlab上的仿真表明,该控制算法的调节时间最低,延迟时间最小,相比较其他控制算法使得系统有更强的位置跟踪性能。
2. 支气管机器人系统
2.1. 机器人系统框架
支气管镜机器人系统为主从式构型,分为医生控制的主端和接受控制信号并执行的从端,主端由显示器与手柄组成,从端由镜体输送部和内镜操作部组成,主从端通过ADS通讯实现远程控制。支气管镜机器人控制系统框如图1所示。

Figure 1. Block diagram of bronchoscopy robot control system
图1. 支气管镜机器人控制系统框图
机器人系统主端构造如图2所示,医生通过手柄操控机器人完成手术诊断。内镜导管的轴向位移运动和径向旋转运动以及导管末端360度弯曲运动由从端电机驱动,电机控制按键集成于手柄。导管运动的速率由手柄控制杆倾斜的角度决定,手柄的顶端是控制电机运行与否的使能键,使能键作用是防误触控制杆。
主从端采用ADS通讯,选用的软件平台为Beckhoff TwinCAT。从端部分构造如图3所示。镜体输送系统由五自由度机械臂和输送部组成,五自由度机械臂将导管顶部出口的位置与患者口部对齐并负责导管径向旋转运动,镜体输送部内部安有负责导管夹紧以及轴向位移运动的电机,其内置的扭矩传感器可实时向医生反馈诊疗过程中导管所受阻力,为医生提供参考。镜体控制系统由导轨、三自由度机械臂、控制部和支气管镜组成,导轨用于收放支气管镜多余的导管部分,三自由度机械臂用于调整支气管镜方向,控制部操作支气管镜旋钮控制导管末端自由弯曲。

Figure 2. Construction of the main end operation section
图2. 主端操作部构造

Figure 3. Construction of the slave end operation section
图3. 从端操作部构造
机器人系统的整体构造为图4:
2.2. 运动学分析
由图1可知医生的控制指令转换为期望导管位移需要经过导管运动学分析,通过安装在导管可控弯曲段的传感器可以得到导管弯曲角度等信息。镜体末端有三个自由度即轴向位移自由度、径向旋转自由度和前端弯曲自由度,分别用λ、θ和α表示。设{O0}是基坐标系,{O6}为末端坐标系,如图5。
根据DenaviHartenberg (D-H)法建立{O0}~{O6}两坐标系的齐次变化矩阵,从基坐标系到末端坐标系的变换步骤如表1。表1中L1表示弯曲段长度,L2表示导管末端长度,轴向位移为λ。

Figure 5. Geometric model of bronchoscopy tube
图5. 支气管镜管几何模型

Table 1. Coordinate transformation process
表1. 坐标变换过程
s表示sin,c表示cos,由表1变换过程可得基坐标系{O0}到末端坐标系{O6}的坐标表示为:
(1)
(2)
由式2得到导管末端点位置与关节变量的雅可比变换矩阵:
(3)
2.3. 动力学模型
本文以设计的机器人轴向位移运动为例构建动力学模型,轴向位移以无刷直流电机驱动,根据牛顿第二定律建立轴向运动的动态模型 [13] 为:
(4)
式中
为电机输送的轴向位移动力,
表示导管位移;
表示速度;
表示加速度;m为运动部件质量;c为黏性阻尼系数;k是弹簧系数。该方程说明了电机驱动力和输出位移的关系,令
,
,则轴向运动的状态方程为:
(5)
式中
;
,
;
。
从式5推出轴向位移运动的传递函数为:
(6)
本文为研究方便三个参数取理想值:取m = 1,c = 0.04,k = 2,调用matlab的tf()和c2d()函数将式(6)转换为差分方程形式方便仿真m文件的编写,差分方程形式如下:
(7)
式中
为被控系统当前时刻的输出;
为被控系统上一时刻的输出;
为被控系统上上时刻的输出;
为控制器上一时刻的输出
为控制器上上时刻的输出。
3. IALO-BP-PID控制器
3.1. 蚁狮算法(ALO)
蚁狮算法(Antlion Optimizer, ALO)是2015年Mirjalili提出的一种新型元启发式算法 [14] ,其算法内核是模拟自然界蚁狮捕食蚂蚁的过程。算法内数据分为蚂蚁和蚁狮两种,通过蚂蚁的随机游走实现全局数据搜索,通过轮盘赌和精英化策略提高种群的丰富度和收敛寻优性能,蚁狮捕食蚂蚁代表对适应度更佳的蚂蚁位置的更新和保存。蚂蚁的的随机游走由以下等式确定:
(8)
式中,
为蚂蚁随机游走的步数集;cumsum代表为计算累加和;t为游走步长;n为最大迭代次数;
为随机函数,由式(9)确定:
(9)
式中
。
由于可行域存在边界,不能直接用式(8)更新蚂蚁的位置,为确保蚂蚁在可行域内,需要用式(10)对式(8)进行归一化处理:
(10)
式中,
和
是第i个变量游走上下限;
和
是第i个变量在第t维的最大值和最小值。
蚁狮对蚂蚁影响:
(11)
式中,
和
表示所有变量在第t代的最大值和最小值;
和
是第j只蚂蚁在第t代的最大值和最小值;
表示第j只蚂蚁通过轮盘赌选择的蚁狮在第t代的位置。
蚂蚁一旦落入蚁狮的陷阱,蚁狮会向陷阱外抛沙防止蚂蚁逃脱,此时蚂蚁随机游走范围将急剧缩小,模拟为:
(12)
(13)
式中,I为比例系数,w定义如下:
(14)
式中,t为当前迭代次数,T为最大迭代次数
当蚁狮捕获蚂蚁时,若蚂蚁位置优于蚁狮则蚁狮根据蚂蚁的位置进行更新,如下:
(15)
第i只蚂蚁在第t + 1代的位置由下式确定:
(16)
式中,
表示在第t代迭代时蚂蚁围绕轮盘赌选择的蚁狮的随机游走;
表示在第t代迭代时蚂蚁围绕精英蚁狮的随机游走,每一代蚁狮中适应度最低的是精英蚁狮。
3.2. 改进蚁狮算法(IALO)
3.2.1. 自适应系数
由式(13)和式(14)可知传统蚁狮算法在迭代过程中描述陷阱坍缩的速度仅跟其迭代次数呈正相关,该种I间断性改变的做法会导致搜索区域不均匀而易使算法遗漏包含最优解的区域。针对此问题引入自适应系数
与
,
由下式定义:
(17)
式中,
和
当前时刻和上一时刻精英蚁狮的适应度。
。
趋向于1时代表算法进化较慢陷入停滞,可能陷入局部最优解,此时适宜让其余蚁狮扩大搜索范围,协助精英蚁狮跳出停滞;
趋向0时代表精英蚁狮适应度下降较快,此时采用原算法收敛方式即可。
由下式定义:
(18)
修改式(13)为:
(19)
与
的引入使得算法可以在精英蚁狮适应度下降缓慢时动态调整的值以让算法在一个动态的解空间里寻找最优值帮助精英蚁狮跳出可能的局部最优解,一定程度上缓和了I的间断性改变所导致的搜索区域不均匀变化。
3.2.2. 反调节因子
元启发式算法的性能体现于其全局探索和局部开发能力的均衡 [15] ,通过对轮盘赌算法的研究发现该算法选中精英蚁狮的概率最大,matlab代码为:
accumulation = cumsum(weights);
p = rand() * accumulation(end)
其中,wigthts为包含所有蚁狮适应度值倒数的矩阵。在前期过多的依赖精英蚁狮会造成算法过早收敛从而导致种群多样性降低 [16] ,如式(20)所示:
(20)
改进思路为设计加入反调节因子
,其式如下:
(21)
修改上述代码中概率的部分为:
p = *rand() * accumulation(end)
经多次实验
取1.3,蚁狮作用于轮盘赌算法,随迭代次数自适应调节选中精英蚁狮的概率,让精英蚁狮在算法迭代过程中重要性动态变化。p在迭代前期较大,选中普通蚁狮概率较高,算法可以更全面的遍历解空间,增强全局探索能力;而在后期,选中精英蚁狮概率较高,着重发挥精英蚁狮的领导作用,引导算法着重于精英蚁狮邻域的开发,增强局部开发能力。
3.3. 改进算法的性能测试
为测试IALO算法的性能,选用表2所示的2个单峰基准函数和4个多峰基准函数进行仿真测试,全面的考察算法的局部开发能力、全局探索能力和处理复杂问题的能力。实验仿真软件为matlab2018a,对比算法为原蚁群算法(ALO)、粒子群算法(PSO)和萤火虫算法(FA)。针对上述算法,种群规模统一设置为30,最大迭代次数为100,记录下每种算法单独运行20次结果的平均值,标准差,表3记录下仿真结果。

Table 3. Benchmark function simulation results
表3. 基准函数仿真结果
表3记录了IALO算法、ALO算法、PSO算法和FA算法在相同测试条件下对选定的2个单峰基准函数和4个多峰基准函数的优化结果。从表3可以看出,IALO算法较其他算法取得了更佳的收敛结果和标准差,在单峰函数和中改进算法较原算法均提升了两个数量级的收敛精度,在多峰函数提升了一到四个数量级的收敛精度,表明改进策略优化了算法平衡全局探索和局部开发的能力,提高了算法性能。图6为六个基准函数收敛曲线对比图。
3.4. IALO-BP-PID控制器
BP-PID控制器可以克服常规PID的缺陷,利用BP神经网络的自适应能力在动态过程中自动调节PID参数构成一个具有自适应能力的控制器,使用IALO算法获得BP神经网络参数初值以提高系统控制性能。其控制器结构图如图7所示。


Figure 6. Convergence curve comparison chart
图6. 收敛曲线对比图

Figure 7. Structure of IALO-BP-PID controller
图7. IALO-BP-PID控制器的结构
增量式PID控制器根据给定值
与被控对象的输出值
的差值
进行控制 [17] ,其控制算法表达式为:
(22)
BP神经网络误差反向计算的方式较好的解决了神经网络权重的调整问题,是当前应用最广泛的神经网络模型之一。其输入层–隐含层–输出层结构图如图8所示。
式中,
为神经网络输入向量,在本文中输入神经网络输入向量为
;
和
分别是输入层到隐含层第j个神经元和隐含层到输出层第k个神经元的网络权重。隐含层数据计算为:
(23)

Figure 8. Neural network structure diagram
图8. 神经网络结构图
输出层的计算和网络代价函数为:
(24)
(25)
式中,
为BP神经网络期望输出值;
为神经网络实际输出;隐含层和输出层的激活函数分别为Sigmoid和非负Sigmoid函数:
(26)
(27)
BP神经网络通过对式(25)进行梯度下降法调整网络权值,输出层和隐含层的权重调整为:
(28)
(29)
式中,
为学习速率,速率过大系统难以收敛,过小系统学习缓慢;
为动量因子。
根据上文对BP神经网络的介绍,我们知道神经网络的性能与输入层到隐含层和隐含层到输出层网络权重的初值选取相关,我们可以将网络权重映射为蚂蚁以及蚁狮个体的位置矢量,设定蚁狮算法的ITAE适应度函数为:
(30)
式中,N为蚁狮算法迭代步数;t为时间。
综上,我们可以得到IALO-BP-PID控制器的控制算法流程图如图9所示。

Figure 9. IALO-BP-PID control algorithm flowchart
图9. IALO-BP-PID控制算法流程图
4. 系统仿真实验
神经网络初值的选取对网络性能影响很大 [18] ,仅依靠梯度下降法使得神经网络每次训练结果不一,图10展示了5次随机初始值的BP神经网络的训练结果,黑线为期望位移线。

Figure 10. BP neural network PID5 random initialization training results
图10. BP神经网络PID5次随机初始化训练结果
由图9可知随机初始化的初值影响着神经网络性能,原因在于:由式(28)~(29)可知,权值向着使网络代价函数下降最快的方向变化,但受限于学习速率和动量因子,权值的迭代步伐大小收到限制,其调整能力有限只适合作为精调使用。某次初始化生成的权值可能会出现即使最大幅度变化亦无法抵消不合理的PID参数而导致的积分部分影响,就会出现图10中鲁棒性差的情况出现。由此需要使用优化算法来为神经网络确定初值。神经网络和蚁狮算法仿真设置如下:
神经网络:运用2.3小节建立的差分方程为被控系统输出,系统参考输入为式(31),采样时间0.01 s,仿真时间2 s;BP神经网络结构为4 * 5 * 3;学习速率为0.25,动量因子为0.05;PID的初始参数采用Ziegler-Nichols整定 [19] ,整定的初始值为
,
,
。蚁狮算法:蚁狮种群数100,蚁狮位置区间(0, 50),蚁狮维度35,迭代次数100;适应度函数式(30)。在仿真阶段,本文为模拟实际手术过程中医生控制导管位移的操作采用下述信号作为期望路径,期望信号为:
(31)
式中,
为采样时间;t为仿真时间。得到的实验结果如图11所示,分别展示了PID控制、BP-PID控制 [20] 、PSO-BP-PID控制 [21] 、FA-BP-PID控制、GWO-BP-PID控制、ALO-BP-PID控制 [22] 和IALO-BP-PID控制的仿真结果图,在该期望信号上的性能测试同时展示了控制算法的鲁棒性能。

Figure 11. Simulation diagram and local enlarged diagram of each control algorithm
图11. 各控制算法仿真图及局部放大图

Figure 12. Error and PID parameter variation trend in the IALOBPPID process
图12. IALOBPPID过程中误差和PID参数变化趋势
图11、图12中有期望位移线作为参考,采用该信号作为期望路径的优点在于:一、模拟现实中医生的实际操作;二、同时也考察了各控制算法在遇到外来干扰下的鲁棒能力。由图11可以看出采用了神经网络的PID控制器要优于纯PID控制器,从调节时间这个性能指标上看,所需时间缩短了八分之七,在该图上亦可以观察到结合了优化算法后神经网络性能有较大提升,证明了本文的思路是可行的。在参数整定合理的情况下各控制算法皆可以无超调,但对比之下IALO-BP-PID控制的调节时间要优于其他算法,为0.2 s。这意味着用此算法控制的从端可以更及时安全的跟随医生主端操作,有助于提高医生对支气管机器人的掌控度和手术过程中的安全性。各控制算法的调节时间等参数见表4。

Table 4. Adjusting time of each control algorithm
表4. 各控制算法调节时间
5. 结论
本文源于与某医院的校企合作,通过对支气管机器人系统的分析建立起被控系统的模型,设计出了一套适用于远程手术治疗的主从同步控制式机器人系统和与之配套的IALO-BP-PID控制算法,新的结构设计较市面上其他的支气管机器人而言更经济实惠降低临床成本,综合优化算法与BP神经网络的PID控制器有效的解决了传统PID控制器控制精度和响应速度问题,为医生降低了由医疗设备所带来的意外风险,提高了设备响应精度,促进了支气管机器人高精度化和智能化发展。本文的主要贡献为:
1) 设计出了一套有一定现实意义的气管镜机器人系统。2) 改进了蚁狮算法,引入自适应系数扩大蚁狮算法搜索有效范围帮助算法前中期快速跳出可能陷入的局部最优解,提高其全局开发能力;加入反调节因子动态调整精英蚁狮在优化过程的地位,优化其对全局探索和局部开发能力的平衡,加快了算法后期的收敛速度。仿真结果表明,改进后的蚁狮算法具有更好寻优精度和收敛速度。3) 将蚁狮算法与BP神经网络相结合,改善神经网络控制器的性能并将其应用于机器人运动控制。
从仿真结果可以看出IALO-BP-PID控制算法使得系统有较好的控制性能,相较于传统PID控制提升了一定的稳定性和跟随性。但本文也存在不足,如忽视了呼吸气流等非线性因素的影响,对手术机器人的被控模型为方便仿真而取理想值,实际情况中应考虑到公式(4)中c、k的动态变化。
基金项目
国家科技部重点研发计划课题(2020YFC2007502)。