1.环境感知:激光雷达(Lidar)、雷达(Radar)、超声波、视觉相机、惯导(IMU)等
2.高精度地图(HD Map):周围环境及地形的高精度建模(10cm左右的精度)0
3.控制规划及决策:对汽车进行智能控制
思想实验:
对于控制理论方面,如果想要进一步了解,可以参考胡寿松的《自动控制原理》这本书以及现代控制论的有关知识。
PID 控制无需基于模型。对于PID在车道保持方面的应用。自动驾驶之PID原理简述(简单易懂)
控制油门和刹车可以控制车的纵向速度和位移,而横向控制不仅依赖于车辆转向还依赖于横向速度.纵向控制与横向控制无法完全解耦。
对于运动学与动力学的基本概念自动驾驶路径跟踪控制——车辆动力学建模基本概念这篇文章有所介绍。
两轮车模型(自行车模型)自动驾驶路径跟踪控制——纯追踪控制之前这篇文章对自行车模型以及纯追踪控制有所介绍。
ooo:车辆瞬心
zzz:车辆质心
RRR:转弯半径
βββ:速度与车辆纵轴的侧偏角(车身坐标系)
δδδ:车辆转角(车身坐标系)
ψψψ:车身横摆角(世界坐标系)
lll:前后轮轴质心距
LLL:前后轮轴距
当车速比较慢时有βββ→0,前轮转向 δf{\delta _f}δf→0
只考虑运动学的缺点:
二自由度侧向动力学模型
当轮胎受到横向力时,轮胎由于形变产生侧滑。
Fy=Cθ{F_y}={C\theta}Fy=Cθ
CCC: 侧偏刚度(负值)
θθθ: 侧偏角(逆时针为正)
受力分析中,第一条式子是对力的平衡进行分析;第二条式子是对力矩的分析。
根据角度关系可以得到下列关系式。
根据上述公式,可以得到二自由度侧向动力学模型。
缺点:
该模型并不是这么精确。
/apollo/modules/control
enum ControllerType {LAT_CONTROLLER = 0;LON_CONTROLLER = 1;MPC_CONTROLLER = 2;XXX_CONTROLLER = 3;}
case ControlConf::XXX_CONTROLLER:controller_factory_.Register(ControlConf::XXX_CONTROLLER,[]() -> Controller * { return new xxxController(); });break;
active_controllers: XXX_CONTROLLER
注意:
/apollo/modules/control/conf/control_conf.pb.txt 只是一个临时文件
配置文件改完记得保存到 /apollo/modules/calibration/ 对应的车辆文件夹中
(如:/apollo/modules/calibration/data/Lincoln2017MKZ_LGSVL/control_conf.pb.txt)
在DreamView切换车辆的时候,DreamView会从选中的车辆文件夹中拿到实际的配置文件来覆盖临时文件.
离线分析:输出CSV文件
修改配置 /apollo/modules/control/conf/control_conf.conf
添加 --enable_csv_debug=true。
运行代码之后会生成两个csv文件。
/tmp/steer_log_simple_optimal_2022-xx-xx_xxxxxx.csv
/tmp/speed_log__2022-xx-xx_xxxxxx.csv
以protobuffer的方式输出到Channel中,然后Python进行数据分析,用Matplotlib做可视化。
还可以使用python进行数据分析。
《车辆动力学及控制》
上一篇:四、fs文件系统模块
下一篇:校园兼职网站