首页 > 编程知识 正文

ros在自动驾驶中的应用,如何基于ros开发自动驾驶系统

时间:2023-05-06 14:06:09 阅读:274671 作者:3644

Self-Driving Cars with ROS2 and Autoware Free Online Course rviz2 路测

自动驾驶汽车将改变我们的出行和通勤方式。这项技术融合了机器人、机器学习、工程和现代软件开发方法。

自动驾驶14小时在线免费课程(ROS2) 这门课程的内容是什么?

开发生产级自主驾驶系统需要一系列相互关联的技术。本课程将把所有重要的部分汇集成一个实用的分步指南,帮助您架构、开发、测试和部署自主驾驶系统。
本中级课程使用了流行的开源机器人框架ROS 2和Autoware.Auto算法,通过14次讲座,涵盖了结合硬件、软件、算法、方法论、工具和数据分析的最先进的技术。

将学习到的内容?

将学习到一种现代的方法来开发复杂的自动驾驶系统,这是最具创新性的汽车公司所采用的。这些老师都是经验丰富的专业人士,他们为推动行业走向更高的设计、工程和安全标准做出了贡献。

哪些人应该参加课程?

这是一门中级水平的课程,适合于开发生产前自主驾驶系统的人员。学员应具备C++(包括测试)、机器人框架和系统集成等方面的知识。

课程概览 视频:

Autoware和ROS2课程讲座1 开发环境

讲座1 | 开发环境

本次讲座将提供三大收获。
1. 简明扼要地概述了所有14个讲座的内容
2. 所使用的开发环境和在其中重现实验室的开发环境。
3. 本课程用于开发安全关键系统软件的方法;

第一部分

1. 课程介绍
- 视频中的Autoware软件
- 为什么要开这个班
- 将学到什么?
- 将如何学习
- 概述大纲

2. 快速启动-开发环境
- 安装ADE
- 安装ROS 2
- 安装Autoware.Auto
- 运行对象检测演示
- 编辑和编译您的代码

第二部分

1. 复杂和安全关键软件的开发 -- -- 理论
- 本文件的沟通目标
- 汽车行业的安全和安保
- 如果有人受伤,你会因为代码不好而被起诉吗?
- 汽车软件系统中正式的安全开发标准
- 流行的软件开发模式
- 经典的ISO26262发展与城市自主驾驶的冲突
- 敏捷系统工程
- 业务设计领域
- 失效安全与失败可操作性
- 连续性工程
- 分开关注的问题

2. 复杂和安全关键软件的开发----实践
- 总体设计
- 在分叉中发展
- 设计和要求
- 验证
- 单元测试和结构性代码覆盖率
- 集成测试
- 按作业设计领域进行核查
- 持续集成和DevOp
- 结论和下一次讲座

3. 结论和下一次讲座

讲座2 | ROS 2 101

Autoware和ROS2课程讲座2 ROS2基础

1. 介绍
2. 获得帮助
3. 非官方资源

4. ROS2介绍
- ROS2简介
- ROS2的核心概念
- 环境设置
- colcon命名法

5. 节点和发布器
- 专题概述
- 构建和运行一个节点
- 简单的发布者构建和运行
- 修改发布者
- 建立一个订阅器
- 发表/订阅合作

6. 服务
- 概念概述
- 审查基本服务
- 运行基本服务
- 从命令行终端呼叫服务
- 构建服务型客户
- 执行服务服务器/客户机

7. 行动
- 行动概述
- 行动文件审查
- 基本行动审查
- 运行/调用一个动作
- 行动客户审查
- 用客户端运行动作服务器。

讲座3 | ROS 2 工具

Autoware和ROS2课程讲座3 ROS2工具

1. 概述和激励性概念
- 命令行
- 环境变量

2. 设置工作区
- 说10遍:source setup.bash
- 检查电脑的环境配置

3. 设置我们的学习环境。
- 复习第一课时
- 工作空间
- 接着编译
- 然后启动

4. ROS2中的命令行工具。
- ros2 run: 执行一个程序
- rqt_graph - 检查节点
- ros2 node: 检查一个节点 #. ros2 node list #.

5. "Sniffing the Bus",主题实践

· ros2 topic list
· ros2 topic echo
· ros2 topic info
· ros2 interface show
· ros2 topic pub
· ros2 topic hz
· GUI Tools: rqt_plot / rqt_graph

6. 服务实践

· ros2 service list
· ros2 service type
· ros2 service find
· ros2 interface show
· ros2 service call
· Seeing your results rviz2

7. 参数

· ros2 param list
· ros2 param get
· ros2 param set
· ros2 param dump
· Parameter Serialization

8. 记录数据

· What's a bag?
· ros2 bag record
· ros2 bag record -- selecting topics
· ros2 bag info
· ros2 bag play
· Python tools for bag introspection
· Bags as a collaborative tool

讲座4 | 平台(HW, RTOS, DDS)

Autoware和ROS2课程讲座4 平台(HW, RTOS, DDS)

1. ECU
- 今天有哪些汽车ECU
- 术语。BSP, ECU, SoC, 接口
- ECU对安全关键应用的重要性

2. RTOS
- 什么是RTOS,与vanilla Linux等相比,RTOS是什么?
- 哪些RTOS是可用的、适合AD的?
- 微内核与单片机内核
- 调度政策
- 安全的内存管理
- 空间和时间上的分离
- 对HW计算加速器的支持

3. DDS的解释
- DDS基金会
- DDS : 选定的高级概念
- 用于机器人应用的DDS功能

讲座5 - 自主驾驶 

1. 使用AD堆栈的动机
- 复杂性
- 最先进的参考执行情况

2. AD栈的结构
- 理智-计划-行动
- AD的积木概述
(传感器、执行器、感知、定位、地图、规划...)
- 块的关系如何

3. 其他AD堆栈
- Nvidia driveworks
- 阿波罗

4. 将Autoware纳入研究工具
- 需要什么?
- 硬件和集成概述
- 为研究项目提供AD功能

5. 使用案例:Roborace
- 使用部分Autoware组件

讲座6-Autoware 101

学生将了解Autoware基金会及其两个主要项目。Autoware.ai和Autoware.Auto。

涵盖的子课题。
- Autoware基金会的结构
- Autoware.ai的历史和能力
- Autoware.Auto的现状和未来目标
- Autoware.Auto的结构概述
- Autoware.Auto的开发过程/如何做贡献

讲座7 - 物体感知:LIDAR

通过本课程的学习,学生将了解物体检测在自主驾驶堆栈中的目的和作用,了解物体检测堆栈的设计以及堆栈内的算法空间。同时让学生对Autoware.Auto对象检测堆栈有一个详细的了解,包括它的工作原理、使用方法、调试方法等。

1. 物体检测与自主驾驶堆栈
2. 经典的基于激光雷达的物体探测堆栈
3. 对LiDAR数据进行预处理
4. 地面过滤
5. 集群/物体检测
6. 形状提取
7. 使用检测到的物体
8. 实验室:Autoware.Auto Object Detection stack

讲座8 - 物体感知:摄像机

摄像头是自主驾驶的关键传感器系统之一。在本讲座中,你将学习到的是,如何使用相机图片来检测现实世界中的物体。在简要介绍相机技术的基础上,你将了解到,需要采取哪些步骤来校准你的相机系统以补偿失真。你将看到,你将看到,如何利用神经网络来检测物体,如车道、车辆、行人等,以及你可能使用的工具箱。最后,你将在ROS2中创建自己的车道检测节点。

1. 摄像机的基础知识
- 基本KPI:分辨率、.....
- 计算现实世界积分
- 单视系统
- Sereovision系统
- 表极协调器

2. 摄像机校准
- 安装摄像机系统
- 棋盘图案的校准程序
- 内在/外在参数的计算

3. 物体探测
- 神经网络的基础
- 可用的DNN的例子:YOLO等。
- 可用于训练的数据集:KITTI、Ford等。
- 计算问题(实时?)

4. 可用的工具箱
- 基本算法工具箱:OpenCV
- GPU部署工具箱:Cuda
- 更高层次的集成工具箱:如nVidia AD工具箱。

5. 例子:车道检测
- 车道检测的基础知识
- 用于数据还原的多项式车道拟合
- 循序渐进的动手操作

6. 实践课程
- 基于真实数据的车道检测示例
- 读取数据流中的数据
- 计算车道实际坐标
- 检测到的车道的多项式拟合
- 生成ROS2信息
- 可视化,例如:rviz2

讲座9 - 物体感知:雷达

雷达是防撞最重要的传感器系统。在本讲座中同学们要学习的是,雷达传感器的基本工作原理,以及雷达传感器如何用于物体检测。现在的汽车级雷达传感器提供了大量的内部信号处理和综合物体检测。你将学习如何对这类传感器进行参数化,最后你将创建一个自己的雷达ROS2节点。

1. 雷达基础知识
- 什么是雷达.....?
- 基本的传感器设置与多个内部接收机
- 雷达横断面的测量(RCS)
- 困难的传感星座

2. 物体探测
- 传感器内部物体检测
- 小我私家车速度的需要
- 物体参数的测量:距离、尺寸、速度
- 对象过滤

3. 可用的传感器
- 不同频段(SRR和LRR)
- 内部信号处理和物体检测
- 感应器的准分化
- CAN作为数据接口

4. 示例:雷达传感器与ROS2节点的整合
- 大陆集团ARS-408为例
- 循序渐进的动手操作

5. 实践课程
雷达传感器集成实例
- 读取数据流中的数据
- 对象列表的排序和过滤
- 生成ROS2信息
- 可视化,例如:rviz2

讲座10 | 定位状态估计

学生将了解Autoware.Auto中实现的转换架构和本地化方法以及它们与ROS标准的关系。

1. 1.简介
- 自驾车汽车的定位
- Autoware.Auto Transform Tree
- Autoware.Auto中的定位:灵活设计的一个例子

2. 里程状态估计器
- 卡尔曼滤波器
- 如果你的系统是非线性的呢?
- EKF和UKF
- 机器人定位
- 在Autoware.Auto中的设置和使用

3. 环境传感器定位器
- 二维无损检测算法
- 三维无损检测算法
- 无损检测类的实现
- 无损检测仪节点的执行情况
- 在Autoware.Auto中的设置和使用

讲座11 - LGSVL仿真模拟

1. 模拟器的安装
- 系统要求
- GPU驱动程序和库

2. 开始
- 模拟器的基本概念
- 地图、车辆、集群、模拟
- 如何开始模拟
- 仿真参数

3. 使用Autoware.Auto运行模拟
- 不同的传感器配置
- 设置ROS2桥接
- 传感器信息的可视化

4. 自动化和Python API
- 使用Python API控制环境
- 控制非自我车辆行为者
- 控制自定义对象(可控物)
- 回调和自定义传感器插件
- 例子: 为模型训练收集数据
- 例子。判断乘坐舒适性

5. 高级专题
- 新环境的创造
- 新车辆的创建
- 新传感器的创建

讲座12 - 高清地图

1. 什么是地图?
- 分层
- 定位
- 导航系统
- 交通规则

2. 地图行业标准
- 物理存储格式
- 导航数据标准(NDS)
- 开放驱动
- OSM XML
- 逻辑模型
- OpenLaneModel
- Lanelets

3 小巷2号图书馆
- 在自动驾驶的背景下处理地图数据的C++库

4. Autoware中的Lanelet2集成
- 自主代客泊车场地图用例

~Fin~

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。