Files
Robot_Arm/README.md
T

122 lines
8.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🤖 机器人手臂(6自由度参数化机械臂工程)
基于 [CadQuery](https://github.com/CadQuery/cadquery) 的参数化 6 自由度人形机械臂建模工程。对标智元灵犀 X1 构型,采用 6 颗 60mm 标准减速电机模组,支持全参数化建模、动态全域碰撞检测、制造文件(STEP/STL)导出及单文件离线三维交互查看器。
---
## 🌟 核心设计特性
1. **一体化直锁电机**:全面取消外挂独立端面齿联轴器,所有关节由 3×M2 沉头螺钉直锁电机输出轴,轴向尺寸大幅压缩,刚度显著提升。
2. **五级流线圆角系统**:建立统一的有机曲面过渡规范(R=1.5mm 微圆角 ~ R=15mm 视觉主导大圆角),彻底消除锐边与机械生硬台阶。
3. **全行程动态零干涉**:经 `sweep_v2.py` 多进程全域扫描与二分逼近验证,各自由度极限角度下实现 0 碰撞。
4. **100% 流形单实体**:9/9 构件均为无缝单一实体拓扑,完全杜绝浮动壳体与布尔破碎,满足 FDM/SLA 打印及 CNC 加工要求。
---
## 🚀 快速上手
### 1. 编译并导出最新模型
一键重新生成全部 9 个打印构件、装配体、STEP/STL 制造文件及 3D 查看器数据:
```bash
python src/arm_model.py
```
> 导出的 STEP 文件保存在 `out/parts_step/`,打印用 STL 保存在 `out/print_stl/`(重跑构建自动更新)。
### 2. 全行程动态防碰撞扫描
多进程并行扫描全关节运动极限硬边界,并更新滑动安全范围:
```bash
python src/sweep_v2.py
```
### 3. 三维交互查看器
- **使用方式**:直接双击打开项目根目录下的 **`机器人手臂3D查看器.html`** 即可在任意浏览器全屏交互查看(纯本地离线单文件,无需任何外网或 CDN)。
- 支持:全自由度姿态滑块调节、部件爆炸图、单零件孤立透视、应力与干涉显示。
---
## 📁 项目目录结构
```
机器人手臂/
├── 机器人手臂3D查看器.html # 单文件内置 3D 查看器(双击即用)
├── README.md # 本说明文档
├── src/ # 核心源码目录
│ ├── arm_model.py # ⭐ 唯一权威主力建模脚本(含五级圆角与最新几何)
│ ├── sweep_v2.py # ⭐ 权威动态碰撞检测与行程扫描工具
│ ├── arm_build.py # 底层几何基础库与通用装配/导出函数
│ ├── build_viewer.py # 3D 查看器打包生成脚本
│ ├── human_layout.py # 机械臂各关节运动学拓扑与唯一事实参数源
│ ├── shot.py # 渲染截图工具
│ ├── draw_sheet.py # 2D 工程图纸生成(查看器图纸页数据 sheets.jsdata)
│ ├── finalize_travel.py # 行程数据维护(从 sweep 明细重建 travel.json)
│ ├── strength_check.py # 刚度与应力分析
│ └── torque_balance.py # 关节力矩平衡校核
├── docs/ # 权威数据与渲染截图(历史报告已清理)
│ ├── travel.json # 各关节实测行程与硬限位(sweep_v2.py 扫描生成)
│ ├── travel_detail.json # 逐对扫描明细与组合折叠约束
│ ├── bom.json # 零件明细与质量属性表(构建自动生成)
│ ├── collision.json # 静态干涉检测结果(构建自动生成)
│ └── shots/ # 渲染截图
├── web/ # 查看器底层模板与几何网格数据 (mesh_arm.json)
└── out/ # 编译制造产物(重跑 arm_model.py 自动重建)
├── parts_step/ # 各零件标准 STEP 实体
└── print_stl/ # 各零件 3D 打印 STL 文件
```
---
## 🦾 机械臂构件清单 (P01 ~ P09)
| 构件编号 | 构件名称 | 关联驱动关节 | 设计说明 |
| :--- | :--- | :---: | :--- |
| **P01** | 立柱(三段 A/B/C) | 根基固定 | 66×66mm 三角截面立柱,分段榫接 + M4 自攻对锁孔防反装;顶端为 P03 安装台 |
| **P02** | 底盘(核心座 + 前/后防翻力臂) | 根基固定 | 195×190mm 核心承力座 + 48mm 套筒 + 前后三角加强筋;前后防翻力臂带 M5 预埋螺母 |
| **P03** | 肩吊臂 / 肩关节安装悬臂 | J1 驱动抱紧 | 轻量化板式桁架:双侧 6mm 竖板 + 帐篷减重窗(≥52°自支撑)+ 9mm 承力鞍座 + Ø15 螺母柱,抱紧 M1 电机(实心 728→286cm³,-61%,外轮廓不变) |
| **P04** | 肩叉 | J1 ➔ J2 | 90° 一体化高刚度正交转向肘,直锁 M1,抱紧 M2 |
| **P05** | 大臂旋转座 | J2 ➔ J3 | 16 层 Loft 曲面平滑过渡,直锁 M2,后侧刚性抱紧 M3 |
| **P06** | 大臂骨架 | J3 ➔ J4 | 流线型工字背脊骨架,直锁 M3,下端抱紧 M4 肘电机 |
| **P07** | 小臂骨架 | J4 ➔ J5 | L 型圆弧强化立柱,大范围自由运动避让,抱紧 M5 |
| **P08** | 腕偏转座 | J5 ➔ J6 | 16 层 Loft 双曲面过渡,直锁 M5,立式抱紧 M6 腕旋转电机 |
| **P09** | 工具法兰 | J6 输出 | 直锁 M6 输出轴,标准工业 ISO 法兰(4x M4 螺孔 BCD 40mm) |
| **M1~M6** | 关节电机模组 ×6 | 各关节驱动 | Ø60 方形标准减速电机模组(63.6mm 方形尾盖),210 g/台,整机 1260 g |
> ⚠️ **P01 / P02 是固定测试台架,不是机器人本体**。它在扫描中代表机械臂与躯干的连接
> 界面——**臂撞立柱 = 臂撞躯干,是真约束,碰撞计算必须包含它**。但台架的位置与截面
> 是一个假设,所以躯干侧的工作空间只和这个假设一样准。要改的是"真机躯干占位"这个
> 输入,而不是改台架(改台架是改测试工装)。`sweep_v2.py --no-stand` 是诊断开关:
> 排除台架重扫,给出不含躯干约束的自由空间行程,用来分辨某个限位是臂自身折叠产生的
> 还是躯干挡的。**默认包含台架。**
> ⚠️ **关节电机力矩现状**:按 `torque_balance.py` 的实测(零件真实质心 + 可达姿态搜索),
> **J1 肩抬举仅悬停自身臂身即需 3.84 N·m、J2 需 2.48 N·m**,已超出假定许用连续力矩
> 2.0 N·m;带 0.5 kg 末端负载时 J1 达 6.14 N·m(307%)。详见 `docs/torque_report.md`。
> 结论对电机额定参数敏感,该参数目前为工程假定(无数据手册),可用 `ARMT_CONT` 覆盖重算。
>
> 相反地,**结构本身不是瓶颈**:12 个剖面全部合格,最差的 P03 吊臂根座安全系数 8.93,
> 最大挠度 1.6mm。减重救不了电机——J1 的 distal 载荷里 5 台电机占 65%(1.05kg),
> 打印件只占 0.58kg,把 P07/P08/P09 全部减掉 J1 也只降到 2.54 N·m。
---
## 📚 详细文档导航
- 📘 **权威数据(工具自动生成)**:
- [各关节行程与硬限位 travel.json](file:///g:/Robot_v2/机器人手臂/docs/travel.json)(sweep_v2.py 扫描生成,修改几何后必须重扫)
> 滑块范围 = **单关节**硬限位。组合折叠姿态下另有干涉约束,见 `travel_detail.json` 的
> `combos` 字段(目前全部是工具法兰 P09 撞躯干占位 P01_A,属真约束);查看器运行期
> 另有胶囊碰撞模型按姿态夹取。
- [零件明细与质量属性 bom.json](file:///g:/Robot_v2/机器人手臂/docs/bom.json)(构建自动生成)
- [静态干涉检测结果 collision.json](file:///g:/Robot_v2/机器人手臂/docs/collision.json)(构建自动生成)
- [截面刚度与应力 strength.json](file:///g:/Robot_v2/机器人手臂/docs/strength.json)(strength_check.py 生成)
- [关节力矩与负载能力 torque_report.md](file:///g:/Robot_v2/机器人手臂/docs/torque_report.md)(torque_balance.py 生成)
- 🔬 **测试与校验工具**(src/ 目录):
- sweep_v2.py — 权威动态碰撞检测与行程扫描
- strength_check.py — 剖面刚度/应力校核(零件真实质心 + 可达姿态搜索,输出含挠度估算)
- torque_balance.py — 关节电机力矩、惯量与负载能力校核(拓扑取自 human_layout,不手抄)
- finalize_travel.py — 从 travel_detail 重建 travel.json(含组合卡死阈值提示)
> 三个校验脚本共用同一套零件表与运动学链(`strength_check.part_table / chain`,
> 关节轴来自 `human_layout.py`),改几何后不存在"报告与模型不同步"的问题。
> 环境变量:`ARMPAY`(末端负载 kg)、`ARMDYN`(动载系数)、`ARMINFILL`(实体率)、
> `ARMMAT`(材料)、`ARMT_CONT`/`ARMT_PEAK`/`ARMT_ALLOW`(电机力矩)、`ARMT_ALPHA`(角加速度)。