1. Autoware.universe实车部署前的准备工作第一次把Autoware.universe部署到实车上时我深刻体会到工欲善其事必先利其器的道理。与仿真环境不同实车部署需要考虑更多现实因素。首先要确保硬件配置达标我推荐使用搭载Intel i7或以上处理器、32GB内存、NVIDIA RTX 3060及以上显卡的工控机这是流畅运行Autoware.universe的基础配置。操作系统方面Ubuntu 20.04 LTS是最稳定的选择。安装时有个小技巧建议选择最小化安装避免不必要的软件占用资源。完成系统安装后需要特别注意显卡驱动的安装。我遇到过因为驱动版本不匹配导致OpenGL渲染异常的问题后来发现用以下命令安装驱动最稳妥sudo ubuntu-drivers autoinstall sudo reboot开发环境配置上ROS2 Galactic是Autoware.universe的官方指定版本。安装时建议使用国内镜像源加速下载sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg echo deb [arch$(dpkg --print-architecture) signed-by/usr/share/keyrings/ros-archive-keyring.gpg] http://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu $(lsb_release -cs) main | sudo tee /etc/apt/sources.list.d/ros2.list /dev/null sudo apt update sudo apt install ros-galactic-ros-base2. 传感器配置与数据接口对接2.1 激光雷达配置实战激光雷达是自动驾驶的眼睛配置不当会导致后续所有环节出问题。以常见的RS-LiDAR为例首先要确保驱动正确安装。我整理了一个简化版的驱动安装流程安装依赖项sudo apt install build-essential cmake libpcap-dev libprotobuf-dev protobuf-compiler编译驱动时有个关键点必须启用PCAP支持否则无法获取数据mkdir -p ~/rslidar_ws/src cd ~/rslidar_ws/src git clone https://github.com/RoboSense-LiDAR/rslidar_sdk.git cd .. colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPERelease雷达数据接入Autoware.universe需要特别注意坐标系转换。我开发了一个专用转换节点主要解决两个问题原始数据坐标系不一致和近距离噪声过滤。这个节点的核心是将雷达原始数据从velodyne坐标系转换到base_link坐标系同时过滤掉距离过近的噪点。转换参数需要根据实际安装位置精确测量x/y/z分别代表前后、左右、上下的偏移量roll/pitch/yaw对应旋转角度。2.2 相机配置技巧交通灯识别依赖相机数据配置不当会导致误识别。经过多次测试我发现以下参数组合效果最佳video_device: /dev/video2 framerate: 30.0 frame_id: camera4/camera_link image_width: 1920 image_height: 1080 brightness: 50 contrast: 50 saturation: 40实际部署中相机白平衡设置很关键。建议开启自动白平衡auto_white_balance: true但需要设置初始值如white_balance: 4000避免刚启动时色彩失真。曝光设置也很有讲究白天建议使用自动曝光autoexposure: true夜间则需要手动调高曝光值。2.3 IMU与GNSS配置IMU数据对定位至关重要。配置时需要注意三点首先确保发布的topic名称为/sensing/imu/tamagawa/imu_raw其次坐标系必须设置为tamagawa/imu_link最后需要校准IMU的零偏方法是将设备静置水平面上运行校准程序。GNSS配置相对复杂些。在gnss.launch.xml中坐标系设置很关键arg namecoordinate_system default2 description0:UTM, 1:MGRS, 2:PLANE/ arg nameplane_zone default0/如果不用GNSS需要在util.launch.xml中明确禁用arg namegnss_enabled valuefalse/3. 参数调整与优化3.1 启动文件关键参数autoware.launch.xml是核心配置文件有几个参数需要特别注意arg namelaunch_sensing_driver defaultfalse/ arg namemap_path value/path/to/your/map/ arg namevehicle_model valuesample_vehicle/ arg namesensor_model valuesample_sensor_kit/ arg nameuse_sim_time valuefalse/其中launch_sensing_driver必须设为false否则会与自定义驱动冲突。地图路径要使用绝对路径相对路径可能导致加载失败。3.2 点云预处理参数点云处理参数直接影响定位和感知效果。在tier4_localization_launch/config中以下参数需要重点调整voxel_grid_size: 体素滤波尺寸通常设为0.1-0.3米outlier_radius: 离群点过滤半径建议1.5-2.5米outlier_min_neighbors: 最小邻域点数一般设为5-10调试时有个实用技巧先用RViz观察原始点云和滤波后点云的差异逐步调整参数直到获得清晰的环境结构。3.3 车辆动力学参数车辆参数文件vehicle_info.param.yaml必须与实际车辆匹配否则会导致控制异常。关键参数包括wheel_radius: 0.18 wheel_width: 0.12 wheel_base: 1.03 wheel_tread: 0.7 front_overhang: 0.18 rear_overhang: 0.22 max_steer_angle: 0.45测量这些参数时有个小技巧用粉笔在地面画出车轮印记然后测量各部位距离。完成后可以用内置工具验证最小转弯半径ros2 run vehicle_info_util min_turning_radius_calculator.py4. 实车调试全流程4.1 统一启动文件配置将所有传感器驱动整合到一个启动文件中是高效调试的关键。我的sensor_driver.launch.xml结构如下launch !-- LiDAR驱动 -- include file$(find-pkg-share rslidar_sdk)/launch/start.py/ !-- 点云转换 -- include file$(find-pkg-share points_raw_transform)/launch/points_raw_transform.launch.xml arg nametransform_x value0.75/ arg nametransform_y value0.35/ arg nametransform_z value0.6/ /include !-- 相机驱动 -- include file$(find-pkg-share usb_cam)/launch/JR_HF868.launch.py/ !-- IMU驱动 -- include file$(find-pkg-share wit_ros2_imu)/rviz_and_imu.launch.py/ !-- Autoware主程序 -- include file$(find-pkg-share autoware_launch)/launch/autoware.launch.xml arg namemap_path value/path/to/map/ arg nameuse_sim_time valuefalse/ /include /launch4.2 传感器外参标定外参标定是确保多传感器融合准确的关键步骤。对于相机-IMU标定我推荐使用Kalibr工具LiDAR-IMU标定可以用LI-Init方法。标定完成后参数写入sensor_kit_calibration.yamlcamera4/camera_link: x: 0.07356 y: 0.0 z: -0.0525 roll: 0.0 pitch: -0.03 yaw: -0.005 tamagawa/imu_link: x: 0.75 y: 0.35 z: 0.60 roll: 0.0 pitch: 0.0 yaw: 0.04.3 实车测试注意事项首次实车测试建议按以下步骤进行静态测试车辆静止状态下检查各传感器数据是否正常低速测试5-10km/h速度下验证定位和感知功能测试逐个验证自动驾驶功能如车道保持、红绿灯识别遇到性能问题时可以尝试以下优化关闭不必要的ROS节点降低点云处理频率使用ros2 topic hz监控数据频率记得测试过程中随时准备接管车辆安全永远是第一位的。我习惯在测试车上安装紧急停止按钮并与自动驾驶系统联动。