SVL 仿真器:与 Autoware.Auto 一起运行 SVL 仿真器
SVL 是面向自动驾驶汽车开发人员的基于 Unity 的多机器人仿真器。 它提供了一个仿真世界
- 为 Autoware.Auto 创建传感器输入,
- 允许用户手动驾驶自我车辆,类似于电脑游戏,
- 将其他移动的交通参与者放置在场景中。
有关仿真器的更多信息,请参阅 https://www.svlsimulator.com/docs/getting-started/getting-started/ 。
要求
以下指南假定 SVL 仿真器将从 ADE 容器内运行,但并非严格要求。
使用仿真器
使用仿真器涉及以下步骤:
- 启动它
- 配置集群(一步)
- 选择或创建仿真
- 开始仿真
本节概述了这些步骤。 您还需要一个 SVL 帐户才能使用仿真器,如果您没有,请立即在 https://wise.svlsimulator.com/ . 启动仿真器
按照安装部分 中的说明安装 ADE :
使用 SVL 卷启动 ADE:
$ cd ~/adehome/AutowareAuto
$ ade --rc .aderc-amd64-foxy-lgsvl 开始 --update --enter |
选择不同的 .aderc-*-lgsvl 文件以手动选择 ROS 版本。
要启动 SVL 仿真器,请在同一终端窗口中:
故障排除
如果仿真器窗口以黑屏打开并且应用程序立即终止,请查看日志文件
~/.config/unity3d/LGElectronics/SVLSimulator/Player.log |
一种可能的解决方法是从 ADE 中删除冲突的图形驱动程序
ade$ sudo apt remove mesa-vulkan-drivers |
并再次启动仿真器。
如果点云数据或图像数据未在 rviz 中可视化,但边界框等其他数据可见,请在 ade 中运行以下命令,
ade$ sudo apt remove mesa-vulkan-drivers |
配置集群
您需要使您的 ADE 环境成为有效的 SVL 集群才能启动任何仿真。 这是一次性配置步骤。
在您第一次运行仿真器时,应该有一个只有一个按钮的窗口: LINK TO CLOUD . 单击它, https://wise.svlsimulator.com/ 应该会打开一个 Web 浏览器。 您可以通过提供集群名称并单击 Create cluster 按钮在那里创建一个新集群。
有关链接到云的更多信息: 文档 。 创建仿真
只需在浏览器中单击几下即可创建仿真。 以下步骤假设启动成功,并通过 Autonomous Valet Parking Demonstration 的设置说明配置过程。
启动浏览器并转到 SVL 仿真器 Web 界面 。 您应该已经设置了您的帐户,因此请使用屏幕右上角的按钮登录。
选择地图
目标是将 AutonomouStuff 停车场地图添加到您的图书馆。 如果该地图已经在您的图书馆中,则无需执行任何操作。
将地图添加到您的图书馆:
- 转到 Store -> Maps 。
- 单击地图 + 旁边的按钮 AutonomouStuff (您可以使用搜索栏按名称过滤)。
选择地图
配置车辆
目标是将 AWFLexus2016RXHybrid 车辆添加到您的图书馆。 如果这辆车已经在您的图书馆中,则无需执行任何操作。
将车辆添加到您的图书馆:
- 转到 Store -> Vehicles 。
- 单击车辆 + 旁边的按钮 AWFLexus2016RXHybrid (您可以使用搜索栏按名称过滤)。
添加车辆
添加 ROS2ForUnitySVLBridge
目标是将原生 ROS2 桥添加到您的库中。 如果此桥已在您的库中,则无需执行任何操作:
您也可以 ROS2ForUnitySVLBridge 使用搜索栏进行搜索。
配置车辆传感器
将车辆添加到库后:
- 转到 Library -> Vehicles 。
- 点击 AWFLexus2016RXHybrid 头像。 您将被转至车辆编辑页面。
- 单击 Sensor Configurations 部分附近的按钮以修改传感器配置。
配置传感器
请注意,已经有一个 Autoware.Auto 配置。 为了确保我们运行的是最新版本,最好创建一个新版本并使用最新版本的传感器配置文件:
- 点击 + Create New Configuration 页面底部的按钮。
- 设置配置名称并选择 ROS2ForUnitySVLBridge 作为网桥。 这是 ROS2 桥接器的本机实现。
- 确认。
在配置编辑视图中:
- 单击 {...} 可视化编辑器(预览)窗口附近的符号。
- 将avp-sensors.json 文件的内容粘贴 到编辑窗口中。 Configurator 窗口现在应该填充一堆传感器。
- 单击 Save 以保存配置。
json配置文件
而已。 现在您拥有一辆具有有效配置的车辆。
选择/创建仿真
SVL 仿真器允许您存储和重复使用多个仿真配置。 要使用现有仿真,请导航到 Simulations 选项卡并按所需实例的“运行仿真”按钮。 仿真器现在应该在 SVL 窗口中启动。
要创建新的仿真,请按照以下步骤操作。
笔记 可能有一些 AutowareAuto 演示默认使用自己的预设仿真,这利用了 LGSVL API。 这将自动将仿真配置为演示的推荐设置。 对于这种情况,您需要创建一个仅 API 仿真。
- 切换到 Simulations 选项卡,点击 Add new 按钮;
- 输入名称、描述并选择一个集群。 点击 Next ;
- 对于预设仿真:
或自定义仿真:
- Random Traffic 从下拉菜单中 选择运行时模板;
- 使用您的传感器配置 选择 AutonomouStuff 地图和车辆。 AWFLexus2016RXHybrid 点击 Next ;
- 选择 Other ROS 2 Autopilot 自动驾驶仪并保留 Bridge Connection 默认值。
- 单击 Next ,然后单击 Publish 。
您可以访问 SVL 文档 以获得更深入的描述。 开始仿真
创建仿真后,您可以通过单击 视图 Run Simulation 中仿真配置小部件旁边的按钮来运行它。 Simulations
开始仿真,预设仿真
开始仿真,自定义仿真
预设仿真
API Ready 文本应出现在 SVL Simulator 窗口中(而不是浏览器中) 。
API Ready 仿真器视图
恭喜,如果到目前为止一切正常。 SVL 设置完成。
自定义仿真
雷克萨斯应该出现在 SVL Simulator 窗口中(而不是在浏览器中)。
下一步是控制雷克萨斯并四处行驶。 按下 F1 可查看快捷方式列表,然后按下左下角的 cookie 按钮以获取更多 UI 控件。
基本命令是使用箭头键来转向和加速,使用 Page Up 和 Page Down 键在前进和后退之间切换。
恭喜,如果到目前为止一切正常。 SVL 设置完成。
控制雷克萨斯
与 Autoware.Auto 桥接
SVL 使用与 ROS 2 约定不直接一致的约定。 实现的行为的完整列表
lgsvl_interface 是:
- 将 CCW 正向旋转的控制输入转换为 SVL 仿真器所期望的 CCW 负向输入
- VehicleControlCommand 通过可参数化的一维查找表提供从 RawControlCommand SVL 预期 的映射
要 lgsvl_interface 手动运行,请在新的终端窗口中输入以下内容:
$ ade 输入
ade$ source /opt/AutowareAuto/setup.bash
ade$ ros2 运行 lgsvl_interface lgsvl_interface_exe --ros-args --params-file /opt/AutowareAuto/share/lgsvl_interface/param/lgsvl.param.yaml |
Autoware.Auto 使用 PointCloud2 消息 x,y,z,intensity 而不是 x,y,z,intensity,timestamp 字段。
该节点将转换 points_xyzi
运行 point_type_adapter 以转换消息。
$ ade 输入
ade$ source /opt/AutowareAuto/setup.bash
ade$ ros2 启动点_type_adapter point_type_adapter.launch.py |
有关使用 VehicleControlCommand SVL 的示例,请在新的终端窗口中运行以下演示:
$ ade 输入
ade$ source /opt/AutowareAuto/setup.bash
ade$ ros2 启动 lgsvl_interface lgsvl_vehicle_control_command.launch.py |
在 LGSVL 上运行 Autoware 操纵杆演示
要测试 Autoware 和 LGSVL 安装,请按照以下说明使用 Autoware 在 LGSVL 中使用操纵杆驾驶车辆。
准备一个操纵杆。 大多数游戏杆都可以在 /dev/input/js0 . Autoware 原生支持罗技 F310 摇杆,其映射文件可以在 joystick_vehicle_interface_nodes 包中找到。
对于其他游戏杆,需要创建类似的映射文件。
停止任何正在运行的 ADE 容器:
停止
启动一个新的 ADE 容器并将操纵杆设备传递给它,假设 js0 是您的操纵杆设备。 然后启动仿真器:
$ ade --rc .aderc-amd64-foxy-lgsvl 开始 --update --enter -- --device /dev/input/js0
ade$ /opt/lgsvl/仿真器 |
在 LGSVL 中,创建并启动上述仿真场景。
最后,在新终端中启动 Autoware 操纵杆演示:
$ ade 输入
ade$ source /opt/AutowareAuto/setup.bash
# 如果您使用的是罗技 F310 操纵杆:
ade$ ros2 启动 joystick_vehicle_interface_nodes lgsvl_joystick.launch.py
# 或者,如果您有自定义操纵杆映射:
ade$ ros2 启动 joystick_vehicle_interface_nodes lgsvl_joystick.launch.py joy_translator_param:=/path/to/your/joystick/config.param.yaml |
|