Skip to content

Creating individual params#

Introduction#

The individual_params package is used to define customized sensor calibrations for different vehicles. It lets you define customized sensor calibrations for different vehicles while using the same launch files with the same sensor model.

Warning

The "individual_params" package contains the calibration results for your sensor kit and overrides the default calibration results found in VEHICLE-ID_sensor_kit_description/config/ directory.

Placing your individual_parameters repository inside Autoware#

Previously on this guide, we forked the autoware_individual_params repository to create a tutorial_vehicle_individual_params repository which will be used as an example for this section of the guide. Your individual_parameters repository should be placed inside your Autoware folder following the same folder structure as the one shown below:

sample folder structure for tutorial_vehicle_individual_params
  <YOUR-OWN-AUTOWARE-DIR>/
  └─ src/
  └─ param/
  └─ tutorial_vehicle_individual_params/
  └─ individual_params/
  └─ config/
  ├─ default/
+ └─ tutorial_vehicle/
+     └─ tutorial_vehicle_sensor_kit_launch/
+         ├─ imu_corrector.param.yaml
+         ├─ sensor_kit_calibration.yaml
+         └─ sensors_calibration.yaml

After that, we need to build our individual_params package:

colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release --packages-up-to individual_params

Now you are ready to use Autoware with a vehicle_id as an argument. For example, if you are several, similar vehicles with different sensor calibration requirements, your autoware_individual_params structure should look like this:

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

Then, you can use autoware with vehicle_id arguments like this:

Add a <vehicle_id> as an argument and switch parameters using options at startup.

# example1 (do not set vehicle_id)
$ ros2 launch autoware_launch autoware.launch.xml sensor_model:=<YOUR-VEHICLE-NAME>_sensor_kit vehicle_model:=<YOUR-VEHICLE-NAME>_vehicle
# example2 (set vehicle_id as VEHICLE_1)
$ ros2 launch autoware_launch autoware.launch.xml sensor_model:=<YOUR-VEHICLE-NAME>_sensor_kit vehicle_model:=<YOUR-VEHICLE-NAME>_vehicle vehicle_id:=VEHICLE_1
# example3 (set vehicle_id as VEHICLE_2)
$ ros2 launch autoware_launch autoware.launch.xml sensor_model:=<YOUR-VEHICLE-NAME>_sensor_kit vehicle_model:=<YOUR-VEHICLE-NAME>_vehicle vehicle_id:=VEHICLE_2