路径跟踪算法---PID实现

本文介绍了如何使用PID算法实现机器人路径跟踪。PID控制包括比例(P)、积分(I)和微分(D)三个部分,分别用于快速响应、消除稳态误差和减少超调。通过在gazebo+ros环境下进行仿真实验,分别展示了线速度增量式PID和角速度位置式PID的计算方法。文章还提供了相关函数和类的实现细节。
摘要由CSDN通过智能技术生成


前言

在获取机器人路径以后,下一步任务就是控制机器人沿着给定的路径进行运动,常用的控制算法有PID控制、纯路径跟踪算法(PurePursuit)、线性二次型调节器(LQR)、模型预测控制(MPC)等,本文首先介绍如何使用PID算法路径跟踪。


一、PID控制

1. PID简介

PID算法是一种经典、简单、高效的动态速度调节方式,Kp为比例系数,Ki积分系数,Kd为微分系数。
  U ( t ) = K p ∗ e ( t ) + K i ∫ 0 t e ( t ) d ( t ) + K d d ( e t )   / d t \ U(t) = K_p*e(t) + K_i\int_0^t e(t)d(t) + K_d d(e_t) \ / dt  U(t)=Kpe(t)+Ki0te(t)d(t)+Kdd(et) /dt
通常依据控制器输出与执行机构的对应关系,将基本数字PID算法分为位置式PID和增量式PID两种,参考博客:空虚法师
a.Kpa.err + a.Kia.integral + a.Kd*(a.err-a.err_last);
位置式PID:
  K p ∗ e ( k ) + K i ∗ ∑ i = 0 e ( i ) + K d ∗ ( e ( k ) − e ( k − 1 ) ) \ K_p* e(k) + K_i* \sum_{i=0} e(i) + K_d *( e(k) - e(k-1) )  Kpe(k)+Kii=0e(i)+Kd(e(k)e(k1))
e(k):误差 = 目标值 - 当前值
∑ e ( i ) \sum e(i) e(i):误差累加
e(k) - e(k-1): 本次误差- 上次误差

增量式PID:
  K p ∗ ( e ( k ) − e ( k − 1 ) ) + K i ∗ e ( k ) + K d ( e ( k ) − 2 e ( k − 1 ) + e ( k − 2 ) ) \ K_p*(e(k) - e(k-1)) + K_i*e(k) +K_d(e(k) - 2e(k-1) + e(k-2))  Kp<

评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值