![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
协作机器人控制算法
文章平均质量分 82
主要介绍协作机器人控制算法,包括运动学和动力学建模,示教学习算法,力柔顺控制算法的阻抗控制等。
雪花飞龙
2014年入学哈尔滨工业大学,2018年毕业,专业机械设计制造及自动化,研究方向机械设计;2018年9月入学哈尔滨工业大学(深圳),专业机械电子工程,研究方向协作机器人。
展开
-
基本PID原理介绍及代码实现
基本PID原理介绍及代码实现PID算法基本原理模拟信号PID控制数字PID控制采用simulink仿真连续型PID离散PID控制图采用C++实现PID功能PID是自动化领域最常用的控制算法,经过多年的发展,拥有多种变种PID算法,如增量PID、积分分离PID、抗饱和PID、低通滤波PID等,变种PID都是为了解决常用PID存在的一些缺点,是PID的控制性能更好。本文不详细介绍所有的PID,而是以基本PID为例,介绍PID的原理及代码实现。PID算法基本原理模拟信号PID控制如下图所示,PID控制就是原创 2021-01-04 11:04:57 · 3961 阅读 · 1 评论 -
Python写机器人上位机
Python写机器人上位机python界面设计插件Tkinterpyqt5pyqt5使用教程Qt Designer使用教程ROS通讯机制实现界面与下位机通讯python界面设计插件Python写GUI的插件比较多,常用的有Tkinter、pyqt5,本将使用pyqt5写机器人的上位机。Tkinterpyqt5pyqt5是非常优秀的工具,可以快速的开发出机器人的上位机,其与Qt Desig...原创 2020-05-05 17:06:14 · 7025 阅读 · 6 评论 -
机械臂力控----积分自适应导纳控制
机械臂力控----积分自适应导纳控制原理讲解源代码该控制算法为我在传统导纳和自适应导纳的基础上改进的算法,其优点是解决了传统导纳稳态误差问题,克服了自适应导纳离散非线性的题,同时该算法通过参数的选取实现不变代码的前提下,实现导纳控制,自适应导纳控制。原理讲解源代码#!/usr/bin/env python# -*-coding:utf-8-*-#本文档用于阻抗基本函数#程序员:陈永*#版权:哈尔滨工业大学#日期:初稿:2019.11.21import numpy as npfrom m原创 2020-12-20 11:20:09 · 4985 阅读 · 7 评论 -
机械臂规划----三次样条曲线
机械臂规划----三次样条曲线原理讲解源代码三次样条曲线将稀疏点变成稠密点,是常用的一种规划方法。原理讲解源代码#!/usr/bin/env python#-*-coding:utf-8-*-#本文档用于三次样条曲线规划#程序员:陈永*#版权:哈尔滨工业大学#日期:2019.11.26import numpy as np#***三次样条曲线***##三弯构造法求取三次样条曲线参数Mdef spline_param(t,f,v0,vn): ''' 本函数用于求取三次样条曲线参数原创 2020-12-20 10:59:40 · 1211 阅读 · 1 评论 -
机械臂规划----五次多项式
机械臂规划----五次多项式原理讲解源代码规划中,常用到三次、五次多项式式,本文将介绍五次多项式规划。原理讲解源代码注:这是我早期写的代码,区分单变量和多变量,最好的办法是将多变量和单变量整合为统一函数,对参数判断进行区分。#!/usr/bin/env python#-*-coding:utf-8-*-#本文档用于五次多项式规划#程序员:陈永*#版权:哈尔滨工业大学#日期:2019.11.26import numpy as np#5次多项式插值求取求取一段时间的离散数值点,单变量d原创 2020-12-20 10:52:23 · 2558 阅读 · 3 评论 -
机械臂正逆运动学-----SRS型机械臂解析解
机械臂正逆运动学-----SRS型机械臂解析解臂形角参数化原理讲解源代码机械臂解析解相对于数值解,具有求解速度快和精度高的有点,本文采用臂型角参数化求解SRS型机械臂的解析解,其优点是可以控制机械臂的零空间运动动。臂形角参数化原理讲解源代码#!/usr/bin/env python#-*-coding:utf-8-*-#本文档用于求7自由度SRS型机械臂运动学相关函数#程序员:陈永*#版权:哈尔滨工业大学#日期:2019.9.20import numpy as npimport num原创 2020-12-20 10:41:29 · 3586 阅读 · 7 评论 -
机械臂正逆运动学-----数值解
机械臂正逆运动学-----数值解建立DH坐标系求正运动学单关节齐次传递矩阵正运动学:返回齐次矩阵正运动学:返回欧拉角向量求雅可比矩阵求机械臂逆运动学合成通用运动学类机械臂的运动学包括正运动学和逆运动学,其雅可比矩阵代表速度级的正逆运动学,机械臂的逆运动学数值解采用雅可比矩阵在求取速度级的逆运动学,然后采用迭代法求取位置级逆运动学。建立DH坐标系源代码:#DH参数DH0_armc = np.array([[0, -pi/2, 0, 0.248], [0, pi/2, 0, 0 ],原创 2020-12-20 10:24:34 · 8790 阅读 · 8 评论 -
A*算法详解(讲的一级棒 )
概述 虽然掌握了 A* 算法的人认为它容易,但是对于初学者来说, A* 算法还是很复杂的。 搜索区域(The Search Area) 我们假设某人要从 A 点移动到 B 点,但是这两点之间被一堵墙隔开。如图 1 ,绿色是 A ,红色是 B ,中间蓝色是墙。 图 1 你应该注意到了,我们把要搜寻的区域划分成了正方形的格子。这是寻路的第一步,简化搜索区域,就像我们这里做的一样。这个特殊的方法把我们的搜索区域简化为了 2 维数组。数组的每一项代表一个格子,它的状态就是可走 (walkalbe) 和转载 2020-10-08 21:32:54 · 2071 阅读 · 0 评论 -
机器人建模----运动学模型及代码实现
机器人建模----机械臂运动学模型及代码实现经典DH参数法建模建立DH坐标系建立正运动学建立雅克比矩阵逆运动学UR逆运动学解析解螺旋理论POE法建模建立螺旋坐标系建立正运动学建立雅克比矩阵代码实现正运动学雅克比矩阵逆运动学UR逆运动学解析解机械臂的运动学模型,正运动学指已知机械臂关节位置、速度、加速度求机械臂末端工具位置、速度、加速度,反之称为逆运动学,其中正运动学相对容易,逆运动学求解比较困难。本文以6自由度机械臂UR为例做介绍,因7自由度机械臂与我毕业论文有重叠,故不再此处介绍,避免查重问题。下文将介原创 2020-12-20 19:55:12 · 10610 阅读 · 6 评论 -
数字滤波器概念及设计
数字滤波器概念及设计数字滤波器分类滤波器相关函数数字滤波器(digital filter)是一个离散时间系统,通常按照预定的算法,将输入的离散时间信号或数字信号转化为所要求的离散时间或数值信号,相对于模拟滤波器而言,数字滤波器具有精度高、可靠性高、灵活性好、可程序控制调试的优点。数字滤波器分类滤波器可以分为经典滤波器和现代滤波器两类经典滤波器:经典滤波器(classical filter),其原理是假定期望信号和噪声各占不同频段,滤波后去除噪声频段的信号,保留期望频段的信号。按频率分类:(1原创 2020-10-05 19:35:48 · 3762 阅读 · 0 评论 -
FIR数字滤波器
FIR数字滤波器FIR设计方法常见滤波器平均滤波器平滑滤波器限幅滤波器中值滤波器FIR数字滤波器代码实现在另一篇文章卡尔曼滤波原理介绍及算法实现介绍了卡尔曼滤波器的设计和代码实现,但是滤波后,可以看出,由于状态转移方程不准确,最后把系统响应特性的成分也滤除了,无法应用于导纳控制。本文将介绍有限冲激响应数字滤波器(finite impulse response)的设计及代码实现,FIR主要优点和特点如下:(1)FIR数字滤波器可以设计成具有严格线性相位特性的,同时又可以具有所需要的的幅度特性;(2)由原创 2020-10-05 11:31:21 · 8452 阅读 · 0 评论 -
机器人控制算法----模糊控制
机器人控制算法----模糊控制模糊控制原理导纳控制学习参数模糊控制代码实现最近有一点空闲时间,想学学机器人控制算法和代码实现,前期重点介绍控制理论公式及Python实现算法,后期会逐渐加入C++实现算法的代码。文章将从三个角度展开写,第一个模块介绍算法原理,第二个模块介绍机器人控制实际案例,第三个模块介绍算法代码实现。模糊控制原理导纳控制学习参数模糊控制代码实现...原创 2020-10-04 22:09:01 · 1774 阅读 · 3 评论 -
卡尔曼滤波原理介绍及算法实现
卡尔曼滤波原理介绍及算法实现基础概念及理论六维力传感器滤波案例算法代码实现本文将参照教科书的介绍,然后结合机械臂末端六维力传感数据滤波为例,详细介绍其公式推导和代码实现。基础概念及理论六维力传感器滤波案例算法代码实现...原创 2020-10-03 21:44:55 · 8447 阅读 · 5 评论 -
利用Python scipy.signal.filtfilt() 实现信号滤波
在使用Python进行信号处理过程中,利用 scipy.signal.filtfilt()可以快速帮助实现信号的滤波。1.函数的介绍(1).滤波函数scipy.signal.filtfilt(b, a, x, axis=-1, padtype='odd', padlen=None, method='pad', irlen=None)输入参数:b: 滤波器的分子系数向量a: 滤波器的分母系数向量x: 要过滤的数据数组。(array型)axis: 指定要过滤的数据数组x的轴padtype: 必转载 2020-09-09 19:07:50 · 4280 阅读 · 1 评论 -
机器人关节角qq评估关节角速度qv---高增益观测器
机器人关节角qq评估关节角速度qv---高增益观测器算法Python代码在机器人控制过程中,我们经常会用到关节角速度qv,甚至用到关节角加速度qa,但是机械臂往往只能采集关节角度,所以需要一种评估方法,能获得角速度和角加速度,采用差分是最简单的一种方法,但是关节角含有噪声,往往会使评估速度发散,本文采用介绍一种高增益观测器来评估角速度。算法1 高增益观测器方程2 高增益观测器改进方程,为消除固有尖峰现象,做如下改进3 采用双曲线性变换,获取离散方程Python代码毕业后上传!...原创 2020-06-29 16:59:25 · 1313 阅读 · 2 评论 -
卡尔曼滤波的原理(Python实现)
我们假设有一辆运动的汽车,要跟踪汽车的位置 p 和速度 v,这两个变量称为状态变量,我们使用状态变量矩阵 来表示小车在 t 时刻的状态,那么在经过 Δt 的时间之后,当前时刻的位置和速度分别为: &nbs转载 2020-06-29 16:38:55 · 8438 阅读 · 5 评论 -
关节伺服控制模式----轮廓位置模式Profile Position
关节伺服控制模式----轮廓位置模式Profile Position轮廓位置模式简介运动到一个点:set-point目标点变更无缓存目标点变更:single set-point有缓存目标点变更:set of set-point关节伺服控制,轮廓位置模式是最常用的模式,用于从一个点运动到另一个点(point to point),其也是控制模式中比较复杂的模式。该模式包含了两个部分,轨迹规划器和控制器,规划器一般采用梯形规划,控制器采用PI或PID控制器。轮廓位置模式简介轮廓位置模式,实际输入的是目标位置原创 2020-06-07 16:25:22 · 7168 阅读 · 2 评论 -
机器人姿态描述
机器人姿态描述旋转矩阵旋转矩阵R旋转矩阵推导在机器人领域,一般会建立多个坐标系,不同坐标系中的变量采用齐次矩阵变换进行相互转换,在研究姿态时,做了一个假设:两个坐标系原点重合。姿态描述描述方法较多,最常用的是旋转矩阵R,此外还有方向余弦、四元数、欧拉角、欧拉轴角等。旋转矩阵引出旋转矩阵R:当两个坐标系原点重合,空间中的一点P在两个坐标中的坐标值之间的关系。旋转矩阵R首先,直接给出旋转矩阵R,然后再去证明和推导式中,R表示旋转矩阵坐标B到坐标A的旋转矩阵,其中n、o、a表示坐标系B的坐标轴在A原创 2020-05-28 22:23:25 · 3124 阅读 · 0 评论