- 博客(31)
- 收藏
- 关注
原创 windows下使用FCL(Flexible-collision-library)
FCL做为一款开源的碰撞检测库,支持多种基础的几何体,及支持C++和python,在windows和linux平台均可以使用。是一款计算高效的碰撞检测工具。在机械臂规划控制框架moveit中做为基础的碰撞检测算法。FCL库(The Flexible Collision Library)主要的功能有:1、碰撞检测:检测两个模型是否重叠,以及(可选)所有重叠的三角形。2、距离计算:计算一对模型之间的最小距离,即最近的一对点之间的距离。3、公差验证:确定两个模型是否比公差距离更近或更远。
2023-11-06 16:28:03
2940
8
原创 LQR笔记
在现代控制理论中,LQR(Linear Quadratic Regulator)通过引入最优化的思想,结合系统的状态方程,得出为让系统状态达到期望的位置。
2023-07-05 21:56:12
405
原创 微信小程序和ros2进行通信
;ROS2做为一款优秀的机器人操作系统软件,其搭载了丰富的机器人平台,是目前机器人领域应用最多的软件。微信做为一个大型社交软件,应用非常广泛,其中的小程序直接通过扫二维码进行加载,使用起来非常方便快捷。为了让手机端能够对机器人进行操作,于是通过微信小程序与ROS2通信的方式将两者联系在一起。
2022-12-30 23:34:30
1809
2
原创 webots导入solidworks模型
webots导入solidworks模型准备环境在solidworks下编辑urdf模型手动修改urdf模型使用python将urdf模型转为proto模型 webots作为一款开源的仿真软件,在机器人仿真中有较多的应用,通常机器人模型以.proto格式的文件保存,无法直接打开solidworks文件。需要先将准备环境SolidWorks转URDF的插件,叫做sw_urdf_exporter,下载地址;python3程序包urdf2webots;在solidworks下编辑urdf模型手动
2022-05-27 00:21:28
3067
原创 直观地理解车辆的运动控制
直观地理解车辆的运动控制 运动控制的目的是使车辆沿着一条给定的路线运行,尽可能保证车辆和路线的横向偏移量尽可能小,且运行速度越快越好。以下将以差速轮和阿克曼结构的车通俗地介绍如何对车辆进行控制。 车辆的运动控制可以理解成踩油门和打方向盘的过程,车辆的线速度与油门的大小相关,车辆的角速度与方向盘的角度和线速度有关。 正常开车的情况下,当前方道路比较平滑时且车辆处于路的正中央,就可以考虑加大油门了,车辆的速度也就越来越快(当然实际情况要复杂得多,路面情况、车辆状态、其它车辆等都会影响油门的大小)。车
2021-11-28 17:37:47
860
原创 多机器人协同运行
多机器人协同运行 在实际环境中,通常会有多个移动机器人完成一个或多个任务。为了实现这个目标,可以使用多机路径规划加上一个多机器人协同运行控制器。适用条件多机器人在有向或无向图下进行路径规划;多机器人全局路径规划,如CBS;操作过程注意事项...
2021-11-04 09:01:34
4451
1
原创 protobuf和socket通信简单实例
protobuf和socket通信简单实例 protobuf是 Google 公司内部的混合语言数据标准,可以用来定义通信的协议,由于其有序列化和反序列化的操作,减小了存储或通信的数据量,从而达到高效运行的目的。 此实例在ubuntu18.04下正常运行,其它操作系统没有经过测试,无法保证正常运行。protobuf安装 protobuf的下载地址,如图1所示的安装包,安装可参考官网官网安装说明。 图1 下载完毕解压后,在主文件夹
2021-07-29 21:29:47
1773
原创 梯度下降法平滑路径
梯度下降法平滑路径 在实际过程中,为了使机器人能够在环境中流畅地运行,就需要一条平滑的路径,而普通的路径搜索算法Dijkstra、A*、rrt等无法满足要求,在此基础上,可以通过一些优化算法平滑路径,如凸优化的方法,但凸优化的方法构造起来比较麻烦,而且操作性较差(如对路径曲率进行约束),对于太长、障碍物比较多的环境,计算的实时性比较差。本文将使用梯度下降的方法将一条曲折的初始路径优化成平滑的无碰撞路径。整体思路 算法的整体思路如下图所示。初始路径规划可以使用A*算法,将路径离散成等距的离散点是为优
2021-04-26 08:32:44
4553
2
原创 梯度法求解优化问题
梯度法求解优化问题通常优化问题非常复杂,难以求解出解析解,但在实际应用过程中, 解能满足一定精度,满足工程要求即可。优化方程的形式和求解方法众多,本文将以梯度法求解静态无约束目标函数,如式(1)所示,并通过一些实例更好地理解这个方法。J=ϕ[x(tf),tf]+∫t0tfL[x(t),u(t),t]dtx˙(t)=f[x(t),u(t),t]x(t0)=x0(1)\begin{array}{l}J= \phi [x(t_f), t_f] + \int _{t_0} ^ {t_f} L[x(t),
2021-03-26 10:31:37
1492
1
原创 凸优化在路径优化中的应用
凸优化在路径优化中的应用总体思路生成凸多边形总体思路凸优化虽然做为优化中的一个特例,但非常多的工程问题都可以转变为凸优化问题,因此应用需求比较多,被大量学者研究,成果颇丰。由于本文重点在应用,不讲解凸优化,如果感兴趣可以参考书籍《Convex Optimization》。使用凸优化对路径进行优化的过程可以如下:Created with Raphaël 2.2.0开始生成初始路径生成凸多边形区域构造优化问题使用求解器求解优化问题结束生成初始路径是为了更容易生成凸多边形,而凸多边形则是为了给优化的目标
2021-02-24 21:07:23
3195
1
原创 高斯伪谱法小记
高斯伪谱法小记简介新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入简介高斯伪谱法可以做为一种简化连续目标函数优化问题的方法,通过将连续优化问题变成离散优化问题,不仅有较高的求解精度,而且计算量较少新的改变我们对Mar
2021-01-22 09:47:44
10330
16
原创 差速轮时间最优控制
差速轮机器人时间最优控制 最优控制做为现代控制理论一个非常重要的部分,相比于其它控制算法,直接对性能指标进行优化,同时可以添加各种各样的约束条件等优点,在自动化工程中有比较多的应用。但受限于当前的计算水平,还没有传统控制算法普遍应用于实际生产、生活中。 本文将通过离散化的方式求解差速轮机器人从点A(xxx,yyy,θ\thetaθ),运行到点B的时间最短,在运行过程中,有速度、加速度的约束。差速轮机器人运动学 由于最优控制需要预测差速轮机器人的状态,因此需要得到差速轮机器人的运动学模型,
2020-12-21 21:39:28
1262
原创 绘制clothoid曲线
绘制clothoid曲线clothoid介绍clothoid介绍 clothoid曲线是一种曲率半径与长度成线性关系的曲线,由于其曲率平滑过渡,在路径规划中有所应用。在直角坐标系中,clothoid曲线的微分方程如式(1)所示。dk=adl(1)dk=adl \tag1dk=adl(1)...
2020-11-16 21:47:01
6249
2
原创 路径优化
路径优化目的五次曲线优化目的 本文将无人机平面路径优化问题做为曲线优化问题,在满足无人机运动学,动力学约束的条件下,分别使用五次曲线优化和贝塞尔曲线优化的方法。 无人机动力学模型可以简化为一个线性模型,如式(1)所示。X˙=AX+Bu(1)\dot X = AX+Bu\tag{1}X˙=AX+Bu(1) 因为无人机为线性模型,所以只需要曲线在xxx和yyy方向满足相应的约束(加速度约束,jerk约束)即可。五次曲线优化 五次曲线的参数方程如式(2)所示。x=a0+a1t+a2
2020-10-10 08:53:30
4956
1
原创 Hybird A* 算法
Hybird A*算法操作步骤:小结 路径规划做为机器人导航中的一个重要的技术,一个好的路径规划可以极大地提高后续跟踪控制的效果,对机器人的运行好坏程度有非常直观的表现。从最初搜索一条有效路径(如Dijkstra、A*、RRT等),到现如今通过前端搜索,后端优化的方式得到一条考虑机器人运动学、动力学,安全性的高质量路径,众多学者、工程师提出了非常有效的路径规划方法。 Hybird A* 算法只需通过搜索就可以得到一条平滑的高质量路径,在计算效率上有一定的优势(特别是在宽阔的位置)。本文需要有一定的路
2020-09-02 21:49:22
2104
1
原创 最优控制小结
本文主要参考刘豹、唐万生主编的《现代控制理论》第三版第6章,非常感谢作者能将这么复杂的内容讲得这么透彻、通俗易懂。最优控制做为一种控制理论,通过构造目标函数可以非常直观地对系统的状态、输入量进行控制,在系统状态方程准确的情况下能有非常好的控制效果。本文主要针对工程应用,不进行公式推导、数学证明。...
2020-08-05 21:05:10
1813
原创 非线性求解器Casadi使用简介
非线性求解器Casadi使用简介Casadi做为一款非线性求解器,支持python、C++、matlab等多种语言,能够解决非常多的工程问题。具体使用请参考casadi官方使用文档。使用Casadi主要包含3个步骤:构造变量、构造目标函数和设置求解器。构造变量和目标函数使用casadi求解优化问题时,就需要将变量定义成casadi能够识别的形式,其中可以将变量定义成向量、矩阵的形式,如“x = SX.sym(‘x’)”定义的是一个一维变量,“y=SX.sym(‘y’, 5)”定义的是一个5维向量变量
2020-07-15 21:06:16
18698
16
原创 差分轮移动机器人模型预测控制MPC
运动学模型状态方程:x˙=vcosθy˙=vsinθθ˙=w\begin{array}{l}\dot{x}=v \cos \theta \\\dot{y}=\operatorname{vsin} \theta \\\dot{\theta}=w\end{array}x˙=vcosθy˙=vsinθθ˙=w采样一阶泰勒公式将状态方程线性化得:[x˙y˙θ˙]=[vrcos...
2020-06-01 18:02:01
9409
17
原创 低通滤波器
低通滤波器RL电路分析数学模型求解和离散化处理C语言实现扩展本文将根据RL电路的原理,用计算机实现低通滤波。RL电路分析数学模型由基本的电路知识可知,RL电路输入X和输出Y的关系如下:LRdYdt+Y=X\frac{L}{R} \frac{d Y}{dt} + Y = XRLdtdY+Y=X求解和离散化处理由于使用计算机处理,需要求解并离散化以上的微分方程,本文采用一阶向前...
2020-04-06 19:48:57
917
原创 车辆MPC
车辆MPC车子的结构为阿克曼结构。1.建立模型车辆结构示意图:运动学模型:状态方程线性化得:线性状态方程离散化:运用向前查分的方式进行近似离散化。2.模型预测为简单方便,选取3个步长。为下一步二次优化控制方便处理,将上面的3步预测看成如下方程:3.控制最优控制方程:令:得:上述最优问题化简为:去掉与待优化量U无关项并进一步化简得:约束条件...
2019-10-19 23:23:46
2819
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人