全开源 6 自由度桌面级 DIY 机械臂

本项目是一款全开源 6 自由度桌面级 DIY 机械臂,采用Arduino Nano 33 BLE 下位机 + 树莓派上位机分层控制架构,基于 Nema 17 步进电机驱动,搭配 CNC 精密加工机械结构,完整实现机械臂正向与逆向运动学解算。

全开源 6 自由度桌面级 DIY 机械臂封面
oshw_hqzl2026-05-09 11:54:14Unlicense
264
Star

PCBA

设计文件

KiCad图标DIY-Robot-Arm-V2-main.zip7.69MB(0次下载)

EDA查看器

复制嵌入代码

详细介绍

本项目是一款全开源 6 自由度桌面级 DIY 机械臂,采用Arduino Nano 33 BLE 下位机 + 树莓派上位机分层控制架构,基于 Nema 17 步进电机驱动,搭配 CNC 精密加工机械结构,完整实现机械臂正向与逆向运动学解算。

项目硬件完全开源,包含 KiCad 适配板工程、Gerber 制版文件、全套 CAD 结构图纸;软件搭载 Python 开发的上位机可视化控制界面,内置 CCD 循环坐标下降、雅可比矩阵、欧拉角、四元数四种逆运动学求解算法,支持轨迹规划、位姿调试与参数可视化。

整机采用微动限位开关实现关节零位校准,无商用闭源模块,所有代码、硬件图纸、装配资料全部公开可复刻。既可作为机器人运动学、嵌入式分层控制、算法仿真的教学实验平台,也能实现桌面小件搬运、简易分拣、自动绘图等轻量化自动化场景,适合创客学习、高校实训、二次开发与创意改造,同时项目已归档维护,后续可迭代升级绝对值编码器提升定位精度。

机械臂核心信息

  • 自由度与硬件:6 自由度机械臂,采用 Nema 17 步进电机驱动,通过 CNC 加工零件组装。

  • 定位方式:使用微动开关实现关节的近似零位校准,V3 版本计划改用绝对值编码器提升精度。

  • 控制方案

    1. 下位机:Arduino Nano 33 BLE 负责电机控制

    2. 上位机:树莓派运行 Python 程序,提供正向运动学(FK)和逆向运动学(IK)求解界面,支持雅可比矩阵、CCD(循环坐标下降)等多种逆解算法。

  • 用户界面:支持运动学参数可视化调试,通过界面可直接查看机械臂位姿与轨迹规划效果。

项目文件结构

文件夹 / 文件

内容说明

Adaptor Board

适配板的 KiCad 工程文件(原理图、Gerber 文件),支持手工焊接(无 SMT 工艺)

Arduino Nano

适配 Arduino Nano 33 BLE 设备的固件代码,需安装在适配板上

CAD files

机械结构的 Step 文件和二维图纸,标注了螺纹和公差信息

Raspberry Pi

运行在树莓派 3/4 上的 Python 脚本与依赖,含绘图控制界面

README.md

项目说明文档

项目亮点

1. 完整的 6 自由度机械臂技术栈

  • 多算法逆运动学(IK)实现

    内置 4 种不同的逆运动学求解方法(CCD、雅可比矩阵、欧拉角、四元数),支持对比学习不同算法的优缺点,是非常珍贵的实践案例。

  • 分层控制架构

    采用「Arduino Nano 33 BLE 下位机 + 树莓派上位机」的经典架构,下位机负责步进电机驱动与实时控制,上位机提供 Python 可视化界面与运动学解算,结构清晰,便于扩展。

2. 全流程开源,零黑箱设计

  • 硬件全开源

    从机械结构(CNC 加工图纸、Step 文件)到 PCB(KiCad 工程、Gerber 文件)全部公开,甚至包含手工焊接适配板的设计说明,没有任何 “闭源模块”。

  • 软件全透明

    Python 控制代码、运动学解算代码、依赖库清单全部开源,可直接在树莓派上运行调试,无需额外授权或依赖商业软件。

3. 对学习友好的设计与文档

  • 清晰的模块化结构

    机械臂的每个关节都标注了 Part Studio 编号,方便对照图纸组装;PCB、固件、上位机代码按功能分文件夹,新手也能快速理清架构。

  • 配套教学资源

    提供了演示视频和 WordPress 博客,包含调试过程、问题说明和改进方向(如后续 V3 版本计划使用绝对值编码器),非常适合作为机器人学的实践项目。

4. 成本可控,适合 DIY 复刻

  • 采用 Nema 17 步进电机 + CNC 铝件的组合,相比工业级谐波减速器方案,成本大幅降低,同时保留了足够的刚性与负载能力。

  • 适配板设计兼容常见的焊接方式(烙铁 + 热风枪),不需要专业 SMT 设备,普通爱好者也能制作。

License

未注明协议,请勿商业使用

项目地址

https://github.com/JasonHEngineering/DIY-Robot-Arm-V2