原文链接:进阶课程㉚丨Apollo ROS背景介绍

ROS是机器人学习和无人车学习最好Linux平台软件,资源丰厚。无人车的规划、控制算法通常运行在Linux系统上,各个模块通常使用ROS进行连接。

上周阿波君为大家详细介绍了「进阶课程㉙Apollo控制技术详解——控制器的类型」。

主要介绍控制器的类型,大致分为三类,分别是开环控制、前馈环控制后馈环控制。其中详细地讲解了前馈环控制器的分类以及控制策略,控制策略主要介绍了三种,分别是Optimal Control(优化控制)、 Adaptive Control(自适应控制)、Robust Control(鲁棒性控制)等。

本周阿波君将继续与大家分享Apollo ROS介绍——背景的相关课程。下面,我们一起进入进阶课程第30期。

目录

1.引入ROS的背景介绍

2.选择ROS的原因


1.引入ROS的背景介绍

                                                                                                        自动驾驶系统组成

如上图所示:自动驾驶系统包括障碍物检测、行为决策、路径规划等一系列复杂的工程模块,同时还要支持激光雷达、相机、GPS等一系列传感器的实时数据收集和实时处理。如何将这些功能模块相互独立又相互交互集成一起,构建成一个稳定的自动驾驶系统是一个巨大的挑战,也是自动驾驶计算框架所承载的基本功能。

首先自动驾驶系统还处在一个快速发展的阶段,算法整体方案还在持续迭代优化。使用框架开发,可以将更多的精力放在算法模块的迭代上。开发者不需要关心具体配置管理、部署运行、底层通信等功能。

其次是感知、定位、决策控制等模块各自承载了一部分独立功能,相互之间有一定的数据依赖。框架能够在开发阶段减少各个模块之间的耦合,在运行阶段可以将各个模块串联起来。

最后是自动驾驶涉及大量的图像点云处理算法,对于可视化和调试工具有很大的需求。比如调试过程中,障碍物检测需要看Detection的那个框准不准;路径规划需要看自动驾驶算法规划的路径是否符合当前的一些决策行为;定位也需要看车辆当前是否在准确的车道内。


2.选择ROS的原因

                                                                                                        ROS的基本框架

上图是一个ROS的基本框架,自动驾驶底层通信框架选择ROS,主要有三个方面的原因:

  1. ROS是一个比较强大、灵活的机器人编程框架。从软件架构的层面来说,它是一个基于消息传递的分布式多进程框架,很早就被机器人行业广泛使用。很多著名的机器人开发框架,如基于四元数的坐标转换、3D点预处理驱动、定位算法、SLAM等都是基于ROS开发的开源的现成方案。

  2. ROS基于消息机制,开发者可以根据功能把软件拆分成独立的子模块,子模块通过不断的组合能够建立起比较复杂的系统来完成复杂的功能。

  3. ROS是学术界广泛使用的一个框架,对实验各种新算法提供了一些支持。

基于以上三点,我们在初期选择ROS作为自动驾驶底层框架,用于快速验证顶层算法和技术方案。

Apollo进阶课程㉚丨Apollo ROS背景介绍相关推荐

  1. Apollo进阶课程㊱丨Apollo ROS深入介绍

    原文链接:进阶课程㊱丨Apollo ROS深入介绍 ROS是一个强大而灵活的机器人编程框架,从软件构架的角度说,它是一种基于消息传递通信的分布式多进程框架.ROS本身是基于消息机制的,可以根据功能把软 ...

  2. Apollo进阶课程㉟丨Apollo ROS原理—4

    原文链接:进阶课程㉟丨Apollo ROS原理-4 ROS是一个强大而灵活的机器人编程框架,从软件构架的角度说,它是一种基于消息传递通信的分布式多进程框架. ROS本身是基于消息机制的,可以根据功能把 ...

  3. Apollo进阶课程㉝丨Apollo ROS原理—2

    原文链接:进阶课程㉝丨Apollo ROS原理-2 在ROS系统中,从数据的发布到订阅节点之间需要进行数据的拷贝.在数据量很大的情况下,很显然这会影响数据的传输效率.所以Apollo项目对于ROS第一 ...

  4. Apollo进阶课程㉜丨Apollo ROS原理—1

    原文链接:进阶课程㉜丨Apollo ROS原理-1 ROS在开发过程中,基于功能把整个自动驾驶系统分成多个模块,每个模块负责自己消息的接收.处理.发布.当模块需要联调时,通过框架可以把各个模块快速的集 ...

  5. Apollo进阶课程㊳丨Apollo平台的快速入门

    原文链接:进阶课程㊳丨Apollo平台的快速入门 Apollo是向汽车行业及自动驾驶领域的合作伙伴提供一个开放.完整.安全的软件平台,帮助他们结合车辆和硬件系统,快速搭建一套属于自己的完整的自动驾驶系 ...

  6. Apollo进阶课程㊲丨Apollo自动驾驶架构介绍

    原文链接:进阶课程㊲丨Apollo自动驾驶架构介绍 自动驾驶硬件架构:一般采用激光雷达作为主要感知传感器,同时结合摄像头.GPS/IMU.毫米波雷达.超声波雷达等,以NVIDIA Drive PX2 ...

  7. Apollo进阶课程㊸丨Apollo实战——障碍物感知和路径规划能力实战

    原文链接;进阶课程㊸丨Apollo实战--障碍物感知和路径规划能力实战 环境感知在自动驾驶汽车应用中占据了核心地位.一辆车要实现自动驾驶,障碍物感知是最基础也是最核心的功能. 上周阿波君为大家详细介绍 ...

  8. Apollo进阶课程㊷丨Apollo实战——车辆与循迹驾驶能力实战

    原文链接:进阶课程㊷丨Apollo实战--车辆与循迹驾驶能力实战 循迹自动驾驶是指让车辆按照录制好的轨迹线进行自动驾驶,其涉及到自动驾驶中最基本的底盘线控能力.定位能力.控制能力,是自动驾驶系统的一个 ...

  9. Apollo进阶课程㊶丨Apollo实战——本机演示实战

    原文链接:进阶课程㊶丨Apollo实战--本机演示实战 Apollo是一个开放的.完整的.安全的平台,将帮助汽车行业及自动驾驶领域的合作伙伴结合车辆和硬件系统,快速搭建一套属于自己的自动驾驶系统. 上 ...

最新文章

  1. python好学吗 老程序员-想自学程序员,朋友推荐了python,靠谱吗?
  2. 智能解析php源码,PHP源码:XyPlayer在线影视v3.8二次智能解析源码
  3. 集成 websocket 的四种方案
  4. 取消input、textarea选中后的默认边框样式
  5. jframe运行和预览大小不一样_在泉州楼市中12个热门置业板块中,购房竞争压力大小各不一样...
  6. LigoWave(力格微)无线网桥稳定性探秘——私有协议
  7. 任何一台计算机都可以安装win 7系统,最全面win7系统如何安装
  8. Java排序之归并排序
  9. Python:检查‘Dictionary‘是否为空似乎不起作用
  10. 贪吃蛇游戏设计(一)————游戏策划
  11. 母婴群如何引流?孕妈群如何引流?母婴群怎么运营好?
  12. Python入门者必须吃透嚼烂的69个内置函数一(1含案例详解)
  13. 软件设计·体系结构设计(Architectual Design)
  14. Python,海龟作图,闪避球小游戏
  15. 读《有效管理的5大兵法》笔记摘录(一)核心价值观:求实、进取、创新、协同、分享
  16. (入门、全面、通用)树莓派Raspbian系统安装配置,篇一
  17. Photoshop:给MM去斑的最简单方法
  18. 02 QEMU默认支持的所有开发板、芯片列表
  19. vscode文件图标消失
  20. 用户注册进行密码加密MD5

热门文章

  1. .gitignore文件_Java小白入门,Git忽略文件.gitignore详解
  2. 1506G. Maximize the Remaining String
  3. 联想服务器系统安装bios设置,Windows 8操作系统如何通过Legacy BIOS与UEFI两种模式安装...
  4. 使用junit+mockito进行mock测试实例
  5. oracle负数怎么比较大小,输出负数【oracle学习吧】_百度贴吧
  6. 水深平均的二维浅水方程推导
  7. AddStaticMeshComponent
  8. TSubclassOf
  9. java实现c语言的函数_C语言实现返回字符串函数的四种方法
  10. python的river安装