Ubuntu22上部署ROS2 + Autoware+CARLA

官网文档
官网

背景

刚看到一个视频,是说用 FSD V14.1 在 Costco 花了 20 分钟寻找停车位

因为FSD V14.1是闭源的,所以我用Ubuntu22上用 ROS2 + Autoware搭建完整自动驾驶框架,结合 CARLA 模拟器,重现停车场场景

简短说明 — 这个英文需求实际要做什么(中文)
在 Ubuntu 22.04 (Jammy) 上搭建一个用于自动驾驶仿真的完整环境,包含三部分并使它们能互通:

ROS 2(中间件) — 建立消息/节点基础(推荐版本:Humble,因为与 Ubuntu 22.04 最兼容)。
docs.ros.org

Autoware(自动驾驶栈) — 基于 ROS 2 的感知/规划执行层(Autoware Universe / Autoware main 支持 Ubuntu22 + Humble)。
autowarefoundation.github.io

CARLA(仿真器) — 提供虚拟世界、传感器与车辆,和 Autoware 通过 ROS bridge / autoware_carla_interface 联动(推荐 CARLA 0.9.15 与 Humble 匹配)



# 前置要求(请先确认)
操作系统:Ubuntu 22.04 LTS (Jammy)(本文所有命令基于该系统)
有 sudo 权限的账户
建议硬件:CPU 4 核以上、≥16GB RAM(构建/仿真更好是 32GB)、磁盘至少 ≥150GB(CARLA 源码+Unreal 要 ~130GB 空间)。CARLA 推荐带独立 NVIDIA 显卡(例如 RTX2070 或更好)并安装驱动
网络(下载 large assets,如 CARLA 包、源码、依赖)。
建议 Python 版本:Python 3.10(很多 CARLA wheel/环境在 3.10/3.8 上更稳定;避免 Python 3.12 的 wheel 问题)。(可参考 CARLA 与社区 issue)



# 建议
ROS2 选 Humble(Ubuntu22 官方二进制):最少冲突、官方支持。
docs.ros.org

Autoware(Autoware Universe / autowarefoundation/autoware):官方支持 Ubuntu22 + ROS2 Humble,推荐两种安装方式:

推荐(可复现、少兼容问题):ADE(容器化) —— Autoware 官方建议用 ADE 来保证环境一致性(尤其对开发/CI 很稳)。适合不想调依赖的人

或 在宿主机做 source install(如果你需要直接在宿主上运行并调试)。官方也提供了 source install 流程。     参考:autowarefoundation.github.io

CARLA 推荐版本 0.9.15(与 Autoware 的 autoware_carla_interface 明确标注兼容:Ubuntu22 + Humble + CARLA 0.9.15)。用 CARLA 的打包版(最快)或源码(耗时且占空间)。同时使用 autoware_carla_interface / ROS bridge 来对接
参考:https://carla.readthedocs.io/en/latest/start_quickstart/


安装并验证 ROS 2 Humble

参考

目标:在 Ubuntu22 上把 ROS2 Humble 安装好,并能运行 talker/listener 做功能验证


# 1) 基本准备
rambo@ub22:~$ 
sudo apt update
sudo apt install -y locales curl wget git gnupg lsb-release software-properties-common
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8

# 2) 启用 universe(如果还没启用)
rambo@ub22:~$ sudo add-apt-repository universe -y

# 3) 配置 ROS 2 apt 源(官方推荐方式,自动取最新 ros2-apt-source release)
rambo@ub22:~$ export ROS_APT_SOURCE_VERSION=$(curl -s https://api.github.com/repos/ros-infrastructure/ros-apt-source/releases/latest | grep -F "tag_name" | awk -F\" '{print $4}')

rambo@ub22:~$ curl -L -o /tmp/ros2-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/${ROS_APT_SOURCE_VERSION}/ros2-apt-source_${ROS_APT_SOURCE_VERSION}.$(. /etc/os-release && echo ${UBUNTU_CODENAME:-${VERSION_CODENAME}})_all.deb"

rambo@ub22:~$ sudo dpkg -i /tmp/ros2-apt-source.deb

# 4) 安装 ROS2 Humble(Desktop推荐)
rambo@ub22:~$ sudo apt update && sudo apt install -y ros-humble-desktop

# 5) 环境设置(每次新 terminal 要 source)
rambo@ub22:~$ echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
rambo@ub22:~$ source /opt/ros/humble/setup.bash

# 6) 开发工具和 build 工具(colcon, vcstool 等)
rambo@ub22:~$ sudo apt install -y python3-colcon-common-extensions python3-vcstool git wget python3-pip build-essential



# 7) rosdep(用于后续安装依赖) ----- 这个在实际中已经有了
rambo@ub22:~$ sudo apt install -y python3-rosdep2
rambo@ub22:~$ sudo rosdep init
rambo@ub22:~$ rosdep update





验证(标记 1)
在不同终端运行:

# 终端 A
rambo@ub22:~$ source /opt/ros/humble/setup.bash
rambo@ub22:~$ ros2 run demo_nodes_cpp talker
[INFO] [1760187750.029709800] [talker]: Publishing: 'Hello World: 1'
[INFO] [1760187751.029527845] [talker]: Publishing: 'Hello World: 2'
[INFO] [1760187752.029450564] [talker]: Publishing: 'Hello World: 3'
[INFO] [1760187753.029580162] [talker]: Publishing: 'Hello World: 4'
[INFO] [1760187754.029587745] [talker]: Publishing: 'Hello World: 5'
[INFO] [1760187755.029613986] [talker]: Publishing: 'Hello World: 6'
....
  ....

# 终端 B
rambo@ub22:~$ source  /opt/ros/humble/setup.bash
rambo@ub22:~$ ros2 run demo_nodes_py listener
[INFO] [1760187815.077757404] [listener]: I heard: [Hello World: 66]
[INFO] [1760187816.036227686] [listener]: I heard: [Hello World: 67]
[INFO] [1760187817.033976463] [listener]: I heard: [Hello World: 68]
[INFO] [1760187818.036369918] [listener]: I heard: [Hello World: 69]
[INFO] [1760187819.033994409] [listener]: I heard: [Hello World: 70]
[INFO] [1760187820.036580399] [listener]: I heard: [Hello World: 71]
[INFO] [1760187821.036236551] [listener]: I heard: [Hello World: 72]
[INFO] [1760187822.036071801] [listener]: I heard: [Hello World: 73]
[INFO] [1760187823.036369071] [listener]: I heard: [Hello World: 74]
[INFO] [1760187824.034223936] [listener]: I heard: [Hello World: 75]
[INFO] [1760187825.033699180] [listener]: I heard: [Hello World: 76]

如果 listener 能看到 talker 的输出(console 显示 I heard: ...),则 标记1:ROS2 安装并通过基本通信测试。
另外也可检查 ros2 topic list、ros2 run demo_nodes_cpp talker 等是否正常。



宿主机直接构建 Autoware Universe/Main

参考1
参考2

🧩 前提条件
确保已完成我之前写的“阶段 1”安装(ROS 2 Humble 成功,并能通过 talker/listener 通信)

# 安装系统依赖
rambo@ub22:~$ sudo apt install -y \
    python3-pip python3-rosdep2 python3-colcon-common-extensions python3-vcstool \
    python3-argcomplete python3-yaml python3-empy python3-setuptools python3-pybind11 \
    python3-numpy python3-pandas python3-scipy python3-matplotlib python3-yaml \
    python3-opencv python3-tk build-essential cmake pkg-config libpoco-dev \
    libyaml-cpp-dev libopencv-dev libeigen3-dev libboost-all-dev \
    libssl-dev libusb-1.0-0-dev libgl1-mesa-dev libglu1-mesa-dev \
    freeglut3-dev libglew-dev libomp-dev libjsoncpp-dev libtbb-dev \
    libspdlog-dev clang clang-format ccache

💡 这些包组合来自 Autoware 官方 setup-dev-env.sh 脚本和 source install 手册,可确保 cmake 阶段不缺依赖



准备工作空间
rambo@ub22:~$ ROS_DISTRO=humble
rambo@ub22:~$ AUTOWARE_DIR=~/autoware

rambo@ub22:~$ mkdir -p $AUTOWARE_DIR/src && cd $AUTOWARE_DIR

# 克隆 Autoware 仓库与 repos 列表

# 下载 autoware.repos 文件
rambo@ub22:~/autoware$ wget https://raw.githubusercontent.com/autowarefoundation/autoware/main/autoware.repos -O autoware.repos

# 导入所有依赖仓库到 src/
rambo@ub22:~/autoware$ vcs import src < autoware.repos
⚠️ 注意:
这里的主仓库(autowarefoundation/autoware)实际上只是一个 顶层工作区定义仓库,真正的代码都在 autoware.repos 文件中列出的几十个子模块里。
所以,只要你拉取了这些仓库,功能上是完全一样的。


初始化 rosdep 并安装所有依赖
# 确保 rosdep 数据库最新
# rambo@ub22:~/autoware$ sudo rosdep init 2>/dev/null || true      # 提示已经有了,带核验
rambo@ub22:~/autoware$ rosdep update

# 安装依赖(自动解析 package.xml)
rambo@ub22:~/autoware$ sudo apt update
rambo@ub22:~/autoware$ rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO --skip-keys="lanelet2_extension tier4_planning_msgs tier4_perception_msgs"


⚠️ 部分 Autoware 包使用 TIER IV 定制 msg,rosdep 无法自动解析,上面通过 --skip-keys 略过。它们会在仓库src中被构建,不需APT包


构建 Autoware
# 确保 ROS 环境
rambo@ub22:~/autoware$ source /opt/ros/$ROS_DISTRO/setup.bash

# (可选)启用 ccache 加速
rambo@ub22:~/autoware$ 
export CCACHE_DIR=~/.ccache
export CC="ccache gcc"
export CXX="ccache g++"

# 构建
rambo@ub22:~/autoware$ colcon build \
  --symlink-install \
  --cmake-args -DCMAKE_BUILD_TYPE=Release \
  --continue-on-error

⚙️ 此步骤可能耗时 2–4小时,取决于硬件性能
若出现内存不足,可在8GBRAM 以上的系统运行或加swap,以下是部分回显:
[Processing: autoware_motion_velocity_obstacle_velocity_limiter_module, reaction_analyzer]                                             
--- stderr: reaction_analyzer                                                                                                          
In this package, headers install destination is set to `include` by ament_auto_package. It is recommended to install `include/reaction_analyzer` instead and will be the default behavior of ament_auto_package from ROS 2 Kilted Kaiju. On distributions before Kilted, ament_auto_package behaves the same way when you use USE_SCOPED_HEADER_INSTALL_DIR option.
---
Finished <<< reaction_analyzer [3min 40s]
Finished <<< autoware_motion_velocity_obstacle_velocity_limiter_module [16min 56s]                                      
                                   
Summary: 435 packages finished [3h 56min 31s]                 # 我本次用了4个小时
  220 packages had stderr output: autoware_accel_brake_map_calibrator autoware_adapi_specs autoware_agnocast_wrapper autoware_auto_common autoware_autonomous_emergency_braking autoware_bag_time_manager_rviz_plugin autoware_behavior_path_bidirectional_traffic_module autoware_behavior_path_dynamic_obstacle_avoidance_module autoware_behavior_path_goal_planner_module autoware_behavior_path_lane_change_module autoware_behavior_path_planner autoware_behavior_path_planner_common autoware_behavior_path_sampling_planner_module autoware_behavior_path_side_shift_module autoware_behavior_path_start_planner_module autoware_behavior_path_static_obstacle_avoidance_module autoware_behavior_velocity_blind_spot_module autoware_behavior_velocity_crosswalk_module autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_rtc_interface autoware_bevfusion autoware_bezier_sampler autoware_bluetooth_monitor autoware_boundary_departure_checker autoware_bytetrack autoware_collision_detector autoware_command_mode_decider autoware_command_mode_switcher autoware_command_mode_types autoware_compare_map_segmentation autoware_component_interface_specs autoware_component_interface_specs_universe autoware_component_interface_utils autoware_control_evaluator autoware_control_performance_analysis autoware_control_validator autoware_costmap_generator autoware_crop_box_filter autoware_crosswalk_traffic_light_estimator autoware_cuda_pointcloud_preprocessor autoware_cuda_utils autoware_detected_object_validation autoware_diagnostic_graph_aggregator autoware_diagnostic_graph_utils autoware_diffusion_planner autoware_dummy_diag_publisher autoware_dummy_infrastructure autoware_dummy_perception_publisher autoware_duplicated_node_checker autoware_ekf_localizer autoware_elevation_map_loader autoware_euclidean_cluster autoware_euclidean_cluster_object_detector autoware_external_cmd_converter autoware_external_cmd_selector autoware_external_velocity_limit_selector autoware_fake_test_node autoware_fault_injection autoware_freespace_planner autoware_freespace_planning_algorithms autoware_frenet_planner autoware_geography_utils autoware_glog_component autoware_gnss_poser autoware_goal_distance_calculator autoware_grid_map_utils autoware_ground_filter autoware_image_diagnostics autoware_image_projection_based_fusion autoware_image_transport_decompressor autoware_interpolation autoware_joy_controller autoware_kalman_filter autoware_kinematic_evaluator autoware_landmark_manager autoware_lane_departure_checker autoware_lanelet2_extension autoware_lanelet2_extension_python autoware_lanelet2_utils autoware_learning_based_vehicle_model autoware_lidar_apollo_instance_segmentation autoware_lidar_centerpoint autoware_lidar_transfusion autoware_localization_evaluator autoware_localization_util autoware_map_based_prediction autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_marker_utils autoware_mission_planner autoware_mission_planner_universe autoware_motion_utils autoware_motion_velocity_planner_common autoware_motion_velocity_road_user_stop_module autoware_mpc_lateral_controller autoware_mrm_comfortable_stop_operator autoware_mrm_emergency_stop_operator autoware_mrm_handler autoware_multi_object_tracker autoware_ndt_scan_matcher autoware_node autoware_object_merger autoware_object_recognition_utils autoware_objects_of_interest_marker_interface autoware_obstacle_collision_checker autoware_osqp_interface autoware_overlay_rviz_plugin autoware_path_generator autoware_path_optimizer autoware_path_sampler autoware_path_smoother autoware_pcl_extensions autoware_perception_online_evaluator autoware_perception_rviz_plugin autoware_pid_longitudinal_controller autoware_planning_evaluator autoware_planning_factor_interface autoware_planning_rviz_plugin autoware_planning_test_manager autoware_planning_topic_converter autoware_planning_validator autoware_planning_validator_intersection_collision_checker autoware_planning_validator_latency_checker autoware_planning_validator_rear_collision_checker autoware_planning_validator_test_utils autoware_planning_validator_trajectory_checker autoware_point_types autoware_pointcloud_preprocessor autoware_pose_instability_detector autoware_predicted_path_checker autoware_probabilistic_occupancy_grid_map autoware_pure_pursuit autoware_pyplot autoware_qp_interface autoware_radar_object_tracker autoware_radar_scan_to_pointcloud2 autoware_raw_vehicle_cmd_converter autoware_remaining_distance_time_calculator autoware_route_handler autoware_rtc_interface autoware_sampler_common autoware_scenario_selector autoware_scenario_simulator_v2_adapter autoware_shape_estimation autoware_shift_decider autoware_signal_processing autoware_simpl_prediction autoware_simple_object_merger autoware_simple_planning_simulator autoware_smart_mpc_trajectory_follower autoware_steer_offset_estimator autoware_surround_obstacle_checker autoware_system_monitor autoware_tensorrt_bevdet autoware_tensorrt_classifier autoware_tensorrt_common autoware_tensorrt_plugins autoware_tensorrt_yolox autoware_test_utils autoware_time_utils autoware_topic_state_monitor autoware_tracking_object_merger autoware_traffic_light_arbiter autoware_traffic_light_classifier autoware_traffic_light_fine_detector autoware_traffic_light_rviz_plugin autoware_traffic_light_utils autoware_trajectory autoware_trajectory_follower_base autoware_trajectory_follower_node autoware_universe_utils autoware_utils autoware_utils_debug autoware_utils_diagnostics autoware_utils_geometry autoware_utils_logging autoware_utils_math autoware_utils_pcl autoware_utils_rclcpp autoware_utils_system autoware_utils_tf autoware_utils_uuid autoware_utils_visualization autoware_vehicle_info_utils autoware_velocity_smoother autoware_velodyne_monitor awapi_awiv_adapter bevdet_vendor boost_io_context boost_serial_driver boost_tcp_driver boost_udp_driver cuda_blackboard eagleye_can_velocity_converter eagleye_coordinate eagleye_fix2kml eagleye_geo_pose_fusion eagleye_gnss_converter eagleye_navigation eagleye_rt llh_converter managed_transform_buffer nebula_examples nebula_ros negotiated perception_utils pointcloud_to_laserscan reaction_analyzer ros2_socketcan rtklib_bridge tier4_api_utils tier4_auto_msgs_converter tier4_perception_rviz_plugin trt_batched_nms yabloc_common yabloc_image_processing yabloc_particle_filter yabloc_pose_initializer




上一条命令中加了 --continue-on-error,所以 build 会跳过一些报错的包(比如你的系统没有 CUDA/TensorRT,autoware_cuda_utils、autoware_tensorrt_*、bevdet_vendor 这些包就被跳过了)。
这就会导致 install/ 目录里 部分包不存在,所以你 source 的时候会报 “not found”。



# 构建
rambo@ub22:~/autoware$ colcon build \
  --symlink-install \
  --cmake-args -DCMAKE_BUILD_TYPE=Release
注:
第二次构建会尝试重新 build 上一次未成功的包,但前提是:
系统已经安装了这些包的依赖(例如 CUDA/TensorRT)
或者你继续跳过这些包
目的是让 install/ 下尽量完整,以避免 source 报错
以下是回显:
Starting >>> autoware_core
Finished <<< autoware_motion_velocity_run_out_module [5.17s]                                                   
Starting >>> reaction_analyzer
Finished <<< autoware_motion_velocity_out_of_lane_module [6.38s]                                               
Finished <<< autoware_motion_velocity_road_user_stop_module [6.42s]                                               
Finished <<< autoware_behavior_path_avoidance_by_lane_change_module [6.90s]                                               
Finished <<< autoware_behavior_path_external_request_lane_change_module [6.65s]                                               
Finished <<< autoware_behavior_velocity_walkway_module [5.65s]                                            
Finished <<< autoware_behavior_velocity_run_out_module [6.04s]                                                                   
Finished <<< autoware_core [4.80s]                                                                   
Finished <<< reaction_analyzer [10.7s]                                

Summary: 435 packages finished [4min 57s]





# 环境配置
rambo@ub22:~/autoware$ echo "source $AUTOWARE_DIR/install/setup.bash" >> ~/.bashrc
rambo@ub22:~/autoware$ source ~/.bashrc                         # CUDA/TensorRT包不存在不会影响CPU仿真
not found: "/home/rambo/autoware/install/autoware_cuda_utils/share/autoware_cuda_utils/local_setup.bash"
not found: "/home/rambo/autoware/install/autoware_tensorrt_common/share/autoware_tensorrt_common/local_setup.bash"
not found: "/home/rambo/autoware/install/autoware_tensorrt_classifier/share/autoware_tensorrt_classifier/local_setup.bash"
not found: "/home/rambo/autoware/install/autoware_tensorrt_plugins/share/autoware_tensorrt_plugins/local_setup.bash"
not found: "/home/rambo/autoware/install/bevdet_vendor/share/bevdet_vendor/local_setup.bash"
not found: "/home/rambo/autoware/install/cuda_blackboard/share/cuda_blackboard/local_setup.bash"
not found: "/home/rambo/autoware/install/autoware_cuda_pointcloud_preprocessor/share/autoware_cuda_pointcloud_preprocessor/local_setup.bash"




验证 Autoware CPU 节点
rambo@ub22:~/autoware$ ros2 pkg list | grep autoware
autoware_accel_brake_map_calibrator
autoware_adapi_adaptors
autoware_adapi_specs
autoware_adapi_v1_msgs
autoware_adapi_version_msgs
autoware_adapi_visualizers
autoware_agnocast_wrapper
autoware_ar_tag_based_localizer
....
  ....



rambo@ub22:~/autoware$ ros2 launch autoware_launch planning_simulator.launch.xml
[INFO] [launch]: All log files can be found below /home/rambo/.ros/log/2025-10-12-02-18-53-839378-ub22-335676
[INFO] [launch]: Default logging verbosity is set to INFO
[ERROR] [launch]: Caught exception in launch (see debug for traceback): Included launch description missing required argument 'map_path' (description: 'point cloud and lanelet2 map directory path'), given: []

报错原因:
planning_simulator.launch.xml 需要一个 必填参数 map_path,也就是 点云和 Lanelet2 地图文件夹路径
如直接执行 launch,没有指定这个参数,Launch 系统就会报错


# 解决
1️⃣ 准备地图文件

Autoware 官方提供两种地图格式:
点云地图(PCD 或 BIN)
Lanelet2 地图(.osm 或 .bin)



使用 ROSBAG 数据集:
1、Autoware 官方提供了 ROSBAG 数据集,供用户进行测试和开发。这些数据集包含了传感器数据和标注信息,适用于各种自动驾驶算法的验证

2、使用 Scenario Simulator V2:
Scenario Simulator V2 是一个用于自动驾驶算法测试和验证的仿真工具。它支持多种场景的模拟,用户可以根据需要创建自定义场景

3、自行创建地图:
如果您有自己的传感器数据(如 LiDAR 点云、相机图像等),可以使用 Autoware 的地图构建工具(如 map_tool)自行生成地图。这需要一定的地图构建经验,但可以根据实际需求定制地图内容
地图构建工具:
Map Tool: Autoware 提供的地图构建工具,支持从传感器数据生成高精度地图
Vector Map Builder: 用于创建 Lanelet2 格式的矢量地图,适用于高精度定位和路径规划




推荐的 ROSBAG 数据集
以下是一些适用于 Autoware 的公开 ROSBAG 数据集,您可以直接下载并用于测试:

Istanbul Open Dataset
包含激光雷达、相机和 GNSS 数据,适用于感知、定位和规划等模块。
👉 下载链接:https://autowarefoundation.github.io/autoware-documentation/main/datasets/

Autoware Localization Demo (Moriyama Dataset)
包含激光雷达和 GNSS 数据,适用于验证基于 NDT 的定位算法。
👉 下载链接:https://autowarefoundation.gitlab.io/autoware.auto/AutowareAuto/rosbag-localization-howto.html

Ford Multi-AV Seasonal Dataset
包含多种传感器数据,适用于多传感器融合和多车协同测试。
👉 下载链接:https://arxiv.org/abs/2003.07969



1️⃣ 准备 ROSBAG 数据集

创建存放目录:
rambo@ub22:~/autoware$ mkdir -p ~/autoware_maps && cd ~/autoware_maps

下载包含LiDAR数据的ROSBAG包
rambo@ub22:~/autoware_maps$ curl https://autoware-auto.s3.us-east-2.amazonaws.com/rosbag2/rosbag2-astuff-1-lidar-only.tar.gz | tar xz

创建GPU感知
rambo@ub22:~/autoware_maps$ ros2 launch autoware_launch logging_simulator.launch.xml map_path:=$HOME/autoware_map/rosbag2_2020_09_23-15_58_07 vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit

注:换终端执行上一条命令时需要先source下一条命令
rambo@ub22:~/autoware_maps$ source ~/autoware/install/setup.bash


如无显卡则需要创建专用CPU launch文件,禁用GPU感知:
rambo@ub22:~/autoware_maps$ ros2 launch autoware_launch logging_simulator.launch.xml \
  map_path:=$HOME/autoware_maps/rosbag2_2020_09_23-15_58_07 \
  vehicle_model:=sample_vehicle \
  sensor_model:=sample_sensor_kit \
  perception:=false

这条命令会:
加载模拟器和基本驾驶栈;
不启动任何基于 GPU 的感知模块;
能够播放 ROSBAG 或通过外部话题提供感知数据

image
image

执行播放命令

rambo@ub22:~/autoware_maps$ cd rosbag2_2020_09_23-15_58_07/
rambo@ub22:~/autoware_maps/rosbag2_2020_09_23-15_58_07$ export RMW_IMPLEMENTATION=rmw_fastrtps_cpp
rambo@ub22:~/autoware_maps/rosbag2_2020_09_23-15_58_07$ export RMW_TRANSPORT_SHM=off
rambo@ub22:~/autoware_maps/rosbag2_2020_09_23-15_58_07$ ros2 bag play ~/autoware_maps/rosbag2_2020_09_23-15_58_07 -r 0.2
2025-10-12 03:23:47.718 [RTPS_TRANSPORT_SHM Error] Failed init_port fastrtps_port7415: open_and_lock_file failed -> Function open_port_internal
2025-10-12 03:23:47.722 [RTPS_TRANSPORT_SHM Error] Failed init_port fastrtps_port7441: open_and_lock_file failed -> Function open_port_internal
2025-10-12 03:23:47.722 [RTPS_TRANSPORT_SHM Error] Failed init_port fastrtps_port7443: open_and_lock_file failed -> Function open_port_internal
2025-10-12 03:23:47.726 [RTPS_TRANSPORT_SHM Error] Failed init_port fastrtps_port7467: open_and_lock_file failed -> Function open_port_internal
2025-10-12 03:23:47.727 [RTPS_TRANSPORT_SHM Error] Failed init_port fastrtps_port7475: open_and_lock_file failed -> Function open_port_internal
2025-10-12 03:23:47.738 [RTPS_TRANSPORT_SHM Error] Failed init_port fastrtps_port7535: open_and_lock_file failed -> Function open_port_internal
2025-10-12 03:23:47.743 [RTPS_TRANSPORT_SHM Error] Failed init_port fastrtps_port7573: open_and_lock_file failed -> Function open_port_internal
2025-10-12 03:23:47.745 [RTPS_TRANSPORT_SHM Error] Failed init_port fastrtps_port7583: open_and_lock_file failed -> Function open_port_internal
2025-10-12 03:23:47.749 [RTPS_TRANSPORT_SHM Error] Failed init_port fastrtps_port7607: open_and_lock_file failed -> Function open_port_internal
[ERROR] [1760210627.956821113] [rosbag2_storage]: Could not open '/home/rambo/autoware_maps/rosbag2_2020_09_23-15_58_07.db3' with 'sqlite3'. Error: Failed to read from bag: File '/home/rambo/autoware_maps/rosbag2_2020_09_23-15_58_07.db3' does not exist!
[ERROR] [1760210627.956939259] [rosbag2_storage]: Could not load/open plugin with storage id 'sqlite3'
No storage could be initialized. Abort
rambo@ub22:~/autoware_maps$ cd rosbag2_2020_09_23-15_58_07/
rambo@ub22:~/autoware_maps/rosbag2_2020_09_23-15_58_07$ ros2 bag play . -r 0.2
# 以下是FastDDS的共享内存(SHM)端口错误,在很多系统上(特别是 Ubuntu 桌面环境)是 无害警告,ROS2 humble 版本的 FastDDS 仍尝试初始化共享内存端口,即使禁用标志生效
2025-10-12 03:24:09.500 [RTPS_TRANSPORT_SHM Error] Failed init_port fastrtps_port7415: open_and_lock_file failed -> Function open_port_internal
2025-10-12 03:24:09.505 [RTPS_TRANSPORT_SHM Error] Failed init_port fastrtps_port7441: open_and_lock_file failed -> Function open_port_internal
2025-10-12 03:24:09.505 [RTPS_TRANSPORT_SHM Error] Failed init_port fastrtps_port7443: open_and_lock_file failed -> Function open_port_internal
2025-10-12 03:24:09.510 [RTPS_TRANSPORT_SHM Error] Failed init_port fastrtps_port7467: open_and_lock_file failed -> Function open_port_internal
2025-10-12 03:24:09.511 [RTPS_TRANSPORT_SHM Error] Failed init_port fastrtps_port7475: open_and_lock_file failed -> Function open_port_internal
2025-10-12 03:24:09.521 [RTPS_TRANSPORT_SHM Error] Failed init_port fastrtps_port7535: open_and_lock_file failed -> Function open_port_internal
2025-10-12 03:24:09.526 [RTPS_TRANSPORT_SHM Error] Failed init_port fastrtps_port7573: open_and_lock_file failed -> Function open_port_internal
2025-10-12 03:24:09.528 [RTPS_TRANSPORT_SHM Error] Failed init_port fastrtps_port7583: open_and_lock_file failed -> Function open_port_internal
2025-10-12 03:24:09.533 [RTPS_TRANSPORT_SHM Error] Failed init_port fastrtps_port7607: open_and_lock_file failed -> Function open_port_internal
# ✅ .db3 数据文件已正确打开
[INFO] [1760210649.719246176] [rosbag2_storage]: Opened database './rosbag2_2020_09_23-15_58_07.db3' for READ_ONLY.
# ✅ 播放速率设置成功(0.2 倍速)
[INFO] [1760210649.719487953] [rosbag2_player]: Set rate to 0.2
# ✅ rosbag 播放器正在运行中
[INFO] [1760210649.905425164] [rosbag2_player]: Adding keyboard callbacks.
[INFO] [1760210649.905506301] [rosbag2_player]: Press SPACE for Pause/Resume
[INFO] [1760210649.905537165] [rosbag2_player]: Press CURSOR_RIGHT for Play Next Message
[INFO] [1760210649.905596013] [rosbag2_player]: Press CURSOR_UP for Increase Rate 10%
[INFO] [1760210649.905651984] [rosbag2_player]: Press CURSOR_DOWN for Decrease Rate 10%
[INFO] [1760210649.906515429] [rosbag2_storage]: Opened database './rosbag2_2020_09_23-15_58_07.db3' for READ_ONLY.


现在处于的阶段(总结)
阶段	                    状态	               说明
1️⃣ ROS2 环境搭建	        ✅ 完成	         能正常运行 ros2 命令
2️⃣ Autoware 编译与构建	✅ 完成	         编译成功并能运行 launch 文件
3️⃣ ROSBAG 数据加载	    ✅ 已成功播放	可供  Autoware 模块消费


机器有点带不动了,只能到这里了,如果你的机器足够好,接着做就行,

posted @ 2025-10-12 11:27  Linux大魔王  阅读(347)  评论(1)    收藏  举报