Autoware.ai开源自动驾驶系统学习日记(三):使用Autoware生成ROSBAG的路径点

本文详细描述了如何利用Autoware的内置功能,从ROSbag和点云PCD文件中提取路径点,包括加载点云地图、点云降采样、坐标转换、vel_pose_connect设置和waypoint_saver的路径保存,最终在rviz中展示路径点的过程。

目标:

`本篇文章记录我使用autoware内置功能生成rosbag中的路径点文件


内容:

  1. 准备工作
  2. 加载点云地图 PCD 文件
  3. 点云降采样过滤
  4. 设置从map到nase link的转换(ndt_matching)
  5. 启动[vel_pose_connect]
  6. 设置路径点文件保存路径
  7. 继续播放点云数据包
  8. rviz 查看路径点

正文来了:

此次生成的路径点文件来自于上一篇文章中采集的ROSBAG和点云文件。

准备工作

单独打开Autoware

roslaunch runtime_manager runtime_manager.launch

加载点云数据.bag 文件
回放点云数据
加载从 base_link 到 velodyne 雷达坐标系的 TF,加载小车模型
设置从 world 到 map 转换
这部分内容都是上一篇文章的前面几个步骤,这里就不再重复了,想了解的传送门在这里:
链接:Autoware.ai开源自动驾驶系统学习日记(二):使用Autoware建图功能对ROSBAG 进行建图

加载点云地图 PCD 文件

打开[map]页面,点击[point cloud]的[ref],选择之前建图的 3D 点云地图.pcd文件,点击[point cloud]按钮,此时下方会出现一个进度条,当进度条显示加载了 100%并出现[OK]字样时,证明点云地图加载完毕。

在这里插入图片描述

点云降采样过滤

打开[sensing]页面,找到[points_downsampler]下的[voxel_grid_filter]选项,设置[app]的一些参数后,勾选[voxel_grid_filter]。voxel_grid_filter是一种常见的点云下采样技术。这种方法主要用于减少点云数据的数量,以便更高效地进行后续处理。这个方法的名字来自于它的工作原理:它将3D空间划分为一系列的立方体格子,每个格子称为一个体素(voxel,这个词是由"volume"和"pixel"组合而成的)。

在voxel_grid_filter中,每个体素内的所有点被替换为它们的质心或者其他的代表值。例如,可以使用体素内所有点的平均位置作为代表值。这样,每个体素就只保留一个点,大大减少了点的数量。

voxel_grid_filter的一个主要优点是它可以大大降低数据处理的复杂性,同时尽量保留原始点云的主要结构特征。

在这里插入图片描述

Voxel Leaf size:体素降采样算法中的体素叶大小,室内可设置小点,室外可设置大点,我这里设置为0.03。

设置从map到nase link的转换(ndt_matching)

找到[Computing]左菜单栏下的[ndt_matching]选项,设置[app]里面的参数后(保持默认就可以了),勾选[ndt_matching]。
在这里插入图片描述

在这里插入图片描述

启动[vel_pose_connect]

找到 [Computing] 左菜单栏下的 [vel_pose_connect] ,打开 [app] 并确保选项 [Simulation_Mode] 没有被勾选,退出并勾选 [vel_pose_connect]

vel_pose_connect节点用作输出车辆的位姿和速度信息
在这里插入图片描述

设置路径点文件保存路径

找到 [Computing] 右菜单栏下的 [waypoint_saver] ,打开 [app] ,点击[ref]选择保存的路径,勾选上[save /current_velocity],退出并勾选[waypoint_saver]
在这里插入图片描述

继续播放点云数据包

点击进 [Simulaton]页面,再次点击[Pause]按钮可以继续播放数据,等待数据包回放结束便可,路径点文件会自动保存在设置好的路径下。
在这里插入图片描述

rviz 查看路径点

在路径点生成过程中,源码安装方式的可以点击界面右下角的[rviz] 打开rviz,此时我们可以看到 rviz 中逐渐出现一条路径:
在这里插入图片描述

### 自动驾驶测试数据回灌方法与工具 #### 数据回灌的概念 数据回灌是一种用于模拟真实场景并验证自动驾驶功能的有效手段。它通过将预先录制的真实环境数据重新输入到车辆的电子控制单元(ECU)中,从而避免实际道路测试中的高昂成本和复杂性[^1]。 #### 实施数据回灌的关键技术 1. **硬件在环仿真(HIL-Simulation)** HIL 是一种常见的测试方式,其中 ECU 被放置在一个受控环境中,并接收来自虚拟或预录的数据流作为输入信号。这种方法允许开发者评估算法性能而不依赖于真实的物理设备。例如,在 ADAS 功能测试中,可以通过 HIL 平台向 ECU 提供感知层数据来观察其响应行为[^1]。 2. **YUV 数据直接回灌** 对于视觉传感器而言,可以直接将 YUV 格式的图像帧序列注入至目标系统内部进行分析处理。此过程通常涉及调整某些参数配置使得 ISP (Image Signal Processor) 处于旁路状态以便让未经修改过的原始像素值到达后续阶段完成进一步计算操作[^3]。 3. **网络流量重现** 另外一个重要方面是对 CAN/LIN 总线上流通的消息予以精确复制再现;这有助于检验通信协议栈以及关联逻辑是否正常运作当面临不同工况条件变化时的表现情况。利用像 CANoe 这样的专用软件可以帮助简化该类任务执行流程并且支持多种版本兼容特性。 #### 常见工具介绍 - **CANoe**: 由 Vector 公司提供的一款综合性汽车总线开发调试平台, 它不仅限于传统意义上的车载网络管理范畴还扩展到了高级辅助驾驶系统的集成验证层面之上。用户可以根据具体需求灵活定制脚本实现复杂的交互动作组合同时保持良好的用户体验界面友好度较高易于上手掌握基本技能即可开展工作[^3]. - **dSPACE Simulation Tools**: dSPACE 的产品系列覆盖了从早期设计探索到最后生产部署各个阶段所需的各种资源选项其中包括但不限于 ASAM XIL 接口标准遵循程度较高的实时操作系统 RTI(Run-Time Interface), 它能很好地满足大多数基于模型驱动架构 MBD(Model-Based Design) 下提出的各类挑战要求. #### 注意事项 尽管采用上述提到的技术方案可以在很大程度上缓解实地试验所带来的压力但仍需注意以下几: - 确保所选用的基础资料具备足够的代表性能够全面反映可能出现的所有极端状况; - 加强跨部门协作促进信息共享最大化挖掘潜在价值创造更多商业机会; ```python # 示例代码展示如何使用 Python 控制 CANoe 进行简单的消息发送 import can bus = can.interface.Bus(bustype='vector', channel=0, bitrate=500000) msg = can.Message(arbitration_id=0x7df, data=[2, 1, 0, 1, 0, 0, 0, 0], is_extended_id=False) try: bus.send(msg) print("Message sent on {}".format(bus.channel_info)) except can.CanError: print("Message NOT sent") ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值