基于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 ...
随机推荐
- Vue前端项目的搭建流程
1. 安装Vue和Nodejs 2. 创建项目 vue create eduonline-web
- Markdown(3)Typora快捷键
Typora(3)快捷键 一.快捷键列表 操作内容 快捷键 助记词 1. 标题 Ctrl + 数字 1-6 2. 段落 Ctrl + 数字 0 3. 粗体 Ctrl + B (B) Bold 4. 斜 ...
- Kubernetes-6.Service
docker version:20.10.2 kubernetes version:1.20.1 本文概述Kubernetes Service的基本原理和使用. 服务 Service是将运行在一组Po ...
- Python爬虫学习笔记(四)
Request: Test1(基本属性:POST): 代码1: import requests # 发送POST请求 data = { } response = requests.post(url, ...
- 剑指 Offer 57. 和为s的两个数字 + 二分法 + 双指针
剑指 Offer 57. 和为s的两个数字 Offer_57 题目详情 使用二分法 package com.walegarrett.offer; /** * @Author WaleGarrett * ...
- FreeBSD 的xfce 终端动态标题不显示问题解决了:
tcsh配置,home目录创建.tcshrc, 写入以下配置 alias h history 25 alias j jobs -l alias la ls -aF alias lf ls -FA al ...
- PTE 准备之 Repeat sentence
Repeat sentence After listening to a sentence ,repeat the sentence 3-9 seconds 15 seconds Strategies ...
- 2019 GDUT Rating Contest III : Problem A. Out of Sorts
题面: 传送门 A. Out of Sorts Input file: standard input Output file: standard output Time limit: 1 second M ...
- go语言实现数组去重
import ( "fmt" ) func main() { a := []int{2, 1, 2, 5, 6, 3, 4, 5, 2, 3, 9} z := Rm_duplica ...
- 现代c++模板元编程:遍历tuple
tuple是c++11新增的数据结构,通过tuple我们可以方便地把各种不同类型的数据组合在一起.有了这样的数据结构我们就可以轻松模拟多值返回等技巧了. tuple和其他的容器不同,标准库没有提供适用 ...