Carla基础 | Carla预编译版安装与ROS联合仿真图文教程

目录

  • 1 什么是Carla?
  • 2 Carla预编译版安装
    • 2.1 独立显卡配置
    • 2.2 安装ROS
    • 2.3 启动虚拟环境
    • 2.4 安装Carla预编译版
    • 2.5 安装carla-ros-bridge
  • 3 测试案例
  • 常见问题

1 什么是Carla?

Carla是由西班牙巴塞罗那自治大学计算机视觉中心指导开发的开源仿真模拟器,旨在帮助开发者设计、训练和评估自动驾驶系统,其特点是

  • 高度可定制的城市环境: Carla提供了一个开放且可定制的城市环境,包括道路、车辆、行人、交通信号灯等元素,可以根据需要进行调整和修改;
  • 真实感的仿真环境: Carla致力于提供高度真实的仿真环境,使开发者能够在虚拟世界中测试各种自动驾驶算法和系统,以及评估它们在真实世界中的表现;
  • 开放的API和工具: Carla提供了丰富的API和工具,使开发者能够轻松地与仿真环境交互,并自定义和扩展平台以满足其特定需求;
  • 多种传感器模拟: Carla支持模拟各种传感器,包括摄像头、激光雷达、毫米波雷达等,使开发者能够测试不同传感器组合的性能;
  • 支持多种平台: Carla可在Windows、Linux和macOS等多个平台上运行,为开发者提供了灵活的选择;
  • 活跃的社区支持: Carla拥有一个活跃的开发者社区,提供文档、教程和技术支持,帮助开发者更好地利用该平台进行自动驾驶研究和开发。

在这里插入图片描述
CarlaROS都是开源的软件平台,具有高度的可定制性和灵活性。通过将两者结合使用,开发者可以根据自己的需求定制和扩展仿真环境和功能,从而更好地满足自动驾驶系统开发的需求。例如,通过CarlaROS的联合使用,开发者可以在仿真环境中模拟各种传感器,并使用ROS进行数据采集、处理和分析,从而加速自动驾驶系统的开发和优化。

2 Carla预编译版安装

本文系统环境:

  • Carla 0.9.12
  • Ubuntu 20.04
  • Python 3.7

2.1 独立显卡配置

本文只介绍图形化安装方案,更多安装方式请看ROS从入门到精通0-2:Win10+Ubuntu双系统安装、配置、卸载保姆级图文教程

  1. 搜索Additional Drivers

    在这里插入图片描述
  2. 直接选择驱动,点击Apply Changes安装即可。

    在这里插入图片描述
  3. 重启设备后输入
nvidia-smi

出现以下界面则安装成功

在这里插入图片描述

2.2 安装ROS

本文只介绍ROS1的最基本安装过程,更详细的安装、卸载教程请看ROS从入门到精通0-3:ROS简介、安装与常见问题,ROS2的环境配置请看ROS2从入门到精通0-2:ROS2简介、对比ROS1与详细安装流程

  1. 设置软件源
    sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
    
  2. 设置秘钥
    sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
    
  3. 更新软件源
    sudo apt update
    
  4. 安装ROS(推荐安装桌面完整版安装——包含ROSrqtrviz、2D/3D仿真器等)
    # kinetic
    sudo apt install ros-kinetic-desktop-full
    # noetic
    sudo apt install ros-noetic-desktop-full
    # melodic
    sudo apt install ros-melodic-desktop-full
    
  5. ROS环境变量配置
    # kinetic
    echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
    # noetic
    echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
    # melodic
    echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
    

2.3 启动虚拟环境

新建名为carla的虚拟环境

conda create -n carla python=3.7

并启动

conda activate carla

接下来的所有操作都在虚拟环境中进行。对虚拟环境不熟悉的请看Anaconda安装与Python虚拟环境配置保姆级图文教程(附速查字典)

2.4 安装Carla预编译版

进入Carla官网

在这里插入图片描述

下载需要的Carla版本到本地

在这里插入图片描述
安装CarlaPython接口

cd ./PythonAPI/carla/dist
pip install carla-0.9.12-cp37-cp37m-manylinux_2_27_x86_64.whl

配置环境变量

sudo vim ~/.bashrc

增加Carla相关配置

# Carla
export CARLA_ROOT=/home/winter/AutoDriving/carla
export PYTHONPATH=$PYTHONPATH:$CARLA_ROOT/PythonAPI/carla/dist/carla-0.9.12-py3.7-linux-x86_64.egg:$CARLA_ROOT/PythonAPI/carla

接着启动Carla即可,遇到问题请看常见问题小节

./CarlaUE4.sh

在这里插入图片描述

2.5 安装carla-ros-bridge

首先提供apt安装方式

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1AF1527DE64CB8D9
sudo add-apt-repository "deb [arch=amd64] http://dist.carla.org/carla $(lsb_release -sc) main"
sudo apt-get update
sudo apt-get install carla-ros-bridge

但这个方式容易被墙,目前没找到好的解决方案

Err:13 http://dist.carla.org/carla focal InRelease                             Could not connect to dist.carla.org:80 (34.227.255.250), connection timed out
Reading package lists... Done                     
W: Failed to fetch http://dist.carla.org/carla/dists/focal/InRelease  Could not connect to dist.carla.org:80 (34.227.255.250), connection timed out
W: Some index files failed to download. They have been ignored, or old ones used instead.

所以本文采用源码编译

  1. 创建ROS工作空间
    mkdir -p ~/carla-ros-bridge/catkin_ws/src
    
  2. 下载carla-ros-bridge源码
    cd ~/carla-ros-bridge
    git clone --recurse-submodules https://github.com/carla-simulator/ros-bridge.git catkin_ws/src/ros-bridge
    
  3. 安装依赖
    cd catkin_ws
    rosdep update
    rosdep install --from-paths src --ignore-src -r
    
  4. 编译
    catkin_make
    
  5. 安装pyton依赖
    cd src/ros-bridge/
    pip install -r requirements.txt
    
  6. 设置环境变量
    sudo vim ~/.bashrc
    
    添加
    # Carla-ros bridge
    source ~/AutoDriving/carla-ros-bridge/catkin_ws/devel/setup.bash
    

3 测试案例

  • 终端1:启动Carla
    ./CarlaUE4.sh -prefernvidia
    
  • 终端2:启动carla_ros_bridge测试用例
    roslaunch carla_ros_bridge carla_ros_bridge_with_example_ego_vehicle.launch town:='town01'
    
    其中的参数含义如下
    • use_sim_time: 应将此设置为True,以确保ROS使用仿真时间而不是系统时间。此参数将使ROS/clock话题与CARLA仿真时间同步。
    • hostport: 使用Python客户端连接到CARLA的网络设置。
    • timeout: 等待成功连接服务器的时间
    • passive: 被动模式用于同步。当启用时,ROS桥将暂时处于后台,等待所有传感器的所有预期数据都被接收。
    • synchronous_mode: 如果为false,则数据在每次world.on_tick()和每次sensor.listen()回调时发布。如果为true(默认值),则ROS桥在下一次tick之前等待所有预期的传感器消息。这可能会减慢整体仿真速度,但可以确保可重现的结果。
    • fixed_delta_seconds: 仿真步骤之间的仿真时间(增量秒)。它必须小于0.1
    • ego_vehicle: 角色名称用于识别自我车辆。相关话题将被创建以便可以从ROS对这些车辆进行控制。
    • town: 可以使用可用的CARLA城镇(例如,town01)或一个OpenDRIVE文件(以.xodr结尾)
    • register_all_sensors: 如果为false,则仅注册由桥梁生成的传感器;如果为true,则注册仿真中存在的所有传感器。

在这里插入图片描述
在这里插入图片描述
B后可以控制车跑起来

  • 终端3Rviz可视化

    Rviz不熟悉的可以看ROS从入门到精通2-1:机器人3D可视化工具——Rviz。运行

    rosrun rqt_graph rqt_graph
    

    可以看到如下所示的话题网络,说明Carla传感器数据通信正常

    在这里插入图片描述
    打开Rviz订阅相关话题可以看到

    在这里插入图片描述
    至此,Carla预编译版安装与ROS联合仿真的基本流程结束

常见问题

  1. 运行./CarlaUE4.sh后报错

    MESA-INTEL: warning: Performance support disabled, consider sysctl dev.i915.perf_stream_paranoid=0X Error of failed request:  BadDrawable (invalid Pixmap or Window parameter)Major opcode of failed request:  149 ()Minor opcode of failed request:  4Resource id in failed request:  0x340003bSerial number of failed request:  298Current serial number in output stream:  308
    terminating with uncaught exception of type std::__1::system_error: mutex lock failed: Invalid argument
    Signal 6 caught.
    Segmentation fault (core dumped)
    

    解决方案:这实际上是两个问题,首先

    sudo sysctl dev.i915.perf_stream_paranoid=0
    

    接着采用

    ./CarlaUE4.sh -prefernvidia
    

    运行Carla即可

  2. ImportError: No module named transforms3d.euler

    解决方案:在虚拟环境中

    pip install transforms3d
    
  3. CARLA python module version 0.9.13 required. Found: 0.9.12

    解决方案:修改carla-ros-bridge中默认的Carla版本。在carla-ros-bridge/catkin_ws/src/ros-bridge/carla_ros_bridge/src/carla_ros_bridge/CARLA_VERSION中修正为0.9.12即可

  4. 连接超时:RuntimeError: time-out of 2000ms while waiting for the simulator, make sure the simulator is ready and connected to localhost:2000

    解决方案:修改carla-ros-bridge/catkin_ws/src/ros-bridge/carla_ros_bridge/launch/carla_ros_bridge.launch中的

    <!--arg name='timeout' default='2'/>等待接收仿真器的时间 单位 s-->
    <arg name='timeout' default='200'/>
    

🔥 更多精彩专栏

  • 《ROS从入门到精通》
  • 《Pytorch深度学习实战》
  • 《机器学习强基计划》
  • 《运动规划实战精讲》

👇源码获取 · 技术交流 · 抱团学习 · 咨询分享 请联系👇

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

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

相关文章

物联网实战--平台篇之(四)账户后台交互

目录 一、交互逻辑 二、请求验证码 三、帐号注册 四、帐号/验证码登录 五、重置密码 本项目的交流QQ群:701889554 物联网实战--入门篇https://blog.csdn.net/ypp240124016/category_12609773.html 物联网实战--驱动篇https://blog.csdn.net/ypp240124016/category_12631…

从离线到实时:无锡锡商银行基于 Apache Doris 的数据仓库演进实践

作者&#xff1a;武基鹏&#xff0c;无锡锡商银行 大数据技术经理 编辑整理&#xff1a;SelectDB 技术团队 导读&#xff1a;为实现数据资产的价值转化以及全面数字化、智能化的风险管理&#xff0c;无锡锡商银行大数据平台经历从 Hive 离线数据仓库到 Apache Doris 实时数据仓…

深入解析智能指针:从实践到原理

&#x1f466;个人主页&#xff1a;晚风相伴 &#x1f440;如果觉得内容对你有所帮助的话&#xff0c;还请一键三连&#xff08;点赞、关注、收藏&#xff09;哦 如果内容有错或者不足的话&#xff0c;还望你能指出。 目录 智能指针的引入 内存泄漏 RAII 智能指针的使用及原…

[附源码]秦时明月6.2魔改版_搭建架设教程_附GM工具_安卓苹果

本教程仅限学习使用&#xff0c;禁止商用&#xff0c;一切后果与本人无关&#xff0c;此声明具有法律效应&#xff01;&#xff01;&#xff01;&#xff01; 教程是本人亲自搭建成功的&#xff0c;绝对是完整可运行的&#xff0c;踩过的坑都给你们填上了 一. 演示视频 秦时明…

射频无源器件之耦合器

一. 耦合器的作用 在射频电路中,射频耦合器将一路微波功率按比例分成几路,用于检测或监测信号,如功率测量和波检测,还可改变信号的幅度、相位等特性,以满足不同的通信需求。根据输入与耦合端的功率差,常被分为5dB、6dB、10dB等耦合器。射频耦合器的类型主要包括定向耦合…

为软件教学文档增加实践能力

为了更方便软件教学&#xff0c;我们在凌鲨(OpenLinkSaas)上增加了公共资源引用的功能。 目前可以被引用的公共资源: 微应用常用软件公共知识库Docker模板 引用公共资源 引用微应用 目前微应用包含了主流数据库&#xff0c;终端等工具&#xff0c;可以方便的进行各种相关实…

OpenCV|简单绘制一个矩形

OpenCV中的rectangle() 为绘制矩形命令&#xff0c;形式如下&#xff1a; # (img: cv2.typing.MatLike, pt1: cv2.typing.Point, pt2: cv2.typing.Point, color: cv2.typing.Scalar, thickness: int ..., lineType: int ..., shift: int ...)cv2.rectangle(img, pt1, pt2, …

2024软件测试自动化面试题(含答案)

1.如何把自动化测试在公司中实施并推广起来的&#xff1f; 选择长期的有稳定模块的项目 项目组调研选择自动化工具并开会演示demo案例&#xff0c;我们主要是演示selenium和robot framework两种。 搭建自动化测试框架&#xff0c;在项目中逐步开展自动化。 把该项目的自动化…

数据结构-线性表-链表-2.3-6

有一个带头结点的单链表L&#xff0c;设计一个算法使其元素递增有序。 void sort(Linklist &L){LNode *pL->next,*pre;LNode *rp->next;p->nextNULL;pr;while(p){rp->next;preL;while(pre->next!NULL&&pre->next->data<p->data){prepre…

县供电公司员工向媒体投稿发文章用亲身经历告诉你并不难

在县供电公司的日子里,我肩负着一项至关重要的使命——信息宣传工作。这不仅仅是一份职责,更是连接公司与外界的桥梁,通过新闻稿件传递我们的声音,展示我们的成果。然而,回忆起刚刚踏入这个领域的时光,那段经历至今让我感慨万千。 初涉投稿,步履维艰 刚接手这项工作时,我的投稿…

暴打前任互动玩法开播教程

暴打前任互动玩法开播教程 暴打前任互动玩法开播教程【相关直播互动插件咩播需要额外官方购买】 网盘自动获取 链接&#xff1a;https://pan.baidu.com/s/1lpzKPim76qettahxvxtjaQ?pwd0b8x 提取码&#xff1a;0b8x

安装docker20.10.18版本步骤

安装docker20.10.18版本步骤 准备低版本安装包 #安装20.10.18版本的dockercd /opt #切换目录#上传需要的docker20.10.18.zip安装包unzip docker20.10.18.zip #解压cd docker20.10.18/ #切换目录yum install -y *.rpm #安装systemctl enable --now docker.service #开机自启并…

NineData亮相2024中国移动算力网络大会

4月28日至29日&#xff0c;2024中国移动算力网络大会在苏州召开。大会以“算力网络点亮AI新时代”为主题&#xff0c;全面展示了中国移动最新算力网络成果与能力。江苏省委常委、苏州市委书记刘小涛&#xff0c;副省长赵岩出席开幕式并致辞。内蒙古自治区副主席白清元出席。中国…

redis集群-主从机连接过程

首先从机需要发送自身携带的replid和offset向主机请求连接 replid&#xff1a;replid是所有主机在启动时会生成的一个固定标识&#xff0c;它表示当前复制流的id&#xff0c;当从机第一次请求连接时&#xff0c;主机会将自己的replid发送给从机&#xff0c;从机在接下来的请求…

5月8日学习记录

_[FBCTF2019]RCEService&#xff08;preg_match函数的绕过&#xff09; 涉及知识点&#xff1a;preg_match函数绕过&#xff0c;json的格式&#xff0c;正则回溯 打开环境&#xff0c;要求用json的格式输入 搜索学习一下json的语法规则 数组&#xff08;Array&#xff09;用方括…

无意的一次学习,竟让我摆脱了Android控制?

由于鸿蒙的爆火&#xff0c;为了赶上时代先锋。到目前为止也研究过很长一段时间。作为一名Android的研发人员&#xff0c;免不了对其评头论足&#xff0c;指导文档如何写才算专业&#xff1f;页面如何绘制&#xff1f;页面如何跳转&#xff1f;有没有四大组件等等。 而Harmony…

PDF转word转ppt软件

下载地址&#xff1a;PDF转word转ppt软件.zip 平时工作生活经常要用到PDF转word转ppt软件&#xff0c;电脑自带的又要开会员啥的很麻烦&#xff0c;现在分享这款软件直接激活就可以免费使用了&#xff0c;超级好用&#xff0c;喜欢的可以下载

党建教育vr虚拟现实展厅真正实现了绿色、低碳的展示方式

在数字化浪潮席卷的今天&#xff0c;传统企业门户官网已难以满足企业日益增长的展示需求。面对这一挑战&#xff0c;北京华锐凭借深厚的行业经验和领先的技术实力&#xff0c;为您提供全新的元宇宙虚拟展厅制作服务&#xff0c;助您轻松打破现实与虚拟的界限&#xff0c;开启企…

第八届大数据与物联网国际会议(BDIOT 2024)即将召开!

第八届大数据与物联网国际会议(BDIOT 2024)将于2024年9月14-16日在澳门圣若瑟大学举行。数聚未来&#xff0c;物联世界&#xff01;BDIOT 2024旨在搭建为各位与会代表展示自己研究成果、分享经验、建立联系和开展合作的平台&#xff0c;共同探讨大数据与物联网领域的未来发展方…

人工智能-2024期中考试

前言 人工智能期中考试&#xff0c;认真准备了但是没考好&#xff0c;结果中游偏下水平。 第4题没拿分 &#xff08;遗传算法&#xff1a;知识点在课堂上一笔带过没有细讲&#xff0c;轮盘赌算法在书本上没有提到&#xff0c;考试的时候也没讲清楚&#xff0c;只能靠猜&…