为 Autoware 创建车辆模型#
介绍#
本页介绍以下适用于车型的软件包:
<YOUR-VEHICLE-NAME>_vehicle_description<YOUR-VEHICLE-NAME>_vehicle_launch
以前我们在 Creating Autoware Repositories 页面步骤.
例如我们创建了 tutorial_vehicle_launch
作为所述步骤的实现示例.请确保
<YOUR-OWN-AUTOWARE-DIR>/
└─ src/
└─ vehicle/
└─ <YOUR-VEHICLE-NAME>_vehicle_launch/
├─ <YOUR-VEHICLE-NAME>_vehicle_description/
└─ <YOUR-VEHICLE-NAME>_vehicle_launch/
如果您的 fork Autoware 元存储库不包含 <YOUR-VEHICLE-NAME>_vehicle_launch 使用正确的文件夹结构
如上图所示,请添加你的 forked <YOUR-VEHICLE-NAME>_vehicle_launch 存储库添加到 autoware.repos 文件
并运行 vcs import src < autoware.repos 命令在您的终端中以在 autoware.repos 文件中导入新包含的存储库.
现在,我们已准备好为我们的车辆修改以下车辆模型包.首先,我们需要重命名描述并启动包:
<YOUR-VEHICLE-NAME>_vehicle_launch/
- ├─ sample_vehicle_description/
+ ├─ <YOUR-VEHICLE-NAME>_vehicle_description/
- └─ sample_vehicle_launch/
+ └─ <YOUR-VEHICLE-NAME>_vehicle_launch/
然后我们将在 sample_vehicle_description 和 sample_vehicle_launch 包的 package.xml 和 CMakeLists.txt 文件中更改包名称. 所以打开package.xml文件,并使用您喜欢的任何文本编辑器或 IDE CMakeLists.txt 文件,并执行以下更改:
更改 package.xml 文件中的 <name> 属性:
<package format="3">
- <name>sample_vehicle_description</name>
+ <name><YOUR-VEHICLE-NAME>_vehicle_description</name>
<version>0.1.0</version>
<description>The vehicle_description package</description>
...
...
更改 CmakeList.txt 文件中的 project() 方法
cmake_minimum_required(VERSION 3.5)
- project(sample_vehicle_description)
+ project(<YOUR-VEHICLE-NAME>_vehicle_description)
find_package(ament_cmake_auto REQUIRED)
...
...
请记住应用名称更改和项目方法 BOTH
<YOUR-VEHICLE-NAME>_vehicle_description和 <YOUR-VEHICLE-NAME>_vehicle_launch ROS 2 包.
完成后,我们可以继续构建所述软件包:
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release --packages-up-to <YOUR-VEHICLE-NAME>_vehicle_description <YOUR-VEHICLE-NAME>_vehicle_launch
Vehicle description#
这个包的主要目的是描述车辆尺寸,车辆的 3D 模型,车辆的 mirror_dimensions ,模拟器模型参数和车辆的 URDF.
vehicle_description 包的文件夹结构为:
<YOUR-VEHICLE-NAME>_vehicle_description/
├─ config/
│ ├─ mirror.param.yaml
│ ├─ simulator_model.param.yaml
│ └─ vehicle_info.param.yaml
├─ mesh/
│ ├─ <YOUR-VEHICLE-MESH-FILE>.dae (or .fbx)
│ ├─ ...
└─ urdf/
└─ vehicle.xacro
现在,我们将根据我们的车辆设计修改这些文件.
mirror.param.yaml#
此文件描述了您的车辆后视镜尺寸 CropBox filter of PointCloudPreprocessor. 这对于从激光雷达的点云裁剪镜子非常重要.
这 mirror.param.yaml 由以下参数组成:
/**:
ros__parameters:
min_longitudinal_offset: 0.0
max_longitudinal_offset: 0.0
min_lateral_offset: 0.0
max_lateral_offset: 0.0
min_height_offset: 0.0
max_height_offset: 0.0
镜像参数文件应该填充这个维度信息,请小心 min_lateral_offset 参数它可以是负值,如下面的 Mirror dimension 图所示.
警告
由于 tutorial_vehicle 中没有镜像,因此所有值都设置为 0.0.
如果您的车辆没有后视镜,您也可以将这些值设置为 0.0.
simulator_model.param.yaml#
此文件是 simulator environment. 请根据您的车辆规格更新这些参数.
有关变量的详细信息,请检查 simple_planning_simulator 包.该文件由以下参数组成:
/**:
ros__parameters:
simulated_frame_id: "base_link" # center of the rear axle.
origin_frame_id: "map"
vehicle_model_type: "DELAY_STEER_ACC_GEARED" # options: IDEAL_STEER_VEL / IDEAL_STEER_ACC / IDEAL_STEER_ACC_GEARED / DELAY_STEER_ACC / DELAY_STEER_ACC_GEARED
initialize_source: "INITIAL_POSE_TOPIC" # options: ORIGIN / INITIAL_POSE_TOPIC
timer_sampling_time_ms: 25
add_measurement_noise: False # the Gaussian noise is added to the simulated results
vel_lim: 50.0 # limit of velocity
vel_rate_lim: 7.0 # limit of acceleration
steer_lim: 1.0 # limit of steering angle
steer_rate_lim: 5.0 # limit of steering angle change rate
acc_time_delay: 0.1 # dead time for the acceleration input
acc_time_constant: 0.1 # time constant of the 1st-order acceleration dynamics
steer_time_delay: 0.24 # dead time for the steering input
steer_time_constant: 0.27 # time constant of the 1st-order steering dynamics
x_stddev: 0.0001 # x standard deviation for dummy covariance in map coordinate
y_stddev: 0.0001 # y standard deviation for dummy covariance in map coordinate
vehicle_info.param.yaml#
此文件存储 Autoware 模块的车辆尺寸.
请使用您的车辆信息进行更新.
您可以参考 车辆尺寸 页面进行详细的尺寸演示.
以下是 sample_vehicle 的 vehicle_info.param.yaml:
/**:
ros__parameters:
wheel_radius: 0.383 # The radius of the wheel, primarily used for dead reckoning.
wheel_width: 0.235 # The lateral width of a wheel tire, primarily used for dead reckoning.
wheel_base: 2.79 # between front wheel center and rear wheel center
wheel_tread: 1.64 # between left wheel center and right wheel center
front_overhang: 1.0 # between front wheel center and vehicle front
rear_overhang: 1.1 # between rear wheel center and vehicle rear
left_overhang: 0.128 # between left wheel center and vehicle left
right_overhang: 0.128 # between right wheel center and vehicle right
vehicle_height: 2.5
max_steer_angle: 0.70 # [rad]
请使用您的车辆信息更新 vehicle_info.param.yaml.
车辆 3D 模型#
您可以通过 autoware 将 .fbx 或 .dae 格式用作 3D 模型.
对于tutorial_vehicle,
我们将 3D 模型导出为 tutorial_vehicle_launch 存储库中的 .fbx 文件. 我们将在 vehicle.xacro 文件中设置 .fbx 文件路径.
vehicle.xacro#
此 .xacro 文件将车辆的 base_link 链接到 3D 网格. 因此,我们需要对这个文件进行一些修改.
<?xml version="1.0"?>
<robot xmlns:xacro="http://ros.org/wiki/xacro">
<!-- load parameter -->
- <xacro:property name="vehicle_info" value="${xacro.load_yaml(`$(find sample_vehicle_description)/config/vehicle_info.param.yaml`)}"/>
+ <xacro:property name="vehicle_info" value="${xacro.load_yaml(`$(find <YOUR-VEHICLE-NAME>_vehicle_description)/config/vehicle_info.param.yaml`)}"/>
<!-- vehicle body -->
<link name="base_link">
<visual>
<origin xyz="${vehicle_info[`/**`][`ros__parameters`][`wheel_base`]/2.0} 0 0" rpy="${pi/2.0} 0 ${pi}"/>
<geometry>
- <mesh filename="package://sample_vehicle_description/mesh/lexus.dae" scale="1 1 1"/>
+ <mesh filename="package://<YOUR-VEHICLE-NAME>_vehicle_description/mesh/<YOUR-3D-MESH-FILE>" scale="1 1 1"/>
</geometry>
</visual>
</link>
</robot>
您还可以修改 roll、pitch、yaw、x、Y、Z 和 Scale 值,以正确定位车辆的位置和方向.
请在完成 vehicle_description 包后构建
cd <YOUR-AUTOWARE-DIR>
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release --packages-up-to <YOUR-VEHICLE-NAME>_vehicle_description <YOUR-VEHICLE-NAME>_vehicle_launch
启动车辆接口#
如果您的车辆接口已准备就绪,
然后,您可以在 vehicle_interface.launch.xml 中添加 vehicle_interface 启动文件.
请检查 创建车辆接口 页面了解更多信息.
用您自己的车辆启动规划模拟器#
完成 sensor_model)、individual_parameters 以及您车辆的车辆型号, 您已准备好使用自己的车辆启动 Planning Simulator. 如果您不确定 Autoware 项目文件夹中的每个自定义包是否已构建,请构建所有包:
cd <YOUR-AUTOWARE-DIR>
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
要启动规划模拟器,在 Autoware 项目文件夹中获取 install/setup.bash 文件, 并在您的终端中运行以下命令:
ros2 launch autoware_launch planning_simulator.launch.xml map_path:=$HOME/Files/autoware_map/sample-map-planning/ vehicle_model:=<YOUR-VEHICLE-MODEL> sensor_model:=<YOUR-SENSOR-KIT> vehicle_id:=<YOUR-VEHICLE-ID>
例如, 如果我们尝试使用 tutorial_vehicle 规划模拟器:
ros2 launch autoware_launch planning_simulator.launch.xml map_path:=$HOME/Files/autoware_map/sample-map-planning/ vehicle_model:=tutorial_vehicle sensor_model:=tutorial_vehicle_sensor_kit vehicle_id:=tutorial_vehicle
规划模拟器将打开,您可以为您的车辆设置初始姿势, 使用 2D Pose Estimate 按钮或按键盘上的 P 键. 您可以单击所有位置进行车辆初始化.