在这里插入代码片
@TOC
Autoware Documentation
autoware github网址:autoware github
欢迎来到Autoware文档!在这里,您将找到有关Autoware的全面信息,Autoware是开源自动驾驶软件的前沿。
关于Autoware
Autoware是全球领先的致力于自动驾驶技术的开源项目。基于机器人操作系统(ROS 2), Autoware促进了自动驾驶汽车在各种平台和应用程序上的商业部署。在Autoware基金会网站上了解更多关于我们创新项目的信息。
开始
走进Autoware的世界
发现概念:通过探索概念页面开始您的Autoware之旅。在这里,您将深入了解Autoware背后的核心理念,了解其独特的功能以及它如何在自动驾驶技术领域脱颖而出。了解指导其发展的原则和它提供的创新解决方案。
设置你的环境#
安装自动软件:一旦你掌握了自动软件的原理,是时候把它带入你的世界了。请访问我们的安装部分,了解在您的环境中无缝安装Autoware和相关工具的详细分步说明。无论您是初学者还是专家,这些页面都旨在指导您顺利完成设置过程。
深入了解
动手体验: 安装后,转到教程页面。这些教程旨在为您提供一些模拟的实践经验,使您能够应用所学知识并获得实用技能。从基本操作到高级应用程序,这些教程涵盖了广泛的主题,以增强您对Autoware的理解。
高级主题: 随着您对Autoware越来越熟悉,如何操作指南将是您的下一个目的地。这些页面深入到更高级的主题,提供更深入的见解和更复杂的场景。对于那些希望在Autoware的特定领域扩展知识和专业知识的人来说,他们是完美的。此外,本节还介绍了将Autoware与真实车辆集成的方法,为那些寻求在真实环境中应用Autoware的人提供实用指导。
理解设计
设计概念: 对于那些对Autoware的架构和设计哲学感兴趣的人来说,设计页面是一个宝库。了解架构决策、设计模式以及Autoware各种组件开发背后的基本原理。
更多信息
数据集: 数据集页面对于任何使用Autoware的人来说都是至关重要的资源。在这里,您将找到与Autoware兼容的数据集集合,提供真实世界的场景和数据,以测试和完善您的自动驾驶解决方案。
支持: 随着您深入了解Autoware,您可能会遇到挑战或遇到问题。支持部分旨在帮助您在这些时刻。该区域包括常见问题解答、社区论坛以及获取Autoware帮助的联系信息。它也是一个与其他Autoware用户和贡献者联系,分享经验和解决方案的好地方。
竞赛: 竞赛页面是兴奋与创新相遇的地方。Autoware定期主办或参与各种竞赛和挑战,为用户提供一个测试他们的技能、展示他们的工作并为社区做出贡献的平台。这些比赛范围从本地到全球,为初学者和专家提供了参与和超越的机会。随时了解即将发生的事件,并参与自动驾驶技术的发展。
贡献和协作
成为Autoware故事的一部分:您的Autoware之旅不仅仅是学习和使用;这也是关于贡献和塑造自动驾驶的未来。贡献部分不仅仅是一个指南;这是邀请你参与更大的事业。无论您是程序员、作家还是爱好者,您的贡献都可以推动Autoware向前发展。加入我们,让我们共同建设未来。
相关的文件
除了本页之外,还有一些相关文档可以帮助您进一步了解和理解Autoware:
Autoware Universe Documentation包含每个组件/功能的技术文档,如本地化、规划等。
Autoware Tools Documentation包含每个自动驾驶工具的技术文档,如性能分析、校准等。
Installation
目标平台
Autoware针对下面列出的平台。它可能会在未来版本的Autoware中更改。
除了下面列出的平台之外,Autoware基金会不提供其他平台的支持。
Architecture
- amd64
- arm64
Minimum hardware requirements
Autoware是可扩展的,可以定制,以与分布式或功能较弱的硬件一起工作。下面给出的最低硬件要求只是一般建议。然而,更多的内核、RAM和更高规格的显卡或GPU内核将提高性能。
虽然GPU不需要运行基本功能,但必须启用以下与神经网络相关的功能:—基于LiDAR的物体检测—基于摄像头的物体检测—红绿灯检测和分类。
- CPU with 8 cores
- 16GB RAM
- [Optional] NVIDIA GPU (4GB RAM)
在不使用GPU的情况下,如何启用目标检测和红绿灯检测/分类,请参见不使用CUDA的运行自动软件。
Installing Autoware
设置Autoware有两种方法。根据你的喜好选择一个。
如果在安装过程中出现任何问题,请参阅支持页面。
1 Docker installation
Autoware的Open AD Kit容器使您能够在主机上轻松运行Autoware,确保所有部署的环境相同,而无需安装任何依赖项。Docker安装设置的完整指南。
Open AD Kit也是第一个面向自动驾驶的SOAFEE蓝图,它提供了可扩展的模块化容器,使Autoware的AD堆栈更容易在分布式系统上运行。打开AD套件设置的完整指南。
开发人员还可以使用开发人员容器,从而更容易从源代码构建Autoware,并确保所有开发人员使用相同的环境。
sudo apt update
rosdep update
rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
CMake Error at CMakeLists.txt:5 (find_package):
By not providing "Findcudnn_cmake_module.cmake" in CMAKE_MODULE_PATH this
project has asked CMake to find a package configuration file provided by
"cudnn_cmake_module", but CMake did not find one.
Could not find a package configuration file provided by
"cudnn_cmake_module" with any of the following names:
cudnn_cmake_moduleConfig.cmake
cudnn_cmake_module-config.cmake
Add the installation prefix of "cudnn_cmake_module" to CMAKE_PREFIX_PATH or
set "cudnn_cmake_module_DIR" to a directory containing one of the above
files. If "cudnn_cmake_module" provides a separate development package or
SDK, be sure it has been installed.
./docker/run.sh --map-path path_to_map_data
./docker/run.sh --map-path path_to_map_data ros2 launch autoware_launch autoware.launch.xml map_path:=/autoware_map vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit
Open AD Kit: containerized workloads for Autoware
Open AD Kit提供了两种类型的Docker映像,让您快速开始使用Autoware: devel和runtime。
- 开发映像使您无需设置本地开发环境即可开发Autoware。
- 运行时映像仅包含运行时可执行文件,使您能够快速试用Autoware。
2 Source installation
源安装适用于需要对安装环境进行更细粒度控制的情况。建议有经验的用户或想要自定义环境的人使用它。请注意,根据您的本地环境,可能会出现一些问题。
有关更多信息,请参阅源代码安装指南。
Installing related tools
根据您想要进行的评估,还需要其他一些工具。例如,要运行端到端模拟,您需要安装适当的模拟器。欲了解更多信息,请参阅此处。
Additional settings for developers
还有一些工具和设置供开发人员使用,比如shell或ide。欲了解更多信息,请参阅此处。
TASK [autoware.dev_env.docker_engine : Authorize Docker GPG key] ******************************************************************************************************************************************
fatal: [localhost]: FAILED! => {"changed": false, "msg": "Failed to download key at https://download.docker.com/linux/ubuntu/gpg: Request failed: <urlopen error _ssl.c:990: The handshake operation timed out>"}
PLAY RECAP ************************************************************************************************************************************************************************************************
localhost : ok=23 changed=8 unreachable=0 failed=1 skipped=2 rescued=0 ignored=0
Failed.
ERROR: error loading sources list:
The read operation timed out (https://raw.githubusercontent.com/ros/rosdistro/master/noetic/distribution.yaml)
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
pacmod_interface: Cannot locate rosdep definition for [pacmod3_msgs]
sudo apt install apt-transport-https
sudo sh -c 'echo "deb [trusted=yes] https://s3.amazonaws.com/autonomoustuff-repo/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/autonomoustuff-public.list'
sudo apt update
sudo apt install ros-$ROS_DISTRO-pacmod3
MAKEFLAGS="-j1" colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release --parallel-workers 1
vcs import src < simulator.repos
source /opt/ros/humble/setup.bash
rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
source install/setup.bash
ros2 launch scenario_test_runner scenario_test_runner.launch.py \
architecture_type:=awf/universe \
record:=false \
scenario:='$(find-pkg-share scenario_test_runner)/scenario/sample.yaml' \
sensor_model:=sample_sensor_kit \
vehicle_model:=sample_vehicle
tar -xf ~/autoware_data/yabloc_pose_initializer/resources.tar.gz \
-C ~/autoware_data/yabloc_pose_initializer/
tar -xf ~/autoware_data/tvm_utility/yolo_v2_tiny-x86_64-llvm-3.0.0-20221221.tar.gz \
-C ~/autoware_data/tvm_utility/models/yolo_v2_tiny/
tar -xf ~/autoware_data/lidar_centerpoint_tvm/centerpoint_encoder-x86_64-llvm-3.0.0-20221221.tar.gz \
-C ~/autoware_data/lidar_centerpoint_tvm/models/centerpoint_encoder
tar -xf ~/autoware_data/lidar_centerpoint_tvm/centerpoint_backbone-x86_64-llvm-3.0.0-20221221.tar.gz \
-C ~/autoware_data/lidar_centerpoint_tvm/models/centerpoint_backbone
tar -xf ~/autoware_data/lidar_apollo_segmentation_tvm/baidu_cnn-x86_64-llvm-3.0.0-20221221.tar.gz \
-C ~/autoware_data/lidar_apollo_segmentation_tvm/models/baidu_cnn
./docker/run.sh --map-path path_to_map_data
./docker/run.sh --map-path path_to_map_data ros2 launch autoware_launch autoware.launch.xml map_path:=/autoware_map vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit
Info
source ~/autoware/install/setup.bash
ros2 launch autoware_launch planning_simulator.launch.xml map_path:=$HOME/liangjiabao/project_study/autoware_mapsample-map-planning vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit
docker pull ghcr.io/autowarefoundation/autoware-openadk:20240308-prebuilt-cuda
not found: "/home/liangjiabao/project_study/autoware/install/tensorrt_common/share/tensorrt_common/local_setup.sh"
not found: "/home/liangjiabao/project_study/autoware/install/tensorrt_classifier/share/tensorrt_classifier/local_setup.sh"
ros2 launch scenario_test_runner scenario_test_runner.launch.py \
architecture_type:=awf/universe \
record:=false \
scenario:='$(find-pkg-share scenario_test_runner)/scenario/sample.yaml' \
sensor_model:=sample_sensor_kit \
vehicle_model:=sample_vehicle
gdown -O ~/autoware_map/ 'https://docs.google.com/uc?export=download&id=1499_nsbUbIeturZaDj7jhUownh5fvXHd'
unzip -d ~/autoware_map ~/autoware_map/sample-map-planning.zip
rosrun tf2_tools static_transform_publisher 0 0 0 0 0 0 map world 100
import rclpy
from geometry_msgs.msg import TransformStamped
import tf2_ros
def main(args=None):
rclpy.init(args=args)
node = rclpy.create_node('static_transform_publisher')
broadcaster = tf2_ros.StaticTransformBroadcaster(node)
static_transformStamped = TransformStamped()
static_transformStamped.header.stamp = node.get_clock().now().to_msg()
static_transformStamped.header.frame_id = 'map'
static_transformStamped.child_frame_id = 'world'
static_transformStamped.transform.translation.x = 0.0
static_transformStamped.transform.translation.y = 0.0
static_transformStamped.transform.translation.z = 0.0
static_transformStamped.transform.rotation.x = 0.0
static_transformStamped.transform.rotation.y = 0.0
static_transformStamped.transform.rotation.z = 0.0
static_transformStamped.transform.rotation.w = 1.0
broadcaster.sendTransform(static_transformStamped)
rclpy.spin(node)
node.destroy_node()
rclpy.shutdown()
if __name__ == '__main__':
main()