ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

五类机器人嵌入式岗位差异全解析:从AMR到人形机器人的技能转型指南

五类机器人嵌入式岗位差异全解析:从AMR到人形机器人的技能转型指南 1. 五类机器人嵌入式岗位的真实差异1.1 为什么同样叫“嵌入式”薪资和门槛能差出一倍我做了十多年嵌入式从最早的8位机裸跑到后来带Linux BSP团队再到这两年密集接触机器人项目最大的感受就是“嵌入式”这三个字在招聘市场上已经被稀释得几乎失去意义了。同样挂着嵌入式工程师的岗位做消费电子和做人形机器人的技术栈重合度可能不到三成但HR在筛选简历时用的却是同一套关键词。这个现象在机器人行业尤其明显。人形机器人、工业机器人、协作机器人、AMR移动机器人、四足机器人这五类产品在系统架构上有大量共享概念——都跑ROS2、都有MCU和SoC、都涉及电机控制——但落到嵌入式岗位的日常工作上差异大到什么程度我举个具体的例子一个在AMR上做底盘控制的工程师跳去做人形机器人的关节驱动前三个月基本处于“重新学做人”的状态。反过来也一样。所以这篇文章我想把这件事彻底拆开讲清楚。核心目的只有一个帮你在投简历或者转岗之前搞清楚自己手里的技术底牌到底对应哪一类机器人以及如果要跨过去缺的是什么。这不是一篇泛泛而谈的行业概述而是从嵌入式工程师的实际工作内容出发逐层拆解五类机器人在硬件架构、实时性要求、通信协议、软件栈、调试手段上的真实差异。适合谁看如果你是从单片机或者Linux驱动转机器人方向的嵌入式工程师或者已经在某类机器人上做了两三年想横向跳又或者是学生正在选研究方向这篇文章应该能帮你省下不少试错时间。我会尽量用实际项目中的例子来说明而不是停留在概念层面。1.2 五类机器人的嵌入式系统架构速览在展开细节之前先用一张表把五类机器人的嵌入式架构特征拉通对比。这张表是我根据自己参与过的项目和同行交流整理出来的不同公司会有差异但大方向基本一致。维度人形机器人工业机器人协作机器人AMR移动机器人四足机器人主控架构多SoC分布式单SoC多MCU单SoC多MCU单SoC单MCU单SoC多MCU关节/轴数20-404-84-72-4差速12-16实时总线EtherCAT/CAN-FDEtherCATEtherCAT/CANCAN/RS485CAN/EtherCAT控制频率1-5kHz1-4kHz1-2kHz100-500Hz500-2kHz功能安全部分高SIL2高SIL2中PLd低-中嵌入式Linux必须必须必须必须必须RTOS需求高高高中高ROS2使用深度极深中中深深这张表里每一行背后都有大量的工程决策。比如为什么人形机器人需要多SoC分布式架构因为40个关节如果全部挂在一个主控上光是EtherCAT的带宽和同步精度就撑不住必须做分区管理。再比如为什么AMR的控制频率可以低到100Hz因为差速底盘的运动学模型简单不需要高频闭环而四足机器人的腿部关节必须跑到1kHz以上才能保证动态平衡。这些差异直接决定了嵌入式工程师在不同机器人上的工作重心完全不同。下面我逐类展开。2. 人形机器人嵌入式最卷的实时性与最复杂的分布式架构2.1 关节驱动器的嵌入式设计难点人形机器人的嵌入式岗位核心战场在关节驱动器上。一个典型的人形机器人有20到40个自由度每个自由度对应一个关节模组每个模组里至少有一颗MCU负责电流环、位置环和通信。这意味着光是关节驱动器的固件就是一个几十人团队的工作量。关节驱动器的MCU选型通常是STM32H7系列或者TI的C2000系列。为什么因为电流环的控制频率要求至少10kHz以上FOC算法的计算量不小同时还要跑EtherCAT从站协议栈。C2000有专门的电机控制外设PWM、ADC、比较器在电流环这种硬实时场景下比通用MCU更合适。但C2000的生态和开发效率不如STM32所以很多团队会用STM32H7加外部FPGA来做。这里有一个很多人忽略的细节人形机器人关节的通信周期和同步精度要求极高。EtherCAT的分布式时钟同步精度要做到亚微秒级否则几十个关节在高速运动时会出现明显的协调问题。我见过一个团队因为EtherCAT从站芯片的时钟抖动没调好导致机器人走路时膝盖和髋关节的动作差了几十微秒看起来就是“腿软”。这种问题在调试阶段非常难定位因为单看每个关节的数据都正常。另一个难点是关节模组的集成度。人形机器人的关节空间极其有限驱动器板子往往要和电机、减速器、编码器、力矩传感器塞在同一个圆柱体里。这意味着PCB要做成环形或者半环形散热条件极差EMC问题突出。我在一个项目里遇到过驱动器在常温下跑得好好的一旦连续运动十分钟MOS管温度上来之后电流采样就开始漂导致力矩控制精度下降。最后是靠重新设计散热路径和调整电流环的温漂补偿才解决。2.2 分布式架构下的通信与同步人形机器人的嵌入式架构通常是“大脑小脑脊髓”三层。大脑是一台工控机或者高性能SoC跑ROS2的规划和控制算法小脑是几个区域控制器负责把大脑的指令分解到各个关节脊髓就是每个关节的驱动器。这三层之间的通信协议和同步机制是嵌入式工程师必须吃透的。大脑到小脑通常用以太网或者EtherCAT小脑到关节基本是EtherCAT或者CAN-FD。为什么不用CAN因为CAN的带宽和节点数限制。40个关节如果挂在一个CAN总线上1Mbps的波特率下每个关节每毫秒只能分到几个字节根本不够传位置、速度、电流、温度这些数据。EtherCAT的100Mbps全双工和菊花链拓扑就是为这种场景设计的。但EtherCAT的从站开发门槛不低。你需要用专用的从站控制器芯片比如LAN9252、ET1100还要实现SSC协议栈。很多团队为了省事会用CAN-FD先做原型但到了产品阶段还是得切到EtherCAT。我个人的经验是如果项目确定要做人形机器人一开始就上EtherCAT不要用CAN过渡。因为CAN和EtherCAT在软件架构上的差异很大后期切换的成本远高于一开始就啃硬骨头。同步方面EtherCAT的分布式时钟DC模式是必须开启的。主站发送一个全局时间戳所有从站根据这个时间戳对齐自己的本地时钟。同步精度取决于从站芯片的时钟稳定性和网络拓扑的对称性。实际项目中菊花链拓扑下做到100纳秒以内的同步是可行的但星型拓扑会因为线缆延迟不一致导致同步精度下降。所以人形机器人的EtherCAT拓扑几乎都是菊花链而且线缆长度要尽量一致。2.3 嵌入式工程师在人形项目中的典型一天说点具体的。我在人形机器人项目上的日常大概是这样的早上先看昨晚跑的一轮关节寿命测试数据重点看电流环的跟随误差和温度曲线。如果发现某个关节的误差在特定角度下变大就要去查是不是编码器的偏心或者减速器的背隙问题。然后打开示波器抓一下该关节的PWM波形和电流采样时序确认是不是采样点和PWM中心对齐有问题。下午通常是和算法组开会讨论新的步态对关节驱动器的需求。比如算法说要把步频从1.5Hz提到2Hz那我就得算一下电流环的带宽够不够、母线电压会不会跌、MOS管的温升会不会超。这些计算不是拍脑袋要用具体的公式和仿真来支撑。比如母线电容的选型要根据步态周期内的功率波动来算C (I_load × Δt) / ΔV其中I_load是负载电流Δt是功率波动持续时间ΔV是允许的母线电压跌落。一个2Hz步频的人形机器人单腿支撑相到摆动相的切换时间大约50ms如果负载电流是20A允许电压跌落2V那电容至少要500μF。实际选型还要留余量通常会放到1000μF以上。晚上如果产线在跑测试可能还要远程看一下EtherCAT的同步误差统计。这个岗位的节奏就是这样硬件、固件、算法、测试都要懂一点但最核心的能力是在极端的实时性约束下做工程取舍。3. 工业机器人与协作机器人功能安全是分水岭3.1 工业机器人嵌入式的核心确定性与功能安全工业机器人和协作机器人在嵌入式层面有很多共通之处最大的共同点是功能安全。工业机器人通常要求达到SIL2甚至SIL3协作机器人因为要和人共处对安全的要求更高。这意味着嵌入式软件不能只是“能跑就行”而是要有完整的失效模式分析、冗余设计、安全认证文档。具体到技术上工业机器人的控制器通常是“运动控制器伺服驱动器”的架构。运动控制器跑轨迹规划和插补算法伺服驱动器跑电流环和位置环。两者之间用EtherCAT通信周期通常是1ms或者更短。运动控制器的主控一般是x86工控机或者高性能ARM SoC跑实时Linux比如打了PREEMPT_RT补丁的Linux或者VxWorks。伺服驱动器的MCU通常是TI的C2000或者ST的STM32。功能安全在嵌入式层面的体现是什么举个例子STOSafe Torque Off功能。当安全信号触发时伺服驱动器必须在毫秒级内切断电机的力矩输出而且这个切断路径必须是硬件冗余的。通常的做法是用两个独立的安全继电器串联在电机的使能回路上任何一个继电器断开都能切断力矩。同时MCU要能检测到安全信号的状态并在软件层面做交叉校验。另一个关键是安全编码器。普通编码器只输出位置信息安全编码器还要输出校验信息MCU要能判断编码器数据是否可信。如果编码器故障导致位置数据跳变系统必须能检测到并进入安全状态。这种设计在协作机器人上尤其重要因为协作机器人的关节力矩通常不大但一旦失控打到人后果依然严重。3.2 协作机器人的力控与嵌入式实现协作机器人和工业机器人最大的区别是力控。工业机器人主要做位置控制协作机器人要能做力矩控制、阻抗控制、力位混合控制。这对嵌入式系统提出了更高的要求电流环的带宽要更高力矩传感器的采样率要更快通信延迟要更低。协作机器人的关节通常集成力矩传感器有的是在减速器输出端装力矩传感器有的是通过电流估算力矩。前者精度高但成本高后者成本低但精度受摩擦和温度影响大。嵌入式工程师在这部分的工作是设计力矩传感器的信号调理电路和采样时序并在MCU里实现力矩闭环。信号调理这块有个坑力矩传感器的输出信号非常微弱通常是毫伏级而且容易受到电机PWM的干扰。我见过一个项目力矩传感器的采样在电机静止时很准一旦电机转动采样值就跳得厉害。最后发现是PWM的开关噪声通过地线耦合到了传感器信号上。解决办法是用差分采样加隔离放大器同时把传感器的采样时刻和PWM的开关时刻错开。力控的实时性要求也很高。协作机器人的阻抗控制通常需要1kHz以上的控制频率这意味着从力矩传感器采样到电流环输出整个链路的延迟要控制在几百微秒以内。这对RTOS的任务调度和通信协议都提出了很高的要求。很多团队会用FPGA来做力矩传感器的接口和预处理把MCU从高频采样中解放出来。3.3 从工业到协作嵌入式工程师的技能迁移如果你现在做工业机器人的嵌入式想转到协作机器人需要补的主要是力控相关的知识和安全认证的经验。工业机器人的位置控制你已经很熟了但力控是另一套逻辑。你需要理解阻抗控制、导纳控制的基本原理知道力矩传感器的选型和标定方法还要能处理力控中的稳定性问题。反过来从协作转到工业需要补的是节拍和精度。工业机器人对节拍的要求很苛刻一个焊接机器人可能要求6轴联动下的轨迹误差小于0.1mm同时节拍要控制在几十秒以内。这对嵌入式系统的确定性和伺服驱动器的带宽要求极高。协作机器人因为速度慢、负载小这方面的压力反而小一些。我个人的建议是如果你在工业机器人上做了三年以上转协作机器人的技术门槛并不高但需要花时间补功能安全和力控的知识。如果你在协作机器人上做想转工业那就要做好面对更严苛的实时性和精度要求的准备。4. AMR移动机器人最“接地气”的嵌入式岗位4.1 AMR的嵌入式架构与成本控制AMR移动机器人在五类机器人里嵌入式架构是最简单的但也是成本压力最大的。一台AMR的售价可能只有几万块BOM成本要压到极致。这意味着嵌入式工程师在做方案选型时不能只看性能还要看价格和供货。AMR的典型架构是一个主控SoC通常是瑞芯微、全志或者NXP的i.MX系列跑ROS2的导航和调度一个MCUSTM32F1或者GD32负责底盘控制、电池管理和安全逻辑。主控和MCU之间用串口或者CAN通信。底盘通常是差速驱动两个驱动轮加万向轮电机是直流无刷或者有刷电机驱动器可能是集成的也可能是外置的。为什么AMR的MCU选型这么“低端”因为底盘控制的计算量真的不大。差速运动学就是两个轮子的速度解算PID闭环跑100Hz就够了。电池管理主要是电压、电流、温度的采集和SOC估算也不需要高性能MCU。所以AMR的嵌入式岗位技术难度不在算法而在可靠性和成本控制。可靠性方面AMR在仓库或者工厂里跑环境复杂电磁干扰大振动也大。我见过一个AMR项目底盘MCU在实验室跑得好好的到了现场跑几天就死机。最后查出来是电机驱动器的PWM噪声通过电源线耦合到了MCU的复位引脚导致MCU误复位。解决办法是在复位引脚上加RC滤波同时把MCU的电源和电机驱动器的电源做隔离。成本控制方面AMR的嵌入式工程师要会“抠”。比如MCU的Flash和RAM要算着用不能随便加功能通信协议要尽量简单减少CPU开销PCB的层数要尽量少但EMC还要过。这些在工业机器人或者人形机器人上不太需要考虑的问题在AMR上都是日常。4.2 ROS2在AMR上的嵌入式实践AMR是ROS2在机器人行业落地最广的品类。ROS2的节点化架构、DDS通信、生命周期管理在AMR上都有实际的应用。但嵌入式工程师在AMR上做ROS2开发和纯软件工程师做ROS2开发关注点完全不同。嵌入式工程师更关注ROS2在资源受限平台上的性能。比如DDS的默认配置在PC上跑没问题但在ARM SoC上可能会因为内存和CPU的限制导致通信延迟大、丢包。这时候就需要调整DDS的QoS配置比如把可靠性从RELIABLE改成BEST_EFFORT把历史深度从10改成1减少内存占用和网络开销。另一个常见问题是ROS2和MCU的通信。ROS2的节点通常跑在Linux上但底盘控制跑在MCU上。两者之间的通信需要一个桥接节点把ROS2的话题转换成串口或者CAN的帧。这个桥接节点的实时性和可靠性直接影响底盘的响应。我通常会用micro-ROS来做这件事它专门为MCU设计可以在STM32上跑ROS2的节点通过串口或者CAN和Linux上的ROS2通信。但micro-ROS也有坑。它的默认配置对内存的占用不小STM32F1这种小容量MCU可能跑不起来。这时候要么换更大的MCU要么裁剪micro-ROS的功能。我个人的经验是如果底盘控制的功能不复杂直接用自定义的串口协议更简单可靠不一定非要上micro-ROS。ROS2的生态优势在于上层算法底层的实时控制用传统方式做反而更稳。4.3 AMR嵌入式工程师的典型技能树AMR嵌入式岗位的技能树大概是这样的MCU裸机开发STM32/GD32 RTOSFreeRTOS/RT-Thread 电机控制PID、FOC 通信协议CAN/RS485/串口 ROS2基础节点、话题、TF 传感器驱动IMU、编码器、激光雷达接口。这里面最核心的是电机控制和通信协议。AMR的底盘控制虽然简单但要做到平顺、安静、省电PID的参数整定和电机的换相策略都要调。我见过很多AMR的底盘在低速时抖动或者加减速时噪音大都是电机控制没调好。ROS2的部分AMR嵌入式工程师不需要会写导航算法但需要会看TF树、会调QoS、会用ros2 topic和ros2 bag来调试。这些技能在ROS2的官方教程里都有但实际项目中遇到的问题往往更复杂。比如TF树的频率和底盘odom的频率不匹配导致导航时机器人位置跳变或者ros2 bag录制的数据因为QoS配置不对丢了很多帧。这些问题需要你对ROS2的通信机制有深入理解才能排查。5. 四足机器人嵌入式实时控制的极限挑战5.1 四足机器人的关节控制与平衡算法四足机器人的嵌入式岗位技术难度介于人形和AMR之间但对实时性和动态性能的要求非常高。四足机器人有12到16个关节每个关节都要做力矩控制控制频率通常在1kHz以上。而且四足机器人的步态切换很快从站立到行走、小跑、跳跃关节的负载变化剧烈对驱动器的动态响应要求很高。四足机器人的关节驱动器通常用FOC力矩控制MCU还是STM32或者C2000。但和工业机器人不同的是四足机器人的关节不需要绝对的位置精度而是需要快速的力矩响应和良好的背驱性能。这意味着电流环的带宽要高减速器的背隙要小编码器的分辨率要够。平衡算法是四足机器人的核心但这部分通常由算法团队负责嵌入式工程师负责的是把算法算出来的力矩指令准确地执行下去。这听起来简单做起来难。因为四足机器人的关节在运动中的负载是剧烈变化的电流环要能快速跟踪力矩指令同时还要处理反电动势、温度漂移、母线电压波动等问题。我参与过一个四足项目遇到的最大问题是关节在高速摆动时的力矩跟踪误差。算法给的力矩指令是正弦波但实际输出的力矩在波峰和波谷处明显滞后。查了很久发现是电流环的PI参数在高速时带宽不够而且反电动势的补偿没有做好。后来把电流环的频率从10kHz提到20kHz同时加了反电动势的前馈补偿跟踪误差才降下来。5.2 四足机器人的通信与传感器融合四足机器人的通信架构通常是主控SoC跑ROS2的步态控制和状态估计通过EtherCAT或者CAN-FD连接12到16个关节驱动器。IMU的数据通过SPI或者串口直接连到主控用于姿态估计和平衡控制。IMU的采样率和同步精度对四足机器人至关重要。四足机器人的平衡控制依赖IMU的角速度和加速度数据如果IMU的数据有延迟或者噪声大机器人的姿态就会晃。我通常会用1kHz以上的IMU采样率并且把IMU的采样和关节的控制周期做硬件同步。比如用主控的定时器触发IMU采样同时触发EtherCAT的周期通信这样IMU数据和关节数据的时间戳是对齐的。传感器融合方面四足机器人通常用IMU关节编码器足端力传感器来做状态估计。足端力传感器用于检测触地事件对步态切换很重要。嵌入式工程师需要确保这些传感器的数据都能实时、准确地传到主控。足端力传感器的信号调理和采样时序是个难点因为足端在触地瞬间的冲击力很大传感器容易饱和或者振铃。通常会用低通滤波加峰值检测来处理。5.3 四足机器人嵌入式的调试经验四足机器人的调试和别的机器人不太一样因为它的动态性能太强很多问题只有在实际跑起来才能发现。我总结了几条经验第一先用仿真验证但不要迷信仿真。MuJoCo或者Gazebo里的四足机器人跑得再好到了实物上还是会有各种问题。因为仿真的电机模型、摩擦模型、通信延迟都和实物有差距。我的做法是仿真里验证算法逻辑实物上调参数。第二关节的零位标定要反复做。四足机器人的关节零位如果偏了几度走路就会瘸。而且零位会随着温度变化漂移所以每次跑之前最好都做一次零位校准。校准的方法通常是让关节缓慢转动到机械限位然后记录编码器的值作为零位。第三通信丢包是最大的敌人。四足机器人在跑跳的时候EtherCAT或者CAN的线缆会受到振动和拉扯接触不良导致丢包。丢包一次关节的力矩指令就会丢失机器人可能直接摔倒。所以线缆的固定和连接器的选型要非常注意最好用带锁扣的连接器线缆要走柔性路径。6. 五类机器人嵌入式岗位的技能对照与转型建议6.1 技能对照表你手里的牌对应哪类机器人下面这张表是我根据实际招聘需求和项目经验整理的列出了五类机器人嵌入式岗位的核心技能要求。你可以对照一下自己的技能树看看匹配哪一类。技能项人形工业协作AMR四足MCU裸机开发必须必须必须必须必须RTOS必须必须必须加分必须EtherCAT从站必须必须必须不需要加分CAN/CAN-FD加分加分加分必须必须FOC电机控制必须必须必须加分必须功能安全加分必须必须加分不需要嵌入式Linux必须必须必须必须必须ROS2加分加分加分必须必须力矩控制必须加分必须不需要必须传感器融合加分不需要加分加分必须从这张表可以看出工业机器人和协作机器人的技能重合度最高AMR和四足在通信协议上有重合人形机器人的技能要求最全面但也最专。如果你现在做AMR想转人形缺的主要是EtherCAT和力矩控制如果你做工业想转协作缺的是力控和功能安全的深度。6.2 转型路径从一类机器人跳到另一类转型这件事我的建议是先横向再纵向。横向是指在同一类机器人里从MCU做到Linux或者从驱动做到系统纵向是指从一类机器人跳到另一类。横向转型的风险小因为底层技能是通用的纵向转型的风险大因为很多领域知识需要重新学。如果你确定要纵向转型我建议按这个顺序补技能通信协议EtherCAT和CAN-FD是机器人行业最通用的两种总线花两周时间把协议栈和从站开发搞明白比什么都值。电机控制FOC是基础但不同机器人对电机控制的要求不同。人形和四足要求高带宽和力矩控制工业要求高精度和确定性AMR要求低成本和可靠性。理解这些差异比会调PID更重要。ROS2不用学到能写导航算法的程度但要能看懂TF树、会调QoS、会用ros2 bag和rviz2调试。这些在ROS2的官方教程里都有但实际项目中遇到的问题更复杂。功能安全如果你要转工业和协作这是必修课。ISO 13849和IEC 61508的标准要了解STO、SLS这些安全功能的实现要清楚。6.3 面试中如何展示你的机器人嵌入式经验最后说点实际的。面试机器人嵌入式岗位时面试官最看重的是你解决过什么具体问题而不是你会用什么工具。我面过很多人简历上写“精通STM32、熟悉ROS2、了解EtherCAT”但一问细节就露馅。我的建议是准备两到三个有深度的项目案例每个案例能讲清楚背景、问题、分析过程、解决方案和结果。比如你在AMR上遇到过底盘在低速时抖动的问题怎么通过调整电流环的采样时序和PID参数解决的你在工业机器人上遇到过EtherCAT同步误差导致轨迹精度下降的问题怎么通过优化拓扑和DC配置解决的你在四足机器人上遇到过关节力矩跟踪滞后的问题怎么通过提高电流环频率和加前馈补偿解决的。这些案例比任何证书都有说服力。因为机器人嵌入式岗位的核心能力就是在复杂的机电系统中定位和解决问题而不是会用某个工具。提示面试时如果被问到“你为什么从AMR转到人形”不要只说“想挑战自己”。要说清楚你对人形机器人嵌入式架构的理解以及你现有的技能如何迁移过去。比如“我在AMR上做的电机控制和通信协议在人形机器人的关节驱动器上同样适用我需要补的是EtherCAT同步和力矩控制的部分。”7. 一些踩过的坑和实操心得7.1 通信协议选型的坑我见过太多团队在通信协议上走弯路。最常见的错误是用CAN做原型产品阶段想切EtherCAT。CAN的开发确实简单STM32自带CAN控制器几行代码就能通。但CAN的带宽和节点数限制决定了它只能做原型不能做产品。而且CAN和EtherCAT在软件架构上的差异很大从CAN切到EtherCAT不是换个驱动的事整个通信层都要重写。我的建议是如果项目确定要做多关节机器人一开始就上EtherCAT。EtherCAT从站芯片的选型和SSC协议栈的移植确实有门槛但网上有很多开源的参考设计花两周时间能跑通。这比后期切换的成本低得多。另一个坑是忽略通信的实时性。很多团队在实验室里跑CAN或者EtherCAT觉得没问题到了现场就丢包。因为实验室的线缆短、干扰小现场的线缆长、电机干扰大。所以通信的测试一定要在真实环境下做线缆长度、走线方式、连接器类型都要和产品一致。7.2 电机控制的坑电机控制是机器人嵌入式的核心但也是最容易出问题的地方。我总结几个常见的坑第一电流采样的时机不对。FOC的电流采样必须在PWM的中心对齐点进行否则采到的电流是开关噪声。很多MCU的ADC有专门的触发源要和PWM的计数器配合。如果采样时机偏了电流环的噪声会很大力矩控制就不准。第二死区补偿没做好。MOS管的死区会导致输出电压和占空比不成线性低速时尤其明显。死区补偿的方法是根据电流方向调整占空比但电流过零时的方向判断很难。我通常会用电流观测器来估算实际电流而不是直接用采样值判断方向。第三温度漂移没补偿。MOS管的导通电阻和电流传感器的增益都会随温度变化导致力矩控制的精度下降。如果机器人要连续工作温度补偿是必须的。简单的方法是用NTC测MOS管的温度然后查表补偿。7.3 嵌入式Linux的坑机器人嵌入式岗位基本都要求会嵌入式Linux但很多人对Linux的理解停留在“会敲命令”的层面。实际项目中嵌入式Linux的坑主要在实时性和驱动上。实时性方面标准的Linux内核在机器人控制这种硬实时场景下是不够的需要打PREEMPT_RT补丁。但打了补丁之后系统的吞吐量会下降而且有些驱动可能不兼容。我通常的做法是把硬实时的任务放到MCU上Linux只做非实时的规划和管理。这样既保证了实时性又避免了Linux实时化的复杂性。驱动方面机器人上常见的驱动包括EtherCAT主站、CAN、串口、IMU的SPI/I2C、摄像头的MIPI等。这些驱动的调试往往比应用开发更耗时。我建议嵌入式工程师至少要会看设备树、会写简单的字符设备驱动、会用示波器和逻辑分析仪抓时序。7.4 调试工具和方法的坑最后说调试。机器人嵌入式的调试和消费电子完全不同因为机器人是机电系统问题可能出在硬件、固件、算法、通信任何一个环节。我常用的调试工具包括示波器看PWM、电流采样、通信波形是最基本的工具逻辑分析仪抓SPI、I2C、CAN的时序比示波器方便EtherCAT主站工具比如TwinCAT或者SOEM可以看从站的状态和同步误差ROS2的调试工具ros2 topic、ros2 bag、rviz2用于看上层的数据流。调试方法上我的原则是先隔离再定位。比如机器人走路不稳先看是单个关节的问题还是所有关节的问题。如果是单个关节就查该关节的驱动器和通信如果是所有关节就查主控和通信总线。隔离之后再用示波器或者逻辑分析仪抓具体的信号定位到具体的代码或者电路。注意机器人调试时一定要做好安全防护。四足和人形机器人在调试时可能会突然失控所以要么把机器人吊起来要么在周围放软垫。我见过一个团队调试四足时机器人突然跳起来撞到天花板幸好没伤到人。8. 最后再说几句实在的写了这么多其实核心就一句话机器人嵌入式岗位的差异本质上是实时性、通信协议和功能安全这三个维度的不同组合。人形和四足在实时性上最极端工业和协作在功能安全上最严格AMR在成本和可靠性上最敏感。你手里的技术底牌决定了你适合哪一类以及要补什么才能跨过去。我个人的体会是不要盲目追热点。人形机器人现在很火但岗位数量远不如AMR和工业机器人。而且人形机器人的嵌入式岗位对经验的要求很高没有三五年电机控制和通信协议的积累很难上手。如果你现在做AMR想转人形我建议先在AMR上把电机控制和ROS2做深然后找机会接触EtherCAT和力矩控制的项目再考虑跳。另外机器人行业的一个特点是软硬件结合非常紧密。纯软件工程师在机器人公司往往吃不开因为很多问题需要看波形、量电压、改电路。嵌入式工程师的优势就在这里你既能写代码又能看硬件这是机器人公司最需要的能力。所以不管你做哪一类机器人保持对硬件的敏感度不要把自己变成只会写代码的人。这个内容后续还可以这样扩展如果你对某一类机器人的嵌入式细节特别感兴趣比如EtherCAT从站的开发或者FOC的电流环设计可以单独拿出来做深度的实操分享。我后面也会陆续写一些具体的调试案例和代码实现有兴趣的可以关注。
返回列表