Carla 保姆级安装教程

news2024/12/26 23:11:03

一:电脑配置

carla支持windows,Linux系统构建,官方对于安装电脑的最低配置要求是拥有6G显存的GPU,推荐8G显存的GPU,至少需要20G的存储空间,所有对电脑的配置要求是不小的挑战。

我所使用电脑的硬件配置:32G内存、AMD R7处理器 、NVIDIA RTX 3090显卡;软件配置:ubuntu18.04(linux开发是主流),Ros1(melodic),Python2.7等

二:Carla软件安装方式

以下为nvidia-driving部分,如果安装好的可以跳过了


nvidia驱动的安装:炫酷的界面就是用显卡驱动炫出来的,没有显卡驱动,显示不出来画面也是理所应当的;

备份 /etc/apt/sources.list 文件

cp /etc/apt/sources.list /etc/apt/sourses.list.backup

如果上述操作被 permission denied 就加 sudo 再运行:

sudo cp /etc/apt/sources.list /etc/apt/sourses.list.backup

用 gedit 修改源列表内容

sudo gedit /etc/apt/sources.list #删除原内容,添加以下内容 (阿里源/清华源)

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释

deb Index of /ubuntu/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror bionic main restricted universe multiverse

# deb-src Index of /ubuntu/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror bionic main restricted universe multiverse

deb Index of /ubuntu/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror bionic-updates main restricted universe multiverse

# deb-src Index of /ubuntu/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror bionic-updates main restricted universe multiverse

deb Index of /ubuntu/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror bionic-backports main restricted universe multiverse

# deb-src Index of /ubuntu/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror bionic-backports main restricted universe multiverse

deb Index of /ubuntu/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror bionic-security main restricted universe multiverse

# deb-src Index of /ubuntu/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror bionic-security main restricted universe multiverse

# 预发布软件源,不建议启用

# deb Index of /ubuntu/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror bionic-proposed main restricted universe multiverse

# deb-src Index of /ubuntu/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror bionic-proposed main restricted universe multiverse

更新一下:

sudo apt-get update

安装依赖项

分别执行两条命令安装安装 NVIDIA 显卡依赖软件

sudo dpkg --add-architecture i386

sudo apt install build-essential libc6:i386

屏蔽开源驱动 nouveau

终端输入

sudo gedit /etc/modprobe.d/blacklist.conf

在文本最后添加以下两行内容后,保存并关闭(用于禁用 nouveau 第三方驱动,之后也不需要改回来)

blacklist nouveau

options nouveau modeset=0

依次执行以下命令,使禁用生效并重启系统

sudo update-initramfs -u

sudo reboot

重启后,输入以下命令验证是否生效 (友情提示:如果哪天显卡驱动因为突然断电、关机重启等原因崩了的时候,但安装包还在,那么就从这一步开始快速重装)

lsmod | grep nouveau

若没有输出,则禁用生效

关闭图形界面

按 Ctrl-Alt+F2 进入命令行界面 (还有其它进入方式,比如 Ctrl-Alt+F1 ~ F7 都可以试一下),输入用户名和密码登录(一定要在命令行页面,而不是终端)需要输入login和password;

输入以下命令,禁用 X-Window 服

sudo service lightdm stop # 这会关闭图形界面

注意:我的电脑上没有安装 lightdm,图形界面是 GTK3 的,所以如果提示 unit lightdm.service not loaded,则需要先安装lightdm

sudo apt-get install lightdm

安装完毕后跳出一个界面 (有 GTK3 和 lightdm 两个选项),选择 lightdm

此时,再执行 sudo service lightdm stop 以禁用 X-Window 服务

(若安装过其他版本或其他方式安装过驱动执行此项,应先卸载原有驱动,以下是其中一种方式)

sudo apt-get remove nvidia-*

安装驱动

如果驱动文件默认下载在 Downloads 目录下,则先进入该目录

cd Downloads/

给驱动 run 文件赋予执行权限 (注意驱动文件名要与自己下载的相符)

sudo chmod a+x NVIDIA-Linux-x86_64-455.23.04.run

安装驱动 (注意驱动文件名要与自己下载的相符)

#台式机运行

sudo ./NVIDIA-Linux-x86_64-455.23.04.run –no-opengl-files-no-x-check -no-nouveau-check

#笔记本运行

sudo ./NVIDIA-Linux-x86_64-455.23.04.run

各项分别表示:

–no-opengl-files 只安装驱动文件而不安装OpenGL文件 - 这个参数最重要

–no-x-check 安装驱动时不检查 X 服务

–no-nouveau-check 安装驱动时不检查 nouveau

安装过程中,如果出现下面的问题 (可能 部分 或 全部 遇到),按键盘左、右键选中对应选项后,按回车继续:如果错了,可能导致安装失败或存在隐患。注意,上述最重要的一步问你是否使用 nv 的 xconfig 文件,一定要选 yes,否则在启动 x-window 时不会使用 nv 驱动!

检查是否安装成功在命令行界面 / 终端均可检查

nvidia-smi # 如果出现GPU列表,则驱动安装成功

输出类似以下的信息,即表示正常安装成功

 

ps:其实有这个也不代表显卡驱动是装好的,也有可能是假装装好了,这个时候可以用一个网站验证一下;

volumeshader_bm

如果转动起来不卡说明显卡安装的没有问题。

 

volumeshader_bm


难点:python版本的混淆;ubuntu18.04中自带的python是2.7版本的,但是后面会涉及好几次python版本的对应,其他的博客上会建议安装anconda建立虚拟环境,虽然之前学deeplearning的时候确实很方便,但是对于小白来讲就求简,一步一步的来。

看看当前python的版本

python --version

Python 2.7.17

如果是2.7就可以继续朝下走,如果不是就需要切换python的版本了

sudo update-alternatives --config python

有 2 个候选项可用于替换 python (提供 /usr/bin/python)。

选择 路径 优先级 状态

------------------------------------------------------------

0 /usr/bin/python3.6 1 自动模式

* 1 /usr/bin/python2.7 0 手动模式

2 /usr/bin/python3.6 1 手动模式

要维持当前值[*]请按<回车键>,或者键入选择的编号:

下载及解压压缩包

这是官网的GitHub地址,然后免源码安装的压缩包,解压即可, github地址点击此:https://github.com/carla-simulator/carla/releases

需要科学上网,可以通过网址 https://mirrors.sustech.edu.cn/carla/ 速度较快

github截图

 

这个地方用0.9.12做实例,实际上下载0.9.13

下载后跳转目录并压缩

tar -xzvf CARLA_0.9.13.tar.gz

由于考虑到git clone的传输量,Carla官方将其余的地图文件单独放置,需要单独下载

 

无需将地图资源解压直接放到对应的文件目录一把梭哈

cd Carla0.9.13

./importAssets.sh

然后就完成了,接下来就可以在carla里进行读取这个附加城镇的信息了

配置python静态变量信息

(1)在Carla的安装文件目录下,找到PythonAPI/carla/dist中有不同版本的.egg文件(python2 和 python3)

由于我们一开始就选择使用2.7所以打开该目录下的终端,输入

pwd #查找当前文件夹得目录

另开一个终端,到根目录下 

cd ~

编辑.bashrc文件

sudo gedit .bashrc

在最后一行中添加export

export PYTHONPATH=$PYTHONPATH:/home/用户名/sim_ws/carla_0.9.13/PythonAPI/carla/dist/carla-0.9.13-py2.7-linux-x86_64.egg

source 一下

source .bashrc

运行Carla

下载依赖

pip install --user pygame numpy &&

pip3 install --user pygame numpy

终端中输入

./CarlaUE4.sh

三:carla_ros_bridge安装

Carla版本:0.9.13 Carla_ros_bridge的版本:0.9.10-1

1.源码安装(推荐)

mkdir -p ~/carla-ros-bridge/catkin_ws/src

cd ~/carla-ros-bridge

git clone --recurse-submodules https://github.com/carla-simulator/ros-bridge.git catkin_ws/src/ros-bridge

source /opt/ros/<melodic/noetic>/setup.bash

cd catkin_ws

以上的指令:mkdir -p ~/carla-ros-bridge/catkin_ws/src 、-P的意思是可以连续的建立文件夹;在git clone的时候如果中断就是网的问题可以多拉几下,科学上网才是王道啊!;source /opt/ros/<melodic/noetic>/setup.bash 这句指令中实际上只需要执行source /opt/ros/melodic/setup.bash基于melodic版本的ros1,或者source /opt/ros/noetic/setup.bash版本的ros,别无脑的复制指令,思考一下到底安装的是什么类型的ros,可以cd /opt/ros/下,ls看看到底是什么版本的ros; 

rosdep update

rosdep install --from-paths src --ignore-src -r

catkin build

rosdep update容易出错,主要的问题还是归结到网络问题、可以使用鱼香ros来解决即rosdepc update,可以发现更新成功;rosdep install --from-paths src --ignore-src -r 在执行这一行的时候出现了一个报错pip module not install, 最终的发现pip --version对应的版本是python3的,但是我在全局变量.bashrc中使用的是python2.7,所以就加key,下载了一个python2得pip

curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py

sudo python2 get-pip.py

再重新执行rosdepc就成功了再catkin_make一下没有任何问题了但是需要住哟每次在roslaunch的时候需要source一下,如果电脑上一共拥有两套carla_ros_bridge需要用哪个的时候就去source哪个;

2.apt-get方式(不推荐)

这种方式安装出来的carla_ros_bridge在启动的时候(1)会非常的黑,(2)是非常的卡、究其原因是apt-get install的方式获取的是官方已经编译好的包,我的carla-ros-bridge的版本是0.9.10-1。

cd Path_of_carla #carla的安装位置

make PythonAPI ARGS"--python-version=2"

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1AF1527DE64CB8D9

sudo add-apt-repository "deb [arch=amd64] Index of /carla $(lsb_release -sc) main"

sudo apt-get update # Update the Debian package index

sudo apt-get install carla-ros-bridge

对于apt-get方式安装的bridge的效果:

source /opt/carla-ros-bridge/melodic/setup.bash

roslaunch carla_ros_bridge carla_ros_bridge_with_example_ego_vehicle.launch

解决办法:在代码中调节前后相机的iso的值(注意前后相机都需要改动)

sudo gedit /opt/carla-ros-bridge/melodic/share/carla_ego_vehicle/config/sensors.json

可以将数值改到4000,ctrl+s保存好,退出重新launch一下,发现黑的问题解决了但是太卡的问题依然没有解决。

carla安装

四:调试

出现报错:

WARNING:Client API Vwesion = 0.9.13

WARNING: Simulator API VErsion = 0.9.12

出现这个问题的原因是python中carla库的版本和Carla的版本不匹配导致的;所以正确的姿势应该是:

卸载掉高版本的carla库,下载与Carla仿真器版本相匹配的库

解决

sudo uninstall carla

pip3 install carla == 0.9.12

再次运行python2 ./manual_control.py 问题解决

电脑太卡,需要有一个终端把仿真器打开,可以在后台运行

./CarlaUE4.sh -quality-level=Epic -RenderOffScreen

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

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

相关文章

3.7 曲率

学习目标&#xff1a; 如果我要学习高等数学中的曲率&#xff0c;我会遵循以下步骤&#xff1a; 1.熟悉相关的数学概念&#xff1a;在学习曲率之前&#xff0c;我们需要了解曲线、切线和曲率半径等相关的数学概念。因此&#xff0c;我会复习这些概念&#xff0c;以便更好地理…

网卡别名的设置

文章目录1. 网卡别名是什么2. 工作原理3. 设置3.1 临时添加&#xff0c;重启失效3.1.1 使用ipconfig命令来设置网卡别名3.1.2 使用ip addr命令来设置网卡别名3.2 永久性添加3.3 查看参考1. 网卡别名是什么 IP别名就是一张物理网卡上配置多个IP&#xff0c;实现类似子接口之类的…

制作PassMarkMemTest86启动U盘

制作PassMarkMemTest86启动U盘1. 概述2.制作 PassMarkMemTest86 启动U盘结束语1. 概述 PassMarkMenTest86 是一款免费、开源且强大的内存检测工具&#xff0c;能测试电脑内存的稳定性、存储大小和隐性问题&#xff0c;它还拥有 13 种不同的 RAM 测试算法&#xff0c;在主菜单中…

洛丽运动会 NFT 作品集第一弹

欢迎来到 2036 年洛丽运动会&#xff0c;这是一个以史前世界为背景的体育小游戏体验。为了庆祝这场伟大比赛的开始&#xff0c;结合了史前和运动配件的 NFT 系列将于北 The Sandbox 市场平台发布。 运动和格斗设备将提高你在运动会上的技能&#xff1b;而史前配件将使你与体育场…

Linux高并发服务器(webserver)

一.有限状态机 它的转移函数表示系统从一个状态转移到另一个状态的条件 二.EPOLL 在内核中创建一个数据&#xff0c;这个数据有两个比较重要的数据&#xff0c;一个是需要检测的文件描述符的信息&#xff08;红黑树&#xff09;&#xff0c;一个双向链表&#xff0c;存放检测到…

Java类加载机制介绍

类加载机制的简单介绍 类加载机制是指将.class字节码文件读入到内存中。在运行时数据区中的方法区保留类的数据结构&#xff0c;在堆中创建一个与之对应的Class对象。 类的生命周期主要经历7个阶段&#xff1a;加载、验证、准备、解析、初始化、使用、卸载 其中从加载到初始化…

如何通俗易懂的解释无线通信中的那些专业术语!

这是一篇来自网络的非常经典的一篇老文&#xff0c;原作者不详&#xff0c;但非常值得一读&#xff01; 香农定理 类比&#xff1a;城市道路上的汽车的车速和什么有关系&#xff1f;和道路的宽度有关系&#xff0c;和自己车的动力有关系&#xff0c;也其他干扰因素有关系&…

Unity接SDK - 极光推送

2021.09.09记录&#xff0c;2023发布&#xff0c;如有不对&#xff0c;还请包含。发晚了 如果想看Android原生接入JPush - SDK&#xff0c;移步Android原生集成JPush SDK_jpush android sdk v4.7.2 极光推送 - 接入 版本&#xff1a; Unity 2020.3.10f1 JPush - Unity 3…

linux系统安全及应用

目录一、账号安全控制1.1基本安全措施1.1.1系统账号的清理1.1.1.1将非登录用户的Shell设为/sbin/nologin1.1.1.2锁定长期不使用的账号1.1.1.3删除无用账号1.1.1.4锁定账号文件passwd、shadow1.1.2密码安全控制1.1.2.1设置密码有效期1.1.2.2要求用户下次登录时修改密码1.1.3命令…

服务端开发之Java秋招面试11

努力了那么多年,回头一望,几乎全是漫长的挫折和煎熬。对于大多数人的一生来说,顺风顺水只是偶尔,挫折、不堪、焦虑和迷茫才是主旋律。我们登上并非我们所选择的舞台,演出并非我们所选择的剧本。继续加油吧&#xff01; 目录 1.MySQL的多版本并发控制具体实现过程&#xff1f;…

目标检测YOLO系列-YOLOVX运行步骤(推理、训练全过程)

下载项目&#xff1a;点击下载 进入项目根目录&#xff08;通过cd命令&#xff09; apex的安装与下载 下载apex git clone https://github.com/NVIDIA/apex进入apex目录 cd apex执行安装命令 python setup.py install首先安装相关的类库&#xff1a; pip install -i https://p…

深入学习MongoDB---1---入门篇+基础重点篇

MongoDB入门 MongDB作为NoSQL数据库之一&#xff0c;主要关注&#xff1a;灵活性、扩展性、高可用灵活性&#xff1a;NoSQL的特点就是反范式理论&#xff0c;为数据的水平扩展和字段的组织提供了巨大的便利高可用&#xff1a;天生就伴随副本集&#xff08;从节点&#xff09;的…

计数排序的实现

计数排序是非比较排序的一种&#xff0c;是对哈希直接定址法的变形应用&#xff0c;其操作步骤如下&#xff1a; 1.统计相同元素出现的次数。 2.根据统计结果将序列回收到原来的序列中。 拿一组重复元素较多的数组来举例子&#xff1a; 10 11 10 15 14 15…

Disruptor-源码解读

前言 Disruptor的高性能&#xff0c;是多种技术结合以及本身架构的结果。本文主要讲源码&#xff0c;涉及到的相关知识点需要读者自行去了解&#xff0c;以下列出&#xff1a; 锁和CAS伪共享和缓存行volatile和内存屏障 原理 此节结合demo来看更容易理解&#xff1a;传送门…

数云融合|新手入门,5分钟秒懂开源

目录一、开源软件开源领域的两大组织&#xff1a;FSF和OSI二、开源许可证开源意味着免费吗&#xff1f;三、开源技术应用领域四、总结一、开源软件 开源即开放源代码&#xff0c;他的核心是源代码公开&#xff0c;任何人都可以查看、使用、修改和分发。与之相对的是闭源&#…

js排序算法

排序算法 - jsjs交换两个值的三种方法方式1&#xff1a;算术运算方式2&#xff1a;ES6解构方式3&#xff1a;数组的特性冒泡排序实现思路图解bubbleSort参考视频选择排序实现思路图解selectionSort参考视频插入排序实现思路图解insertionSort参考视频js交换两个值的三种方法 方…

javaSccript---call()、 bind()、 apply()的区别

call()、apply()、bind() 都是用来重定义 this 这个对象的 语法&#xff1a; function.apply(thisArg, [argsArray])//argsArray 是一个可选的数组 function.call(thisArg, arg1, arg2, ...)//arg1、arg2、... 是将传递给函数的参数列表 function.bind(thisArg, arg1, arg2, ..…

Webstorm是什么软件?你了解吗

WebStorm 是一款由 JetBrains 开发的集成开发环境&#xff08;IDE&#xff09;&#xff0c;它是专门为开发 Web 应用程序而设计的。它提供了许多功能&#xff0c;例如代码自动完成、错误突出显示、重构、调试、版本控制等&#xff0c;可以帮助开发人员提高效率和代码质量。WebS…

Vector 高性能日志收集工具

文章目录Vector 简介相关概念事件Data modelEvent typesLog eventsMetric eventsTraces组件构成源转换接收器PipelineBuffersBackpressureRolesAgentDaemonSidecarAggregatorTopology分布式集中式基于流Vector 简介 Vector 是一种高性能的可观察性数据管道&#xff0c;可让组织…

天梯赛练习集-L1-031到L1-040–python - java

文章目录PythonL1-031 到底是不是太胖了L1-032 Left-padL1-033 出生年L1-034 点赞L1-035 情人节L1-036 A乘以BL1-037 A除以BL1-038 新世界L1-039 古风排版L1-040 最佳情侣身高差JavaL1-031 到底是不是太胖了L1-032 Left-padL1-033 出生年L1-034 点赞L1-035 情人节L1-036 A乘以B…