文章快速检索     高级检索
  浙江大学学报(工学版)  2017, Vol. 51 Issue (6): 1104-1110  DOI:10.3785/j.issn.1008-973X.2017.06.007
0

引用本文 [复制中英文]

何雪军, 王进, 陆国栋, 刘振宇, 陈立, 金晶. 基于三角网切片及碰撞检测的工业机器人三维头像雕刻[J]. 浙江大学学报(工学版), 2017, 51(6): 1104-1110.
dx.doi.org/10.3785/j.issn.1008-973X.2017.06.007
[复制中文]
HE Xue-jun, WANG Jin, LU Guo-dong, LIU Zhen-yu, CHEN Li, JIN Jing. 3D head portrait sculpture by industrial robot based on triangular mesh slicing and collision detection[J]. Journal of Zhejiang University(Engineering Science), 2017, 51(6): 1104-1110.
dx.doi.org/10.3785/j.issn.1008-973X.2017.06.007
[复制英文]

基金项目

中国博士后科学基金资助项目(509100-X91504);国家自然科学基金资助项目(51275460);杭州市重大科技创新资助项目(20132111A04)

作者简介

何雪军(1984—), 男, 博士, 从事机器人技术研究.
orcid.org/0000-0002-6846-1490.
E-mail: hexuejun@zju.edu.cn

通信联系人

王进, 男, 副教授.
orcid.org/0000-0003-3106-021X.
E-mail: dwjcom@zju.edu.cn

文章历史

收稿日期:2016-03-29
基于三角网切片及碰撞检测的工业机器人三维头像雕刻
何雪军1 , 王进1 , 陆国栋1 , 刘振宇1 , 陈立2 , 金晶2     
1. 浙江大学 流体动力与机电系统国家重点实验室, 浙江 杭州 310027;
2. 杭州新松机器人自动化有限公司, 浙江 杭州 311200
摘要: 研究模型三角网的截面求交算法(包括水平切片、径向切片等), 获得模型表面不同方向上的凸凹信息, 便于刀具姿态的自动调整.以水平截交线与模型点集的最小包容圆为内、外边界, 通过内边界向外均匀偏置获得层切刀轨, 并将违反边界约束的点映射到包容圆上.在此基础上, 提取出模型正面加工轨迹, 根据偏置序号大的轨迹优先加工、偏置序号相同的轨迹从上往下加工的原则, 确定一种Zigzag型加工路线.基于OpenGL图形引擎, 建立新松SR6C型工业机器人的仿真平台, 对生成的轨迹进行仿真, 并利用石膏进行实际加工验证.结果表明, 所生成的加工轨迹能够避免碰撞的发生, 加工成品较好地再现了虚拟模型.
关键词: 三维头像雕刻    工业机器人    切片算法    碰撞检测    离线编程    
3D head portrait sculpture by industrial robot based on triangular mesh slicing and collision detection
HE Xue-jun1 , WANG Jin1 , LU Guo-dong1 , LIU Zhen-yu1 , CHEN Li2 , JIN Jing2     
1. State Key Laboratory of Fluid Power and Mechatronic Systems, Zhejiang University, Hangzhou 310027, China;
2. Hangzhou SIASUN Robot and Automation Co. LTD, Hangzhou 311200, China
Abstract: Firstly, the intersection algorithm was investigated based on triangular mesh model (horizontal slicing, radial slicing, etc.) to obtain surface unevenness in different directions, so as to adjust the tool posture automatically. Secondly, horizontal intersection line and minimal enclosing circle of the model point sets were selected as internal and external borders; layer-cutting tool path was produced through internal border offsetting outward uniformly; offset points which violate boundary constraint were mapped to the enclosing circle. Based on this, tool path for the front model was extracted; a Zigzag route was formed based on the principles that tool path with larger offset index should be processed first and those with the same index should be processed from up to down. A simulation platform was created for SIASUN SR6C type robot in light of graphic engine OpenGL. The generated tool path was simulated before processing; a verification experiment was carried out with plaster. Results show that the tool path generated is possible to avoid collision and the finished part is a well reproduction of the virtual model.
Key words: 3D head portrait sculpture    industrial robot    slicing algorithm    collision detection    offline programming    

工业机器人的早期应用主要涉及工件搬运、点焊、装配等简单任务.随着机器人及软件编程技术的进步, 目前已能实现复杂的空间轨迹运动, 完成喷涂[1]、零件加工[3]、相贯管焊接[3]等复杂任务, 其中, 切削加工(包括抛光、制孔、铣削等)尤具代表性.根据美国机器人工业联合会2009年发布的数据, 机器人在切削加工中的应用不足5%[4], 但由于成本低、工作空间大、配置灵活[5-6], 近年来逐渐成为研究热点.

三维头像雕刻是一个典型的铣削过程.在为数众多的加工方法中, 往复式行切[7]由于刀具负荷均匀, 是迄今为止最为常用的加工方式;环切[8]对外轮廓具有较好的适应性, 但由于计算复杂, 使用频率次之;空间填充曲线刀轨属于加工方法中的另类, 虽仍有相关研究[9], 但由于拐角过多, 很少使用;螺旋形刀轨适用于高速铣削, 目前尚处于研究阶段[10].其次, 零件表面质量与加工效率同刀轨步距息息相关.常用的步距优化方法主要有等参数线法、等截面法、等残留高度法等.其中, 等参数线法适用于uv参数表示的单张曲面, 等截面法还可用于网格曲面, 等残留高度法规划的刀轨残留高度均匀, 加工效率较高.Lasemi等[11]对这些方法作了详细的评述.

本文采用三角网切片算法获得刀具轨迹, 并在曲面上实施往复式行切.现有的加工方法多为浅层加工[12-13], 未考虑刀具夹头与工件之间可能发生的干涉, 这是本文需要着重解决的问题.

1 头像表面信息提取

图 1所示为STL(Stereolithography, 光固化立体造型术)格式的3D头像, 从左到右依次为线框模型及其渲染结果.STL文件由一系列无序排列的三角面片构成, 每个面片包含3个顶点及面的法向信息.

图 1 光固化立体造型术(STL)格式的三维头像模型 Fig. 1 3D head model of Stereolithography (STL) format

为获得头像表面的加工点位以及点附近的局部凸凹信息, 需要对三角网求解水平切片及径向切片.现有的切片方法主要分为两大类:一类是已知截面, 搜索与之相交的三角形, 可通过坐标分组减少相交判断的次数, 亦可建立模型的拓扑信息, 通过三角形之间的邻接关系确定相交三角形[14-15], 这类方法计算量大且耗费系统资源;另一类是已知三角形, 搜索与之相交的平面, 求出交点后, 通过一定的方法将交点连接起来[16-17], 该方法适用于需要密集分层的情况, 本文予以采用, 并借鉴文献[17]的求解思路.

1.1 水平切片

图 2为例, 顶点A~H构成四棱柱.其中4个侧面被分割成8个三角形, 与平面M相交得到8个交点CAE, CBE, …, CDE.对每个三角形, 分别记录左侧交点及左、右交线(沿面片法矢反向看).如表 1所示, 相邻2个三角形具有相同且唯一的公共边, 因此, 一个三角形的左交点与右侧哪个三角形的左交点相连是唯一确定的.

图 2 平面与三角网格的截交线 Fig. 2 Intersection line between plane and triangular mesh
表 1 平面与三角网格的交点信息 Table 1 Information of intersection points between plane and triangular mesh

为确定交点及相交边信息, 引入线性代数中的逆序数.如图 3所示, 令sminsmedsmax分别为三角形最低、中间、最高点在顶点数组中的序号, 当smin, smed, smax为偶排列时(0, 1, 2或1, 2, 0或2, 0, 1, 参见图 3中三角形t1), 左交点在smin-smax连线上, smin-smax同时还是左相交边.右相交边可能为smed-smax连线或smin-smed连线, 取决于截面相对于smed顶点的位置.反之, 当smin, smed, smax为奇排列时(0, 2, 1或1, 0, 2或2, 1, 0, 见图 3中三角形t2), 左交点可能在smed-smax连线上, 也可能在smin-smed连线上, 取决于截面的位置, 但右相交边一定是smin-smax连线.当smed等于smax时(见图 3中三角形t3的上侧水平边), 令smed=(smin+1)%3, smax=(smin+2)%3;当smed等于smin时(见图 3中三角形t4的下侧水平边), 令smin=(smax+1)%3, smed=(smax+2)%3.

图 3 三角形顶点编号, 左、右相交边确定及左交点计算 Fig. 3 Triangular vertex numbering, left and right intersection edge determination and left intersection point calculation

此外, 还需要处理一些特殊情况.当截交线过三角形中间顶点时, 如图 4中的△BDE, 规定交点B在边DB而非边BE上;当截交线过三角形下方顶点时, 如图 4中△BEC和△EGI, 认为没有交点;当截交线过三角形上方顶点时, 如图 4中△ADB, 认为交点在边AB而非边DB上;当截交线与三角形的一条边重合时, 若三角形的另一顶点在截交线上方, 认为没有交点, 如图 4中的△GHI;反之, 若另一顶点在截交线下方, 认为交点在左相交边上而不是水平线上, 如图 4中的△FHG.

图 4 截交线过三角形顶点时交点的选取 Fig. 4 Intersection point selection as intersection line collinear with vertexes of triangle

实际求解时, 采用双层链表结构, 如图 5所示.对每个三角面片, 首先确定与之相交的平面.对每个平面, 分别求出左交点, 并记录左、右相交边及面的法向, 形成节点信息, 插入交点链表IntersectionNode, 同时在环链表中建立新节点, 使其InterNode指针指向刚建立的交点链表首元素.如果已存在至少一个交点链表并再次插入新节点, 1) 若新节点的右相交边与某个交点链表首节点的左相交边重合, 则将新节点插入该交点链表头部, 成为新的首节点;2) 若新节点的左相交边与某个交点链表末节点的右相交边重合, 则把新节点插入该交点链表尾部, 成为新的末节点;3) 若1)、2) 同时发生, 且匹配到同一个交点链表, 说明链表构成了闭环, 只需要插入新节点1次;4) 若1)、2) 同时发生, 但匹配到的交点链表不同, 则插入新节点一次, 同时合并两交点链表;5) 若1)、2) 均未发生, 则创建新的交点链表, 并将新节点作为链表首元素, 与此同时, 在环链表中创建新节点, 使其InterNode指针指向新建交点链表的首元素.

图 5 用于顺序连接交点以获得水平截交线的双层链表 Fig. 5 Double linked list to sequentially connect intersection points so as to get horizontal intersection line

对所有面片执行以上操作后, 每个交点链表各存储了一条封闭截交线.当截交线只有一条时, 环链表最终只有一个元素.

1.2 径向切片

径向切片的特点是, 所有截交面经过同一交线, 即头像包容圆柱的轴线.假设该轴线平行于z轴, 若将构成头像的空间点集沿z轴向xy平面投影, 则轴线退化为一点, 即投影点集最小包容圆圆心, 其求解方法参见文献[18].轴线确定后, 就可求解径向切片.如图 6所示, 在过z轴的等角度平面簇中, 假设仅M1M2两个平面与△ABC相交, 设M1平面的单位法矢为n1, 则ABC三点在n1方向上的投影坐标分别为

图 6 径向平面与三角网的截交线 Fig. 6 Intersection line between radial plane and triangular mesh
${a_1} = \overline {OA} \cdot {\mathit{\boldsymbol{n}}_1},{b_1} = \overline {OB} \cdot {\mathit{\boldsymbol{n}}_1},{c_1} = \overline {OC} \cdot {\mathit{\boldsymbol{n}}_1}.$ (1)

比较a1b1c1的大小, 确定sminsmedsmax对应的顶点序号.余下的求解步骤同1.1节中的水平切片.值得一提的是, 径向平面簇中各平面方位角的取值范围为[0, π), 因方位角为αα+π的2个点在同一径向面上.如图 7所示为30个径向切面的求交结果, 相邻两个切面的夹角为6°.

图 7 过头像轴线的径向面与三角网求交 Fig. 7 Intersection between radial plane (which go through axis of head portrait) and triangular mesh
2 碰撞检测及规避

在加工过程中, 若刀具轴线沿面的法向, 微小的皱褶会引起机器人关节的剧烈变化, 甚至发生干涉.为确保运动平稳, 令刀具坐标系的a轴(刀具轴线方向)沿水平面指向模型轴线, 将a轴在水平面内沿顺时针旋转90°, 得到n轴, o轴通过右手定则确定.

当刀具较短而切入较深时, 刀具夹头与工件可能发生干涉, 以图 8为例, 判断干涉的方法如下:在离刀触点P最近的纵向截交线上, 找到z坐标比夹头上部特征点K1略大的点P1、比夹头下部特征点K2略小的点P2, 从点PP1P2分别向模型轴线作垂线得垂足HH1H2.当点K1在纵向轮廓PP1H1H构成的多边形内时, 说明上方存在干涉, 需要将刀具绕点P沿顺时针旋转.同理, 当点K2在纵向轮廓P2PHH2构成的多边形内时, 表明下方存在干涉, 需将刀具绕点P沿逆时针旋转.

图 8 径向平面内生发干涉时的刀具姿态调整 Fig. 8 Tool orientation adjustment when interference occur in the radial plane

所需旋转角度按以下方法确定:以点为圆心、PK1为半径作圆弧, 与点PP1之间的纵向轮廓交于点K, ∠K1PK为待求的调整角, 如图 9所示.由于纵向截交面在360°范围内, 刀具坐标系坐标矢量的旋转可借助通用旋转公式[19]

图 9 姿态调整角的确定 Fig. 9 Determination of orientation adjust angle
$\begin{array}{l} {\rm{Rot}}(\mathit{\boldsymbol{f}},{\alpha _1}) = \\ \left[ {\begin{array}{*{20}{c}} {{f_x}{f_x}\overline {{c_1}} + {c_1}} & {{f_x}{f_y}\overline {{c_1}} - {f_z}{s_1}} & {{f_x}{f_z}\overline {{c_1}} + {f_y}{s_1}} & 0\\ {{f_y}{f_x}\overline {{c_1}} + {f_z}{s_1}} & {{f_y}{f_y}\overline {{c_1}} + {c_1}} & {{f_y}{f_z}\overline {{c_1}} - {f_x}{s_1}} & 0\\ {{f_z}{f_x}\overline {{c_1}} - {f_y}{s_1}} & {{f_z}{f_y}\overline {{c_1}} + {f_x}{s_1}} & {{f_z}{f_z}\overline {{c_1}} + {c_1}} & 0\\ 0 & 0 & 0 & 1 \end{array}} \right]. \end{array}$ (2)

其中, f=(fx, fy, fz)为旋转轴单位矢量, 即△PK1K法向.$\overline {{c_1}} {\rm{ = }}1 - {c_1}$, c1=cos α1, s1=sin α1.

此外, 当已加工区域与未加工区域之间的过渡台肩大于刀具伸出长度时, 刀具的夹持部分亦可能与工件发生干涉, 如图 10所示.其中, K1处发生干涉的条件为

图 10 加工分界面发生干涉时的刀具姿态调整 Fig. 10 Tool orientation adjustment when interference occur between cut and uncut regions
$\left. {\begin{array}{*{20}{l}} {O{K_1} < R,}\\ {\left| {\mathit{\boldsymbol{O}}{\mathit{\boldsymbol{K}}_1} \times \mathit{\boldsymbol{O}}{\mathit{\boldsymbol{L}}_1}} \right| > 0.} \end{array}} \right\}$ (3)

式中:R为毛坯包容圆柱半径, 点L1位于加工起始线上, PL1=PK1, 其坐标通过直线与圆求交获得.点K1的坐标为

$\left. {\begin{array}{*{20}{l}} {{x_{{K_1}}} = {x_P} + l{\rm{cos}}{\theta _P} + r{\rm{cos}}({\theta _P} - \pi /2),}\\ {{y_{{K_1}}} = {y_P} + l{\rm{sin}}{\theta _P} + r{\rm{sin}}({\theta _P} - \pi /2).} \end{array}} \right\}$ (4)

式中:r为夹头半径, l为刀具伸出夹头的长度, P为当前加工点.

为避免干涉, 需要令刀具以点P为基点, 沿逆时针旋转至少一个锐角∠L1PK1.点K2处的干涉判断及刀具姿态调整类似, 不再赘述.

3 曲线偏置

受刀具单次进给深度的限制, 需要分多道完成头像加工, 为此需要对截交线进行曲线偏置.曲线偏置包括点沿外角平分线偏置、轮廓边平行偏置、滚动球方法等, 其难点主要是避免偏置曲线的自相交.从稳定性考虑, 本文采用Clipper函数库完成这一功能,其原理为平面区域的布尔运算及环绕数[17].

图 11(a)所示为为3D头像及其包容圆柱的一个水平截交面.其中, 剖面线代表需要去除材料的区域.从内环往外均匀偏置, 当偏置曲线上的所有点均在包容圆之外时, 停止偏置, 结果如图 11(b)所示.作为实例, 本文仅雕刻头像的正面, 如图 11(c)所示.对于包容圆之外的点, 沿圆的径向映射到圆周上, 结果如图 11(d)所示.

图 11 三维头像水平截交线的偏置与分割以及包容圆之外的点的映射 Fig. 11 Offset and segment of 3D head portrait's horizontal intersection line and mapping of point outside inscribed circle

曲线偏置之后, 纵向信息需要重新获取.简单起见, 这里用径向平面与水平截交线的交线代替, 其实质是截面内射线与多边形求交.求出各层交点后, 将具有相同方位角的交点连接即得到纵向轮廓, 如图 12所示.区别于径向切片, 模型顶部和底部出现信息缺失, 但不影响加工.

图 12 过头像轴线的径向面与水平截交线求交 Fig. 12 Intersection between radial plane (which go throuth axis of head portrait) and horizontal intersection line
4 加工过程仿真

程序编写过程中难免出现错误, 通过仿真可以及时发现并改进.本文以新松SR6C型工业机器人为实验平台, 其参数模型如图 13所示.

图 13 新松SR6C型工业机器人的参数模型 Fig. 13 Parametric model of SIASUN SR6C type industrial robot

利用VC++与OpenGL图形引擎建立了机器人仿真平台,其程序界面如图 14所示.

图 14 三维头像雕刻仿真界面 Fig. 14 Simulation interface for 3D head portrait sculpture

图 15(a)~(e)所示为自外而内分多道加工的模拟结果.由于模型头顶与颈部的偏置次数较多, 因此优先加工, 加工过程自顶向下.当所加工的上、下层截面线相邻时, 采用Zigzag往复式路线, 否则, 需要先沿刀具轴向退刀, 跳转到合适的位置后再进刀, 图 14(a)~(e)两侧的竖线即跳刀轨迹.最后一道精加工自底向上, 中间不涉及跳刀, 模拟结果如图 14(f)所示.

图 15 三维头像雕刻模拟结果 Fig. 15 Simulation results of 3D head portrait sculpture

图 16所示为图 14(f)精加工前300个点所对应的6个关节转角的变化曲线(第1点从图 14(f)左下方开始).由图可见, 关节角度连续变化, 不存在突变.

图 16 精加工(图 14(f))前300个点的关节角度变化 Fig. 16 Joint angles for the beginning 300 points in fig. 14(f)
5 实际加工验证

为验证算法的可行性, 利用新松SR6C型工业机器人进行了实际加工验证.实验毛坯采用圆柱形石膏, 其标准尺寸为Φ100 mm×220 mm, 安装定位后, 通过标定求得顶圆圆心(825.64, 205.77, 451.95), 半径51.84 mm, 通过平移、缩放将头像变换到毛坯所在位置, 此时, 虚拟头像的高度变为143.14 mm, 小于毛坯高度(220 mm).实验采用直径为Φ2 mm的球头刀, 粗、精加工层数分别为85和300层, 轴向进给深度为5 mm, 最终实验结果如图 17所示.

图 17 工业机器人三维头像雕刻结果 Fig. 17 3D head portrait sculpture result by industrial robot

由图可知, 加工结果较好地反映了虚拟模型, 但局部区域仍不够光顺, 其主要原因是截交线在偏置前利用Douglas-Peucker算法进行了简化, 去掉了其中部分点;其次, 模型表示及切片算法本身存在误差.此外, 图 17中的孔洞来自毛坯制造缺陷.

6 结语

通过求解水平及径向切片, 获得了模型表面的局部凸凹信息, 将此信息用于刀具夹头碰撞检测, 有效避免了干涉的发生.其次, 针对刀具有效切割长度小于轴向切入深度的情况, 对截交线进行了偏置, 并分多个道次加工, 每个道次采用Zigzag路线, 且偏置次数大的路线优先加工.与此同时, 利用VC++及OpenGL建立了新松SR6C型工业机器人的仿真平台, 对三维头像的雕刻过程进行了仿真, 最后通过实验证实了所生成离线轨迹的正确性.

本系统目前无法处理单一截面含多个封闭环的情形, 如:人体躯干与左、右上肢以及撑开的双腿等, 这些部位的截交线均含有多个环, 需要在后期研究中更加深入的讨论.

参考文献
[1] DENG S H, CAI Z H, FANG D D. Application of robot offline programming in thermal spraying[J]. Surface and Coatings Technology, 2012, 206(19/20): 3875–3882.
[2] SLAMANI M, GAUTHIER S, CHATELAIN J F. A study of the combined effects of machining parameters on cutting force components during high speed robotic trimming of CFRPs[J]. Measurement, 2015, 59: 268–283. DOI:10.1016/j.measurement.2014.09.052
[3] SHI L, TIAN X C, ZHANG C H. Automatic programming for industrial robot to weld intersecting pipes[J]. The International Journal of Advanced Manufacturing Technology, 2015, 81(9): 2099–2107.
[4] Robotic Industries Association. New advances in robotic machining white paper [R/OL]. (2009-1-22) [2016-05-25]. http://www.robotics.org/content-detail.cfm?content_id=1254.
[5] CHEN Y H, DONG F H. Robot machining: recent development and future research issues[J]. The International Journal of Advanced Manufacturing Technology, 2013, 66(9): 1489–1497.
[6] IGLESIAS I, SEBASTIAN M A, ARES J E. Overview of the state of robotic machining: current situation and future potential[J]. Procedia Engineering, 2015, 132: 911–917. DOI:10.1016/j.proeng.2015.12.577
[7] KIM B H, CHOI B K. Machining efficiency comparison direction-parallel tool path with contour-parallel tool path[J]. Computer-Aided Design, 2002, 34(2): 89–95. DOI:10.1016/S0010-4485(00)00139-1
[8] PARK S C, CHUNG Y C, CHOI B K. Contour-parallel offset machining without tool-retractions[J]. Computer-Aided Design, 2003, 35(9): 841–849. DOI:10.1016/S0010-4485(02)00111-2
[9] LIN Z W, FU J Z, SHEN H Y, et al. Tool path generation for multi-axis freeform surface finishing with LKH TSP solver[J]. Computer-Aided Design, 2015, 69: 51–61. DOI:10.1016/j.cad.2015.07.002
[10] ZHOU B, ZHAO J B, LI L, et al. CNC double spiral tool-path generation based on parametric surface mapping[J]. Computer-Aided Design, 2015, 67/68: 87–106. DOI:10.1016/j.cad.2015.06.005
[11] LASEMI A, XUE D Y, GU P H. Recent development in CNC machining of freedom surfaces: a state-of-the-art review[J]. Computer-Aided Design, 2010, 42(7): 641–654. DOI:10.1016/j.cad.2010.04.002
[12] MILUTINOVIC D, GLAVONJIC M, SLAVKOVIC N, et al. Reconfigurable robotic machining system controlled and programmed in a machine tool manner[J]. The International Journal of Advanced Manufacturing Technology, 2011, 53(9): 1217–1229.
[13] NIU X J, LIU J T SUN L, et al. Robot 3D sculpturing based on extracted NURBS [C] // International Conference on Robotics and Biomimetics. Sanya: IEEE, 2007: 1936-1941.
[14] 王正友, 黄林林, 张国贤. 基于分层切片原理的三维雕刻算法[J]. 计算机应用, 2011, 31(2): 378–382.
WANG Zheng-you, HUANG Lin-lin, ZHANG Guo-xian. 3D sculpture algorithm based on hierarchical slicing theory[J]. Journal of Computer Applications, 2011, 31(2): 378–382.
[15] 陈昆, 潘小帝, 陈定方. 一种快速成型自适应分层算法[J]. 武汉理工大学学报:交通科学与工程版, 2014, 38(3): 547–551.
CHEN Kun, PAN Xiao-di, CHEN Ding-fang. Anadaptive slicing algorithm of rapid prototyping[J]. Journal of Wuhan University of Technology: Transportation Science and Engineering, 2014, 38(3): 547–551.
[16] 王素, 刘恒, 朱心雄. STL模型的分层邻接排序快速切片算法[J]. 计算机辅助设计与图形学学报, 2011, 23(4): 600–606.
WANG Su, LIU Heng, ZHU Xin-xiong. An algorithm for rapid slicing of STL model based on sorting by triangle adjacency in layers[J]. Journal of Computer-Aided Design and Computer Graphics, 2011, 23(4): 600–606.
[17] ZHANG Z Y, JOSHI S. An improved slicing algorithm with efficient contour construction using STL files[J]. The International Journal of Advanced Manufacturing Technology, 2015, 80(5): 1347–1362.
[18] 汪卫, 王文平, 汪嘉业. 求一个包含点集所有点的最小圆的算法[J]. 软件学报, 2000, 11(9): 1237–1240.
WANG Wei, WANG Wen-ping, WANG Jia-ye. An algorithm for finding the smallest circle containing all points in a given point set[J]. Journal of Software, 2000, 11(9): 1237–1240.
[19] 谭民, 徐德, 侯增广, 等. 先进机器人控制[M]. 北京: 高等教育出版社, 2007: 34-36.