上装出问题时,软件日志通常只能告诉你“某个设备掉线了”,却说不清为什么掉线。是供电电压跌落?是某一路电流突然变大?还是壳内温度过高导致保护?如果上装里有一路简单的硬件遥测,这些问题会好回答得多。 本文讨论的是在机器狗上装里加入电压、电流、温度采样的通用设计思路。文中的方案属于常见的嵌入式做法,未经过具体机型的实机验证,器件和参数要按实际电源架构选择。
【为什么要单独做硬件遥测】 上装的主要设备,比如官网组合里的 Jetson Orin NX、Livox Mid-360、双光云台、5G 模组,各自都有状态信息,但这些信息来自设备自身。一旦设备掉电或死机,它就什么都报告不了。 硬件遥测是站在设备外面看:每一路电源输出了多少电压、流过多少电流,壳体内几个位置的温度是多少。它独立于被测设备,设备挂了,遥测还在。 这类数据对排查“上电就重启”“某设备偶发掉线”这类问题尤其有用,也能作为长期运维时判断设备老化的参考。
【采什么、在哪采】 电压:在上装的总输入处采一路,看本体或外挂电池给到上装的电压;在每个 DC-DC 输出后再采,看各路稳压是否正常。 电流:按设备分路采样。算力、云台、通信模组、雷达各一路,是比较常见的划分方式。云台电机启动时电流变化大,单独一路更容易看出问题。 温度:至少放三个点,算力模组散热器附近、电源模块附近、壳体内远离热源的位置。前两个看热点,后一个看整体环境。 采样电路一般用分流电阻加电流检测芯片,或者带 I2C 接口的电压电流监测器,温度用数字温度传感器。选型时注意量程覆盖设备的峰值电流,不要只按平均功耗算。
【数据怎么送出来】 采样器件可以挂在一个小的单片机上,由单片机统一读取,再通过串口或 CAN 发给算力模组;也可以直接挂在算力模组的 I2C 总线上。 前一种方案更独立:算力模组重启时,单片机仍然在运行,可以把掉电前后的数据记下来。后一种方案更简单,但算力模组本身出问题时就看不到数据了。 在 ROS 2 系统里,可以把遥测数据发布成话题,例如按电源支路组织消息,包含电压、电流、温度和时间戳。上层的监控和日志模块订阅这些话题即可。 采样频率不需要很高,平时每秒一次左右就够;但遇到电流突变时,可以短时间提高采样率,记录变化过程。
【阈值和告警】 数据采上来,还要定义什么情况算异常。常见的几类: 输入电压低于某个值,说明电池电量低或者线路压降大; 某一路电流持续超过设备额定值,可能是设备故障或短路风险; 温度超过设定阈值,需要降低算力负载或者让机器人回到阴凉处; 某一路电流突然归零,说明设备掉电或者线路断开。 阈值要参考各设备的规格书设定,并在联调时实测正常工作的范围,留出余量。
【这件事的成本和收益】 加一路硬件遥测,硬件上多出几颗芯片、一块小板和几根线,重量和功耗都不大。软件上需要写驱动、定义消息和告警规则。 收益在于,现场出问题时,有数据可查,而不是只能靠猜。对于需要长期运行的巡检项目,这些数据还能帮助判断哪些设备在逐渐变差,提前安排维护。 机器狗上装的空间和预算都有限,如果不能全做,至少把总输入电压和算力那一路电流采上,这两项能覆盖相当一部分常见问题。
机器狗(四足机器人)二次开发:www.yuanzhirobot.com/zh/service/… 本文部分内容由 AI 辅助生成。