当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]掌握机械臂运动的艺术!该项目演示了如何在AgileX PIPER机械臂上实现连续轨迹记录和重放。无论您是构建教学演示还是自动化复杂操作,这本全面的指南都将引导您完成从设置到部署的每一步。

掌握机械臂运动的艺术!该项目演示了如何在AgileX PIPER机械臂上实现连续轨迹记录和重放。无论您是构建教学演示还是自动化复杂操作,这本全面的指南都将引导您完成从设置到部署的每一步。

功能演示

你会学到什么:

•用时间序列数据记录复杂的运动轨迹

•回放记录的运动与精确控制

•集成Python SDK与CAN通信

•实施机械臂安全机制

项目概述

该解决方案通过智能时间序列数据管理捕获并再现PIPER机械臂的复杂运动。该系统支持一次性演示和无限循环操作,非常适合教学、测试和生产自动化。

主要特点:

•实时连续轨迹记录教学模式

•多重重放模式(单、多、无限循环)

•双级调速系统

•具有自动接头定位的安全机构

•基于csv的数据持久性,便于可移植性

•完整的抓手集成支持

开始

你需要什么

硬件:

•AgileX PIPER机械臂

•USB-to-CAN模块

•支持Linux的计算机

软件要求:

•Ubuntu 18.04或更高版本

•Python 3.6或更高版本

•Git版本控制

术前检查表

在你开始工作之前,确保你的工作空间已经准备好了。

•清除机械臂周围的所有障碍物

•检查电源是否稳定,指示灯是否正常

•确保良好的照明,以便观察位置

•测试夹持器动作(如果配备)

•确认地面稳定,避免震动

•测试教学按钮功能

环境设置

步骤1:安装系统工具

Bash

步骤2:安装CAN工具和配置

Bash

步骤3:克隆并安装PIPER SDK

Bash

步骤4:克隆项目存储库

Bash

记录你的第一个轨迹

记录工作流程

第一步:充电

•接通PIPER臂的电源

•将USB-to-CAN模块连接到您的计算机

第二步:启动录音程序

Bash

第三步:进入教学模式

短按教学按钮

•手臂进入教学模式(关节可以自由移动)

第四步:记录动作

•准备好后在终端按回车键

•手动引导手臂通过你想要的轨迹

•该程序实时记录位置变化

第五步:退出教学

•再次短按教学按钮退出教学模式

•录音自动停止

记录最佳实践

运动规划:

•从一个安全、容易接近的初始位置开始

•避免靠近关节极限的位置

•规划平坦的路径,不要突然改变方向

•考虑运动约束和奇异位置

速度控制:

•保持适度的移动速度以获得一致的数据质量

•在关键位置减速以获得更好的精度

•避免突然加速或减速

•在最后记录之前测试你的轨迹速度

数据质量提示:

•在无振动的稳定条件下记录

•使用平稳、刻意的动作

•包括流程步骤的自然停顿

•目标是10-30秒的记录(根据需要调整record_time参数)

技术深度:记录实现

配置参数

Python

它是如何工作的

位置获取:系统使用get_pos()函数连续读取关节状态和夹持器位置(如果附加)。数据只记录时,手臂的位置变化,大大减少文件大小,同时保持准确性。

时间戳处理:记录位置之间的时间间隔以0.1ms的精度计算。Time () - last_time, 4)。这种平衡提供了机器人控制精度,而不需要过多的存储开销。

数据格式(CSV):每行包含:[time_interval, joint1, joint2, joint3, joint4, joint5, joint6, gripper_opening]

例子:

完整记录代码

Python

回放你的轨迹

重播工作流

第一步:退出教学模式

•短按教学键退出教学模式

•重要提示:系统将自动执行复位操作,将关节2、3和5带到安全位置(零点)。

第二步:启动重播程序

Bash

第三步:执行重放

•出现提示时按Enter键

•手臂会回放记录的轨迹

•监控控制台输出以获得实时反馈

重播的配置

Python

双级调速

该系统提供两个互补的速度控制:

•硬件级(move_spd_rate_ctrl):控制机械臂的物理移动速度(10-100%)。确保安全性和机械可靠性。

•软件级(play_speed):缩放轨迹点之间的时间间隔。不需要重新记录轨迹。

例子:

•play_speed = 0.5:以半速回放(非常适合演示)

•play_speed = 2.0:以双倍速度回放(用于制作周期)

•play_speed = 1.0:以原始录制速度重放

技术深潜:重放实现

安全停止机构

当第一次退出教学模式时,执行一个关键的安全顺序:

Python

为什么是这三个关节?

•关节2(肩部):控制上臂俯仰和整体稳定性

•关节3(肘部):控制前臂角度和末端执行器位置

•关节5(手腕):控制末端方向和夹持器方向

安全角度范围:防止重力坠落、机械碰撞,保证足够的操作空间。

Arm Enable命令功能

Python

完整的重放代码

Python

故障排除指南

问题1:“No Piper Class”错误

错误消息:ModuleNotFoundError:没有名为‘Piper’的模块

原因:SDK版本不正确

解决方案:

Bash

问题2:手臂在回放过程中不会移动

症状:终端显示“模式切换失败”或“手臂无响应”

原因:程序执行过程中按下教学键

解决方案:

•检查教学按钮指示灯是否熄灭

•如果开启,短按教学键退出教学模式

•重新运行回放程序

问题3:连接失败

症状:“CAN连接错误”或“未找到设备”

原因:usb -CAN模块连接异常或检测到多个CAN模块

解决方案:

•确保只连接了一个USB-to-CAN模块

•重新启动CAN接口:

Bash

•如果需要,检查USB权限

高级用法

记录多个轨迹

使用不同的参数集创建单独的录音会话:

Python

生产自动化

对于连续生产周期:

Python

性能优化

减少文件大小和处理时间:

Python

代码存储库

导航到:piper/recordAndPlayTraj/查看所有脚本

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭