基于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 ...
随机推荐
- hive中更改表impala中不能生效
hive中的更新或者新建表impala 不能实时更新 Impala是基于Hive的大数据实时分析查询引擎,直接使用Hive的元数据库Metadata,意味着impala元数据都存储在Hive的meta ...
- Java RPC 框架 Solon 1.3.7 发布,增强Cloud接口能力范围
Solon 是一个微型的Java RPC开发框架.项目从2018年启动以来,参考过大量前人作品:历时两年,4000多次的commit:内核保持0.1m的身材,超高的跑分,良好的使用体验.支持:RPC. ...
- 区分函数防抖&函数节流
1. 概念区分 函数防抖:触发事件后,在n秒内函数只能执行一次,如果触发事件后在n秒内又触发了事件,则会重新计算函数延执行时间. 简单说: 频繁触发, 但只在特定的时间内才执行一次代码,如果特定时间内 ...
- Pyqt5——带图标的表格(Model/View)
需求:表格中第一列内容为学生学号,为了突出学号的表示,在第一列的学号旁增加学号图标. 实现:(1)使用Qt的model-view模式生成表格视图. (2)重写代理(QAbstractItemDeleg ...
- CCF(棋局评估)博弈论+对抗搜索+DFS
201803-4 棋局评估 这题主要使用对抗搜索,也就是每一步寻找可以下棋的位置,通过在这一步下棋看最后会取的什么样的分数. #include<iostream> #include< ...
- HDOJ-6685(暴力+思维)
Rikka With Coin HDOJ-6685 主要的思想如下: 首先10元的硬币最多只会用一个,如果用了两个,直接替换成一个10元.一个20元一定不亏. 20元的硬币最多只会用三个,如果用了四个 ...
- 【Azure 微服务】Service Fabric, 使用ARM Template方式来更新SF集群的证书(Renew SF Certificate)
问题描述 因证书过期导致Service Fabric集群挂掉(升级无法完成,节点不可用)一文中,描述了因为证书过期而导致了SF集群不可用,并且通过命令dd-AzServiceFabricCluster ...
- 基于 vagrant搭建移动端的开发环境
# 后端开发环境Homestead启动 Homestead 之前,确保 VirtualBox .Vagrant.Git 软件己安装. ## 安装 laravel/homesteadvagrant bo ...
- 文件查询 select name,age where age>22
# 员工信息表: 完善代码,背下来给代码加注释column_dic = {'id': 0, 'name': 1, 'age': 2, 'phone': 3, 'job': 4} # 将文件每一列的名字 ...
- LNMP配置——Nginx配置 —— 配置静态文件不记录日志并添加过期时间
一.配置 #vi /usr/local/nginx/conf/vhost/test.com.conf 写入; server { listen 80; server_name test.com test ...