Carla 自动驾驶挑战赛 搭建环境

1. 系统设置

1.1 下载CARLA排行榜包

  • 下载打包的CARLA 排行榜版本。

  • 将包解压到一个文件夹中,例如 CARLA。

在以下命令中,更改${CARLA_ROOT}变量以对应于您的 CARLA 根文件夹。

  • 为了使用 CARLA Python API,您需要在您喜欢的环境中安装一些依赖项。作为参考,对于conda,首先创建一个新环境:
conda create -n py37 python=3.7
conda activate py37
cd ${CARLA_ROOT}  # Change ${CARLA_ROOT} for your CARLA root folder

pip3 install -r PythonAPI/carla/requirements.txt

CARLA 排行榜版本基于 0.9.14 版本。它还具有即将发布的 0.9.14 版本的一些功能,例如新的大地图功能。因此,在使用API​​时请参考最新的文档。

1.2 获取排行榜和场景跑者

  • 下载排行榜存储库Leaderboard-2.0 分支
git clone -b leaderboard-2.0 --single-branch https://github.com/carla-simulator/leaderboard.git

在以下命令中,更改${LEADERBOARD_ROOT}变量以对应于您的排行榜根文件夹。

  • 安装所需的 Python 依赖项。
 # Change ${LEADERBOARD_ROOT} for your Leaderboard root folder
pip3 install -r requirements.txt
  • 下载 Scenario Runner 存储库排行榜-2.0 分支
git clone -b leaderboard-2.0 --single-branch https://github.com/carla-simulator/scenario_runner.git

在以下命令中,将 更改为${SCENARIO_RUNNER_ROOT}与您的 Scenario_Runner 根文件夹相对应。

  • 使用相同的 Python 环境安装所需的 Python 依赖项。
cd ${SCENARIO_RUNNER_ROOT} # Change ${SCENARIO_RUNNER_ROOT} for your Scenario_Runner root folder
pip3 install -r requirements.txt
1.2.1 基于ROS的代理

首先,下载并安装适当的 ROS 或 ROS2 发行版。 Leaderboard 2.0 支持 ROS Melodic、ROS Noetic 和 ROS2 Foxy。然后,克隆并构建ROS或ROS2的 CARLA ROS 桥存储库。确保leaderboard-2.0在克隆 CARLA ROS Bridge 存储库时指定分支:

git clone --recurse-submodules leaderboard-2.0 --single-branch https://github.com/carla-simulator/ros-bridge

1.3 定义环境变量

我们需要确保不同的模块可以找到彼此。

  • ~/.bashrc使用以下命令打开配置文件:
gedit ~/.bashrc
  • 编辑您的 ~/.bashrc个人资料,添加以下定义。编辑后保存并关闭文件。
export CARLA_ROOT=PATH_TO_CARLA_ROOT  //(carla 排行榜包解压路径)
export SCENARIO_RUNNER_ROOT=PATH_TO_SCENARIO_RUNNER //(SCENARIO 存放路径)
export LEADERBOARD_ROOT=PATH_TO_LEADERBOARD  //(LEADERBOARD 存放路径)
export PYTHONPATH="${CARLA_ROOT}/PythonAPI/carla/":"${SCENARIO_RUNNER_ROOT}":"${LEADERBOARD_ROOT}":"${CARLA_ROOT}/PythonAPI/carla/dist/carla-0.9.13-py3.7-linux-x86_64.egg":${PYTHONPATH}
  • 请记住.bashrc使用以下命令来使这些更改生效:
source ~/.bashrc


2. 创建带有排行榜的自治代理

2.1 排行榜的第一步

排行榜将负责运行您的自主代理,并评估其在多条路线的不同交通情况下的行为。为了更好地理解这个过程,让我们运行一个基本代理。

  • 在一个终端中运行 CARLA 服务器。
cd ${CARLA_ROOT}
./CarlaUE4.sh -quality-level=Epic -world-port=2000 -resx=800 -resy=600
  • 在另一个终端中,导航到${LEADERBOARD_ROOT}.虽然排行榜是使用 python 脚本运行的,但使用的参数数量可能会让使用终端直接执行此操作感到非常不舒服。因此,建议使用bash脚本:
touch test_run.sh
chmod +x test_run.sh
  • 将以下代码粘贴到test_run.sh.这将设置一些用于参数化的环境变量,并运行run_evaluation.sh,它将使用这些变量作为leaderboard_evaluator.py脚本的参数。
# Parameterization settings. These will be explained in 2.2. Now simply copy them to run the test.
export ROUTES=${LEADERBOARD_ROOT}/data/routes_devtest.xml
export REPETITIONS=1
export DEBUG_CHALLENGE=1
export TEAM_AGENT=${LEADERBOARD_ROOT}/leaderboard/autoagents/human_agent.py
export CHECKPOINT_ENDPOINT=${LEADERBOARD_ROOT}/results.json
export CHALLENGE_TRACK_CODENAME=SENSORS./scripts/run_evaluation.sh
  • 运行脚本:
./test_run.sh

这将启动一个pygame窗口,让您可以选择手动控制代理。按照彩色航点指示的路线到达目的地。该脚本加载 Town 12 中的两条路线。

最终文件夹分布如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/480245.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ARM-Linux 开发板下安装编译 OpenCV 和 Dlib

安装 OpenCV 和 Dlib 不像在 x86 平台下那样简单,用一句命令就可以自动安装完。而在 ARM 平台中许多软件都需要自行下载编译,且还有许多问题,本篇文章就是记录在 ARM 平台下载 OpenCV 踩过的坑。 硬件环境: RK3568 Ubuntu20.04…

一文读懂I2C协议

一.硬件连接 I2C必须使用开漏(或集电极开路)的引脚,其引脚框图如下所示。 SCL0对应78K0的P6.0引脚,SDA0对应78K0的P6.1引脚。 在使用开漏引脚通信时,需注意如下事项: 1)两条总线须外接…

jvm提供的远程调试 简单使用

JVM自带远程调试功能 JVM远程调试,其实是两个虚拟机之间,通过socket通信,达到远程调试的目的; 前提 确保本地和远程的网络是开通的; 本地操作 远程操作 在启动命令参数中 把上面的内容复制进去

基于CSS3制作专属可自由旋转的立方体

一、代码区域 1.1 css3代码区域 <style>* {padding: 0;margin: 0;list-style: none;}/* 1) 定义动画 */keyframes loop {0% {transform: rotateX(348deg) rotateY(67deg) rotateZ(95deg);}50% {transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg);}100% {transform:…

list.sort()Collections.sort()深入理解

list.sort()&&Collections.sort() 文章目录 list.sort()&&Collections.sort()背景相关代码代码一代码二 原理举一反三 业务场景考虑 背景 业务中经常用到List的sort()方法&#xff0c;但是对于其中return的-1&#xff0c;0&#xff0c;1理解不到位&#xff0c…

(附源码)基于Spring Boot与Vue的宠物用品销售系统设计与实现

前言 &#x1f497;博主介绍&#xff1a;✌专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f447;&#x1f3fb; 精彩专栏 推荐订阅&#x1f447;&#x1f3fb; 2024年Java精品实战案例《100套》 &#x1f345;文末获取源码联系&#x1f345; &#x1f31…

用BSP优化3D渲染

3D渲染引擎设计者面临的最大问题之一是可见性计算&#xff1a;只必须绘制可见的墙壁和物体&#xff0c;并且必须以正确的顺序绘制它们&#xff08;应该在远处的墙壁前面绘制近墙&#xff09; 。 更重要的是&#xff0c;对于游戏等应用程序来说&#xff0c;开发能够快速渲染场景…

vue的优缺点有那些 组件常用的有那些?

优点&#xff1a; 组件化开发&#xff0c;提升效率&#xff0c;方便复用&#xff0c;便于协同开发单页面路由易于结合其他的第三方库丰富的api方法轻量高效,虚拟DOMMVVM&#xff0c;数据驱动视图轻量级的框架 缺点&#xff1a; 缺少高阶教程和文档生态环境不如angular和re…

nuclei使用方法

nuclei使用方法 查看帮助 nuclei -h 列出所有模板 nuclei -tl 查找某种cms的相关漏洞模板&#xff0c;wordpress为例 nuclei -tl -tc "contains(name,wordpress)"便会列出内容里含有wordpress关键字的漏洞检测模板 使用与某cms相关的所有漏洞模板进行扫描&#…

MATLAB机器学习工具箱——傻瓜式操作

一、使用回归学习期预测北京二手房房价 软件&#xff1a;MATLAB R2023 a 数据&#xff1a; 第一步&#xff1a;导入原始数据和待预测数据 第二步 &#xff1a;打开工具箱中的回归学习器导入学习数据 1.新建会话 2.寻找导入learning data 3.自动锁定前7列为自变量&#xff…

课时72:流程控制_for循环_嵌套循环

1.1.1 嵌套循环 学习目标 这一节&#xff0c;我们从 基础知识、简单实践、小结 三个方面来学习。 基础知识 简介 这里的嵌套实践&#xff0c;与选择语句的嵌套实践基本一致&#xff0c;只不过组合的方式发生了一些变化。常见的组合样式如下&#xff1a;for嵌套for语句for …

网络安全知识核心之TCP与UDP区别

TCP 面向连接&#xff08;如打电话要先拨号建立连接&#xff09;提供可靠的服务;UDP 是无连接的&#xff0c;即发送数据之前不需要建立连接&#xff0c;;UDP 尽最大努力交付&#xff0c;即不保证可靠交付。&#xff08;由于 UDP 无需建立连接&#xff0c;因此 UDP 不会引入建立…

Python连接MariaDB数据库

2024软件测试面试刷题&#xff0c;这个小程序&#xff08;永久刷题&#xff09;&#xff0c;靠它快速找到工作了&#xff01;&#xff08;刷题APP的天花板&#xff09;【持续更新最新版】-CSDN博客 Python连接MariaDB数据库 一、安装mariadb库 pip install mariadb 二、连接…

解决 poi3.8版本在word中插入图片不展示的问题

解决 poi3.8版本在word中插入图片不展示的问题 1. 前言2. 问题描述3. 解决问题3.1 方案1——自定义XWPFDocument3.1.1 解决代码3.1.2 参考 3.2 方案2——使用开源框架xdocreport 4. 其他 1. 前言 本次使用的是poi3.8版本&#xff0c;引入的依赖如下&#xff1a; <dependency…

【爬虫】实战-爬取Boss直聘信息数据

专栏文章索引&#xff1a;爬虫 所用工具&#xff1a; 自动化工具&#xff1a;DrissionPage 目录 一、找到目标数据(2个确定)​ 1.确定目标网页 2.确定目标网址 二、编写代码​ 三、查看数据​ 五、总结 一、找到目标数据(2个确定) 1.确定目标网页 打开目标网站 网站&am…

Llama 2 模型

非常清楚&#xff01;&#xff01;&#xff01;Llama 2详解 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/649756898?utm_campaignshareopn&utm_mediumsocial&utm_psn1754103877518098432&utm_sourcewechat_session一些补充理解&#xff1a; 序列化&#xff…

Git学习笔记之标签

Git 可以给仓库历史中的某一个提交打上标签&#xff0c;以示重要。 比较有代表性的 是人们会使用这个功能来标记发布结点&#xff08; v1.0 、 v2.0 等等&#xff09;。 1、列出标签 列出已有的标签: git tag按照通配符列出标签需要 -l 或 --list 选项。如果你只想要完整的标…

真机笔记(1)第一阶段知识讲解

目录 第一阶段讲解&#xff1a; 1.1 机房 1.2 分类&#xff1a; 1.3 机房建设标准 1.3.1 安全性: 1.3.2 供电&#xff1a; 1.3.3 空气调节&#xff1a;&#xff08;恒温恒湿&#xff09; 1.3.4 电磁防护&#xff1a; 2.1 机柜 2.2 分类 2.3 机柜的高度单位 3.1 设备…

VUE3.0(一):vue3.0简介

Vue 3 入门指南 什么是vue Vue (发音为 /vjuː/&#xff0c;类似 view) 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和JavaScript 构建&#xff0c;并提供了一套声明式的、组件化的编程模型&#xff0c;帮助你高效地开发用户界面。无论是简单还是复杂的界…

故障诊断模型 | 环境基于健康指标(Health indicator)的滚动轴承故障诊断

文章目录 效果一览文章概述模型描述源码设计参考资料效果一览 文章概述 故障诊断模型 | 环境基于健康指标(Health indicator)的滚动轴承故障诊断 基于健康指标的滚动轴承故障诊断方法是一种重要的机械故障诊断技术,它通过对滚动轴承运行过程中的健康指标进行监测和分析,来判…