RTI_DDS自定义插件开发 10 官方案例
加速自主汽车的发展
在高性能,安全关键环境中管理多种数据流
管理高性能,安全关键环境中的各种数据流
介绍
RTIConnext®DDS为许多行业的自主应用提供核心连接,包括自动驾驶汽车。 Connext DDS的根源在于自动化机器人技术,并广泛应用于交通, 航空 和医疗行业的任务关键和 安全关键 系统。 它具有解决实时系统基本要求的先天能力,如可靠性, 安全 和性能。
自动驾驶车辆是自主性最苛刻的应用之一。 他们依赖于多种服务质量(QoS)要求的数据源。 它们还集成了许多具有不同安全关键级别的应用程序。这就是Connext DDS Databus可以大大简化系统架构,集成和软件开发的地方。 它包括对实时QoS的全面控制,内容过滤器以及可针对每个数据流和应用程序进行调整的弹性。
这个用例适用于开发 应用 用于自动驾驶汽车和高级驾驶辅助系统(ADAS),包括:
- 光检测和测距(LiDAR)点云
- 视觉处理
- 传感器融合
- 容错
- 路径规划
- 车辆控制
- 警告系统
- 记录系统
下面的编码示例显示了自动车辆开发人员如何使用Connext DDS来充分利用RTI在自动机器人,安全关键 系统 以及最先进的架构来简化开发,设计和集成。 下图显示了一个自治汽车系统架构的示例。
RTI Connext DDS在汽车应用中的应用
这个例子做了什么
这个例子涉及一个由一个简单的防撞系统组成的系统,该系统有不同传感器的输入。 警告显示在HMI(人机界面)应用程序中并发送到车辆控制平台。 该示例显示传感器以不同的速率和大小发布数据。 不同的应用程序通过RTI Connext Databus连接,如下图所示。
显示了六个模块 包括 3级自治系统,将传感器输入组合到传感器融合模块,碰撞避免和检测系统,人机界面以及与模拟CAN总线车辆平台的接口。 数据来源包括视力, 激光雷达 和CAN总线。
LiDAR(激光雷达)
- 发布LiDAR数据
- 我们称之为“大数据”的一个例子,因为数据量和速率都很高
- 生成用于仿真目的的周期性随机数据
- 数据的样本大小是360 KB
视觉传感器(VisionSensor)
- 发布视觉传感器数据
- 以比LiDAR更低的速率发送少量数据(几百字节)
- 传感器数据是从CSV文件读取的,可以修改以发布不同的数据; 文件名是在视觉传感器的属性配置中指定的
- 通用传感器的一个例子; 视觉传感器的多个实例可以运行并且每个传感器具有其自己的唯一标识符
车辆平台(vehiclePlatform)
- 向碰撞避免系统发布有关车辆平台的信息
- 订 控制命令
- 示例实施将控制数据复制到状态数据中
- 无法从控制主题派生的其他元素从CSV文件读取; 文件名是在车辆平台的属性配置中指定的
传感器融合模块(sensorFusion)
- 订 到LiDAR和视觉传感器数据
- 将聚合的视觉传感器信息发布到防撞系统,以识别潜在的碰撞
- 显示收到的时间戳 激光雷达 数据,但不以其他方式处理
- 可以接收来自一个或多个视觉传感器的数据; 连接越多,传感器对象列表就会越大(最多128个对象,大小超过5k)
避碰系统(collisionAvoidance)
- 订 到平台状态和传感器数据
- 如果检测到碰撞,则发布警报
简约来演示数据流; 没有实现实际的避免碰撞算法 - 将第一个对象的一些元素复制到平台状态中,以便平台状态具有更改值
- 如果传感器对象字段的大小的值大于2,则生成警报; 预先封装的数据将每200个样本触发一次警报
- 忽略平台状态信息
HMI( HMI )
- 订 来自防撞系统的警报
- 弹出 如果设置了警报标志之一,则显示警告框
数据模型注意事项
在DDS中对数据进行建模时,最大的考虑因素之一是“什么表示我的数据流中的单个元素或现实世界对象?” 在传感器数据的情况下,您通常可以假设每个传感器应该被表示为一个独特的对象。 在这个例子中,我们正在为每个主题分别建模我们的数据类型。 该 IDL 目录有每个主题的IDL文件以及具有通用定义的通用文件。 RTI Connext DDS使用IDL - 接口定义 语言已定义 由OMG来定义语言无关的 数据类型 。
在DDS中,这些独特的真实世界对象被建模为 实例 。 实例由称为的一组唯一标识符来描述 ,由// @键符号表示。
所以,在我们的例子中,我们使用sensorId作为关键字段:
long sensorId; //@键
传感器融合和冲突避免发布的数据类型没有键值,因为每个应用程序只有一个实例。
QoS注意事项
LiDAR样本很大,因此发布者已被配置为异步发布者。 有关异步发布程序的更多信息,请参见RTI Connext Core Libraries用户手册。
预计传感器数据将定期到达。 因此,QoS设置有一个设定的最后期限。 唯一的例外是驱动程序警报没有设置截止日期,因为警报不会定期发生。 作者的最后期限需要设置得高于或等于读者。 在QoS中 文件 作者的截止日期设置为11秒,读者的截止日期设置为10秒。 这比你在现实生活中期待的要高得多。 但是,您可能希望以较慢的速度运行该示例以查看输出。 因此,截止日期设置得较低,以避免在运行速度较慢时错过最后期限的消息。 您可以在RTI Connext Core Libraries用户手册中了解关于截止日期的更多信息。
警报主题具有瞬态本地属性集。 这意味着,当HMI或其他用户启动时,它将获得上次发布的警报状态。 该 历史 属性设置为1,这意味着用户在启动时将获得单个警报状态。 活力属性已配置为1分钟。 这样,如果作者消失,HMI或任何用户都将收到通知。 否则,如果没有定期ping,读者不知道作者是否还活着。 您可以在RTI Connext Core Libraries用户手册中了解更多有关生动的内容。
RTI_DDS自定义插件开发 10 官方案例相关推荐
- UE5 官方案例Lyra 全特性详解 10.进度汇报和视频推荐
UE5 官方案例Lyra 全特性详解 0. 进度汇报 0.1 2022 Epic MegaJam概要 0.1.1 如何参赛 0.1.2 参赛资格 0.1.3 比赛时间 0.1.4 奖品 0.1.5 * ...
- Unity官方案例——Roll a ball
现在的我还是一名 Unity3d 游戏开发初学者,所以现在都在围绕 Unity3d 的官方案例来做练习,为此写下一些文章作为笔记,文章中难免会有一些疏漏,有些不当之处还望指正. 项目简介 首先玩家可以 ...
- Unity官方案例同步学习-学习日记(二)——敌人AI寻路思路设计和部分方法
游戏中敌人AI的设计详解 主旨:承接上一篇文章player的续作,这边文章主要从代码上分析一个游戏中敌人AI的大部分的功能实现:以及游戏中在设计敌人时的思路和正确的方向,如有错误,希望每一个人都可以指 ...
- 解决gensim fasttext官方案例报错TypeError: Either one of corpus_file or corpus_iterable value must be provide
完整报错为:TypeError: Either one of corpus_file or corpus_iterable value must be provided 解决方法 将官方案例中传递参数 ...
- caffe︱cifar-10数据集quick模型的官方案例
准备拿几个caffe官方案例用来练习,就看到了caffe中的官方案例有cifar-10数据集.于是练习了一下,在CPU情况下构建quick模型.主要参考博客:liumaolincycle的博客 配置: ...
- Unity3D官方案例1-星际航行游戏Space Shooter
Unity3D官方案例1-星际航行游戏Space Shooter [1]学习中的使用的类 1.Input:使用此类读取常规游戏设置中的轴,访问移动设备的多点触控和加速度. 本例使用到的方法: GetA ...
- Unity官方案例噩梦射手开发总结<一> 角色的攻击功能实现
愉悦的寒假生活总是会猝不及防地迎来尾声,这也意味着我大一生活的进度条已经过半了.幸运的是,在我某位优秀的学长的带领下,我完整地开发出来了unity的官方案例噩梦射手并基本实现所有功能,也是让我这个大一 ...
- UE5 官方案例Lyra 全特性详解 11.背包系统Inventory System 0
UE5 官方案例Lyra 全特性详解 0. 前言 1. 前置声明 2. 修复背包游戏体验不加载的问题 2.1 通过输出日志的警告找到问题根源 2.2 修复资源加载的问题 3. 交互按钮不起作用 4. ...
- UE5 官方案例Lyra 全特性详解 12.背包系统Inventory System 1添加物品到背包
UE5 官方案例Lyra 全特性详解 0. 前言 1. 初始化背包 2. 添加物品定义AddItemDefinition 3. 添加物品到背包槽AddItemToSlot 0. 前言 上一篇背包系统I ...
- MATLAB调用Origin绘图官方案例学习
MATLAB调用Origin origin官方案例 1. 绘图 2 创建修改workbook 日常处理实验数据绘图用的都是origin,origin自带的模板和调色板比matlab好看太多(origi ...
最新文章
- stm32f302实现斩波控制步进电机_什么是步进电机控制器?
- ACMNO.25 C语言-间隔输出 写一函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字间空格。如输入1990,应输出1 9 9 0。 输入 一个四位数 输出 增加空格输出
- 都啥时候了,你还怕学了Python找不到工作?
- 深入理解计算机系统:网络编程 下 一个简单的web服务器
- 使用SSH执行远程登录
- 利用shell脚本统计代码行数
- 作为一个web开发人员,哪些技术细节是在发布站点前你需要考虑到的
- 纯虚函数能为private吗?
- panda 透视表 计算比例_用案例教你玩Excel-《第2例:给领导汇报考评结果-拖拽的透视表》...
- 关于jsp中jstl-core标签循环遍历的使用
- 以自己范例,说明如何写操作文档
- html焦点自动轮播幻灯片js,js实现幻灯片轮播图
- 华为云服务-应用部署2-创建环境到创建应用
- 基于Springboot的Java项目--新冠疫情统计系统
- puzzle(0131)《迷宫》
- 微信关注二维码不显示
- TOOLFK工具-在线汉字/字母/人民币/简繁体转换工具
- Head First C#中文版 图文皆译 (page13)
- 项目管理文档_PPM优课第18期 | 不同项目管理模式“武装”质量管理体系的搭建...
- 计算机网络:网络应用服务