
机器人控制学习
PriscillaSCU
into the void
展开
-
【机器人】Platformio STM32 arduino配置和测试
1.实验环境我用的板子是Nucleo F302R8,板载STLINKV2,为了测试一下Platformio的arduino框架下编写STM32程序,进行了实验,踩了点坑,特此记录。2.踩坑前期配置非常简单,网上教程很多,就是New一个Project,然后框架选择Arduino即可,等待下载好就可以了。然后改写platformio.ini文件为[env:nucleo_f302r8]platform=ststm32board=nucleo_f302r8board_build....原创 2021-05-11 16:23:09 · 1354 阅读 · 0 评论 -
【电机】使用Simulink建立BLDC反电动势测量的简单模型
1.前言本文是基于Matlab官方的视频进行的,为了防止自己忘记了操作过程,也为了方便后续查询,故记录一下我是怎么建立BLDC反电动势模型的。2.电机模型电机模型为Simscape-Electrical-Permanent Magnet中的BLDC...原创 2021-05-07 20:55:13 · 2599 阅读 · 1 评论 -
【Linux】Win10环境中配置VSCode连接Linux服务器
1.前言最近突发奇想,想玩玩服务器,把我的机器人C++库放到服务器上,就可以在Win10环境下编写了!因为没有硬件设备,所以买了3个月的腾讯云,折腾了我半天,终于在实验室的电脑、个人笔记本上,使用VSCode连接上了服务器,能够在本地使用Linux终端了。2.本地SSH准备我是通过git bash来创建SSH的公钥和私钥,这里也说一下我对公钥、私钥的理解吧,具体原理就不赘述了,建议百度,公钥是配置到远程端,私钥放在本地,然后当我们要登录远程的时候,远程端会将其公钥和我们本地的私钥进行比对,然后才原创 2020-11-04 22:42:39 · 588 阅读 · 0 评论 -
【机器人】谐波减速器和RV减速器的自我理解
1.前言最近闷得慌,项目也做不动,理论知识也学不懂,不知道该干啥了,于是突然奇想去了解了一下减速器的结构和原理,学点真实的东西,老是搞仿真、搞理论人都傻了。因为我不是学机械的,对于一些专业术语可能表述有问题,这篇文章我是想通过我自己的语言简单表达一下谐波减速器和RV减速器的原理。参考资料龚仲华编著.工业机器人从入门到应用[M].北京:机械工业出版社.2016.2.谐波减速器构造及原理谐波减速器的结构非常简单,只有三部分:图自:https://www.bilibili.com/vide原创 2020-09-27 21:13:58 · 9168 阅读 · 0 评论 -
【机器人】简记一下SimScape和SolidWorks导出三维文件操作
1.前言今天帮一位同学将一个.STEP文件导入SimScape中进行仿真,因为自己很久没有导入新的模型了,一直在用旧模型,所以对导入文件的操作有点生疏了,在查了一些资料和碰壁之后想起来了,特此记录一下。2.问题1:SW模板文件无效在用SW打开.STEP装配体文件时,提示:solidworks the default templates are not valid,即模板无效,如果点击continue,则显示为空白,此时需要对template文件路径重新设置一下即可3.SW安装SimSca原创 2020-08-27 19:57:33 · 2978 阅读 · 1 评论 -
【机器人】机械臂入门技术栈分享
机械臂控制入门技术栈分享1.前言 2.机器人控制入门技术栈 2.1.空间描述和变化 2.2.运动学分析 2.3.动力学建模 2.4.控制入门学习 3.进阶部分 3.1.机器人参数辨识 3.2.非线性控制 3.3.现代机器人描述方法:指数坐标 4.总结1.前言今天看到CSDN上有个分享个人技术栈的活动,虽然我不是一个正规的程序员,也不搞前端、后端这些,但我一直在CSDN上通过写博客对我的学习进行总结,于是我突发奇想,不如我也写一下我的个人技术栈,针对机械臂.原创 2020-08-22 11:36:39 · 1766 阅读 · 1 评论 -
【机器人】机械臂控制入门技术栈分享
机械臂控制入门技术栈分享1.前言2.机器人控制入门技术栈2.1.空间描述和变化2.2.运动学分析2.3.动力学建模2.4.控制入门学习3.进阶部分3.1.机器人参数辨识3.2.非线性控制3.3.现代机器人描述方法:指数坐标4.总结1.前言今天看到CSDN上有个分享个人技术栈的活动,虽然我不是一个正规的程序员,也不搞前端、后端这些,但我一直在CSDN上通过写博客对我的学习进行总结,于是我突发奇想,不如我也写一下我的个人技术栈,针对机械臂控制入门的,因为我水平也不高,所以本文内容也许不够饱满,也不够准确,但原创 2020-08-22 11:33:15 · 5398 阅读 · 0 评论 -
【机器人】基于指数积的机械臂正运动学算法
基于指数积的机械臂正运动学算法1.前言2.指数积公式建立过程3.PoE实例1.前言在学习了刚体运动的指数坐标表示和运动旋量后,我又对使用指数积法(PoE)对机械臂进行正运动学建模,相比于DH参数法,感觉PoE还是非常简单直接的,在此对我的学习进行总结,如有错误欢迎指出。2.指数积公式建立过程在使用PoE建立正运动学模型时,我们需要获得以下参数:建立基坐标系(惯性系)和末端坐标系写出初始时刻的末端坐标系相对于惯性系的位姿MMM写出各个关节的运动旋量,即SSS,内含单位角速度和原点线速度,可以参原创 2020-08-22 00:20:32 · 5079 阅读 · 0 评论 -
【机器人】刚体运动的指数坐标表达学习心得与理解
刚体运动的指数坐标表达学习心得与理解1.前言2.运动旋量3.运动旋量的螺旋解释1.前言上一篇文章对旋转的指数坐标表示进行了总结,也就是旋转矩阵和指数坐标之间的关系。今天准备写一下包括旋转和平移内容的刚体运动的指数坐标表达学习心得和对其的理解。如有问题,欢迎留言。2.运动旋量运动旋量也被称为“空间速度”,当然前提都是要有个参考坐标系。对于一个4×44\times44×4的表示{b}\{b\}{b}相对于{s}\{s\}{s}齐次变换矩阵sTb=[R(t)p(t)01]^sT_b=\left[ \原创 2020-08-20 20:55:11 · 2298 阅读 · 2 评论 -
【机器人】转动的指数坐标表示心得理解
转动的指数坐标表示心得理解1.前言2.指数坐标表示旋转矩阵3.原理推导4.矩阵对数、矩阵指数1.前言最近因为项目需求,又学习了一点机器人学的东西,参考书籍为《现代机器人学》,该书采用指数坐标、旋量的方式来对机器人进行描述和运动学、动力学建模,让我对机器人有了更深的理解,也是弥补DH参数建模复杂的缺陷,虽然DH法只用4个参数,而旋量需要更多,但是它骚啊!本文是我学习了转动的指数坐标表示的一个心得体会,如有问题请多多包涵。2.指数坐标表示旋转矩阵指数坐标可以用来表示求解旋转矩阵,其原理非常简单巧妙,需原创 2020-08-19 21:45:08 · 2156 阅读 · 4 评论 -
【机器人】永磁同步电机PMSM电流滞环控制理解
1.前言最近学习了一下永磁同步电动机PMSM,进入了控制方面的学习,首先是对电流滞环控制进行了学习、仿真,记录一下学习心得体会,以及个人的理解。2.控制原理引用一张来自袁雷的《现代永磁同步电机控制原理及Matlab仿真》书中所绘制的滞环电流控制框图滞环控制结构非常简单,只需要从PMSM反馈回转速和三相电流信息即可。目的是变频,实现变速。首先,为了解耦方便,将d轴电流的期望设为0,再将反馈回来的转数和给定转数相比较,通过一个PI控制器(此处应该也可以使用滑模控制器等控制器),将控制器输原创 2020-08-03 16:48:20 · 4890 阅读 · 7 评论 -
【机器人】欧拉角,四元数,我的个人理解
1.前言熬过了毕业设计,难逃提前到导师实验室打工噩运。导师最近又让我去了解一下四旋翼,以后可能会搞四旋翼挂个机械臂的东西……四旋翼建模看的朦朦胧胧的,突然被以前做机械臂时忽略了的刚体旋转给绕昏了,今天似乎懂了一些欧拉角和四元数的东西,特此记录一下,注意,本文仅为我自己的理解,可能会有错误,仅供参考,欢迎留言讨论。2.欧拉角欧拉角的定义网上有很多文章,无非就是分别绕一个三维坐标(多数是固定在刚体上的坐标系)各轴依次旋转,顺序各种排列组合,比如XYZ、ZYZ、ZYX等,这都不是什么重点,重点是,在进原创 2020-06-17 00:19:52 · 5241 阅读 · 0 评论 -
【机器人】基于向量积法的雅可比矩阵求解和应用
1.前言最近在做轨迹规划控制,没错,是控制,导师让新加到毕设上的。搞了一周,今天总算是出来了,这里写一下总结一下雅可比矩阵的求解和控制的思路(控制算法不再赘述,太基础了)。本文以末端关节坐标系为工具坐标系,即工具大小为0,如果有工具大小要求,则直接修改即可,不再赘述2.基于向量积法的雅可比矩阵求解这个方法网上资料、文献已经讲烂了,对于六关节机械臂,其雅可比矩阵的第n列可表示为...原创 2020-04-22 20:15:13 · 3498 阅读 · 0 评论 -
【Matlab】通过m文件控制simulnk模型进行仿真
1.前言为了测试控制算法对系统不同初始状态的收敛情况,我准备通过设置不同的初始状态,使用for循环,循环进行仿真,获取系统收敛情况,因此需要使用m文件来推simulink进行控制和传递参数。2.方法2.1 修改S-Function,增加外部参数我的控制系统是由控制算法S-Function文件和控制模型S-Function文件构成,控制算法中使用了系统的初始状态来进行有限时间控制,...原创 2020-04-13 21:17:47 · 5779 阅读 · 0 评论 -
【机器人】滑模控制器调试心得
1.前言本心得毫无理论依据,只是说调了这么久了,发现这样调效果还不错,仅供参考,更多的只是一个学习记录。2.心得Simulink Solver设置之前使用的solver是固定步长的ode4,速度很慢,且有时候有计算结果迷幻跳跃,今天(2020.03.17)改为变步长的ode23tb,我也不知道为什么,仿真速度快了很多,且结果比较准确。是时候去学一下这些微分方程算法的原理了!控制...原创 2020-03-17 10:53:13 · 7193 阅读 · 9 评论 -
【Matlab】SimMechanics机械臂建模流程
1.前言最近做毕业设计使用了SimMechanics进行机械臂的建模仿真,网上资料也比较少,当然官方的文档才是最香的:https://ww2.mathworks.cn/help/physmod/sm/rigid-bodies-1.html?s_tid=CRUX_lftnav自己摸爬滚打后,终于成功实现了建模并和S-Function写的控制算法一起仿真成功。这里记录一下自己的使用流程。M...原创 2020-03-12 18:20:14 · 5241 阅读 · 14 评论 -
【机器人】变换矩阵理解
搞了一段时间了,对变换矩阵还是有点晕乎乎的,今天理解了一下变换矩阵,写篇博客记录一下。1.相对性表示将2坐标系中的坐标位置转换到1坐标系中,而该矩阵的参数使用的是从1中观察到的2相对与1的变换。如在2坐标系中有个点R(1, 1, 1),2坐标系为1坐标系绕X轴正方向旋转90°得到,则将1中的坐标转换到2中的变换矩阵为该点在1中的坐标则为若要倒推回去,则乘上变换矩阵的逆即可。...原创 2020-03-10 19:10:11 · 2129 阅读 · 0 评论 -
【Adams】Adams机械臂简单仿真
1.导入模型将机械臂的装配体文件用SW导出.x_t文件,然后直接导入到Adams即可2.添加运动副固定副:将两个部件固定到一起转动副:两个部件可以产生相对转动3.添加驱动/力矩旋转驱动:给转动副驱动力,直接控制转动副的转动速度作用力矩(单向):给转动副力矩,让其受力直接转动4.踩坑仿真报错:incompatible redundant constraints p...原创 2020-01-16 16:54:32 · 9405 阅读 · 2 评论 -
【机器人】线性方程最小二乘解法对机械臂DH参数进行标定
1.前言看了一篇文章,觉得里面的DH参数标定法讲的很清晰,便使用Matlab复现了一下,效果还可以,特写此文记录。2.原理2.1.误差最佳值的最小二乘计算有研究结果表明:几乎95%的机器人位置误差都是由机器人内部运动学的不准确描述引起的,所以对DH模型参数进行标定是很有必要的。DH参数物理含义:选自《机器人学、机器视觉与控制-Matlab基础》当DH参数确定后,我们...原创 2019-12-10 20:16:06 · 10127 阅读 · 32 评论 -
【Matlab】简单的滑模控制程序及Simulink仿真
1.前言最近开始了对滑模控制的学习,使用的书籍为刘金琨的《滑膜变结构控制MATLAB仿真》,今天是按照书上的例程做了一个简单的自适应控制系统。2.程序解析此程序中,电机控制系统的动态模型为:,其中,θ为电机的角位置,J为转动惯量,d(t)为干扰且满足,η为干扰上界,为角位置跟踪误差定义跟踪误差函数,也就是滑模面函数s为:,当s=0时,有e和edot都为0,且是按照指数收敛:...原创 2019-11-17 23:30:35 · 43352 阅读 · 26 评论 -
【C++】RPY角度转为四元数程序
1.前言在使用ROS moveit进行自定义轨迹规划时,末端位姿的角度需要使用四元数表达,四元数具有更高的计算效率,而我觉得RPY角度能够更加直观的反应出末端角度信息,故编写了这个小程序,同时也巩固了我对C++类的编程。转换所用算法:https://blog.csdn.net/fantasysolo/article/details/80758319目前测试都是正确的2.代码#...原创 2019-11-08 23:31:33 · 1911 阅读 · 1 评论 -
【ROS】使用C++编写简单moveit终态位姿控制以及position数据可视化
1.前言这几天主要还是在研究用C++编写moveit target pose的例程,中途出现了各种问题,一度怀疑人生,好在现在也算是磕磕碰碰的解决了一点……虽然还是不知道why,不过也是增强了继续学习的信心。困扰最久的问题是经常出现逆运动学解算结果只有平移,没有旋转,首先,target pose的设置存在一定问题,其次,默认的KDL解算插件确实不给力!后来参考古月大神的解算插件配置,改为T...原创 2019-11-07 22:35:32 · 2615 阅读 · 1 评论 -
【Matlab】使用Level 1MS编写PID控制关节的S-Function
我太难了………………干啥啥不行1.PID控制器设计代码如下:function [sys,x0,str,ts,simStateCompliance] = my_pid_ctrl(t,x,u,flag,Kp,Kd)switch flag,case 0,[sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes;case 1,sys...原创 2019-10-31 14:57:20 · 1919 阅读 · 1 评论 -
【Matlab】使用C语言编写简单S-Function
功能描述:实现一个双输入,双输出,使用两个参数,使得输出为:y1 = para1 * u1 + 5y2 = para2 * u2 + 3代码如下:#define S_FUNCTION_NAME test#define S_FUNCTION_LEVEL 2#define INPUT_NUM 2#define OUTPUT_NUM 2#include <stdi...原创 2019-10-29 15:10:47 · 6602 阅读 · 3 评论 -
齐次向量形式下的相对位姿矩阵
1.齐次转换矩阵一个向量(xxx, yyy)可以写成齐次形式P^=(x1,x2,x3)\hat{P}=(x_1, x_2, x_3)P^=(x1,x2,x3) ,其中x=x1/x3,y=x2/x3,x3≠0x=x_1/x_3, y=x_2/x_3,x_3\neq0x=x1/x3,y=x2/x3,x3=0 ,通常为了将二维的点转为齐次向量形式,会增加x3=1x_3 = 1x3...原创 2019-09-24 20:36:07 · 801 阅读 · 0 评论