
人机交互设计聊完了交互模式、状态反馈、安全交互这些设计要点应该都清楚了。但交互设计做得再好如果没有安全标准兜底出了安全事故就是大事。协作机器人和人共享同一个工作空间安全是最核心的要求。ISO/TS 15066是协作机器人安全的专用技术标准面试问到协作机器人这个安全标准是绕不开的知识点。ISO/TS 15066全称是Robots and robotic devices — Collaborative robots它是ISO 10218工业机器人安全标准的补充技术文件专门针对协作机器人的使用场景制定了更详细的技术要求。一、协作机器人的四种安全功能ISO/TS 15066定义了四种不同的协作安全功能对应不同的人机协作方式安全监控停止Safety Monitored Stop——人进入协作区域时机器人必须立即停止所有运动。人离开后才能恢复运动。适合人偶尔进入工作区域、机器人大部分时间自主工作的场景。手动引导Hand Guiding——人直接用手引导机器人运动。机器人检测到人的力量后进入柔顺模式跟随人的运动。松手后停止。适合示教编程的场景。速度和间距监控Speed and Separation Monitoring——机器人和人保持安全距离。人靠近时机器人减速人太近时停止。距离阈值根据机器人速度和制动距离动态计算。人走得越快、机器人跑得越快安全距离就越大。这种模式需要外部传感器激光雷达、深度相机实时追踪人的位置。功率和力限制Power and Force Limiting——这是最高级的模式。机器人通过力矩传感器实时检测碰撞确保碰撞时的力和功率不超过人体各部位的承受极限。这是真正意义上的碰了也不伤人。二、身体部位的力/功率限值ISO/TS 15066最核心的贡献是给出了人体各部位在碰撞时的力和功率限值。身体部位 准静态力(N) 瞬态力(N) 功率(W) 头部 130 140 80 脸部 65 65 40 胸部 140 190 80 手部 140 200 80准静态力是挤压场景——人被机器人压在固定物体上。瞬态力是撞击场景——机器人碰到人后迅速弹开。这些数值是通过大量生物力学实验和伤害事故数据分析得出的。机器人的碰撞检测阈值必须严格设在这些限值以下。三、碰撞检测的工程实现力限制模式的关键技术难点是碰撞检测。怎么在毫秒级别准确检测到碰到了人主流方案是基于关节力矩传感器的异常力矩检测。机器人正常运动时每个关节的力矩可以用动力学模型精确预测。实际力矩和预测力矩的差值就是所谓的异常力矩——如果超过阈值就判定为碰撞。class CollisionDetector: def __init__(self, threshold): self.threshold threshold self.model RobotDynamicsModel() def check(self, joint_torques, joint_positions, joint_velocities): # 预测正常力矩 expected self.model.compute_torques( joint_positions, joint_velocities ) # 计算残差 residual np.abs(joint_torques - expected) # 超过阈值则触发碰撞 if np.max(residual) self.threshold: return True, np.argmax(residual) return False, None碰撞检测的难点在于阈值的合理设定。阈值太低正常运动的力矩波动就会触发误报机器人频繁停下来。阈值太高真正的碰撞可能检测不到。工程上的做法是先让机器人跑各种正常动作记录力矩残差的最大值。阈值设为这个最大值的1.5-2倍。然后在实际运行中持续监控如果发现误报率太高就适当调高阈值。还有一种方案是基于外部传感器比如皮肤传感器、加速度计的碰撞检测。皮肤传感器覆盖在机器人表面碰到人时直接输出接触信号。加速度计装在机器人外壳上检测到异常冲击就触发停止。这些方案可以作为关节力矩检测的补充提高检测的可靠性。实际产品中碰撞检测通常分两级第一级是关节力矩残差检测快速但可能误报第二级是外部传感器确认慢一些但更可靠。两级都触发才执行紧急停止只有一级触发则减速观察。这种设计能有效降低误报率。四、安全功能的软件架构协作机器人的安全功能通常运行在独立的安全控制器上和主控制器分开。安全控制器的优先级最高有权随时停止机器人运动。主控制器实时OS 安全控制器安全PLC ├── 运动规划 ├── 安全I/O监控 ├── 传感器处理 ├── 力矩监控 ├── 任务执行 ├── 速度监控 └── 通信 └── 急停处理 ↓ ↓ 两者通过安全总线连接安全控制器有最终停止权安全控制器的响应时间有严格要求——从检测到危险到机器人完全停止整个过程通常要求在几十毫秒内完成。这包括信号传输时间、计算时间和制动时间。安全软件的设计有一个重要原则单一故障安全Single Fault Safety。即使安全系统中某一个组件坏了传感器断了、通信丢了、某个芯片出错了系统仍然能保证安全。这通常通过冗余设计来实现——双通道传感器、双路急停回路、看门狗监控。安全等级要求 SIL 2 / PLd大部分协作机器人场景 SIL 3 / PLe高风险场景高速重载 冗余设计 - 双通道安全输入两个独立的急停信号 - 交叉监控通道A监控通道B反之亦然 - 定期自检每个周期检查所有安全通道是否正常工程上还有一个很容易被忽略的关键点安全系统和非安全系统之间的接口。主控制器给安全控制器发速度指令安全控制器监控这个指令是否超过安全限值。如果超了安全控制器会直接覆盖主控制器的指令强制减速或停止。这个覆盖机制的响应延迟必须足够低。五、面试高频追问QISO/TS 15066和ISO 10218的关系是什么AISO 10218是工业机器人安全标准适用于所有工业机器人。ISO/TS 15066是它的补充文件专门针对协作机器人。15066在10218的基础上增加了力/功率限值和四种安全功能的详细要求。Q四种安全功能怎么选A安全监控停止最简单但效率最低人来了就停。手动引导用于示教。速度间距监控适合人和机器人有一定距离的协作。功率力限制最灵活但技术难度最高适合人和机器人紧密协作的场景。Q碰撞检测的延迟要求是多少A从检测到碰撞到机器人停止总时间通常要求在100-200ms以内。其中信号处理约10ms力矩计算约5ms制动约50-100ms。安全控制器的采样频率通常在1kHz以上。Q协作机器人的安全认证流程是怎样的A先做风险评估识别所有危险场景然后根据风险等级选择安全功能设计安全系统硬件软件做验证测试碰撞测试、力矩测试最后提交第三方认证机构审核。整个流程通常需要6-12个月。Q力矩残差检测的模型精度要求高吗A要求很高。动力学模型的精度直接决定了残差的质量。模型不准的话正常运动的残差就很大碰撞检测的阈值只能设高灵敏度下降。所以协作机器人出厂前要做精确的动力学参数辨识摩擦、惯量、重力补偿这个过程通常要花几个小时。Q安全标准对软件开发有什么影响A安全标准要求安全相关代码满足功能安全开发流程IEC 61508。代码要有完整的单元测试覆盖率要求、代码审查记录、静态分析报告。不能用未经验证的第三方库。代码变更要走严格的变更管理流程。这比普通的机器人软件开发流程严格得多。协作机器人安全标准是产品上市的硬性门槛不达标就不能卖。理解了ISO/TS 15066的核心要求面试时聊到安全设计就有底气了。下一篇我们聊系统集成实战——从模块开发到完整产品上线的全过程。ISO/TS 15066定义了协作机器人的四种安全功能和力/功率限值。碰撞检测是安全系统的核心基于关节力矩残差的异常检测是主流方案。安全认证是产品上市的硬性要求。上一篇第277篇 人机交互设计下一篇聊系统集成实战。如果这篇文章对你有帮助欢迎点赞支持一下你的鼓励是我持续更新的动力