上个学期做了一个BLDC的FOC驱动后,我便开始了基于此类电机驱动的机器人项目尝试。之前想做的是串联机械臂,奈何找不到合适的电机并且串联机械臂十分需要减速机,使得项目对于我来说(经济方面)很艰难,恰巧又在Youtube上看到很多做并联机器人的视频,就算没有减速机也能做到不错的效果,于是便开始了Parallel Scara Robot的设计及实现

一、首先是机械机构的设计

我设计成了双臂在基盘上面的机构,同时为了保证末端执行器能有3个方向的操作空间,将左右两臂的高度区分开,同时高臂的杆长应该比低臂要长。如图1-1:

图 1-1 模型及实物图 

上图中,两个电机分别固定于铝板下方,电机轴连着短臂,每个连杆间使用圆锥滚子轴承连接,后来实践发现,这样的结构是存在很大问题的。

二、然后是软件工具的设计

当然在设计机械模型前,我自己用Qt写了个操作空间的模拟UI界面(Github.com),并且基于先前的伺服驱动上位机(Github.com)另外开发了一个适配该并联机器人的上位机(Github.com),后者可以使用一个测试demo通过CAN协议控制下位机(parallel scara)做周期动作,并在上位机中实时显示电机转轴的位置速度和加速度,有了这个工具,我就可以很方便的查看电机的响应特性,通过正逆运动学还可以方便的看到末端执行器的二维位置和速度,如图2-1:

图 2-1 操作空间模拟

三、然后就是正运动学和逆运动学及动力学

由于该机械机构简单,为一个2自由度的并联机器人,可以通过几何的方法很快的得到解析解,由于并联机构的动力学较为复杂,我这里并没有使用。

四、关于控制方法和轨迹规划方法

接上篇FOC驱动的随笔,电机驱动使用pid三环控制,从内到外分别为电流环,速度环,位置环,这些参数的调整很大程度上会决定机械臂最终的表现性能,比例参数调大则会使得系统响应速度的上限提高,静差下降,但会带来一定的震荡,需要配合微分参数调整,同时由于我的第一版(虽然焊了好几次,但目前可能由于两层上下板结构导致信号线过长以至于EMC设计的不好,姑且叫第一版)目前存在干扰问题,过大的比例参数导致电流偏大,使得单片机死机,所以目前的机械臂响应速度受到限制,具体的响应曲线如图4-1:

图 4-1 左右图对应不同的参数,可以看到右图曲线更加平稳

在轨迹规划上我分别测试了两种方案,一是三次样条插值,效果如上图4-1所示,另一个是梯形速度控制,后者由于控制的是速度,难免存在由于速度控制有迟滞导致位置不准的情况,就算到最后使用位置控制也会存在较为明显的震荡发生。

五、实验视频

由于硬件的限制,这里只放出一般速度的实验视频:

链接:https://pan.baidu.com/s/1KrlsFwp_10tySqM4BH5dtw 提取码:umu6

基于FOC伺服电机驱动的Parallel Scara Robot的设计及实现的更多相关文章

  1. 小梅哥FPGA数字逻辑设计教程——基于线性序列机的TLC5620型DAC驱动设计

    基于线性序列机的TLC5620型DAC驱动设计 目录 TLC5620型DAC芯片概述:    2 TLC5620型DAC芯片引脚说明:    2 TLC5620型DAC芯片详细介绍:    3 TLC ...

  2. 基于Qt的P2P局域网聊天及文件传送软件设计

    基于Qt的P2P局域网聊天及文件传送软件设计 zouxy09@qq.com http://blog.csdn.net/zouxy09         这是我的<通信网络>的课程设计作业,之 ...

  3. 基于Hadoop2.2.0版本号分布式云盘的设计与实现

    基于Hadoop2.2.0版本号分布式云盘的设计与实现 一.前言 在学习了hadoop2.2一个月以来,我重点是在学习hadoop2.2的HDFS.即是hadoop的分布式系统,看了非常久的源代码看的 ...

  4. 基于Hadoop开发网络云盘系统客户端界面设计初稿

    基于Hadoop开发网络云盘系统客户端界面设计初稿 前言: 本文是<基于Hadoop开发网络云盘系统架构设计方案>的第二篇,针对界面原型原本考虑有两个方案:1.类windows模式,文件夹 ...

  5. 基于ASP.NET的高校辅导员工作管理系统的设计与实现--论文随笔(四)

    一.基本信息 标题:基于ASP.NET的高校辅导员工作管理系统的设计与实现 时间:2017 出版源:南通理工学院 关键词:ASP.NET; SQL Server; 高校; 管理系统; 辅导员; 二.研 ...

  6. 20155338课程设计个人报告——基于ARM实验箱的Android交友软件的设计与实现

    课程设计个人报告--基于ARM实验箱的Android交友软件的设计与实现 个人贡献 实验环境的搭建 代码调试 在电脑上成功运行 研究程序代码撰写小组报告 一.实验环境 1.Eclipse软件开发环境: ...

  7. 基于ZigBee和STM32的智能家居控制系统的设计与实现(三)

    基于ZigBee和STM32的智能家居控制系统的设计与实现(三) 自从前两篇博客介绍了智能家居系统的基本实现机理后,收到了好多朋友的来信,和我讨论了好多的这方面的知识,在此很高兴,虽然自己做的这个所谓 ...

  8. 软工之词频统计器及基于sketch在大数据下的词频统计设计

    目录 摘要 算法关键 红黑树 稳定排序 代码框架 .h文件: .cpp文件 频率统计器的实现 接口设计与实现 接口设计 核心功能词频统计器流程 效果 单元测试 性能分析 性能分析图 问题发现 解决方案 ...

  9. 基于Flume的美团日志收集系统 架构和设计 改进和优化

    3种解决办法 https://tech.meituan.com/mt-log-system-arch.html 基于Flume的美团日志收集系统(一)架构和设计 - https://tech.meit ...

随机推荐

  1. Slenium详解

    Slenium介绍 Selenium 是一个 Web 应用的自动化框架. 通过它,我们可以写出自动化程序,像人一样在浏览器里操作web界面. 比如点击界面按钮,在文本框中输入文字 等操作. 而且还能从 ...

  2. mysql内一些可以延时注入的查询语句

        一.sleep() 配合其他函数进行使用将十分方便,如下所示: 拆分讲解: select substr(database(),1,1) ; 截取当前数据库的第一位,转换为ascii码值: se ...

  3. Java 在PPT中添加文本水印的简易方法(单一/平铺水印)

    [前言] 在PPT幻灯片中,可通过添加形状的方式,来实现类似水印的效果,可添加单一文本水印效果,即在幻灯片中心位置水印以单个文本字样显示,但通过一定方法也可以添加多行(平铺)文本水印效果,即在幻灯片中 ...

  4. weex参考文章

    1官网:https://weex.apache.org/zh/guide/introduction.html 2.weexui   https://alibaba.github.io/weex-ui/ ...

  5. POJ1562_Oil Deposits(JAVA语言)

    思路:bfs.水题,标记下计数就完了. Oil Deposits Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 22928 ...

  6. vue文本滚动组件

    看了好多网上的文本组件,发现好多都有这样那样的问题:特别是滚动的时候失真的感觉,今天整合了文本滚动的方式用CSS的 animation写出一套组件:VUE项目直接用.感觉有用的朋友关注下   效果图, ...

  7. ES核心概念和原理

    ES:1:倒排索引 基于Document 关键词索引实现 . 根据关键词做索引 相关度 a. 数据结构 i. 包含关键词的Document List ii. 关键词在每个doc中出现的次数 词频 TF ...

  8. Go 中的 gRPC 入门详解

    目录 Go GRPC 入门 1,安装包 2,gRPC 服务端 3,gRPC 客户端 4,编译运行 5,其它 GRPC Protobuf buffer 字段类型 字段规则 Protobuf gRPC 四 ...

  9. docker部署nodejs项目应用

    之前笔者弄了一套nestjs项目放在自己服务器上,并用pm2管理进程. 现在要把pm2停止,尝试一下用docker容器,那么首先要安装docker 一.安装docker 由于笔者服务器的系统是cent ...

  10. Shell prompt(PS1) 与 Carriage Return(CR) 的关系?-- Shell十三问<第二问>

    Shell prompt(PS1) 与 Carriage Return(CR) 的关系?-- Shell十三问<第二问> 当你成功登录进一个文字界面之后,大部份情形下,你会在荧幕上看到一个 ...