做了一个【能走】【能看】【能听】【会说】【懂思考】的机器人——小白机器人!
疑似小白军训画面流出……

对标《超能陆战队》的小白机器人!(未来的目标)

那么,小白有些什么功能?软硬件怎么设计?结构设计有些什么小巧思?全开源了吗?

演示一下!
语言交互,事事有回应▼

“视力不错”的活泼机器人一枚鸭~

做硬件前,首先要确定一下小白机器人的核心CPU
我有两种选择——近些年火热的【ESP32】和昂贵的【Linux SOC】,然而最终,我还是选择了能跑Linux的RK3566芯片。
为啥?明明它价格昂贵、功耗高、发热重、体积大……
但是!在Linux系统下,它编程更加自由,功能更加容易扩展,有大量的开源项目可供使用,不必自己重新造轮子,例如下文中会提到的强大的ros系统
我是如何让机器人【活】起来的?只确定核心CPU,可不够!
为了和用户进行人机交互,显示个表情包啥的,提供必要的情绪价值,确定了处理器之后,机器人上肯定少不了一块液晶屏!
要想让机器人能看见这个世界,还需要安装一个摄像头
要机器人能听会说,麦克风和扬声器也是必须要的
要实现机器人能走路,最简单的方式就是安装两个差速轮,并且为了支持它到处跑,电池供电也是必不可少的
另外为了机器人在室内环境中能够避障和导航,我还为小白机器人的顶部配备了单线激光雷达
为了实现机器人常见的离线命令词控制,内置了离线语音芯片
为了实现待机充电,在机器人内部做了电源切换和充电电路
……
所以,电路具体怎么设计?下滑查看!
通过香橙派3B+STM32控制板实现硬件部分。STM32控制板主要用于实现电源管理和移动底盘控制。

硬件整体框架

原理图1

原理图2

PCB图

电池盒转接板

USB线转接板

USB串口板
-
产品型号:newbot1.0
-
主芯片SOC:Rockchip RK3566
-
CPU:四核64位Cortex-A55 1.8GHz
-
NPU:1T算力 支持TensorFlow/ONNX/PyTorch模型转换
-
VPU:H.264/H.265/JPEG硬件编解码
-
RAM:LPDDR4 2GB
-
ROM:eMMC 32GB
-
Wi-Fi+蓝牙:Wi-Fi 5+BT 5.0
-
控制芯片MCU:STM32F103C8T6
-
电池容量:两节18650共7000mAh 3.7V
-
机器人尺寸:直径12cm 高度约10cm
-
摄像头分辨率:1280x800 30FPS
-
屏幕尺寸:1.28寸SPI圆形屏幕
-
操作系统:Ubuntu20.04
-
ROS版本:ROS1 Noetic
硬件采购清单如下,仅供参考
以下不包括底盘PCB单面SMT用到的元器件,如果两面全手工焊接需要根据原理图另行购买元器件

小白机器人的软件在ROS框架下构建。
下图是本项目的三大主要软件功能,包括——语音交互、图像识别、移动导航。

图像识别和移动导航的实际效果,如下图所示~

下面,分享一下图像采集流程:
-
读取USB相机原始的JPEG格式数据
-
解码和缩放,送入yolov6处理模块
-
处理得到检测框和绘制了检测框的图像
-
然后送入跟踪模块,得到绘制了跟踪结果的图像
-
最后送到JPEG编码节点
-
发布出去方便电脑或手机接收查看
注意这里的解码、缩放以及最后的编码都是调用了RK3566的硬件编解码能力,而yolov6使用了RK3566 RKNN的AI加速能力。
其他处理流程,包括:
-
底盘控制节点base_control
-
雷达驱动节点/m1c1_mini
-
离线唤醒命令处理节点wakeup_process
-
纯python编写的语音处理节点audio
-
精确移动和旋转命令执行节点/move_client_cmd和/move_server
项目所有资料已全开源,可以前往开源网址了解详情:https://oshwhub.com/lw95/newbot
想完成小白机器人,需要掌握ROS的命令行工具、可视化工具、工程编译方法、ROS Launch文件、C++和Python语言等开发基础。如果需要相关的入门视频资料,也可以进入开源网址查看~
ROS(机器人操作系统,Robot Operating System)是专为机器人软件开发所设计出来的一套电脑操作系统架构。
小白机器人外壳基于Solidworks软件绘制。
3D打印采用光固化打印。

内部结构设计,在直径12厘米的圆柱体内,从下至上大致分成了电机、电池、主板、激光雷达四层空间,做到了体积小巧但功能丰富。

激光雷达支持YDLidar X2、M1C1_MINI、乐动LD14等多款雷达。注意:根据激光雷达的类型不同,孔位位置不同,要选用不同的上壳结构:

本项目已开源!
——想复刻?想给作者点赞?可复制开源网址 前往原文。
开源网址:https://oshwhub.com/lw95/newbot