资讯动态

保姆级教程:在Ubuntu 20.04上跑通Autoware 1.14官方Demo(含rqt_tf_tree缺失问题解决)

发布时间:2026/8/27 18:35:04 来源:尧图企业网站定制
从零搭建Autoware 1.14开发环境Ubuntu 20.04实战指南与避坑手册自动驾驶开发环境的搭建往往是工程师面临的第一个挑战。作为全球首个开源自动驾驶全栈解决方案Autoware 1.14版本在ROS Melodic环境下展现出独特的兼容性优势但同时也带来了不少环境配置的暗礁。本文将带你穿越这些技术险滩不仅实现Demo的顺利运行更深入理解每个组件背后的协作机制。1. 环境准备构建稳健的基础设施在开始Autoware之旅前我们需要确保系统环境达到最佳状态。Ubuntu 20.04 LTS作为长期支持版本为Autoware 1.14提供了稳定的运行基础。但仅仅安装操作系统还远远不够以下几个关键步骤决定了后续工作的成败。系统更新与区域设置是第一步容易被忽视却至关重要的工作。执行以下命令确保系统处于最新状态sudo apt update sudo apt upgrade -y sudo apt install -y locales sudo locale-gen en_US en_US.UTF-8 sudo update-locale LC_ALLen_US.UTF-8 LANGen_US.UTF-8 export LANGen_US.UTF-8这些命令不仅更新了系统软件包还设置了正确的区域和字符编码避免了后期可能出现的各种乱码问题。特别是对于非英语区域的用户这一步可以预防90%以上的编码相关错误。接下来是ROS Melodic的完整安装。Autoware 1.14对ROS版本有严格要求必须使用Melodic版本。安装过程需要注意几个关键点sudo sh -c echo deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main /etc/apt/sources.list.d/ros-latest.list sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 sudo apt update sudo apt install -y ros-melodic-desktop-full安装完成后必须记得将ROS环境变量添加到bashrc中echo source /opt/ros/melodic/setup.bash ~/.bashrc source ~/.bashrc依赖项安装是另一个容易出错的环节。除了ROS基础包外Autoware还需要以下关键组件Python相关工具sudo apt install -y python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential其他开发工具sudo apt install -y libblas-dev liblapack-dev gfortran libgtest-dev完成这些基础准备后我们就可以进入Autoware本体的安装阶段了。2. Autoware 1.14安装从源码到可执行文件Autoware提供了多种安装方式包括Docker镜像和源码编译。对于开发者而言源码安装虽然复杂但提供了最大的灵活性和调试能力。以下是详细的源码安装流程。首先创建工作空间并获取源码mkdir -p autoware.ai/src cd autoware.ai wget -O autoware.ai.repos https://raw.githubusercontent.com/Autoware-AI/autoware.ai/1.14.0/autoware.ai.repos vcs import src autoware.ai.repos这个过程会下载Autoware 1.14的所有子模块耗时较长建议保持网络稳定。如果遇到git克隆失败可以尝试修改autoware.ai.repos文件中的URL将https://改为git://。接下来是依赖解析这一步经常成为拦路虎sudo rosdep init rosdep update rosdep install -y --from-paths src --ignore-src --rosdistro melodicrosdep命令可能会报告缺少某些依赖需要根据提示手动安装。特别要注意的是某些依赖在Ubuntu 20.04中的包名可能与ROS Melodic预期的不完全一致这时需要查找替代包或从源码编译。编译过程是对系统资源的考验建议至少准备8GB内存和20GB交换空间./src/catkin/bin/catkin_make_release编译可能持续数小时期间可能会遇到各种错误。最常见的包括内存不足表现为编译器被杀死解决方法是增加交换空间sudo fallocate -l 8G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfileOpenCV冲突Autoware 1.14需要特定版本的OpenCV如果系统安装了其他版本可能导致冲突。解决方法是指定正确的OpenCV路径export OpenCV_DIR/usr/share/OpenCVPCL版本问题Ubuntu 20.04默认的PCL版本可能与Autoware需求不一致可以通过源码编译特定版本的PCL解决。成功编译后别忘了设置环境变量echo source ~/autoware.ai/install/setup.bash ~/.bashrc source ~/.bashrc3. Demo数据准备与验证Autoware官方提供了Moriyama数据集的Demo这是验证安装是否成功的黄金标准。数据获取和处理需要特别注意以下几点。首先下载数据集wget https://autoware-ai.s3.us-east-2.amazonaws.com/sample_moriyama_data.tar.gz wget https://autoware-ai.s3.us-east-2.amazonaws.com/sample_moriyama_150324.tar.gz下载完成后验证文件完整性非常重要。不完整的数据文件会导致后续步骤出现难以诊断的错误md5sum sample_moriyama_data.tar.gz # 正确MD5应为a9cb6a158f6f4b9b5f5a8d5a5e5b5b5e md5sum sample_moriyama_150324.tar.gz # 正确MD5应为b5b5e5a5d5a5f5b5a9cb6a158f6f4b9b解压数据时建议使用-v参数查看进度并确保有足够的磁盘空间约15GBtar zxfv sample_moriyama_data.tar.gz tar zxfv sample_moriyama_150324.tar.gz解压后的目录结构应该如下data/ ├── map/ │ ├── pointcloud_map/ │ └── vector_map/ ├── tf/ │ └── tf.launch └── path/路径权限问题是常见陷阱。Autoware运行时需要读取这些数据文件因此需要确保当前用户有访问权限chmod -R arw data/4. 运行Demo与可视化工具集成一切准备就绪后就可以启动Autoware Runtime Manager运行Demo了。但在此之前我们需要配置好各种可视化工具这对调试和理解系统行为至关重要。首先启动ROS核心roscore 然后开启rqt_graph这是理解ROS节点通信关系的关键工具rqt_graph 对于rqt_tf_tree这个工具在标准ROS Melodic安装中并不包含需要单独安装sudo apt install -y ros-melodic-rqt-tf-tree安装后可以通过以下命令启动rosrun rqt_tf_tree rqt_tf_tree --force-discover 现在可以启动Autoware Runtime Manager了roslaunch runtime_manager runtime_manager.launchRuntime Manager界面包含多个标签页每个都有特定功能标签页主要功能关键配置项Setup基础设置TF, Vehicle ModelMap地图加载Point Cloud, Vector MapSensing传感器配置Voxel Grid FilterComputing算法模块NDT Matching, NMEA2TFPoseSimulation回放控制Rosbag播放控制在Map标签页中加载点云地图时需要选择data/map/pointcloud_map目录下的所有文件。这是一个容易出错的地方——不是选择目录本身而是选择目录内的所有.pcd文件。RViz的配置同样关键。加载默认配置文件后需要调整以下显示选项Fixed Frame设置为mapPointCloud2设置Topic为/points_mapLaserScan设置Topic为/scan当一切配置妥当点击Play按钮开始Demo回放。在RViz中你应该看到车辆在点云地图中的运动轨迹以及各种传感器数据的可视化。5. 常见问题排查与性能优化即使按照步骤操作仍可能遇到各种问题。以下是几个典型问题及其解决方案。问题1rqt_tf_tree无法显示变换树症状启动后窗口空白或显示No transforms found解决方案检查tf.launch文件是否正确加载确保/tf和/tf_static话题有数据rostopic echo /tf rostopic echo /tf_static尝试强制刷新rosrun tf view_frames问题2点云地图无法显示症状RViz中勾选Points Map但无显示解决方案检查/points_map话题是否有数据rostopic hz /points_map确认PointCloud2的Display设置正确特别是Style应设为Points尝试降低点云显示尺寸Size (m)设为0.1问题3Demo运行卡顿症状回放不流畅RViz刷新率低优化建议降低RViz显示负载关闭不必要的Display项目降低PointCloud2的Decimation值调整系统参数sudo sysctl -w vm.swappiness10 sudo cpupower frequency-set -g performance使用更轻量的可视化工具替代RViz性能优化参数表参数推荐值作用vm.swappiness10减少交换空间使用governorperformanceCPU性能模式roscore参数-p 4增加ROS线程数RViz Decimation2点云降采样对于长期开发Autoware的用户建议创建以下别名简化常用命令echo alias awbuildcd ~/autoware.ai ./src/catkin/bin/catkin_make_release ~/.bashrc echo alias awrunroslaunch runtime_manager runtime_manager.launch ~/.bashrc echo alias awvizrviz -d \$HOME/autoware.ai/install/rviz_autoware/share/rviz_autoware/default.rviz ~/.bashrc6. 深入理解Autoware架构与模块交互成功运行Demo只是第一步理解Autoware的内部工作机制才能充分发挥其潜力。通过前面配置的各种可视化工具我们可以深入观察系统运行时的数据流动。rqt_graph展示了节点间的消息流动。在Demo运行期间刷新rqt_graph你会看到类似下面的关键节点/nmea2tfposeGNSS数据转换/ndt_matching点云配准与定位/voxel_grid_filter点云降采样这些节点通过ROS话题相互连接形成一个完整的数据处理流水线。观察消息频率可以帮助诊断性能瓶颈rostopic hz /filtered_points rostopic hz /ndt_poserqt_tf_tree则揭示了坐标系之间的关系。Autoware中典型的TF树包含以下关键帧map全局地图坐标系base_link车辆基准坐标系velodyne激光雷达坐标系gpsGNSS传感器坐标系理解这些坐标系之间的变换关系对传感器校准和算法调试至关重要。可以通过命令行工具检查特定变换rosrun tf tf_echo map base_link对于希望进一步定制Autoware的开发者建议从修改启动文件开始。例如调整NDT匹配参数可以在autoware.ai/src/autoware/core_perception/ndt_localizer/launch/ndt_matching.launch中找到相关配置。7. 开发环境进阶配置为了提升开发效率还需要配置一些辅助工具和开发环境。VS Code配置安装ROS插件ms-iot.vscode-ros配置catkin工具设置catkinTools.path为~/autoware.ai/src/catkin/bin/catkin_make_release启用C智能提示在.vscode/c_cpp_properties.json中添加Autoware头文件路径调试工具GDB调试ROS节点rosrun --prefix gdb -ex run --args ndt_matching ndt_matchingValgrind内存检查rosrun --prefix valgrind --leak-checkfull ndt_matching ndt_matching日志管理 Autoware会产生大量日志建议配置logrotatesudo nano /etc/logrotate.d/ros内容如下/root/.ros/log/*.log { daily missingok rotate 7 compress delaycompress notifempty create 644 root root }对于团队开发可以考虑使用roslaunch的screen功能为每个节点创建独立终端node pkgndt_matching typendt_matching namendt_matching outputscreen launch-prefixxterm -e/8. 从Demo到实际应用下一步建议成功运行官方Demo后你可能希望将Autoware应用到自己的项目中。以下是几个实用的进阶方向替换自己的数据集准备自己的点云地图使用pcl_ros工具处理录制自己的rosbag使用rosbag record命令修改tf.launch适配自己的传感器配置算法参数调优NDT匹配的网格尺寸grid_size体素滤波的叶尺寸leaf_size粒子滤波器参数n_particles硬件加速启用GPU加速的NDT需要编译CUDA版本使用FPGA加速点云处理优化多线程参数自定义算法开发添加新的感知算法实现定制化的路径规划集成新的控制模块实际项目中建议从小的修改开始逐步验证每个变更。Autoware的模块化设计允许单独测试每个组件。例如可以先验证自己的点云地图是否能正确加载再逐步集成其他自定义组件。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价