手把手教用matlab做无人驾驶(四)-pure pursuit

如上图汽车的自行车模型,上面轻灰色显示的是车,这个车坐标系是红色,这个世界坐标系是蓝色,轮子转向角是\gamma,两个轴扩展虚线然后相交于ICR。ICR到后轮和到前轮的距离分别为R1,R2。

运动等式:

对于上面的公式车身角度增量与轮子转向的关系的推导:

轮子的约束条件:

纯追踪算法对于路径跟随而言是简单和有效的方法,这里给出跟踪圆的路径,

在matlab/simulink中搭建仿真模型:

上面的自行车模型如下:

上面圆的路径如下:

仿真图形如下:

控制角度也可以用曲率:

tf::Vector3 p1(path.poses.at(i).pose.position.x, path.poses.at(i).pose.position.y, 0.0);

tf::Vector3 p2(path.poses.at(max(0,i-1)).pose.position.x, path.poses.at(max(0,i-1)).pose.position.y, 0.0);

pos_sp_ = tf_.inverse() * ((p1 + p2) / 2.0);

float curvature = 2*abs(pos_sp_.getY())/(LOOK_AHEAD_DIST * LOOK_AHEAD_DIST);

// float ang_diff=atan((path.poses.at(i).pose.position.y-path.poses.at(max(0,i-1)).pose.position.y)/(path.poses.at(i).pose.position.x-path.poses.at(max(0,i-1)).pose.position.x));

// publish drive cmds

float steering_cmd = P_GAIN * curvature;

// float steering_cmd = 0.15* (ang_diff- car_pose_.position.z);

if (pos_sp_.getY()<0){steering_cmd *= -1.0;}

外国电子书籍下载地址:

http://b-ok.org/

  • 9
    点赞
  • 132
    收藏
    觉得还不错? 一键收藏
  • 26
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值