【控制】人工势场法及人工势场函数 |
您所在的位置:网站首页 › 势函数怎么求公式 › 【控制】人工势场法及人工势场函数 |
目录
人工势场法-维基百科路径规划-人工势场法(Artifical Potential Field)引力场 (attractive/gravitation field)斥力场 (repulsive field)总场
【机器人路径规划】人工势场法PaperMatlab 代码自己编写的 Matlab1. 仅考虑引力的情况
人工势场法-维基百科
人工势场法是由Khatib提出的一种机器人路径规划算法。该算法将目标和障碍物分别看做对机器人有引力和斥力的物体,机器人沿引力与斥力的合力来进行运动。 该法结构简单,便于低层的实时控制,在实时避障和平滑的轨迹控制方面,得到了广泛应用,其不足在于存在局部最优解,容易产生死锁现象,因而可能使移动机器人在到达目标点之前就停留在局部最优点。 From: 人工势场法-维基百科 路径规划-人工势场法(Artifical Potential Field) 引力场 (attractive/gravitation field)常用的引力函数: U a t t ( q ) = 1 2 ξ ρ 2 ( q , q g o a l ) U_{att}(q) = \frac{1}{2}\xi\rho^2(q,q_{goal}) Uatt(q)=21ξρ2(q,qgoal) 这里的 ξ \xi ξ 是尺度因子, ρ ( q , q g o a l ) \rho(q,q_{goal}) ρ(q,qgoal) 表示物体当前状态与目标的距离。引力场有了,那么引力就是引力场对距离的导数(类比物理里面 W = F X W=FX W=FX): F a t t ( q ) = − ∇ U a t t ( q ) = ξ ( q g o a l − q ) F_{att}(q) = -\nabla U_{att}(q) = \xi(q_{goal}-q) Fatt(q)=−∇Uatt(q)=ξ(qgoal−q) 斥力场 (repulsive field)传统的斥力场公式 U r e p ( q ) = { 1 2 η ( 1 ρ ( q , q o b s ) − 1 ρ 0 ) 2 , if ρ ( q , q o b s ) ≤ ρ 0 0 , if ρ ( q , q o b s ) > ρ 0 U_{rep}(q) = \left\{\begin{aligned} \frac{1}{2} \eta (\frac{1}{\rho(q, q_{obs})} - \frac{1}{\rho_0})^2, \quad \text{if}\ \rho(q, q_{obs}) \le \rho_0 \\ 0,\quad \text{if}\ \rho(q, q_{obs}) > \rho_0 \end{aligned}\right. Urep(q)=⎩⎪⎨⎪⎧21η(ρ(q,qobs)1−ρ01)2,if ρ(q,qobs)≤ρ00,if ρ(q,qobs)>ρ0 其中, η \eta η 是斥力尺度因子, ρ ( q , q o b s ) \rho(q, q_{obs}) ρ(q,qobs) 代表物体和障碍物之间的距离。 ρ 0 \rho_0 ρ0 代表每个障碍物的影响半径。 换言之,离开一定的距离,障碍物就对物体没有斥力影响。 斥力就是斥力场的梯度 F r e p ( q ) = − ∇ U r e p ( q ) = { η ( 1 ρ ( q , q o b s ) − 1 ρ 0 ) ⋅ 1 ρ 2 ( q , q o b s ) ∇ ρ ( q , q o b s ) , if ρ ( q , q o b s ) ≤ ρ 0 0 , if ρ ( q , q o b s ) > ρ 0 \begin{aligned}F_{rep}(q) &= -\nabla U_{rep}(q)\\ &= \left\{\begin{aligned} &\eta (\frac{1}{\rho(q, q_{obs})} - \frac{1}{\rho_0}) \\ & \cdot \frac{1}{\rho^2(q,q_{obs})}\nabla\rho(q,q_{obs}),\quad & \text{if}\ \rho(q, q_{obs}) \le \rho_0 \\ & 0,\quad & \text{if}\ \rho(q, q_{obs}) > \rho_0 \end{aligned}\right.\end{aligned} Frep(q)=−∇Urep(q)=⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧η(ρ(q,qobs)1−ρ01)⋅ρ2(q,qobs)1∇ρ(q,qobs),0,if ρ(q,qobs)≤ρ0if ρ(q,qobs)>ρ0 总场总的场就是斥力场合引力场的叠加,也就是 U = U a t t + U r e p U=U_{att}+U_{rep} U=Uatt+Urep,总的力也是对对应的分力的叠加,如下图所示:
From: 路径规划-人工势场法(Artifical Potential Field) 【机器人路径规划】人工势场法1.概述 我们打两个比方来说明人工势场法的作用机理。首先,我们把构型空间比作一个电势场平面,机器人(的当前构型)比作空间中一点。如果让机器人的起点和障碍物带正电荷,终点带负电荷,机器人带正电荷。由于同性电荷相斥,异性电荷相吸的原理,机器人将会在电场力的作用下沿着某条路径向终点移动 ,并避开带正电荷的障碍物,如图1所示。
以上的两个例子其实就是电势场与重力势场的作用机制,电势场和重力势场都是自然势场。而人工势场法就是在已知起点、终点和障碍物位置的情况下,构建一个人工势场来模仿这种作用机制。人工势场法的优点在于,它其实是一种反馈控制策略,对控制和传感误差有一定的鲁棒性;缺点在于存在局部极小值问题,因此不能保证一定能找到问题的解。 From: 【机器人路径规划】人工势场法 PaperM. Zhang, Y. Shen, Q. Wang and Y. Wang, “Dynamic artificial potential field based multi-robot formation control,” 2010 IEEE Instrumentation & Measurement Technology Conference Proceedings, 2010, pp. 1530-1534, doi: 10.1109/IMTC.2010.5488238. 人工势场算法 Matlab版源码 自己编写的 Matlab 1. 仅考虑引力的情况 % 自写人工势场法测试函数 % 说明: % X 轴:时间 time % Y 轴:小车横坐标 % Z 轴:小车纵坐标 % 初始位置:[0 0]' % 目标位置:[10 10]' clear P0 = [0 0]'; Pt(:,1) = P0; PGoal = [10 10]'; Ut(:,1) = [0 0]'; % 时间参数 tBegin = 0; tEnd = 10; dT = 0.01; T(1,1) = tBegin; times = (tEnd - tBegin)/dT; % 其他参数 xi = 0.8; for time=1:times T(1,time+1) = T(1,time) + dT; % 引力 FGravitation = xi * (PGoal - Pt(:,time)); % 斥力 FRepulsive = 0; % 合力 Ut(:,time+1) = FGravitation + FRepulsive; % 更新位置 Pt(:,time+1) = Pt(:,time) + dT * Ut(:,time); end figure(1) plot3(T,Pt(1,:),Pt(2,:)) xlabel('Time'); ylabel('XPosition'); zlabel('YPosition'); grid on figure(2) plot3(T,Ut(1,:),Ut(2,:)) xlabel('Time'); ylabel('XSpeed'); zlabel('YSpeed'); grid on
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |