上个学期做了一个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. c++中深层复制(浅层复制运行错误)成功运行-----sample

    下面随笔给出c++中深层复制(浅层复制运行错误)成功运行------sample. 浅层复制与深层复制 浅层复制 实现对象间数据元素的一一对应复制. 深层复制 当被复制的对象数据成员是指针类型时,不是 ...

  2. LG gram 双系统全指南

    LG gram 双系统全指南 为了和同学联机玩帝国时代2,以及为了下学期的编程课,五年没用过 Windows 的我决定装 Ubuntu20.04 LTS / WIndows 10 双系统了. 我的 L ...

  3. ant-design-vue中table自定义列

    1. 使用背景 在项目中使用ant-vue的a-table控件过程中,需要显示序号列或者在列中显示图片,超链,按钮等UI信息.经过查询文档customCell和customRender可以实现以上需求 ...

  4. mysql查询缓存简单使用

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBM ...

  5. Java流程控制:增强for循环,break&continue,打印99乘法表

    增强for循环:java5引入了一种主要用于数组或集合的增强for循环for(声明语句:表达式){//代码句子} 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配.其作用域限定在循环语 ...

  6. Xshell(远程)连接不上linux服务器(防火墙介绍)

    一.原因 远程(ssh)连接不上linux服务器的大多数原因都是因为本地服务器的防火墙策略导致的,因此我们想ssh远程能够连接上服务器,有两种方法: 修改防火墙策略 关闭防火墙 二.防火墙服务介绍 1 ...

  7. 【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 ...

  8. 【LiteOS】Liteos移植篇

    目录 前言 链接 参考 笔录草稿 移植(2018) 移植获取 (Cortex-M 内核) 主要文件夹分析 移植过程 1. 拷贝文件 2. 创建工程分组 3. 添加头文件路径 4. 兼容 C99 模式 ...

  9. irace package -- 参数调优神器

    目录 1. irace 是什么 2. 安装 irace 3. irace 的运行机制 4. irace 的配置环境 4.1. parameters 4.2. target algorithm runn ...

  10. PAT (Advanced Level) Practice 1035 Password (20 分) 凌宸1642

    PAT (Advanced Level) Practice 1035 Password (20 分) 凌宸1642 题目描述: To prepare for PAT, the judge someti ...