Creating vehicle and sensor description#
Introduction#
This page introduce following topics.
- YOUR_VEHICLE_description
- YOUR_SENSOR_KIT_description
- individual_parameter
- YOUR_VEHICLE_launch
- YOUR_SENSOR_KIT_launch
1. YOUR_VEHICLE_description#
In YOUR_VEHICLE_description
, the following configurations are set:
- vehicle_info.param.yaml (must be changed)
- mesh file (*.dae)
- mirror.param.yaml(must be changed)
- simulator_model.param.yaml
- vehicle.xacro
1. vehicle_info.param.yaml#
Defines the vehicle dimensions. For more details on each parameter, please click here.
2. mesh file#
A 3D model file used for visualization in rviz.
3. mirror.param.yaml#
Set according to the vehicle dimensions. Used in the crop-box-filter of PointCloudPreprocessor.
4. simulator_model.param.yaml#
Configuration file for the simulator environment.
5. vehicle.xacro#
The entry point file that defines the entire URDF of the vehicle. It refers to sensors.xacro
, which specifies the sensor mounting positions.
2. YOUR_SENSOR_KIT_description#
In sensor_kit_description, the following files are configured:
- sensors.xacro (must be changed)
- sensor_kit.xacro (must be changed)
1. sensors.xacro#
Resolves the positions of sensors with base_link
as the parent frame and defines the positions and orientations based on sensors_calibration.yaml
in individual_params.
In Autoware,
<YOUR_SENSOR_KIT_description>/config/sensors_calibration.yaml
is not used.
About sensor_kit_base_link#
A sensor_kit
refers to a subset that includes multiple sensors, and sensor_kit_base_link
is the name of its frame.
The positions and orientations within the kit are defined in sensor_kit.xacro
.
2. sensor_kit.xacro#
Resolves the positions of sensors with sensor_kit_base_link
as the parent and defines the positions and orientations based on sensor_kit_calibration.yaml
in individual_params.
In Autoware,
<YOUR_SENSOR_KIT_description>/config/sensor_kit_calibration.yaml
is not used.
3. individual_parameter#
The individual_parameter
is where parameters referenced by sensors.xacro
and sensor_kit.xacro
are stored. As the name imply, it is intended to manage parameters for multiple individual instances.
Introduction to Various Parameters#
- sensors_calibration.yaml (must be changed)
- sensor_kit_calibration.yaml (must be changed)
- imu_corrector.param.yaml
1. sensors_calibration.yaml#
A file that defines the mounting positions and orientations of sensors with base_link
as the parent frame.
2. sensor_kit_calibration.yaml#
A file that defines the mounting positions and orientations of sensors with sensor_kit_base_link
as the parent frame.
3. imu_corrector.param.yaml#
A file used by imu_corrector
.
4. Folder Structure#
Below is the default directory structure.
individual_params/
└─ config/
└─ default/
└─ sample_sensor_kit/
├─ imu_corrector.param.yaml
├─ sensor_kit_calibration.yaml
└─ sensors_calibration.yaml
Copy and create a folder based on your YOUR_SENSOR_KIT
name.
individual_params/
└─ config/
└─ default/
- └─ sample_sensor_kit/
+ └─ <YOUR_SENSOR_KIT>/
├─ imu_corrector.param.yaml
├─ sensor_kit_calibration.yaml
└─ sensors_calibration.yaml
4.1 Sample Usage#
Here is an example of managing parameters for multiple instances.
Add a <vehicle_id>
directory and switch parameters using options at startup.
# example1 (do not set vehicle_id)
$ ros2 launch autoware_launch autoware.launch.xml sensor_model:=<YOUR_SENSOR_KIT> vehicle_mode:=<your_vehicle_model>
# example2 (set vehicle_id as VEHICLE_1)
$ ros2 launch autoware_launch autoware.launch.xml sensor_model:=<YOUR_SENSOR_KIT> vehicle_mode:=<your_vehicle_model> vehicle_id:=VEHICLE_1
# example3 (set vehicle_id as VEHICLE_2)
$ ros2 launch autoware_launch autoware.launch.xml sensor_model:=<YOUR_SENSOR_KIT> vehicle_mode:=<your_vehicle_model> vehicle_id:=VEHICLE_2
Sample Directory Structure#
individual_params/
└─ config/
├─ default/
│ └─ <YOUR_SENSOR_KIT>/ # example1
│ ├─ imu_corrector.param.yaml
│ ├─ sensor_kit_calibration.yaml
│ └─ sensors_calibration.yaml
+ ├─ VEHICLE_1/
+ │ └─ <YOUR_SENSOR_KIT>/ # example2
+ │ ├─ imu_corrector.param.yaml
+ │ ├─ sensor_kit_calibration.yaml
+ │ └─ sensors_calibration.yaml
+ └─ VEHICLE_2/
+ └─ <YOUR_SENSOR_KIT>/ # example3
+ ├─ imu_corrector.param.yaml
+ ├─ sensor_kit_calibration.yaml
+ └─ sensors_calibration.yaml
4.YOUR_VEHICLE_launch#
YOUR_VEHICLE_launch
is where the launch file for starting the drive system devices is stored.
- vehicle_interface.launch.xml (must be changed)
1. vehicle_interface.launch.xml#
vehicle_interface.launch.xml
is the launch file related to the drive system. Please modify it according to the configuration of your vehicle's drive system.
If you are operating multiple vehicles, use the vehicle_id
to switch to the corresponding configuration for each vehicle.
5. YOUR_SENSOR_KIT_launch#
YOUR_SENSOR_KIT_launch
is where the launch files related to sensor startup are stored.
- sensing.launch.xml (must be changed)
- lidar.launch.xml (must be changed)
- camera.launch.xml
- imu.launch.xml (must be changed)
- gnss.launch.xml
- pointcloud_preprocessor.launch.py (must be changed)
1. sensing.launch.xml#
sensing.launch.xml
is the entry point that calls the launch files for all sensors. Modify it according to your sensor configuration.
2. lidar.launch.xml#
lidar.launch.xml
is the launch file related to starting the LiDAR driver. Modify it according to your LiDAR configuration.
In Autoware's initial configuration, it assumes converting the acquired data using
pointcloud_preprocessor.launch.py
.
Example Configuration Items#
- Setting the frame_id defined in
YOUR_SENSOR_KIT_description
. - Connection information for each device.
3. camera.launch.xml#
camera.launch.xml
is the launch file related to starting the camera driver.
4. imu.launch.xml#
imu.launch.xml
is the launch file related to starting the IMU driver.
5. gnss.launch.xml#
gnss.launch.xml
is the launch file related to starting the GNSS driver.
6. pointcloud_preprocessor.launch.py#
pointcloud_preprocessor.launch.py
is the launch file to convert the raw sensor data. For more information, please click here.