基于 Rust 语言开发的履带式移动机器人

这是一个基于 Rust 语言开发的履带式移动机器人,兼具自主导航与远程控制能力,是面向嵌入式 Rust 与机器人开发的学习项目。

基于 Rust 语言开发的履带式移动机器人封面
oshw_hqzl2026-05-18 17:08:54CC BY-NC-SA 4.0
36
Star

PCBA

设计文件

KiCad图标kicad.zip607.28KB

其他附件

EDA查看器

复制嵌入代码

详细介绍

这是一个基于 Rust 语言开发的履带式移动机器人,兼具自主导航与远程控制能力,是面向嵌入式 Rust 与机器人开发的学习项目。

项目核心概况

开发背景

  • 最初是作者为孩子打造的入门机器人项目,现已迭代至 v2 版本,目标是实现无 ROS 依赖的轻量自主导航方案。

  • 核心开发语言为 Rust,采用 Embassy 异步框架,主打 “纯嵌入式、低资源占用” 的实现思路。

核心功能目标

  1. 基础远程控制(红外 / 遥控)

  2. 超声波传感器避障(基础版)

  3. 基于 IMU(ICM20948)+ 超声波的空间感知与高级避障

  4. 摄像头跟随目标模式

  5. 自主探索模式(随机搜索目标)

硬件架构(v2 版本)

主控与核心板

  • 主控:Raspberry Pi Pico 2(RP2350),双核 Cortex-M33,150MHz 时钟

  • PCB:作者自研的定制底板,集成电源管理、电机驱动、传感器接口

传感器系统

模块

型号 / 规格

用途

9 轴 IMU

ICM-20948(TDK InvenSense)

姿态解算、运动补偿

超声波传感器

HC-SR04(×2)

前方 / 侧方障碍物检测

摄像头

Grove Vision AI V2

目标识别与跟随

红外传感器

红外接收模块

遥控信号接收

动力与驱动

  • 底盘:基于 Proto-Tank 履带式底盘(3D 打印 PLA 外壳)

  • 电机驱动:TB6612FNG 双路电机驱动 ×2(控制左右履带)

  • 电源:LM2596 DC-DC 降压模块,支持锂电池供电

软件设计亮点

代码架构

  • 采用 任务 - 状态分离 的分层设计:

    • system 模块:全局资源管理(时钟、电源、外设初始化)

    • tasks 模块:独立任务线程(电机控制、传感器采集、用户交互)

  • 基于 Embassy 异步框架,实现无阻塞的传感器读取与电机控制,单核心即可驱动所有任务。

关键实现细节

  • 为 HC-SR04 超声波传感器开发了 异步驱动,解决传统轮询方式的阻塞问题。

  • 实现了基于移动中位数的传感器滤波算法,解决超声波在运动状态下的噪声问题。

  • 开发了 ICM-20948 的 Rust 驱动,支持异步 I2C 操作与姿态数据输出。

设计与制造细节

电路与 PCB

  • 作者提供了完整的 KiCad 工程文件(原理图与 PCB 版图),可直接打板制作。

  • 采用模块化设计,将电源、驱动、传感器接口分区布局,减少信号干扰。

3D 打印部件

  • 底盘、传感器支架、履带张紧结构等部件均提供 FreeCAD 源文件,支持用户自定义修改。

  • 采用 PLA 材料打印,兼顾强度与打印难度,适合 hobby 场景制作。

开源与许可

项目采用多协议许可模式,不同组件适用不同许可证:

  • 固件代码:MIT License

  • 3D 打印部件:CC BY-SA 4.0

  • 原理图与 PCB 设计:CC BY-SA 4.0

  • 文档与说明:CC BY-SA 4.0

项目意义与延伸

这个项目是嵌入式 Rust 在机器人领域的优秀实践,证明了无需复杂的 ROS 生态,也能在低资源微控制器上实现实用的自主导航功能。同时,项目附带的驱动开发(HC-SR04、ICM-20948)也为 Rust 嵌入式开发者提供了可复用的组件。

项目地址

https://github.com/1-rafael-1/simple-robot