实践无人驾驶—简介、软件部署和车辆标定
课程简介
本次课程也来到了比较考研动手能力的阶段了,相较于前面的理论知识学习,接下来三天的学习都是需要实际操作的,对于安装环境配置等很吃力的学生可以多看看多思考思考。
车辆简介
- Apollo推荐的平台和百度自行研制的小车
- 循迹:车辆根据设定好的路线进行获取追寻并实际履行的过程。
- 车辆在循迹时,需要搭建一些计算和控制等硬件,但是不需要摄像头、激光雷达等感知硬件,因为她只是一个简单的追寻过程
下列是对部分模块的简介:
模块 | 分类 |
---|---|
计算单元 | 诸如人类大脑,负责传感器数据采集、计算处理单元、感知规划、决策控制等,Apollo推荐使用工控机IPC |
定位系统 | 包括GPS、接收机和IMU(惯量测量单元)—它是用来获取当前加速度、航向角等信息,计算求解得到当前车辆姿态信息,还会获得其他信息,精密度能够达到厘米级。 |
车辆CAN卡 | 它具备两路独立的腾讯通道,通过工控机的mini接口安装到工控机内部 |
上面提到了部分模块的介绍,下面讲解一下理解方式:
硬件连接的要点是:
我们在连接线路时要养成良好的连接习惯
- 连线前要确定好我们设备的额定电压
- 连线时确保正负极正确
- 完毕后要仔细检查
- 检查后再上电测试、
CAN卡的装载工程需要按照说明书的指定步骤进行装载,在此说明很容易误导大家。
将CAN卡安装在工控机后,我们需要安装GPS天线,这时会出现安装两个的情况,一前一后,对准中位线,确保安装在小车的中心位置,使用双面胶加强牢固性。
接着安装OMU单元,安装在显示屏正下方,接着连接GPS电源、连接M2(IMU和GPS接收机集成器,本来是两个设备,被集合到一个设备)。然后将车辆底盘供电线与M2供电线连接。然后将4G路由器连接到工控机和M2上。
最后连接底盘总电源,并将鼠标键盘和工控机连接适配。
强调的是,在操纵百度小车时可能出现突发情况而发生危险,所以我们需要两个人共同操作,一个人使用遥控器随时接管小车,暂停运行。如果操作遥控器的人未意识到,另一个人也可以赶紧拍下小车后轮处的红色急停按钮。
软件部署实操和定位模块配置
本次使用
- 操作系统:Ubuntu14.04 LTS、Linux4.4内核、Apollo1.5.5内核
- 驱动软件:GPU 显卡、ESD-CAN卡驱动或者Socket CAN 卡驱动
- 应用软件:Docker软件、Git软件、Apollo源代码
- BIOS设置
——进入工控机后设置菜单,调节风扇转速,以保持最佳状态 - 安装软件
——顺序:计算机操作系统—驱动软件—应用软件
步骤 | 操作 |
---|---|
安装操作系统 | 安装Ubuntu(通过U盘启动引导安装),安装Linux4.4内核(通过命令终端进行安装),安装Apollo内核(通过重启工控机并子啊终端进行输入和安装) |
安装驱动软件 | 安装GPU驱动(通过sudo进行安装),ESD-CAN卡驱动(通过厂家介绍说明书安装),Socket-CAN卡驱动(同样利用命令行安装) |
应用软件安装 | Docker软件安装(官网下载deb安装),Git安装(sudo apt-get install git),拉取Apollo源代码(通过加入终端进行安装),启动并加入Docker容器 |
- 定位模块配置
无人车使用RTK(定时动态差分),在空旷且基站距离范围内能够达到厘米级精度。
车辆的杆臂值是指天线的几何中心位置相对于IMU的几何中心在直角坐标系内x,y,z三方向的位置差
将得到的杆臂值配置到GPS接收机M2当中,在配置GPS接收机前,需要先把M2升级口与工控机串口连接,在配置M2时,已经完成了车辆的硬件集成。由于接收机M2与工控机之间的安装位置比较远,而M2升级口线又比较短,建议购买一根串口延长线,一 端连接M2的升级口,另- -端接到工控机COM1 串口。
硬件配置:诸如配置M2步骤修改杆臂值过程很复杂,需要在视频中详细研究和思考,在此不做多余介绍。
- 实测验证
将车辆连上电源后,操作系统进行运行,步骤如下:
步骤 | 内容 |
---|---|
1 | 接上电源,开机进入Linux系统启动Apollo |
2 | 启动Docker环境 |
3 | 输入密码进入Apollo容器 |
4 | 启动bootstrap bash scripts |
5 | 打开浏览器输入localhost:8888进入Dreamivew页面 |
6 | 启动定位模块 |
7 | 查看每个模块 |
8 | 检查定位状态类型 |
9 | 将车辆遥控数米,得到localization输出 |
10 | 检查定位输出 |
车辆标定
- 车辆动力学标定
——例如:不同速度的车想要达到相同加速度,油门和刹车的开合度是不同的,所以我们需要知道在各个情况下相应的数据
标定过程如下所示:
- 进入Docker环境—通过终端输入bash docker/scrips/dev_start.sh拉起Docker
- 启动模块—模块有canbus、gps、localization和rescore
- 检查—通过输入命令行检查canbus,再通过输入命令行检查GPS情况,最后输入命令行检查定位。
标定时的内容:
1.在标定时,一定要注意自身安全,防止小车冲撞自己。
2.采集数据:输入x,y,z的值,分别标识油门开合度、车辆目标到达速度和刹车开合度,z一定是负值,否则车辆无法停止。
3.处理标定数据:得到记录数据值后,对该数据进行绘制标定并删除无用数据,拷贝数据段等内容处理。
- 启动车辆循迹
——车辆循迹模块:Canbus、Control、GPS、Localization、Planning、roscore、Dreamview
——Apollo录制车辆循迹轨迹文件包括的信息:轨迹定位信息、车速、加速度、曲率、油门踏板、刹车踏板、挡位、方向盘转角
——配置文件:Cancard_params、Cnabus文件、gnss_params定位信息配置文件、vehicle_params车辆配置文件。
——在vehicle_param.pb.txt整车文件中包括信息如下:1.IMU到车辆四边距离,2.整车长宽高,3.最小转弯半径,4.最大加速度、最大减速度,5.方向盘最大转角、最大转速、最小转速,6.转向传动比,7.车辆轴距、轮胎滚动半径,8.车辆停止时的速度。
配置完上述文件后就可以启动车辆进行循迹
- 启动并进入Docker
- 启动Bootstrap
- 进入浏览器访问DreamView
- 定位:启动Canbus,打开GPS,打开Localization,获取GPS信息并检查信号好坏。
- 安全员随时接管小车,以防安全事故发生
- 首先进行直线循迹:轨迹录制,将小车倒回到起始位置,启动录制脚本,重置循迹脚本并执行,车辆会沿着录制轨迹运行。
- 可以变换不同的路线,通过遥控器的控制。
本次讲解到此就结束了,本次课程实践性较强,需要仔细阅读并实践。因此我放上本次课程的视频教学资源。
视频在这里(当然本次视频需要499元付费观看)版权原因,希望大家踊跃购买,并抢先进入无人驾驶领域,成为推动无人驾驶技术深入的人才。