车辆 | 平行泊车路径规划可行驶区域公式推导

注:本文推导参考网上论文并加上了一些自己的理解,侵权删。

需要先计算D 点(D 点为第一段圆弧路径的终点)位置,再根据 D 点计算C 点范围区域。

其中:Lp为车位长度,最小安全距离d1,w为车辆宽度

D点坐标:

根据得到 D 点位置,以此时的 D 点计算C 点范围区域。

1、泊车时P1点进行碰撞分析

其中:Rmin为最小转弯半径(在文章:阿克曼转向原理及公式推导里有推过Rmin)

C 点下限值坐标为:

又因为h1为D点的纵坐标,S1为D点的纵坐标,将其代入上式即可。

2、车辆与道路边界发生碰撞分析

其中:Lroad为道路宽度,l 为车辆轴长,lr 、lf分别为车辆后悬和前悬长度,R 为车辆左上顶点a 的旋转半径值

C 点上限值坐标为:

其中:R1车辆位于此位置时的转弯半径。

此时的R1 需满足:

根据泊车路线最短的优化考虑,并且便于计算,本文将R2设计为车辆后轴中心的最小转弯半径Rmin

 E 点车辆的航向角为θ ,直线段路径 EF 的斜率为 tanθ ,那么车辆起始点C 点的选取范围线段与直线 EF 平行,其斜率也为 tanθ.

因 C 点 的 选 取 范 围 线 段 与 直 线 DE 平 行 , 其 斜 率 为 tanθ,即:

如下图示意:

即当车辆位于阴影部分区域时,均可根据所规划的路径进入车位内。则平行泊车起始区域为三条曲线组成的区域,这三条曲线表达式分别为:

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
阿克曼模型是用于描述车辆运动的一种数学模型,它可以用来推导平行路径规划。下面是使用MATLAB进行阿克曼模型推导平行路径规划的步骤: 1. 建立阿克曼模型 阿克曼模型可以用以下方程式来表示: dx/dt = v*cos(theta) dy/dt = v*sin(theta) dtheta/dt = v/L*tan(delta) 其中,dx/dt和dy/dt分别表示车辆在x和y方向的位移速度,v表示车辆的速度,theta表示车辆的方向角度,L表示车辆的轴距,delta表示轮转角。 2. 设计控制器 为了使车辆能够平行,需要设计一个控制器来控制车辆的转向和速度。在平行过程中,车辆需要先向后退,然后再向前驶入位。因此,控制器需要根据车辆的位置和姿态,决定车辆的转向和速度。 3. 设计路径规划算法 为了使车辆能够按照规定的路线行驶,需要设计一个路径规划算法。平行路径规划算法可以采用以下步骤: - 确定车辆的起始位置和目标位置; - 根据车辆的位置和目标位置,计算出车辆需要沿着哪条路线行驶; - 根据车辆的位置和目标位置,计算出车辆需要进行的转向操作; - 根据车辆的当前速度和转向操作,计算出车辆的下一步行驶方向。 4. 编写MATLAB代码 根据以上步骤,可以编写MATLAB代码来实现阿克曼模型推导平行路径规划。具体实现过程需要根据具体情况进行修改和完善。 下面是一个简单的MATLAB代码示例: ``` % 设置车辆参数 v = 5; % 车辆速度 L = 2.5; % 车辆轴距 % 设置起始位置和目标位置 start_pos = [0, 0]; % 起始位置 target_pos = [10, 0]; % 目标位置 % 计算需要行驶的路线 route = [start_pos; target_pos]; % 计算转向操作 delta = atan2(target_pos(2) - start_pos(2), target_pos(1) - start_pos(1)) - start_pos(3); % 计算下一步行驶方向 theta = start_pos(3) + v/L*tan(delta); % 计算车辆位移速度 dx = v*cos(theta); dy = v*sin(theta); % 更新车辆位置 new_pos = start_pos + [dx, dy, theta]; ``` 注意,以上代码仅为示例代码,具体实现需要根据具体情况进行修改和完善。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值