本项目为TJUT Robotics课程中的 #10 小组作业,设计并实现了一个基于五连杆机构的智能写字刷题批卷机器人系统。该系统集成了机械设计、嵌入式控制、计算机视觉、逆运动学求解等多个技术领域,旨在打造一个高精度、高效率的自动化写字和批卷解决方案。
- 🎯 高精度五连杆机构 - 基于数学建模的精确逆运动学控制
- 🧠 智能图像处理 - 集成计算机视觉和神经网络技术
- ⚡ 实时控制系统 - STM32嵌入式实时控制与Python上位机协作
- 🎨 轨迹优化算法 - 智能笔画识别和书写路径规划
- 📱 友好用户界面 - 基于GUI的直观操作界面
graph TB
A[用户界面层] --> B[算法处理层]
B --> C[控制执行层]
C --> D[硬件驱动层]
A1[GUI界面] --> A
A2[参数配置] --> A
B1[图像处理] --> B
B2[路径规划] --> B
B3[逆运动学] --> B
B4[神经网络] --> B
C1[STM32控制器] --> C
C2[舵机驱动] --> C
C3[串口通信] --> C
D1[五连杆机构] --> D
D2[舵机硬件] --> D
D3[传感器] --> D
- 主控芯片: STM32F103C8T6
- 机械结构: 五连杆并联机构
- 执行器: AS15-ST数字舵机
- 通信接口: UART串口通信
- 嵌入式开发: STM32 HAL库 + FreeRTOS
- 上位机: Python 3.x + OpenCV + NumPy
- 深度学习: PyTorch + CMSIS-NN
- 界面开发: Tkinter GUI
- 数学计算: MATLAB/Simulink
2025-writing-robot/
├── code/ # 源代码目录
│ ├── Rpi/ # 树莓派/上位机代码
│ │ ├── front/ # 前端GUI界面
│ │ │ ├── diraction_OK.py # 方向识别和指令生成
│ │ │ ├── line_OK.py # 线条处理算法
│ │ │ └── GUI/ # 图形界面代码
│ │ ├── Inverse/ # 逆运动学求解
│ │ │ ├── Point_C/ # C点坐标计算
│ │ │ ├── list/ # 神经网络模型
│ │ │ └── cal_cor.py # 坐标计算
│ │ ├── main/ # 主控制程序
│ │ ├── qwen/ # AI视觉处理
│ │ └── Servo_Ctrl_lib/ # 舵机控制库
│ └── writening-robot-contoraller/ # STM32嵌入式代码
│ ├── Core/ # 核心功能代码
│ │ ├── Src/ # 源文件
│ │ │ ├── main.c # 主程序入口
│ │ │ └── User/ # 用户自定义功能
│ │ └── Inc/ # 头文件
│ ├── Drivers/ # 硬件驱动
│ │ ├── STM32F1xx_HAL_Driver/ # HAL库
│ │ └── CMSIS/ # CMSIS标准库
│ └── USB_DEVICE/ # USB通信模块
├── 机械机构/ # SolidWorks 3D模型文件
├── 算法测试/ # 算法验证和测试
├── 报告/ # 技术文档和报告
└── README.MD # 项目说明文档
Python >= 3.8
OpenCV >= 4.5.0
NumPy >= 1.20.0
PyTorch >= 1.9.0
STM32CubeIDE >= 1.7.0- STM32F103C8T6开发板
- AS15-ST数字舵机 × 2
- 五连杆机械结构
- USB转串口模块
- 克隆项目
git clone https://github.com/Reiky-REI/2025-writting-robot.git
cd 2025-writing-robot- 安装Python依赖
cd code/Rpi
pip install -r requirements.txt- 编译STM32固件
cd code/writening-robot-contoraller
# 使用STM32CubeIDE打开项目并编译
# 或使用CMake编译
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Debug
make- 烧录固件
# 使用ST-Link烧录到STM32
st-flash write build/writening-robot-contoraller.bin 0x8000000- 启动系统
cd code/Rpi/main
python main.py- GUI操作界面
- 连接硬件设备
- 选择输入图像或手写内容
- 配置书写参数
- 开始自动书写
- 命令行模式
# 直接处理图像文件
python code/Rpi/front/diraction_OK.py --input image.png --output instructions.json
# 逆运动学计算
python code/Rpi/Inverse/Point_C/inverse.py --x 10.5 --y 15.2系统的核心数学模型基于平面五连杆机构的逆运动学分析:
def compute_inverse_kinematics(x_pen, y_pen):
"""
输入:笔端坐标 (x_pen, y_pen)
输出:关节角度 (phi1, phi5)
"""
# 平台与极坐标参数
r_P = sqrt(x_pen**2 + y_pen**2)
phi_0 = arctan2(y_pen, x_pen)
# 闭链约束求解
# ... (详细实现见 F.md)
return phi1, phi5智能图像处理管道:
def generate_writing_path(image):
"""图像到写字路径的转换"""
# 1. 图像预处理
skeleton = skeletonize(image)
# 2. 关键点检测
endpoints, crosspoints = detect_keypoints(skeleton)
# 3. 笔画分割
strokes = trace_strokes(skeleton, endpoints, crosspoints)
# 4. 路径优化
optimized_path = optimize_writing_order(strokes)
return optimized_pathSTM32嵌入式控制核心:
// 舵机控制主循环
void servo_control_task(void) {
while(1) {
// 接收上位机指令
if(uart_receive_command(&cmd)) {
// 逆运动学计算
calculate_joint_angles(cmd.x, cmd.y, &phi1, &phi5);
// PWM信号生成
set_servo_angle(SERVO_1, phi1);
set_servo_angle(SERVO_2, phi5);
}
osDelay(10); // 100Hz控制频率
}
}| 指标 | 数值 | 说明 |
|---|---|---|
| 位置精度 | ±0.1mm | 笔端定位精度 |
| 重复精度 | ±0.05mm | 重复书写精度 |
| 工作空间 | 100×80mm | 有效书写区域 |
| 书写速度 | 50mm/s | 最大线性速度 |
| 控制频率 | 100Hz | 实时控制更新率 |
| 角度分辨率 | 0.1° | 舵机控制精度 |
- 基于图论的最短路径算法
- 笔画连续性优化
- 书写顺序智能调整
- 闭链约束方程组数值求解
- 多解情况的智能选择
- 奇异点检测与避免
- 基于OpenCV的实时图像处理
- 深度学习字符识别
- 自适应阈值处理
- 分层设计,易于扩展
- 跨平台兼容性
- 标准化通信协议
# 运行所有测试
cd code/算法测试
python -m pytest tests/ -v
# 逆运动学精度测试
python test_inverse_kinematics.py
# 图像处理算法测试
python test_image_processing.py- 机械精度标定
- 舵机响应特性测试
- 整体系统集成测试
- 五连杆机构数学建模
- STM32嵌入式控制系统
- 逆运动学求解算法
- 图像处理与路径规划
- Python上位机软件
- SolidWorks 3D建模
- 硬件系统集成
- 深度学习模型优化
- 用户界面改进
- 批量处理功能
- 移动端APP开发
- 云端服务集成
- 多机器人协作
- AI辅助批改功能
我们欢迎社区贡献!请遵循以下步骤:
- Fork 这个项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
- Python: 遵循 PEP 8
- C/C++: 遵循 Google Style Guide
- 提交信息: 使用 Conventional Commits
本项目采用 MIT 许可证。详见 LICENSE 文件。
- 项目负责人: Reiky-REI
- 机械设计: [团队成员]
- 嵌入式开发: [团队成员]
- 算法开发: [团队成员]
- 测试验证: [团队成员]
- 📧 Email: [项目邮箱]
- 🌐 网站: [项目网站]
- 💬 讨论: GitHub Discussions
感谢以下开源项目和资源:
- OpenCV 计算机视觉库
- STM32 HAL 驱动库
- PyTorch 深度学习框架
- CMSIS 嵌入式标准
Made with ❤️ by TJUT Robotics Team #10