基于FOC伺服电机驱动的Parallel Scara Robot的设计及实现
上个学期做了一个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的设计及实现的更多相关文章
- 小梅哥FPGA数字逻辑设计教程——基于线性序列机的TLC5620型DAC驱动设计
基于线性序列机的TLC5620型DAC驱动设计 目录 TLC5620型DAC芯片概述: 2 TLC5620型DAC芯片引脚说明: 2 TLC5620型DAC芯片详细介绍: 3 TLC ...
- 基于Qt的P2P局域网聊天及文件传送软件设计
基于Qt的P2P局域网聊天及文件传送软件设计 zouxy09@qq.com http://blog.csdn.net/zouxy09 这是我的<通信网络>的课程设计作业,之 ...
- 基于Hadoop2.2.0版本号分布式云盘的设计与实现
基于Hadoop2.2.0版本号分布式云盘的设计与实现 一.前言 在学习了hadoop2.2一个月以来,我重点是在学习hadoop2.2的HDFS.即是hadoop的分布式系统,看了非常久的源代码看的 ...
- 基于Hadoop开发网络云盘系统客户端界面设计初稿
基于Hadoop开发网络云盘系统客户端界面设计初稿 前言: 本文是<基于Hadoop开发网络云盘系统架构设计方案>的第二篇,针对界面原型原本考虑有两个方案:1.类windows模式,文件夹 ...
- 基于ASP.NET的高校辅导员工作管理系统的设计与实现--论文随笔(四)
一.基本信息 标题:基于ASP.NET的高校辅导员工作管理系统的设计与实现 时间:2017 出版源:南通理工学院 关键词:ASP.NET; SQL Server; 高校; 管理系统; 辅导员; 二.研 ...
- 20155338课程设计个人报告——基于ARM实验箱的Android交友软件的设计与实现
课程设计个人报告--基于ARM实验箱的Android交友软件的设计与实现 个人贡献 实验环境的搭建 代码调试 在电脑上成功运行 研究程序代码撰写小组报告 一.实验环境 1.Eclipse软件开发环境: ...
- 基于ZigBee和STM32的智能家居控制系统的设计与实现(三)
基于ZigBee和STM32的智能家居控制系统的设计与实现(三) 自从前两篇博客介绍了智能家居系统的基本实现机理后,收到了好多朋友的来信,和我讨论了好多的这方面的知识,在此很高兴,虽然自己做的这个所谓 ...
- 软工之词频统计器及基于sketch在大数据下的词频统计设计
目录 摘要 算法关键 红黑树 稳定排序 代码框架 .h文件: .cpp文件 频率统计器的实现 接口设计与实现 接口设计 核心功能词频统计器流程 效果 单元测试 性能分析 性能分析图 问题发现 解决方案 ...
- 基于Flume的美团日志收集系统 架构和设计 改进和优化
3种解决办法 https://tech.meituan.com/mt-log-system-arch.html 基于Flume的美团日志收集系统(一)架构和设计 - https://tech.meit ...
随机推荐
- c++中深层复制(浅层复制运行错误)成功运行-----sample
下面随笔给出c++中深层复制(浅层复制运行错误)成功运行------sample. 浅层复制与深层复制 浅层复制 实现对象间数据元素的一一对应复制. 深层复制 当被复制的对象数据成员是指针类型时,不是 ...
- LG gram 双系统全指南
LG gram 双系统全指南 为了和同学联机玩帝国时代2,以及为了下学期的编程课,五年没用过 Windows 的我决定装 Ubuntu20.04 LTS / WIndows 10 双系统了. 我的 L ...
- ant-design-vue中table自定义列
1. 使用背景 在项目中使用ant-vue的a-table控件过程中,需要显示序号列或者在列中显示图片,超链,按钮等UI信息.经过查询文档customCell和customRender可以实现以上需求 ...
- mysql查询缓存简单使用
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBM ...
- Java流程控制:增强for循环,break&continue,打印99乘法表
增强for循环:java5引入了一种主要用于数组或集合的增强for循环for(声明语句:表达式){//代码句子} 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配.其作用域限定在循环语 ...
- Xshell(远程)连接不上linux服务器(防火墙介绍)
一.原因 远程(ssh)连接不上linux服务器的大多数原因都是因为本地服务器的防火墙策略导致的,因此我们想ssh远程能够连接上服务器,有两种方法: 修改防火墙策略 关闭防火墙 二.防火墙服务介绍 1 ...
- 【linux】驱动-1-环境准备
目录 前言 1. 开发环境搭建 1.1 环境准备 1.1.1 安装工具 1.1.2 编译内核 1.1.2.1 获取内核源码 1.1.2.2 编译内核 1.2 内核驱动模块编译和加载 1.2.1 hel ...
- 【LiteOS】Liteos移植篇
目录 前言 链接 参考 笔录草稿 移植(2018) 移植获取 (Cortex-M 内核) 主要文件夹分析 移植过程 1. 拷贝文件 2. 创建工程分组 3. 添加头文件路径 4. 兼容 C99 模式 ...
- irace package -- 参数调优神器
目录 1. irace 是什么 2. 安装 irace 3. irace 的运行机制 4. irace 的配置环境 4.1. parameters 4.2. target algorithm runn ...
- PAT (Advanced Level) Practice 1035 Password (20 分) 凌宸1642
PAT (Advanced Level) Practice 1035 Password (20 分) 凌宸1642 题目描述: To prepare for PAT, the judge someti ...