点对矩形避障
在轨迹规划中, 矩形常用来表示车辆、机器人等移动实体的边界框. 点对矩形的避障功能可以实现点与矩形之间的避障约束, 以确保点不会进入矩形所占据的区域.
建模
下面为点对矩形的避障不等式约束的例子:
point2rect_ineq = point_to_rectangle_inequality(
px, py,
x, y, phi, width, length,
distance_to_avoid
)
prob.inequality(point2rect_ineq)
其中, point_to_rectangle_inequality接口的入参如下:
px,py: 需要避障的点的坐标x,y,phi: 矩形的中心坐标和朝向 (逆时针为正)width,length: 矩形的宽度和长 度distance_to_avoid: 避障距离

信息
point_to_rectangle_inequality接口的所有入参 (px, py, x, y, phi, width, length, distance_to_avoid)可以为常数, 关于参数的表达式, 或者关于优化变量的表达式.
效果
下面为利用点对矩形的避障功能实现的车辆避障轨迹规划的问题设定:
- 车辆起始位姿为0, 目标为跟踪x轴 (横轴)的参考线并且避开两个人 (通过点描述)
- 车辆的优化轨迹为100个stage, 每个stage, 即每个时间点处的车辆都与两个点进行避障, 避障距离为1.0 m
注意, 人在不同时间点处的位置可以不同, 即可处理动态避障问题.
下面为不同初始解下的轨迹规划效果图:
- 初始解在上方
- 初始解在中间
- 初始解在下方
初始解:
最优轨迹:

初始解:
最优轨迹:

初始解:
最优轨迹 (受最大转角约束限制, 求解器返回solve_status = 3的不可行标志位与最小约束违反解):
