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 folderpip3 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.mzph.cn/news/764144.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python:类和对象

注意:本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 ([www.aideeplearning.cn]) 面向对象编程 VS 面向过程编程 在使用计算机语言进行代码编写时,常见的两种思路是面向对象编程和面向过程编程: &#xf…

SQLiteC/C++接口详细介绍sqlite3_stmt类(十一)

返回:SQLite—系列文章目录 上一篇:SQLiteC/C接口详细介绍sqlite3_stmt类(十) 下一篇: SQLiteC/C接口详细介绍sqlite3_stmt类(十二) 43、sqlite3_reset sqlite3_reset 函数用于重置已经编…

uniapp安装axios

先npm安装 npm i axios然后在项目里面建一个utils文件,再建一个index.js 以下是index.js代码: import axios from axios; const service axios.create({baseURL: //xxxx.xxxxx.com///你的请求接口域名, timeout: 6000, // request timeoutcrossDomai…

【C++】1599. 米老鼠偷糖果

问题:1599. 米老鼠偷糖果 类型:基本运算、整数运算 题目描述: 米老鼠发现了厨房放了 n 颗糖果,它一次可以背走 a 颗,请问米老鼠背了 x 次之后还剩多少颗?(假设 x 次之后一定有糖果剩下&#x…

Redis中的缓存击穿

缓存击穿 缓存击穿问题也叫热点key问题,就是一个被高并发访问并且缓存重建业务较复杂的key突然失效了,无数的请求访问会在瞬间给数据库带来巨大压力。 🤔现象分析: 当线程1查询缓存时,未命中,于是从数据…

transformer的自注意力模型如何实现自注意力

Transformer | 鲁老师 所有参考来自以上的文章,简单来说,要实现自注意力,就得去完成 自己点乘自己的操作,然后得到的结果就能够通过调整矩阵参数完成训练了。 简单来说,构造了三个矩阵 ,这三个矩阵就是为…

界面控件DevExpress ASP.NET Ribbon组件 - 完美复刻Office 365体验!

无论用户是喜欢传统工具栏菜单外观、样式,还是想在下一个项目中复制Office 365 web UI,DevExpress ASP.NET都提供了所需要的工具,帮助用户打造更好的应用程序界面。 P.S:DevExpress ASP.NET Web Forms Controls拥有针对Web表单&a…

基于python+vue的O2O生鲜食品订购flask-django-nodejs-php

近年来互联网络的迅猛发展和电子终端设备的普及,赋予了各行业充足的发展空间。微信小程序的O2O生鲜食品订购相比于传统信息技术,时效性是它最大的特色,已经在电子娱乐、经济等中发挥着举足轻重的作用。短时间内迅速扩大了线上管理系统的规模。…

【PHP】通过PHP实时监控Apache、MySQL服务运行状态

一、前言 有些时候我们需要监控一些服务的运行状态,比如说Apach或MySQL的运行状态,最近工作中也开发了这方面的功能,记录下来怎样使用PHP语言来实时监控Apache、MySQL服务的运行状态。 如果想一键开启Apache或MySQL等其他服务可以看这篇文章…

CSS color-mix() 函数

CSS color-mix() 函数是近年来CSS色彩模块新增的一项强大功能,允许开发者在样式表中直接混合两种或多种颜色。这一特性为设计师和开发者带来了更多创作空间,让网页的颜色设计变得更加生动和丰富。本文将带你了解 color-mix() 函数的使用方法及其在实际项…

计网--网络层个人笔记

网络层的IP分组由路由器转发,而每一个路由器有很多接口,那么从哪一个接口转发便需要转发表。 一、网络层基本功能 二、SDN基本概念 2.1 路由器 数据平面:转发的过程。一个分组如何从一个端口到达另一个端口。 控制平面:路由选择…

JAVA 8 新特性 Lamdba表达式(二)

一、Lamdba的语法 (参数类型1 参数1,参数类型2 参数2,…) -> { 方法体 }; Lambda表达式就是一个匿名函数,不关注方法名,只关注参数和方法体。 Lambda表达式组成三要素:括号(),箭头->,代码…

ES 8.x的多实例集群搭建与角色规划

ES 8 多实例集群搭建与角色规划 ES 8版本与之前版本存在较大改变,第一个区别就是启动时默认开启了安全模式,也就是即便是测试环境也需要用户名密码和https传输层安全证书。此外,集群节点的角色也与之前不同,除了新增角色外在配置…

Unity 获取鼠标滚轮信息的一些方法

Unity获取鼠标滚轮信息有以下一些方法: 1、使用Input.GetAxis(“Mouse ScrollWheel”)来获取鼠标滚轮的信息,如: //法一:float scrollWheelInput Input.GetAxis("Mouse ScrollWheel");if (scrollWheelInput > 0f){…

机器学习的概念、步骤、分类和实践

作为资深人工智能专家,对机器学习有着深入的研究和实践经验。以下是对机器学习概念、步骤、分类和实践的逐步分析: 一、机器学习概念 机器学习是人工智能的一个子集,它让计算机从数据中学习并改进其性能,而无需进行明确的编程。…

使用专属浏览器在国内直连GPT教程

Wildcard官方推特发文说他们最近推出了一款专门为访问OpenAI设计的浏览器。 根据官方消息,这是一款专门为访问OpenAI优选网络设计的浏览器,它通过为用户提供专用的家庭网络出口,确保了快速、稳定的连接。 用这个浏览器的最大好处就是直接用浏…

【测试开发学习历程】MySQL增删改操作 + 备份与还原 + 索引、视图、存储过程

前言: SQL内容的连载,到这里就是最后一期啦! 如果有小伙伴要其他内容的话,我会追加内容的。(前提是我有学过,或者能学会) 接下来,我们就要开始python内容的学习了 ~ ~ 目录 1 …

Github 2024-03-22 开源项目日报Top10

根据Github Trendings的统计,今日(2024-03-22统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目3C#项目1Java项目1Rust项目1Go项目1Shell项目1非开发语言项目1TypeScript项目1Colossal-AI:使大型人工智能模型更加实惠和快速训练的…

吴恩达机器学习笔记 二十六 决策树学习过程 独热编码one-hot

决策树的学习过程 1. 所有样本都在根结点 2.计算所有可能的特征的信息增益,选择信息增益最大的那个 3.根据选择的特征分离数据集,创造左右两支子树 4.继续进行分裂直到达到停止标准。停止标准有:一个节点只有一类样本;分裂一…

[ABC206E] Divide Both 解题记录

[ABC206E] Divide Both 解题记录 题意简述 给定整数 L , R L,R L,R,求满足以下条件的数对 ( x , y ) (x,y) (x,y) 的数量。 x , y x,y x,y 不互质 x ∤ y x \nmid y x∤y 且 y ∤ x y \nmid x y∤x 题目分析 正难则反,考虑用所有的满足第一条性质的…