.
├── aip_***_launch # AI.Pilot *** package
│ └── ...
├── aip_***_description # AI.Pilot *** package
│ └── ...
├── ... # other AI.Pilot packages...
└── common_sensor_launch # common sensor driver package
└── ... # some directories and files
These are packages which contain some launch files for launching AI.Pilot sensors.
When you create your own sensor kit packages, please refer to aip_*_launch
as a sample.
.
├── aip_x1_launch
│ ├── CMakeLists.txt
│ ├── data
│ │ └── ... # some parameters
│ ├── launch
│ │ ├── camera.launch.xml
│ │ ├── gnss.launch.xml
│ │ ├── imu.launch.xml
│ │ ├── lidar.launch.xml
│ │ ├── sensing.launch.xml
│ │ └── ... # other launch files
│ └── package.xml
└── ... # other AI.Pilot packages...
sensing.launch.xml
is called fromsensing_launch/sensing.launch.xml
inautoware_launcher
.
# https://github.com/tier4/autoware_launcher/blob/7e07eaa954bc04d252cda6b65bb7eae050ebdfb2/sensing_launch/package.xml
<let name="sensor_launch_pkg" value="$(find-pkg-share $(var sensor_model)_launch)"/> # ex. sensor_model = aip_x1
...
<include file="$(var sensor_launch_pkg)/launch/sensing.launch.xml">
...
- sensor drivers such as LiDAR driver can be described as follows.
...
<!-- LiDAR Driver -->
<include file="$(find-pkg-share aip_xxx_launch)/launch/lidar.launch.xml">
<arg name="launch_driver" value="$(var launch_driver)" />
<arg name="vehicle_mirror_param_file" value="$(var vehicle_mirror_param_file)" />
</include>
<!-- Camera Driver -->
<include file="$(find-pkg-share aip_xxx_launch)/launch/camera.launch.xml">
<arg name="launch_driver" value="$(var launch_driver)" />
</include>
<!-- IMU Driver -->
<include file="$(find-pkg-share aip_xxx_launch)/launch/imu.launch.xml">
<arg name="launch_driver" value="$(var launch_driver)" />
</include>
<!-- GNSS Driver -->
<include file="$(find-pkg-share aip_xxx_launch)/launch/gnss.launch.xml">
<arg name="launch_driver" value="$(var launch_driver)" />
</include>
...
- Other necessary sensor drivers also can be allowed to describe, but please follow above examples.
In localization, to refer to LiDAR data,
- The LiDAR output name is specified as
/sensing/lidar/top/rectified/pointcloud
. - The LiDAR driver container name is specified as
/sensing/lidar/top/pointcloud_preprocessor/velodyne_node_container
.
These are referred from util.launch.xml
in localization_launch
.
# https://github.com/tier4/autoware_launcher/blob/1ccc97034f84f67d8ff000a308b58ffa9be58091/localization_launch/launch/util/util.launch.xml
...
<arg name="input_sensor_points_topic" default="/sensing/lidar/top/rectified/pointcloud" description="input topic name for raw pointcloud"/>
...
<arg name="container" default="/sensing/lidar/top/pointcloud_preprocessor/velodyne_node_container" description="container name"/>
...
The IMU output name is specified as /sensing/imu/imu_data
to refer from gyro_odometer
package.
# https://github.com/tier4/autoware.iv/blob/05a0bec8350c867c4e7bce3fd2f3e63bc8c9168e/localization/twist_estimator/gyro_odometer/launch/gyro_odometer.launch.xml
...
<arg name="input_imu_topic" default="/sensing/imu/imu_data" description="input imu topic name" />
...
The GNSS output name is specified as /sensing/gnss/pose_with_covariance
to refer from pose_initializer
package.
# https://github.com/tier4/autoware.iv/blob/883951fb3eae8722fd896218d6798b5e19cebc5c/localization/util/pose_initializer/launch/pose_initializer.launch.xml
...
<remap from="gnss_pose_cov" to="/sensing/gnss/pose_with_covariance" />
...
There are no constraints now.
This is the package that contains some sensor driver launch files for reasons such as performing autoware's own processing.
.
└── common_sensor_launch
├── CMakeLists.txt
└── launch
│ ├── velodyne_node_container.launch.py
│ ├── velodyne_VLP16.launch.xml
│ └── ...
└── package.xml
- Add each transformation between a base frame and a sensor into calibration yaml as below.
# sample_sensor_calibration.yaml
# parent -> child
parent_name
child_name
x:
y:
z:
roll:
pitch:
yaw: