项目背景
随着近年来生成式 AI 技术的快速发展,传统机器人行业迎来了新的机遇与挑战。传统机器人通常依赖遥控操作,或按照预设程序机械地执行固定动作,缺乏自主理解、智能交互与灵活决策能力,因而在复杂场景中的适应性和智能化水平受到较大限制。
项目介绍
本项目旨在将 AI 小智接入PiSloth 机器人平台,为机器人赋予“AI 大脑”。通过融合生成式 AI 的自然语言理解、任务推理与智能决策能力,机器人不仅能够完成基础动作控制,还能够根据用户指令进行更自然的人机交互。可为传统机器人从“机械执行”向“智能交互”升级,提供一个低成本、可落地的解决方案。
硬件介绍
树莓派4B(核心主控板):
- CPU:Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.8GHz
- RAM: 1GB
Pisloth机器人套件:
- sunfounder在2021年左右发布一款Raspberry Pi 机器人开发套件
- 金属驱体+ 4个舵机
- robot hat 控制板,用于舵机、IO等控制
自行设计的前脸PCB:
- 无UI交互下,AI状态LED显示(联网状态、聆听状态、说话状态等)
- 仿真眼睛:PCB丝印眼镜+凸透镜+LED
电池、麦克风、喇叭等基础外围
Py-Xiaozhi介绍
py-xiaozhi 是一个使用 Python 实现的小智语音客户端,是基于xiaozhi-esp32移植的。
官方仓库:https://github.com/huangjunsen0406/py-xiaozhi
方案框图
框图简介:
本项目使用树莓派4B作为核心主控,麦克风、扬声器作为机器的语音输入和输出;主控通过websocket与云端大模型进行交互,实现语音识别、逻辑推理、意图识别等;主控通过I2C接口与Robot Hat控制板交互,实现机器人关节的舵机控制;AI机器人的当前实时状态则通过前脸的LED进行指示。
设计思路:
在终端与云端AI的语音交互方面,AI小智是近两年来很热门的一个项目方案,并且是开源的,对于个人开发而言,服务端也完全免费,没有大模型Token消耗成本。对于树莓派这种Linux终端,本文选择Python版本的py-xiaozhi项目作为基础代码进行二次开发。
py-xiaozhi实现了终端与云端AI的语音交互,那如何让机器人与云端AI实现硬件交互呢?答案是:目前主流的MCP(即模型上下文协议)。将机器人的动作、功能抽象为一个MCP工具,云端AI在获取到MCP的描述后,即可获得控制机器人的技能。当识别出控制机器人意图时,会下发对应的工具调用指令,从而实现机器人的硬件控制。
原理图及PCB
本项目对PiSloth机器人的前脸电路进行了重新布局规划,使用KiCad设计了一个低成本的LED状态显示逻辑及一双灵动的双眸:
在PCB设计方面,充分利用黑色油墨与白色丝印,绘制了机器人的眼部轮廓,同时配上微光LED及凸透镜,使得机器人双眸栩栩如生,实际效果展示:
软件关键实现
py-xiaozhi部署:
- 克隆项目仓库
git clone https://github.com/huangjunsen0406/py-xiaozhi- 修改项目requirement.txt
由于本项目使用的是仅1GB RAM的树莓派,所以只能使用命令行模式,因此QT相关的组件需要注释掉。
...pygame==2.6.1#PyQt5==5.15.11opencv-python-headless==4.11.0.86...
- 安装requirement.txt即完成部署
robot_hat组件安装:
- pip直接安装
pip install robot-hatrobot_hat组件包含一套robot_hat控制板的硬件控制函数,通过这些函数实现舵机的驱动。
机器人MCP实现:
- 在src/mcp/tools目录下创建pisloth文件夹,实现下面四个关键文件
其中,sloth.py是机器人控制的直接操作函数,manager.py则主要是对该工具的prompt描述:
add_tool(("control_pisloth","【机器人动作控制】这是你的身体,当用户要求你前进、后退、跳舞或站立时调用此工具。\n""功能:控制 Pisloth 机器人执行物理动作,如前进、后退、跳舞或站立。\n""支持的动作:\n""- 'forward': 机器人前进\n""- 'backward': 机器人后退\n""- 'dance': 执行跳舞动作(机器人会进行舵机运动模拟跳舞)\n""- 'stand': 站立不动(默认动作)\n""使用场景:用户说'前进'、'后退'、'跳个舞'、'跳舞'、'站好'等时调用。\n""参数说明:action_type - 动作类型,字符串类型,默认 'stand'\n""注意:这是物理机器人控制,确保硬件连接正常。",control_props,control_pisloth,)
交互状态LED指示实现:
- 修改src下cli_display的update_status,根据不同状态对LED进行控制。如当机器人连接服务器后,双眸的微光LED点亮,当机器人在聆听状态时,额头绿色LED点亮。
云端大模型配置:
打开小智AI服务器官网,配置机器人的昵称,并选择使用的大模型。
本项目选用Qwen3.5大模型,该模型具有极强的指令遵循及工具调用能力,本公众号曾验证其上一代Qwen3-1.7B小参数模型即可正常进行工具调用。
机器人整体展示
效果演示
小结
本项目在树莓派4B上,将AI小智接入PiSloth机器人平台,实现了一个AI智能机器人。该思路及方法可以应用到其它传统机器人或者智能硬件中,可为传统机器人/智能硬件从“机械执行”向“智能交互”升级,提供一个低成本、可落地的解决方案。
本项目完整源码,可关注“ETRD”公众号,回复 “AI小派” 获取。