- 博客(40)
- 问答 (1)
- 收藏
- 关注
原创 电机控制相关资料搜集
一个小白学习电机控制,往往一开始豪情满怀,渐渐步入迷茫;然孜孜以求豁然开朗,终窥得一榆;而后漫漫烟海,衣宽憔悴终不悔。在学习的过程中新手往往会陷入无从下手的窘境,或是学习顺序杂乱,导致战线过长收效甚微,甚至打消了很多人的热情。建议先学习电机和控制相关理论,然后方波控制-有感FOC-无感方波-无感FOC的顺序,由易到难。1、电机和控制相关理论:不用太深入,后续涉及到的知识点可以回过头再去仔细研究。TI/英飞凌/ST等。
2025-01-19 16:35:49
230
原创 七段S型加减速算法原理及其多种形状仿真
七段S型加减速的位置、速度、加速度、加加速度曲线如下图所示。加加速度:加速度:速度:位置:以上是7段S型加减速的最基本公式,在实际应用中还需要考虑到起始和终止速度大于匀速速度的情况。
2024-08-16 21:39:52
1584
1
原创 GD32F427实现类似STM32F4的门控模式
通过这种方式可以让主定时器一直发单脉冲而从定时器也一直可以输出脉冲。这样如果程序出现故障无法进入主定时器的中断可以让从定时器无法输出脉冲,从而可以实现保护作用。我们知道如果程序跑飞,代码无法正常执行而TIMER的PWM还是一直在输出的,这是PWM控制的执行器也还在执行无法正常停止,存在事故风险。利用定时器门控加主定时器单脉冲模式来实现主定时器控制从定时器输出,实现主定时器发一个脉冲从定时器发PWM。如果要让从定时器能一直发脉冲即PWM波,则需要在主定时器中断中一直使能单脉冲模式。,从定时器输出10个脉冲。
2024-05-22 16:58:59
329
原创 小白如何搭建git
现在这个仓库是空的我们可以create a new repository 或者 push an existing repository即可以建立一个新的仓库也可以将已存在的push上来,上面有相关操作代码。版本库又叫仓库repository,可以理解成一个目录,这个目录里的所有文件都可以被Git管理起来。每个文件的修改、删除,git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以还原。可以看到显示了empty表明这是一个空的仓库,这个时候Gitlab文件夹里应该会有一个.git文件。
2024-05-05 17:02:13
2085
1
原创 STM32定时器门控模式+单脉冲模式配置
由定时器框图可知,主定时器通过TRGO输出控制到从定时器,而我们这里是通过输出PWM高低电平的方式来控制从定时器输出脉冲。通过配置可以使得从定时器在主定时器输出高电平时进行脉冲输出,而低电平时不输出脉冲。如上定时器的基本配置就完成了,现在的配置是主定时器发一个脉冲,从定时器可以发个数可调脉冲。从定时器配置为Gated Mode门控模式,触发源选择根据内部触发连接来选择,如下图TIM2作为从定时器TIM4作为主定时器则为ITR3。利用一个主定时器+多个从定时器,主定时器控制从定时器的脉冲发送时机和发送个数。
2024-05-01 09:23:41
1376
3
原创 c++实现队列
这里需要注意的是,由于上一个元素需要利用指针指向下一个元素,所以对象的建立需要用到new来分配堆上内存(同时要注意内存的释放);队列使用类来实现,类中有数据和指针两项,数据为队列中每项的数据,指针为队列的当前元素指向下一个元素;
2022-08-25 09:12:36
2753
原创 倒立摆系统
倒立摆系统是典型的多变量,非线性,自不稳定和强耦合不确定系统。它可以有效反应控制过程中的许多关键问题,是测试各种控制理论的理想模型。以倒立摆为控制对象,研究者们已对各种控制理论进行了验证,主要控制目标一般为稳摆和起摆两种。倒立摆是一个自不稳定系统,为使其保持稳定并且可以承受一定的干扰,需要给系统设计控制器。倒立摆主要有两个方面的用途:第一:作为一个非线性自然不稳定系统,倒立摆系统是进行控制理论教学及开展各种控制实验的理想平台。对倒立摆系统的研究能有效直观地反映控制中的许多典型问题如非线性问题、鲁棒问题、镇定
2022-07-11 22:05:59
4546
原创 (9.1)Dijkstra算法
一、Dijkstra算法特点:Dijkstra算法使用了广度优先搜索解决赋权有向图或者无向图的单源最短路径问题,算法最终得到一个最短路径集。二、Dijkstra算法原理:Dijkstra算法采用的是一种贪心的策略,利用一个集合openlist来保存原点到各个顶点的最短距离和一个closelist集来保存已经找到的最短路径的集合。一开始openlist中只有起始点S,且它的路径权重node_cost为0。将S点放入closelist中,然后将S的相邻节点放入openlist中。A*算法的流程步骤为:①、将起始
2022-07-06 17:30:10
1056
原创 (9.2)A*搜索算法
A*算法是在Dijstra算法上进行改进,知道起点和终点位置Dijstra算法是四面八方全部寻找,而A*算法则可以往一个最优方向寻找,即启发式的搜索,在提高算法效率的同时,保证找到一条最优路径。A*算法的核心在于估价函数的设计上,如下式: 其中:称为耗散函数,为起始节点到节点n的实际代价(距离);称为启发函数,表示节点n到目标节点的估计代价;表示从起始节点经由节点n到目标节点的估计代价。 同Dijstra算法类似,A*算法也维持一个Open表。Open表中节点的优先级是依据的大小排列的,值越小,被搜索到的优
2022-06-21 20:50:19
1635
1
原创 (9)机械臂路径规划
参考学习资料:①:路径规划学习笔记之一—概述 - 古月居②:路径规划五种算法简述及对比 - 知乎机器人的运动规划(motion planning)包括路径规划(path planning)和轨迹规划(trajectory planning)。路径规划就是在给定起点位置、终点位置及规划环境的条件下规划出满足某种约束条件的机器人运动路径,比如最短路径,无碰撞路径等。这里的路径是不含时间变量的机器人位置曲线,如路径被描述为。轨迹规划就是根据作业任务要求计算出满足约束条件的机器人运动轨迹。这里的轨迹是包含时间变量的
2022-06-21 18:02:58
9522
原创 (8.2)利用Newton-Euler公式求解二连杆的动力学方程:
前面的两章已经介绍了基于标准DH和修正DH的Newton-Euler动力学公式,下面通过一个二连杆模型来实际验证一下。 这里假设连杆的质量都集中在连杆的末端,即将其看成是在连杆末端的质点。 由图可知,连杆1的坐标系为x1y1z1,连杆2的坐标系为x2y2z2; 由于认为连杆的质量都集中在末端即看做了一个质点则:另外,连杆末端是自由的没有受力,故: 连杆的底座不旋转,因此: 考虑重力则: 连杆质心在连杆坐标系下的描述为: 由于认为连杆的质量都集中在末端即看做了一个质点则:另外,连杆末端是自由的没有受
2022-06-14 16:30:44
3844
1
原创 (8.1)基于牛顿-欧拉公式的动力学方程
目录1、坐标系的建立:2、为什么要递推:3、前向递推与反向递推:1、速度和加速度的前向递推:1.1、旋转关节的速度传递: 1.2、平移关节的速度传递: 1.3、速度变换到质心:1.4、加速度传递: 1.5、转化为递归形式: 2、力与力矩的方向递推:4、总结:连杆坐标系以及质心坐标系的建立是机器人动力学推导的基础。连杆坐标系的建立方式有标准DH和改进DH两种方式。在前面我们已经说过了只有在质心坐标系下才有欧拉方程的简单形式()。因此,除了连杆坐标系我们还需要关注质心坐标系的建立,以便我们在对特定连杆应用牛顿方
2022-06-10 17:49:12
7057
2
原创 (7.1)标准DH和修正DH雅克比矩阵的差异
在前面的文章(7)中我们介绍了雅克比矩阵,并给出了标准DH(standard DH)参数下的雅克比矩阵的矢量积公式;这篇文章里我们也给出修正DH(modified DH)参数下的雅克比矩阵公式。对于矢量积方法也有称之为构造法的(这篇文章可以参考下:机器人雅可比矩阵的求法_构造法_飘零过客的博客-CSDN博客_机器人雅克比矩阵计算),后置法就是标准DH参数下的,前置法就是修正DH参数下的标准DH参数下的雅克比矩阵公式(后置法):这里是齐次矩阵的第三列的前三行,是第四列的前三行;是齐次矩阵第四列的前三行,即都是
2022-06-10 16:55:57
3156
3
原创 (8)机器人动力学
机器人是一个具有多输入多输出的复杂动力学系统,存在严重的非线性,需要非常系统的方法对机器人进行动力学研究。常用的机器人动力学建模方法有:Lagrange(拉格朗日)动力学方法、Newton-Euler(牛顿-欧拉)动力学方法、Gauss(高斯)动力学方法、Kane(凯恩)动力学方法等。机器人动力学研究的是机器人的运动和作用力之间的关系。机器人的动力学问题包括动力学正问题和动力学逆问题。动力学正问题是对于给定的关节驱动力......
2022-06-09 15:45:30
8978
1
原创 (7)机械臂的速度雅克比矩阵
前面介绍了机器人的逆运动学解法又几何法和代数法得到的都是机器人逆运动学的解析解,但是由于解析解可能不存在,所以需要寻求新的方法。这里介绍速度级的雅克比方法(Jacobian)。雅克比方法求机器人的运动学逆解对于不同类型的机械臂求解过程是相同的,而且不要求机械臂的逆解的解析解存在,通用性较强。然而,它的缺点是计算量大、速度慢。雅克比矩阵是多维形式的导数。如假设有6个函数,每个函数都有6个独立的变量: 在机器人运动学中雅可比矩阵的数学意义是,表示机器人关节速度到机器人操作速度的广义传动比或映射关系。 对于任意机
2022-06-06 10:04:58
12679
1
原创 (6.2)机器人逆运动学解析解的选取
机器人逆运动学求解方法有数值法、解析法和几何法等。相对于数值解法,解析解的计算速度和精度有较大提升。因此,对于实时性要求较高且满足Perper准则(末尾三轴交于一个固定点)的机器人而言解析解是个较好的选择。而机器人逆解的数目不是唯一的。逆解数目由关节数目、连杆参数和关节变量的活动范围所决定。通常,关节变量和非零连杆参数越多,运动学逆解数目就越多。比如前面的UR5机器人就有8组解,但不是所有的逆解都能满足机器人的结构限制,而满足机器人结构限制的逆解中也存在一个最优解。常用的最优解原则是距离最短原则和时间最短原
2022-06-02 16:09:16
4172
2
原创 (2)机械臂Simscape建模:模型导入MATLAB
一、模型导入simulink中:在前面已经得到了导入MATLAB中的.xml文件,下面就将它导入到simulink中,这样在进行机器人运动学算法开发时可以显示化机械臂的运动。在MATLAB命令行窗口中输入如下指令:smimport('Arm6Assembly.xml')命令执行完后会得到一个.slx文件,是一个simulink模型文件:这里需要注意,为了能够让模型能顺利显示需要将.slx文件保存到上一章中生成的模型文件中;如果不是则需要将solid中的路径更改到模型实际所在的路径;
2022-06-01 15:08:08
2997
1
原创 (6)六轴机械臂的运动学正、逆解
下面在前面的ur5机械臂的DH参数基础是对其正逆解进行求解,为了后面能在MATLAB中利用stl文件进行实际显示,这里以标准DH参数为例进行讲解。(修正DH参数在用plot3d函数是显示失败,不知道是不是这个函数只能显示标准dh参数的机械臂模型,有知道的网友可以在评论里告知一下,谢谢。)一、运动学正解:机器人正运动学是在已知各连杆相对位置关系(关节角)的情况下,得到末端执行器的位姿。在标准DH参数下相邻坐标系之间的齐次变换矩阵为:则,正解代码如下:function [T06,P.
2022-06-01 13:50:59
26193
34
原创 (6.1)MATLAB机器人正、逆解中姿态求解的欧拉角的说明
1、欧拉角的类型:例程中MATLAB机器人工具箱中采用的是世界坐标系的欧拉角(先旋转的在右边)。如下:利用机器人工具箱的.teach()函数进行可是化时的欧拉角如下:2、正解算法中的欧拉角:在运动学正解中根据输入的各关节角度得到末端的位姿,这里输出的姿态就是欧拉角即RPY。利用上面的旋转矩阵便可以根据齐次矩阵中的旋转矩阵求解R()P()Y()角。 %% 求末端姿态Rotations about X, Y, Z axes (for a robot gripper).
2022-05-31 20:54:19
4366
3
原创 (4)基于UR5的DH参数建模实例
基于改进的DH参数建模法:1、CAD模型及连杆坐标系的建立:注:这里并没有按照严格意义上的改进DH参数进行建模,否则x1y1z1应该是与x0y0z0重合的。DH参数表如下:MATLAB中验证:clear,clc,close all;%% 建立机器人DH参数,初始状态为竖直状态L1=Link('d',144,'a',0,'alpha',0,'modified');L2=Link('d',0,'a',0,'alpha',pi/2,'offset',pi/2,'modif.
2022-05-28 11:37:46
13974
9
原创 (5)机械臂URDF文件制作
一、sw_urdf_exporter插件:sw_urdf_exporter插件是用来将SolidWorks中的模型文件输出为URDF文件的;下载地址:https://objects.githubusercontent.com/github-production-release-asset-2e65be/138619370/7fd5a700-b481-11e9-9038-73a691f1f0db?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential
2022-05-27 21:58:39
2192
原创 (1)机械臂 Simscape建模:插件安装、模型导出
一、插件下载安装:1、下载Simscape Multibody Link插件:利用Simscape Multibody Link插件,可以将三维模型从Solidworks、Creo等三维建模软件中导出成Matlab可以读取的step和xml格式的文件;插件下载地址:Simscape Multibody - Simscape Multibody Link - MATLAB & Simulink (mathworks.cn)根据相应的Matlab版本下载:2、安装Simscap.
2022-05-26 15:45:04
3542
3
原创 Matlab R2021b安装机器人工具箱(Matlab Toolbox)
1、下载地址:机器人工具箱 - 彼得·科克 (petercorke.com)这里也提供百度网盘下载:链接:https://pan.baidu.com/s/1e36htDLcE_UldYh5qpx4KQ提取码:7kecToolbox始终提供许多功能,这些功能对于经典手臂型机器人的研究和仿真非常有用,例如运动学,动力学和轨迹生成等。该工具箱包含函数和类,用于将 2D 和 3D (SO(2)、SE(2)、SO(3)、SE(3)) 中的方向和姿势表示为矩阵、四元数、扭曲、三重角度和矩阵...
2022-03-15 11:10:48
7506
3
原创 Matlab-Simulink中Interpreted MATLAB Fcn模块说明
1、Interpreted MATLAB Fcn模块作用:Interpreted MATLAB Fcn模块的作用是将一个函数插入simulink中作为一个模块使用;这里函数sin可以用用户自己写的.m文件中的函数名取代;然后默认Collapse 2-D results to 1-D是被勾选了的,这个地方需要注意,如果希望输出的是一个二维的数据则需要取消勾选;如下:这里Interpreted MATLAB Fcn输出的是一个3×2的矩阵,而V是个2×1的矩阵;所以不能将其变为一个一维...
2022-03-15 11:04:15
20507
1
原创 Linux学习3:Ubuntu下文本编辑
ubuntu下文本编辑会是一个常用的操作,Ubuntu有一个自带的文本编辑器,就是Gedit。这里我们要了解的是另外一个编辑器:VI/VIM编辑器。如果需要在终端模式下进行文本编辑或者修改文件就可以用VI/VIM编辑器,Ubuntu自带了VI编辑器,但是它不是很方便(如:不能用键盘上的上下左右键移动光标)。故这里推荐使用VIM编辑器,VIM编辑器是VI编辑器的升级版本,VI/VIM编辑器都是一种基于指令式的编辑器,不需要鼠标也不需要菜单,仅仅使用键盘完成所有的编辑工作。1、安装VIM编辑器
2021-09-18 15:17:37
16318
4
原创 Linux学习2:Ubuntu软件安装
1、Ubuntu Software安装ubuntu software是一个应用商店,这种方式安装软件直接在应用商店里找到软件,然后安装到系统里。安装步骤:在应用商店里找到需要安装的软件,单击,点击install,然后输入用户密码;Ubuntu的默认软件工具从ubuntu 20.04开始成为预提供的Snap应用程序,但是现有Snap版本的计算器,字符和日志将会被恢复到他们的repo版本;如下图,软件安装到了computer(根目录/)下的snap目录中;Snap是一个全
2021-09-18 14:23:45
2230
原创 Linux学习1:常用命令
1、ls-目录信息查看命令:ls为文件浏览命令,格式如下:ls [选项] [路径]ls命令主要用于显示指定目录下的内容,列出指定目录下包含的所有的文件以及子目录,主要选项参数有:-a:显示所有的文件以及子目录,包括以“.”开头的隐藏文件;-l:显示文件的详细信息,比如文件的形态、权限、所有者、大小等信息;-t:将文件按照创建时间排序列出;-A:和-a一样,但是不列出“.”(当前目录)和“..”(父目录);-R:递归列出所有文件,包括子目录中的文件...
2021-09-18 08:52:19
199
原创 2020-12-26
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档报名了一个电机培训,需要交流的可以联系我:liu992429356
2020-12-26 11:43:59
75
转载 2020-12-24
原文出处:韩昊 1 2 3 4 5 6 7 8 9 10 作 者:韩 昊 知 乎:Heinrich 微 博:@花生油工人 知乎专栏:与时间无关的故事 谨以此文献给大连海事大学的吴楠老师,柳晓鸣老师,王新年老师以及张晶泊老师。 转载的同学请保留上面这句话,谢谢。如果还能保留文章来源就更感激不尽了。 我保证这篇文章和你以前看过...
2020-12-24 19:26:47
296
1
原创 矢量控制:
1、矢量控制和svpwm 之间的关联:http://ishare.iask.sina.com.cn/f/3arm0CZhH.html
2019-11-28 12:07:38
285
1
转载 Qt this指针的学习:
this指针只能在一个类的成员函数中调用,它表示当前对象的地址。1、this只能在成员函数中使用,全局函数,静态函数都不能使用this。实际上,成员函数的参数列表中有个默认参数为T *const register this。如:class A{public:int func(int p){}},其中,func的原型在编译器看来应该是: int func(A* const register th...
2019-11-22 15:09:00
842
转载 Qt的信号槽机制
参考资料:https://www.cnblogs.com/wanghui1234/p/8964968.htmlC++_之Qt的信号和槽的详解回到顶部1、概述 信号槽是 Qt 框架引以为豪的机制之一。所谓信号槽,实际就是观察者模式。当某个事件发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号(signal)。这种发出是没有目的的,类似广播。如果有对象对这个信号感兴趣,它...
2019-11-18 21:00:08
202
原创 Qt中编程的标准化注意事项:
1、程序中所有要显示到界面上的字符串都要使用tr()函数括起来;tr("Love is like the wind.I can't see it.But I can fell it.")2、函数名的第一个 字母小写3、函数代码要小于100行4、私有变量以下划线开头首字母小写...
2019-11-18 19:15:00
224
原创 QAxObject中的dynamicCall()与querySubObject()函数详解:
1、dynamicCall():QVariant QAxBase::dynamicCall(const char *function, const QVariant &var1 = QVariant(), const QVariant &var2 = QVariant(), const QVariant &var3 = QVariant(), const QVariant ...
2019-11-18 17:10:19
12011
2
转载 Qt学习笔记:编程规范性问题
良好的编程规范可以提高程序的 可读性和可维护性(参考资料:https://blog.csdn.net/caoshangpa/article/details/61635525)1、所有的头文件都应该使用#define防止被多重包含:#ifndef MAINWINDOW_H#define MAINWINDOW_H--------------#endif // MAINWINDOW_H...
2019-11-15 21:01:42
239
原创 Qt学习笔记:好的资料汇总
1、图标 添加需要注意利用图标制作软件将.jpg/.png等格式的图片转化为透明ICO图标的形式,否则编译时会出现错误(:-1: error: [debug/helloworld_resource_res.o] Error 1)2、推荐一个QT 学习空间:https://www.cnblogs.com/findumars/p/5423147.html3、tablewidget中 表格的单元...
2019-11-15 10:08:47
189
原创 STM32F407串口学习
一、基础知识:串行通信的通信方式:同步通信:带时钟同步信号的信息传输-SPI、IIC通信接口 异步通信:不带时钟同步信号的信息传输-UART(通用异步收发器)、单总线STM32F4的串行通信接口UART-通用异步收发器 USART-通用同步异步收发器常见串行通信接口 通信标准 引脚说明 通信方式 通信方...
2019-08-07 21:03:46
3016
空空如也
stm32链式队列问题
2021-01-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人