乐于分享
好东西不私藏

APP下发指令后机器人没反应故障时,怎么定位问题

APP下发指令后机器人没反应故障时,怎么定位问题

APP下发指令后机器人没反应故障时是典型“系统联调故障定位”场景。

APP 下发指令 → 机器人没反应。

你如果是测试或者工程师,千万不能上来就猜“程序有问题”。

要按链路拆解。

我给你一个标准排查逻辑 —— 链路分层定位法


一、先画出完整指令链路

APP 控制机器人,实际链路是这样的:

手机APP   ↓云服务器   ↓网络通道(MQTT / HTTPS / WebSocket)   ↓机器人通讯模块   ↓控制系统   ↓执行模块(电机)
只要其中任何一环断了,就会“没反应”。所以第一步:

不猜原因,先拆链路。


二、第一层:APP 侧确认

1️⃣ 指令是否真的发出?

  • APP日志是否记录发送成功?

  • 是否有返回 ACK(确认回执)?

  • 是否报网络错误?

如果连服务器都没发成功,

那机器人肯定没反应。


三、第二层:云端确认

如果APP显示发送成功:

要查云端:

  • 是否收到指令?

  • 是否转发成功?

  • 是否有设备离线记录?

很多问题在这里:

  • 设备掉线

  • 心跳超时

  • Token失效

  • 鉴权失败


四、第三层:网络链路

机器人是否在线?

看:

  • 是否保持心跳包

  • 是否断网

  • WiFi信号强度

  • 是否 NAT 穿透失败

远程控制失败,80% 是网络问题。


五、第四层:机器人端日志

如果指令已经到达机器人:

要看机器人日志:

  • 是否收到指令?

  • 是否解析成功?

  • 是否进入控制状态机?

  • 是否被安全机制拦截?

例如:

  • 当前电量过低,禁止启动

  • 当前处于错误状态

  • 正在OTA升级

  • 被物理按键锁定

很多时候:

不是没反应,而是“被逻辑拦截”。


六、第五层:执行层问题

如果控制系统已经下发执行指令,

但电机不动:

可能是:

  • 电机驱动板故障

  • 电机过流保护

  • 保险丝断

  • 主控板异常

这属于硬件层面。


七、如何高效定位?

工程上通常做三件事:


1️⃣ 全链路日志追踪

给每条指令一个 ID:

  • APP 发出 → 记录 ID

  • 云端转发 → 记录 ID

  • 机器人接收 → 记录 ID

  • 执行完成 → 记录 ID

如果某个环节断了,

ID 就消失在那里。

这叫:

链路追踪(Trace ID)


2️⃣ 分层抓包

  • 手机抓包

  • 服务器日志

  • 机器人串口日志

  • 网络抓包


3️⃣ 本地直连测试

绕开云端:

  • 直接局域网控制

  • 看是否响应

如果本地能控制,远程不能,

那问题就在云端或公网。


八、工程思维总结

定位原则:

1️⃣ 先确认是否发出
2️⃣ 再确认是否到达
3️⃣ 再确认是否执行
4️⃣ 最后确认是否物理层动作

永远从外到内排查。

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » APP下发指令后机器人没反应故障时,怎么定位问题

评论 抢沙发

4 + 3 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮