做过几个机器人的毕设,也帮学弟学妹调过三次,说点实在的:手机控制机器狗这事,难度不在"控制",在"控制之外的那一堆破事"——供电、丢包、舵机中位、以及答辩前突然不动了。

    如果你只是要一个能演示、能写进论文、答辩时能当着老师面走两步的方案,别自己写 App,写控制软件。用 BLE 蓝牙直连 + 现成的遥控端,把精力省下来做步态算法,优化运控,那才是老师真正要看的东西。

三条路,选错了很致命

方案

做法

周期

坑

自己写 App

Android 原生 / Flutter + BLE

2-4 周

蓝牙兼容性地狱,不同手机表现不一样

手机 + 云端中转

手机发 MQTT → 服务器 → 设备

1-2 周

答辩现场没网就当场去世

BLE 直连 + 现成遥控端

设备端实现协议,手机端直接用

1 天

几乎无

    前两条我都见过翻车的。自己写 App 那个同学,最后两周全在修手机连不上蓝牙或者连接不稳定的问题,步态部分反而是抄的;云端那个更惨,答辩教室 WiFi 要认证,机器狗站在那里一动不动。

图片

机器狗这边要做什么

    一个经典的毕设四足机器人标准是 12 个舵机、3×4 自由度(每条腿髋、大腿、小腿各一个)。你要让手机能控制它,设备端(一般用 ESP32,省钱!!!)只需要做三件事:

  1. 开一个 BLE 服务

    用 Nordic UART Service 或者自定义服务都行,手机端能写特征值即可。

  2. 定一个帧格式

    解析手机发下来的字节流。

  3. 把字节流转成舵机角度

    写进 PWM 驱动。

    BLE协议及标准是最容易被忽略的,我一般建议用的是 10 字节定长帧:

| 偏移 | 字段   | 长度 | 说明                |
|------|--------|------|---------------------|
| 0    | 帧头   | 1    | 固定 0xAA           |
| 1    | 帧头   | 1    | 固定 0x55           |
| 2    | 命令码 | 1    | 移动控制是 0x01     |
| 3    | 序列号 | 1    | 0~255 自增循环      |
| 4-8  | 数据   | 5    | [vx, vy, vr, 0, 0]  |
| 9    | 校验和 | 1    | (字节 2~8 累加) & 0xFF |

    为什么是 10 字节?因为 BLE 4.0 默认 MTU 只有 20 字节,一帧塞进一个通知里发出去最省心,不用分包重组,10 字节留够了余量。

    移动控制那 5 个数据字节里,前三个是 vx(前后)、vy(左右)、vr(转向),速度值用 -100~100 映射到 0~255,0x80 表示 0。这样一帧就能同时给前进速度和转向,摇杆推过去是连续的,比发一堆按键指令手感好太多。这样的标准写入固件,非常省时省力。

图片

三个必踩的坑

    坑一:舵机供电不能从 ESP32 等主控板取。 12 个舵机同时动,峰值电流能上 5-10A,开发板一般都 扛不住,表现为"一动就重启"。必须独立供电,并且舵机电源和逻辑电源共地,不共地会出现莫名其妙的乱动作。

    坑二:蓝牙断了要有急停。 我一般会开一个看门狗:超过 1 秒没收到心跳帧(命令码 0x00),就让狗原地站立。否则手机一锁屏,狗会保持上一个速度一直走,然后撞墙。急停命令我单独留了 0x02,数据位全填 0xFF,收到无条件停。

    坑三:12 个舵机中位一定不一致。 这个就需要对每个关节的舵机进行静校准,不然,就得拆开不一致的关节重新组装,这是最花时间的一项,比写协议还花时间。

有没有现成的

    有。我自己在网上找了很久,不是付费就是需要看广告,不负有心人,找到个“机器人控制”的小程序,免费且好用。它是个通用机器人遥控平台,微信小程序打开就能用,不用装 App,四足、双足、轮式、轮足、机械臂、灵巧手六类设备都支持,走的就是上面这套 10 字节协议。

    对毕设来说它省掉的是最烦的那一环:手机端不用写了,你只需要在 固件代码上把帧解析实现出来,然后它自带的东西刚好能直接进论文——

  • 引导测试

    舵机响应、空载行走、步态切换、急停四步,跑完才解锁遥控,答辩前自检特别好用

  • 双级舵机校准

    粗校准(裸机零位,6 步引导)+ 精校准(±1°/±2°/±5° 逐关节微调),中位问题不用一个个试。

  • 动作编排

    时间轴拖拽,编排完一键下发,做"作揖""跳舞"这类演示动作很快。

  • 异常监控

    电压低于 6.5V 警告、低于 6.0V 严重告警,温度超过 60°C 警告、超过 70°C 严重告警,堵转过载会报 0x02/0x03。

    机型方面,四足这边的 Pineapple 8 自由度、Pineapple 12 自由度、SpotMicro 12 自由度等同结构都是可以直接连真机遥控的,主要还支持最近很火的Microduck机器鸭;宇树 A1/Go1/Go2 这些商用机型提供的是 URDF 模型导入和 3D 预览、动作编排,真机遥控得你自己实现协议——这点一定要搞清楚,别在答辩时被问住。

图片

答辩会问什么

老师大概率会问这三个,提前准备好:

  1. "通信协议是你自己设计的吗?"

     —— 可以答"参考了工业上常见的定长帧结构,帧头做同步、序列号做去重、累加和做校验,针对 BLE 的 20 字节 MTU 限制把帧压缩到 10 字节"。这比"我用了别人现成的"好听得多,而且确实是设计。

  2. "为什么不直接用 WiFi?"

     —— BLE 功耗低、配对快、不依赖路由器;WiFi 的优势是能远程控制,但答辩场景下是负担。两种都支持的话更好,切换不用改设备端代码。

  3. "延迟多少?"

     —— 实测 BLE 直连往返 10-20ms 量级,控制一条四足机器人完全够。记得现场测一下,别瞎编。

最后一句实话:毕设评分看的是你解决了什么问题,不是你写了多少行代码。把手机遥控这一层用现成方案省下来,把时间花在步态规划或者姿态控制上,分数会高不少。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐