如何在3D打印机上构建真正的六轴机器人机械臂
网上大多数DIY机械臂在组装完成后就会让人失望。通常这些是廉价的亚克力结构,使用廉价的蓝色SG90舵机,稍微有点风吹草动就会颤抖,连一个空塑料杯都拿不稳。另一个极端是KUKA或Universal Robots这样的工业机械臂,但它们的价格从一辆好车的价格起步。
PAROL6项目试图填补这一空白。作者开发了一款桌面级六轴机械臂,在运动学、控制架构和精度上都非常接近工业机器人,同时仍然可以在家用的标准3D打印机上构建。
项目内部结构
仓库包含完整的自复制文档:用于打印零件的STL文件、详细的物料清单(BOM)、接线图和校准说明。项目采用GPLv3许可,因此所有源代码都是开放的。
PAROL6与典型DIY项目的主要区别在于机械设计。它具有真正的六自由度(6-DOF)。关节使用带皮带减速器和轴承的步进电机,提供刚性和运动重复性。机器人不会在空中晃动,而是以平滑的动态特性执行轨迹。
如果你不想从不同的网站订购几十种物品并寻找合适长度的螺丝,项目作者在其网站上销售现成的组件套件。但如果你的3D打印机已经在预热,你完全可以自己动手使用耗材从头开始构建一切。
软件栈和控制
没有适当软件的硬件只会变成塑料装饰品。就PAROL6而言,围绕这个机械臂已经发展出了一个完善的控制基础设施:
- Commander专属软件。一款带有图形界面的桌面应用程序,用于基本设置、校准、沿轴手动移动关节,以及创建简单的点对点程序。
- Python API。对于希望通过代码实现自动化的人。通过API你可以发送笛卡尔坐标的控制命令、读取关节角度,并编写自己的交互脚本。
- ROS 2和MoveIt集成。面向机器人学家的完整流程。仓库包含用于仿真、逆运动学计算以及带障碍物避让的轨迹规划的现成软件包。
通过Python控制运动的代码看起来简洁清晰:
from parol6 import Parol6Robot
# Подключаемся к роботу по последовательному порту
robot = Parol6Robot(port="/dev/ttyUSB0")
robot.connect()
# Домашняя позиция
robot.home()
# Перемещение рабочего органа в заданную точку (X, Y, Z, Roll, Pitch, Yaw)
target_pose = [200, 0, 150, 0, 90, 0]
robot.move_linear(target_pose, speed=50)
# Управление захватом
robot.open_gripper()
robot.close_gripper()
社区用它做什么
一个活跃的社区迅速围绕这个项目形成,编写自己的模块和扩展。
一个有趣的项目是与多模态模型的集成。开发者将网络摄像头连接到机械臂上,并通过Python API连接到Gemini Vision。因此,机器人能够理解"拿起绿色零件并放到左边的盒子里"这样的文本命令,在画面中自主识别物体,并构建抓取轨迹。
其他爱好者构建了直接从平板浏览器控制机械臂的Web界面,通过OpenCV实现棋盘识别来自动玩井字棋,并将机器人与LeRobot强化学习平台集成。
组装挑战和细节
不要指望这是一个周末项目。组装PAROL6需要细心和对机械的基本理解:
- 打印零件需要很长时间。结构部件承受很大的载荷,所以普通PLA在这里不行——你需要PETG、ABS或ASA,并具有高填充率和精确的几何形状。
- 皮带张力和轴对齐会影响回差。如果在安装减速器时出错,定位精度会明显下降。
- 移动关节内部的布线需要柔性电缆,并防止磨损。否则,经过几百个运动周期后,绝缘层内的电线就会断裂。
仓库包含详细的安全警告。机械臂由强大的电源供电,在调试过程中不小心的话,杠杆臂上步进电机的扭矩足以痛苦地夹伤你的手指。
谁会发现这个项目有用
PAROL6非常适合那些正在学习机器人技术、教学机器人技术,或编写计算机视觉算法并希望在真实机械臂上测试代码(而不仅仅是在Gazebo中仿真)的人。
它是家庭实验室、学生项目以及测试拾取和放置任务的实用工具。最好的入门方式是研究BOM文件和项目的官方文档,提前评估工作范围和所需组件清单。
相关项目