# Lane-Change-CBF
We develop a rule-based safety-critical autonomous lane change control design. The proposed method uses a finite state machine (FSM), where a quadratic program based optimization problem using control Lyapunov function and control barrier function (CLF-CBF-QP) is used to calculate the system's optimal inputs. The algorithm is validated through pre-designed typical driving scenarios and randomly generated scenarios.
<center><img src="Lane-Change/test/gif/random_change.gif" width = "625"></center>
Ego vehicle changes the lane in a randomly generated scenario
This is the reference implementation of our paper:
### Rule-Based Safety-Critical Control Design using Control Barrier Functions with Application to Autonomous Lane Change
[PDF](https://arxiv.org/pdf/2103.12382.pdf) | [Code](https://github.com/HybridRobotics/Lane-Change-CBF) | [Video](https://www.youtube.com/watch?v=icmy9u2a4z4)
*Suiyi He, Jun Zeng, Bike Zhang and Koushil Sreenath*
#### Citing
If you find this code useful in your work, please consider citing:
```shell
@inproceedings{he2021lane-change-cbf,
title={Rule-Based Safety-Critical Control Design using Control Barrier Functions with Application to Autonomous Lane Change},
author={He,Suiyi and Zeng, Jun and Zhang, Bike and Sreenath, Koushil},
booktitle={2021 American Control Conference (ACC)},
year={2021},
volume={},
number={},
pages={178-185}
}
```
#### Instructions
In our numerical simulations, the ego vehicle is expected to change to the right or left adjacent lane. Folder [core](/Lane-Change/core) contatins all relevant class and functions.
To setup the environment, run the [`setup.m`](/Lane-Change/setup.m) firstly.
Moreover, to start different groups of simulations and show their results, folder [test](/Lane-Change/test) has:
* [`test_simulation.m`](/Lane-Change/test/test_simulation.m): Run a simulation with a pre-designed driving scenario. By changing relevant parameters, the ego vehicle will change to its left or right adjacent lane. The position, speed, acceleration of the ego vehicle and all other vehicles can be self-defined.
* [`run_random_test.m`](/Lane-Change/test/run_random_test.m): Run simulations with 100 groups of randomly generated driving scenarios. Surrounding vehicles' initial states and the time for the ego vehicle to finish lane change maneuver will be stored.
* [`playback_plot.m`](/Lane-Change/test/playback_plot.m): Show the snapshots of the ego vehicle and one surrounding vehicle during the lane change maneuver, and the ego vehicle's velocity and front steering angle history.
* [`playback_git.m`](/Lane-Change/test/playback_gif.m): Generate a gif file of the lane change maneuver and save it in the folder [gif](/Lane-Change/test/gif).
In the following cases, the ego vehicle decelerates to overtake a slow leading vehicle in the first simulation. The ego vehicle will accelerates to gain enough space to change the lane in the second simulation. In the third simulation, the ego vehicle will go back to its current lane to avoid a potential crash and change to its target lane when the threat disappears.
<div align=center><img src="Lane-Change/test/figures/simulation1_traj.png" width = "625" >
Simulation 1
<img src="Lane-Change/test/figures/simulation2_traj.png" width = "625" >
Simulation 2
<img src="Lane-Change/test/figures/simulation3_traj.png" width = "625">
Simulation 3
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于MATLAB编写,部分含simulink文件,两份国内编写代码文件,两份国外编写代码文件;里面包含了五次多项式轨迹规划代码,两份换道决策规划代码与仿真,一份MATLAB/simulink联合仿真,可以作为学习借鉴!代码不需要修改即可跑出
资源推荐
资源详情
资源评论
收起资源包目录
换道模型.zip——包含五次多项式、换道仿真、换道决策等模型汇总 (109个子文件)
clear_distance.asv 259B
gap_error.asv 237B
relative_vel_error.fig 27KB
clear_distance.fig 26KB
gap_error.fig 20KB
random_change.gif 76.56MB
psuedo_code.JPG 87KB
table.JPG 28KB
relative_velocities.jpg 23KB
clear_distance.jpg 23KB
gap_error.jpg 19KB
formula.JPG 13KB
CLF_CBF_QP.m 19KB
LaneFollowingControlWithSensorFusionAndLaneDetectionExample.m 13KB
playback_gif.m 10KB
Vehicle.m 9KB
helperClusterDetections.m 6KB
helperLFSetUp.m 5KB
run_random_test.m 5KB
change_lane.m 4KB
createLaneSensorBuses.m 4KB
plotLFResults.m 4KB
test_simulation.m 4KB
follow.m 3KB
CLF_QP.m 3KB
packLanes.m 3KB
playback_plot.m 2KB
helperSessionToScenario.m 2KB
wuciduoxiangshi.m 2KB
SimulatorRandomTest.m 2KB
helperLFCleanUp.m 2KB
initialize.m 2KB
Controller.m 2KB
Simulator.m 1KB
EgoControllerGoal.m 1KB
StraightLane.m 1KB
main.m 935B
plot_car_alpha.m 904B
plot_car.m 829B
ParamOptEgo.m 562B
LaneChangeSurroundingVehicleGoal.m 558B
get_empty_front.m 550B
ParamVeh.m 385B
ParamOptSurroundingVeh.m 322B
relative_vel.m 273B
relative_vel.m 273B
clear_distance.m 247B
clear_distance.m 247B
gap_error.m 239B
gap_error.m 239B
setup.m 27B
sTohiSnQyCoPqWKbuAqLp2C.mat 332KB
sga4mA7hYVPrWtGVXX0LYGE.mat 332KB
spjdqMcoNRXSHWuxa64Y8tC.mat 332KB
stWWCVQy6ojJfxlgq8p8MNF.mat 220KB
shEdu9yZ393dMthtL38VvaB.mat 78KB
s2Tu5w6lK7hjXGXfNf6BpxG.mat 47KB
sXMjO0fkQpGzs5lqqeO9JWC.mat 46KB
snghahyr9FxSEygTX9y1fxG.mat 46KB
sH1GBkQmnZi8yezFvpGtNwC.mat 25KB
varInfo.mat 13KB
varInfo.mat 12KB
mySin_LF_03__DbCurve.mat 10KB
varInfo.mat 9KB
sdngojYX3SueJnb64RqOzZD.mat 6KB
varInfo.mat 6KB
mySin_LF_03__DbCurve.mat 5KB
LFACC_03_DoubleCurve_StopnGo.mat 5KB
LFACC_04_Curve_CutInOut.mat 5KB
LFACC_05_Curve_CutInOut_TooClose.mat 4KB
varInfo.mat 4KB
sVTOpqF29CtWuKnJq7HnCFE.mat 4KB
LFACC_02_DoubleCurve_AutoRetarget.mat 3KB
ACC_03_ISO_CurveTest.mat 3KB
sfbPq2djlEv4F3w3mXLPEi.mat 3KB
ACC_04_StopnGo.mat 3KB
LFACC_01_DoubleCurve_DecelTarget.mat 3KB
sMvQokRCjVVEMDPsjslrk9E.mat 3KB
ACC_02_ISO_AutoRetargetTest.mat 3KB
ACC_01_ISO_TargetDiscriminationTest.mat 3KB
emlReportAccessInfo.mat 2KB
checksumOfCache.mat 392B
checksumOfCache.mat 392B
checksumOfCache.mat 392B
checksumOfCache.mat 392B
checksumOfCache.mat 392B
README.md 3KB
README.md 2KB
Ahn-2021-Reachability-based-decision-making-.pdf 3.07MB
Behaviour_Planning_Report.pdf 1.18MB
simulation_speed.png 271KB
simulation_steering.png 204KB
mpcLFBES.png 101KB
simulation3_traj.png 96KB
simulation2_traj.png 55KB
simulation1_traj.png 55KB
mpcLFfig.png 16KB
LaneFollowingTestBenchExample.slx 64KB
LFRefMdl.slx 59KB
LaneFollowingTestBenchExample.slxc 6KB
共 109 条
- 1
- 2
沐云零一
- 粉丝: 1
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Matlab人脸肤色定理的教师人数统计+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于Matlab霍夫曼变换的表盘读数识别+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于Matlab火灾烟雾检测源码带GUI界面+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于Matlab的恶劣天气交通标志识别系统+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于MATLAB的霍夫曼变换的表盘示数识别+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于Matlab的车道线识别系统 +源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于MATLAB的教室人数统计系统带Gui界面+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于MATLAB的教室人数统计系统带Gui界面+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于MATLAB 的霍夫曼变换答题卡识别源码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于Matlab+bp神经网络的神经网络汉字识别系统+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
- 6
前往页