动作捕捉系统Nokov获取刚体的姿态信息 前言:对于动捕系统软件Seeker的基本使用以及获取单个Marker的位置操作已经比较熟悉了,对于机械臂而言,接下来就是获取它的姿态信息,经过昨天下午的操作后,现对于建立多个Marker点获取刚体姿态的方法有了一定的认识和理解,特此记录说明。 Seeker软件可以得到刚体的姿态,常用于无人机,机械臂等应用场景。 创建刚体的说明:创建刚体S
首先,对控制系统和控制理论的概念做简单的介绍。 学术点讲,控制系统就是能改变系统未来状态的一种装置,它独立于控制对象本身,是我们人为设计出来给控制对象以控制信号的装置;而控制理论就是帮助我们合理设计这种装置的方法和策略。 大白话讲就是,有一个系统(system),给它一个输入(Input),它就会有一个输出(output),现在我们想它按我们想的来输出。此时,控制系统就是产生输入的东西,控
导语:这一周的工作先是完成了度量系统Nokov的标定,然后对机械臂自身的编码器得到的坐标值与动作捕捉系统Nokov测得的坐标值进行了比较,来观察二者之间的误差。在这个过程中我对Nokov软件Seeker的使用有了基本掌握,最重要的是让我对机械臂有了更深的理解,特此在这记录。 一. 度量系统Nokov的标定 在进行坐标值比较之前,我已经对度量系统进行了一次标定,标定效果很好。真实值4
机器人轨迹跟踪一般有两种方式,一是基于PID,二是基于MPC模型预测控制方法。本文主要介绍了PID控制,这里我只采用了航向角的控制,对速度没有控制,因为,我认为,小车只要能到达目标点即可,复杂的我后续再分析分析以及还有在无人驾驶中比较有名的·MPC控制。 因为是在Matlab做的实验验证, 首先你需要一个建立一个两轮差速模型,详情见我上一次的机器人差速模型博客:https://blog.
提到卡尔曼,不得不说一个故事: 片绿油油的草地上有一条曲折的小径,通向一棵大树.一个要求被提出:从起点沿着小径走到树下. “很简单.” A说,于是他丝毫不差地沿着小径走到了树下. 现在,难度被增加了:蒙上眼。 “也不难,我当过特种兵。” B说,于是他歪歪扭扭地走到了树旁。“唉,好久不练,生疏了。” (只凭自己的预测能力) “
第一个被抛出的主题是:为什么要控制? 我个人的理解是:控制源于人与周围环境的交互,当我们期望所接触事物或对象按照我们的想象的样子演化时,就需要控制。控制的过程即将个人意志赋予控制对象的过程。 人类文明发展的过程,对应着人类控制能力越来越强的过程,也对应着我们对自然这个“系统”认识越来越深入的过程。 下面开始讲述视频中的内容:Why learn control system at all? 首先,
目录 0 前面的话 目录 1 先说噪声 2 噪声对于系统的影响 3 对于PID控制器的影响 4 加入滤波器 4.1 传递函数 4.2 串联微分的等效形式反馈积分 5 C语言实现 6 参考 1 先说噪声 在电子设备等电路系统中,噪声是不被系统需要的电信号;电子设备产生的噪声会由于多种不同的影响而产生很大的差异。 在通信系统中,噪声是一个错误或不希望出现的随机干扰从而作用于有效的信号。 2
1 什么是积分饱和 2 实际的例子 3 负面影响 4 如何防止积分饱和 5 PID算法(抗饱和) 6 参考 1 什么是积分饱和 积分饱和(Integral windup或integrator windup)是指PID控制器或是其他有积分器的控制器中可能会发生的一种现象。 这种现象往往发生在误差有大幅变化(例如大幅增加),积分器因为误差的大幅增加有很大的累计量,因为积分器的输出满足下式; 离散
1 什么是增量式PID? 2 举个例子 2.1 位置式PID 2.2 增量式PID 3 伪算法 4 C语言实现 5 总结 unclemac:简易PID算法的快速扫盲(超详细+过程推导+C语言程序) 在之前一篇博客中简单介绍了PID算法的基本原理和位置式算法的实现过程,由于部分推导过程已经在上一篇文章做过介绍,所以推导过程本文不再赘述,重点将对离散增量式PID的算法进行实现。 1 什么是增量
网上关于PID算法的文章很多,但是感觉有必要自己再进行一次总结,抽丝剥茧地重新认识了一下PID; 1 前言 2 开环控制 3 闭环控制 4 PID 4.1 系统架构 4.2 理论基础 4.3 离散化 4.4 伪算法 5 C++实现 6 总结 1 前言 控制系统通常根据有没有反馈会分为开环系统和闭环系统,在闭环系统的控制中,PID算法非常强大,其三个部分分别为; P:比例环节; I:积分环
文章目录 1. 问题建模 2. QP问题 3. 格式转换 构建 P P P、 q q q矩阵 等式约束 4. 使用OSQP求解问题 1. 问题建模 假设已知一条参考轨迹为 r 0 , r 1 , . . . , r i , . . . , r n r_0,r_1,...,r_i,...,r_n r0,r1,...,ri,...,rn,这条轨迹可以任意生成,因为其
本篇承接上一篇继续介绍轨迹优化问题中的动力学模型问题 在前面的介绍中,我们做轨迹优化的时候,动力学模型,状态观测等都是确定性的 然而很多情况并不是确定的,我们处理的方法有两种: 一种是传统的方法:对不确定的动力学做系统辨识或者自适应控制,对有误差的状态观测做状态估计,或者扰动观测器等 另一种就是建立概率模型,如马尔科夫决策过程(MDP),MDP建立起来的体系被称为强化学习(Reinforceme
上一篇主要讨论了(线性)模型预测控制问题,为什么只讨论线性?因为非线性太复杂,而我们知道机器人动力学模型就是一个高耦合的复杂非线性模型,求解起来非常困难,所以不得不讨论简化模型 1. 简化模型的想法 模型可以非常简单,也可以非常复杂,这是一对矛盾: (1)复杂模型有利于捕捉系统的动态特性 (2)简化模型有利于计算实时性 我们先看看简化模型的发展 从轮式(连续)到多轱辘(离散) 从多轴轱辘到
我们再次回到最初的问题: 我们有一个目标函数,我们基于动力学约束,状态和输入的约束,去求解优化问题 01-04介绍了从解析法和数值法两个思路的求解方法,06-09介绍了目标函数与约束的处理方法,还有一个问题我们没有讨论:动力学模型 从系统的角度分析:动力学表达了系统演化的动态规律 从统计意义来看:模型分为随机性模型和确定性模型 随机性模型有马尔可夫过程(MDP),高斯马尔可夫过程(GMM)等,而
写在前面 这篇文章是rrt算法系列的最后一篇文章啦,那么下面一个系列呢,我计划做c++相关语法的学习博客。 为什么要做这么一个c++系列的文章呢?因为做自动驾驶的路径规划的话,实现是必不可少的,那么为了保证算法实现的时间不会太长,高效率的c++肯定是一个不错的选项。 rrt算法效果 file:rrt.cpp brief:rrt算法实现的主体 author:AIplusX param:成员变量 r
上一章节我们介绍了机械臂的底层驱动相关内容,这一节开始,我们来简单介绍肌电的处理。 1.肌电的基础人体生理知识 当我们进行运动的时候,不同肌肉之间的神经元会产生放电现象,通过置于人体皮肤的电极可以捕捉到这种运动过程中的神经元放电,这就叫做表面肌电(SEMG)采集。 人的一条胳膊中有很多块肌肉,不同肌肉负责的运动部位可以参考这篇博客;通过采集不同肌肉对应部位的肌电(EMG)
file: rrt.h brief:这个rrt.h文件是rrt算法实现类的声明 author:AIplusX version:beta_v0.0 date:2021_12_02 update:2021_12_02 warning:记得在类的析构函数里面delete掉堆内申请的内存 remarks:因为在做这个类的时候没有考虑虚函数的问题,所以析构函数没有做成virtual的,所以在做子类的时候要
file: rrt_graph.h brief:这个rrt_graph.h文件是为了绘制rrt的地图,主要内容是包括任意障碍物的绘制方法的功能实现 author:AIplusX version:beta_v0.0 date:2021_12_01 update:2021_12_01 warning:记得在类的析构函数里面delete掉堆内申请的内存 remarks:无 todo:可以做为之后rrt
上一篇中我们引入了输出调节(Output Regulation)的概念,并且介绍了采用静态反馈(static feedback)构成了output regulator实现闭环系统的稳定,以及输出 的稳定(到原点)。如果对本文中一些写法感到奇怪,请重新回头看看上一篇。 15. SISO反馈控制器设计 (6):输出调节-静态反馈 Output Regulation 这篇文章我们要继续上一次的讨论,
写在前面 为了保证rrt算法能在各种障碍物的情况下运行,因为做的是在非结构化的环境下路径规划,而且还是静态规划,因此要尽可能保证基本的rrt算法实现没有问题。 算法实现结果 黑色:障碍物(可由鼠标绘制);绿色线段:探索路径;绿色方块:终点红色方块:起点棕色线段:最终路径点划线:路径探索下边界绿色圆点:代表算法开始运行 障碍物绘制 首先看一下任意障碍物绘制的效果以及算法效果: 要查看不同障碍
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信