行业资讯

Dummy-Rob半岛体育机械ot

作者:小编 点击: 发布时间:2024-06-15 17:10:01

  半岛体育机械与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)

  该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。

  为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置

  初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置

  使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议配置并使用私人令牌替代登录密码进行克隆、推送等操作

  由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件

  Dummy-Robot: Super compact smart robotic-arm

  这是视频中原版机械臂的完整设计方案,该方案成本和制作难度都比较高,因此想复现的同学建议再等等我后面会发布的Dummy青春版,该版本会有如下改进:

  整机重新设计结构,改用3D打印作为制造方案(原版为铝CNC),大幅降造成本

  采用我自己设计的小型摆线针轮减速器替代原版的谐波减速器,大幅降低零件成本

  添加我自己设计的PC端上位机和手机端APP(争取把用户初始化设置引导加进去)

  改进原版电机驱动器的走线方式,原版电源走线采用焊接的形式,不便于安装和拆卸,后面的青春版会使用4p接插件(电源+CAN总线A;

  步进电机+Harmonic的谐波减速模组,其中后者成本较高(我买的二手大概是600元一个),因此为了能让大家尽量复现本项目,我后期会添加一个自制摆线D打印的低成本方案。目前摆线减速器已经设计好了正在验证,预期会使用PC(或者亚克力)切割结合3D打印制作,精度有所下降但是功能都保持不变,整机硬件成本希望控制在2000元以内。

  其中前两者和Peak我都开源了,步进驱动设计的时候参考了:这个项目,这是我一个朋友开源的闭环驱动,基于STM32。该驱动分为开源版和闭源版,闭源版基于分立MOSFET性能极其强劲且功能很完善,开源版用的ADC+斩波驱动芯片,具备基础功能,不带CAN协议。

  我重新设计了驱动器的PCB电路(本项目分别用到20、42步进,57的文件只是供大家扩展使用),添加了CAN总线的硬件支持,也对原版核心代码进行了完全重构,

  使用C++11重构了代码,引入很多高级语言特性,同时底层部分用C混编,不影响代码性能

  对硬件依赖完全解耦了,可以方便以后移植到其他平台的MCU半岛体育机械,去除了冗余代码代码也结构化逻辑更加清晰

  完全兼容STM32-HAL库,可以使用STM32CubeMX直接生成配置代码

  Ctrl-Step驱动的使用方式比较简单,下载好固件后,第一次上电电机会进行编码器校准,如果成功则下次上电后按下按键1会进入闭环模式,通过CAN或者串口发送指令即可控制电机,关于指令的说明见源代码

  同时按住两个按键上电,会自动进行编码器校准,如果首次校准失败可以通过这个方式重新校准

  PID参数、CAN节点ID、各种运动参数等等,可以自己研究代码。当然另一种方式是大家也可以自行使用GRBL类的驱动器改装用来驱动本机械臂,这样方案的问题在于,grbl固件耦合性比较强(毕竟不是针对机械臂而是CNC类应用设计的)不便于扩展,另外脉冲形式的控制方式使得走线极其不优雅(每一个关节都要单独拉

  而我用一体闭环的方式则可以以串联的形式把所有电机连起来即可,走CAN总线使得整体走线只需要四根线(电源正负两根,CAN信号线两根),此外总线模型使得电机可以工作在力矩、

  、位置、轨迹模式下,而脉冲模式只能工作在位置和轨迹模式,无法进行复杂控制。Peak的话我之前已经软硬件都开源了,可以去SubModules文件夹里面看那边的README说明。

  关于核心固件这个机械臂的固件核心就是运动学姿态解算,

  ,现在写死的很多参数会设计成可配置的,方便大家用本项目学习完后迁移到自己设计的机械臂中。REF的固件使用说明:

  机械臂的构型需要满足Pieper判据(机器人的三个相邻关节轴交于一点或三轴线平行),才能得出解析解,所以大家可以根据Dummy的结构进行修改,然后自己替换DH参数即可以移植我的代码。

  功耗编码器+电池;而我这个项目中双编码器影响结构紧凑设计,所以用了更巧妙的方式:利用电机驱动的电流环控制上电后进行低力矩的无零点定向运动,碰到机械臂限位之后确认粗零点(无限位开关归零),然后根据单圈绝对值编码器的位置精调零点。这个方式的零点是没有误差的,而且几乎不受加工精度影响,因为在12度(360/30)内都是绝对值编码器的有效精度范围。Peak的固件说明:

  视频中的软件仿真基于RoboDK,我在视频中开发了连接Dummy的Driver(驱动部分官方document有介绍的,原版是基于TCP网络接口,我修改成了串口并兼容dummy的协议)。不过由于这个软件是收费的,因此我也基于Unity3D开发了自己的上位机,已经发布在仓库。

  首先运动学部分是已经实现了的,正逆解都是传统DH参数计算的,正解(关节角求末端位姿)是唯一解比较好办,逆解(末端位姿求关节角)的线个),我这里使用的算法是

  然后关节角到电机驱动器输入信号的转换这一块,我使用的是梯形加减速曲线进行速度位置规划。举个例子在MoveJ指令中,当收到一个关节角运动指令,控制器会进行运动角度差分计算半岛体育机械,得到6个运动差分角度,然后取6个差分角中最大的角θ,同时根据设置的JointSpeed参数计算运动θ角需要的时间(考虑上加减速),把这一时间作为其余5个电机的运动参数计算各自的加减速度&最高速度,然后6个电机根据计算的参数同步运动,就可以保证其同步性和流畅性了。另外六个电机使用CAN总线连接,每个电机接受两个ID号的信息(自己的ID、0号ID),0号ID作为信息广播和同步用。电机接收到运动指令后将信息储存在影子寄存器中,待收到广播的同步信号后开始运动,这样能进一步保证电机同步性。

  指令模式Dummy固件支持三种不同的指令模式(指令可以由USB、串口、CAN接收),不同模式的特性有所区别,见下表:

  人:观察开源项目核心人员在开源项目中的影响力,并通过第三方视角考察用户和开发者对开源项目的评价。

  软件:从开源项目对外输出的制品评估其价值最终落脚点半岛体育机械。也是开源评估最“古老”的主流方向之一“开源软件” 的具体表现。

  基于“开源生态”与“协作、人、软件”的维度,找到与该目标直接或间接相关的可量化指标,对开源项目健康与生态进行量化评估,最终形成开源评估指数。


相关标签:
热门产品