花了大概三个月时间,上手了四旋翼,今天做一个零散的总结: 1.开源飞控 想要得到大飞机的平台资源没那么容易,所以只能从小飞机下手。麻雀虽小五脏俱全,进而能把想要验证的事情做出来。 起初摆在眼前的选择基本就是两个:开源飞控Ardupilot,或者大疆。如果检索哈工大等院校关于四旋翼的学术论文,基本集中在这两个平台。 然而至今都没真正着手研究大疆的东西,只是了解了一些关于大疆SDK的新闻:不同
1 参考资料[1] PID控制(一)参数调节规律 PID参数整定--Z-N方法_人工智能_ 2 基于响应曲线法的PID整定 (1)基本原理 (2)仿真实例 控制对象 断开反馈通道,给一个阶跃输入信号; 近似可以得到 . 计算参数可得: 调节效果不太好,需要进一步优化KI 3 基于Ziegler-Nichols的频域响应PID整定 (1)基本原理 Z-N法频域整定方法是基
前言 今天我们来聊聊轨迹插值,在机器人的运动规划和控制领域,参考轨迹的生成是一个历史悠久的问题,已经发展出了一系列的方法。今天我们就来聊一聊轨迹插值领域中最常见的轨迹插值方法:多项式插值。 说明:本文约5000字,全部看懂需要一定的时间,建议先收藏。本文所涉及的代码全部开源,提供Matlab和Python两个版本,仓库地址详见文末。 首先,我们定义一下问题: 如下图所示,给定一些离散的数据点,我
1 搭建Simulink框图 图1 PID控制系统框图 2 输出结果 图2 调节参数使响应达到最优状态 3 参数功能[1] 将需要控制的物理量带到目标附近。 可以“预见”这个物理量的变化趋势。 可以消除因为散热、阻力等各种因素造成的静态误差控制量: (1)比例(proportional)P 就让偏差(目标减去当前)与调节装置的“调节力度”,建立一个一次函数的关系,就可以实现最基本
file: Graph.h brief:这个Graph类是用来画格子地图的,这个类可以生成地图起点终点和障碍物坐标 author:AIplusX version:beta_v0.0 date:2021_11_17 update:2021_11_17 warning:记得在类的析构函数里面delete掉堆内申请的内存 remarks:用户参数结构体里的map地图数组
file:A_star.cpp brief:基于父节点搜索邻域格点 author:AIplusX param[in|out] 输入:父节点内存的地址 | 输出:无 return:无 exception:无 note:首先根据数组索引父节点周围的格点,然后根据算法逻辑进行格点属性(G,F值)的更新 remarks:注意堆中内存的利用,如果申请的内存代表的坐标已经有
笔者比较懒,就直接采用图片的形式将公众号《混沌无形》中的文章以图片的形式搬运过来了,喜欢的读者可以关注“混沌无形”,阅读原文(原文提供PDF下载链接) 原文链接:https://mp.weixin.qq.com/s/SsPNOgXcTsHiSb2ZtnZ4hw 喜欢的话,请关注公众号《混沌无形》哦! 原文链接:https://mp.weixin.qq.com/s/SsPNOgXcTsHiSb2
file: A_star.h brief:A_star类用法的注意事项 author:AIplusX version:beta_v0.0 date:2021_11_15 update:2021_11_15 warning:offset_x和offset_y数组的大小有2种形式,大小分别是4和8,分别对应宏定义的曼哈顿距离和欧几里得距离,因为曼哈顿距离只走4个格子,而欧
0.前言 平滑技术作为事后或准实时数据处理的一种方法,可以在一定程度上提高数据处理的精度,在测绘领域获得了广泛的应用。平滑技术总的来说分为三类:固定区间平滑(Fixed—Interval Smoot—hing)、固定点平滑(Fixed—Point SmoOthing) 和 固定滞后平滑(Fixed—Lag Smoothing)。其中在数据后处理中应用最为广泛的方法就是固定区间平滑,其原理图如下图所
结果展示 这里对于图形化界面进行一个简单的介绍: 绿色:已搜索(待遍历)节点;浅灰色:搜索过程中的最小F数值点;红色:起点;绿色:终点;黄色:最终的生成路径;黑色:障碍物(不可走坐标); A_star类 源码如下所示: class A_star { public: A_star() {}; ~A_star(); void Astar_alg
Lyapunov稳定性理论我就先跳过了。有需要用到的时候,我会简单提一下。未来需要再读很多文献才能开始着手写nonlinear system。设计系列的文章我会先从SISO开始讲起,然后再往MIMO方面推广。这里先不涉及鲁棒控制和较多的最优控制的叙述,最优控制部分应该主要只讲LQR控制。LQG和EKF部分应该会在后面的文章中解释。离散控制的部分我会之后写离散的时候补充到后面,时变也暂时不考虑写进来
写在前面 障碍物在算法环境中是不可缺少的,可以看成是算法的约束条件。那么如何生成不重复的随机障碍点呢?接下来我就主要介绍这个办法,以及如何利用C++将坐标点数据在不同功能函数之间高效率传递。 结果展示 绿色:已搜索(待遍历)节点;浅灰色:搜索过程中的最小F数值点;红色:起点;绿色:终点;黄色:最终的生成路径;黑色:障碍物(不可走坐标); 随机障碍物 我的思路是将地图上所有的坐标点都塞进一个vec
写在前面 A*算法之所以有可变性与其启发函数有密不可分的关系,启发函数可以决定算法在搜索的时候的搜索方式,那么今天就来比较一下不同启发函数(搜索方式)对于算法表现的影响。 绿色:待搜索节点;浅灰色:搜索过程中的最小Fn数值点;红色:起点;绿色:终点;黄色:最终的生成路径;黑色:障碍物(不可走坐标); 下面在做算法演示的时候我还是保留了一个障碍物,也是为了保证算法运行的完整性。 对比 首先以曼哈顿距
什么是运动控制? 运动控制就是通过机械传动装置对运动部件的位置、速度进行实时的控制管理,使运动部件按照预期的轨迹和规定的运动参数(如速度、加速度参数等)完成相应的动作。 运动控制系统的典型构成 1. 开环系统(电机:步进电机;驱动器:脉冲分配,电流放大) 2. 半闭环系统(电机:直流伺服电机、交流伺服电机;驱动器:电流放大,位置反馈控制) 3. 半闭环系统(直流伺服电机、交流伺
我是跳过了正逆运动学的内容,可以参考1。 机器人手臂的运动规划是一个很宽泛的领域,包含有寻多子问题。比如,人们可能会关注机器人可以执行的最佳轨迹,以在最短时间内从某个开始姿态到某个最终姿态,这受制于致动器工作和关节运动范围的限制。另一种变形是根据驱动器的机械特性对手臂运动进行规划,比如提重物最省力的运动规划。常见的问题是机器人的各个关节从一个初始位置运动到目标位置过程中的避障问题。要执行的
本文主要基于以下参考: [1] John T. Betts. Survey of Numerical Methods for Trajectory Optimization. [2] Anil V. Rao. A Survey of Numerical Methods For Optimal Control. [3] John T. Betts. Practical Methods for Op
简介 本篇主要说明Simulink模型的搭建、MPC控制器的S-function的编写 1、Carsim设置 新建一个空白的Simulink模型,或复制Carsim自带的Simulink模型,存放在如下路径C:\Users\Public\Documents\CarSim2016.1_Data\Extensions\Simulink) 单击下图中的红圈按钮 如下图所示,将新建好的Simul
上一篇中简单介绍了关于Kalman Decomposition的一些简单数学知识。这一篇将会把状态空间的完全分解的思路大致讲完。线性系统的一个基本性质就是其状态空间可以分解为四个子空间,将来这种decomposition也可以试着推广到nonlinear control systems。 我们在这里只回顾LTI系统的状态空间分解。至于LTV系统和线性离散系统在这里就不展开了,若是有研究需要可自行查
A key concept in motion planning is configuration space, or C-space for short. Every point in the C-space C corresponds to a unique configuration q of the robot, and every configuration of the robot c
写在前面 哈哈哈,好久没更新啦,最近事情很多,所以这个A*算法的实现项目就拖了很久了。然后这两天我在停更的时候也想了很多关于之后博客的内容形式,我想以专栏的形式进行博客更新,每个项目都是一个独立的专栏,这样不但方便事后回溯,而且也方便总结。 关于专栏内容我也有了新的想法,因为我这两天也看了很多我之前写的代码,发现根本看不懂了,所以我就想着从现在开始给我的代码都写技术文档,然后附在相应算法介绍的后面
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信