在Ubuntu20.04下安装Autoware.universe和Carla并进行联合仿真

news2024/9/30 13:28:25

在Ubuntu20.04下安装Autoware.universe和Carla并进行联合仿真

  • 一、安装Carla0.9.13
  • 二、安装 UnrealEngine 4.26
  • 三、安装Autoware.universe
  • 四、设置 OpenPlanner
  • 五、运行Carla和Autoware

一、安装Carla0.9.13

1、进入Carla 的官方 github 页面,找到0.9.13版本
https://github.com/carla-simulator/carla/releases

2、下载到home解压

cd ~/carla-0.9.13/CARLA_0.9.13
./CarlaUE4.sh -quality-level=Epic -world-port=2000 -resx=800 -resy=600

1、安装 Carla 0.9.13

pip install --user pygame numpy
pip3 install --user pygame numpy
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-simulator=0.9.13

二、安装 UnrealEngine 4.26

1、进入UE网页,按照顺序完成以下6步。

https://www.unrealengine.com/en-US/ue-on-github

在这里插入图片描述
2、进入EpicGame的Github
https://github.com/EpicGames

点击UnrealEngine
在这里插入图片描述

2、直接clone出来是最新版,需要设置classic token,可以参考:
https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token

在这里插入图片描述
3、复制密钥后,下载UnrealEngine

git clone --depth 1 -b carla https://github.com/CarlaUnreal/UnrealEngine.git ~/UnrealEngine_4.26

输入用户名和刚才的密钥

4、编译

cd UnrealEngine_4.26/
./Setup.sh
./GenerateProjectFiles.sh
make

make时报以下错:
ERROR: Platform Linux is not a valid platform to build. Check that the SDK is installed properly.
可以参考:
在编译UnrealEngine4.26时报错:ERROR: Platform Linux is not a valid platform to build. Check that the SDK is

5、检查是否安装成功

cd UnrealEngine_4.26/Engine/Binaries/Linux 
./UE4Editor

6、添加环境变量

echo "export UE4_ROOT=~/UnrealEngine_4.26" >> ~/.bashrc

三、安装Autoware.universe

在第3步自动安装依赖时,可以将ROS2 Galactic一并安装,也可以提前自己手动安装,参考如下:

在Ubuntu20.04下安装ROS2 Galactic

1、安装git

sudo apt-get -y update
sudo apt-get -y install git

2、克隆Autoware到本地

mkdir autoware_universe
cd autoware_universe/
git clone https://github.com/autowarefoundation/autoware.git -b galactic

3、自动安装相关依赖

cd autoware
./setup-dev-env.sh

如果有以下报错:
The following packages have unmet dependencies:“, " cuda-drivers : Depends: cuda-drivers-530 (= 530.30.02-1) but it is not going to be installed”]}

解决办法:

在Ubuntu20.04下安装Autoware.universe使用命令安装依赖时报错

4、创建 src 文件夹

mkdir src

5、修改 autoware.repos 文件

sudo gedit autoware.repos

在autoware.repos 文件中,28行位置加入以下内容

universe/external/open_planner:
    type: git
    url: https://github.com/ZATiTech/open_planner.git
    version: main

6、下载代码库到本地

vcs import src < autoware.repos

7、安装 Autoware 依赖包

rosdep update --include-eol-distros
source /opt/ros/galactic/setup.bash
rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO

在安装open3d时速度慢,报错,可以参考:
安装ROS依赖时,安装open3d速度慢,报错问题

遇到 Invalid version: ‘0.23ubuntu1’ (package: distro-info) 报错问题,可以参考:
安装ROS依赖时,Invalid version: ‘0.23ubuntu1报错

8、编译工作空间

colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release

在编译过程中卡死或者崩溃,或者其他问题,可以参考:

https://autowarefoundation.github.io/autoware-documentation/galactic/support/troubleshooting/#build-issues

四、设置 OpenPlanner

1、下载代码

cd ~/autoware_universe
mkdir op_carla
cd op_carla/
git clone https://github.com/hatem-darweesh/op_bridge.git -b ros2
git clone https://github.com/hatem-darweesh/op_agent.git -b ros2
git clone https://github.com/hatem-darweesh/scenario_runner.git

2、从google drive上下载Town01.pcdTown01.osm地图。

https://drive.google.com/drive/folders/1Or0CMS08AW8XvJtzzR8TfhqdY9MMUBpS

以下网盘链接中只有Town01.pcdTown01.osm地图,可供下载。

链接:https://pan.baidu.com/s/1xhUj71nMniECfQrM2MniPw
提取码:i4ll

创建 Town01 文件夹,将 Town01.pcd 和 Town01.osm 复制到Town01_map 文件夹中。
Town01.pcd重命名为pointcloud_map.pcd
Town01.osm重命名为lanelet2_map.osm

3、修改 run_exploration_mode_ros2.sh 文件

sudo gedit ~/autoware_universe/op_carla/op_bridge/op_scripts/run_exploration_mode_ros2.sh

在第8行
如果不在同一台电脑上运行仿真,需要设置运行仿真的电脑的 IP 地址。如下:
export SIMULATOR_LOCAL_HOST=“192.168.11.5”
如果在本机上运行仿真需要修改为:
export SIMULATOR_LOCAL_HOST=“localhost”

3、修改 start_ros2.sh 文件

sudo gedit ~/autoware_universe/op_carla/op_agent/start_ros2.sh 

在第15行
按照实际的安装路径修改。
source /home/username/autoware_universe/autoware/install/setup.bash
在第18行
按照实际的安装路径修改launch文件路径,按照Town01的路径修改map_path。
ros2 launch /home/username/autoware_universe/autoware/src/launcher/autoware_launch/autoware_launch/launch/autoware.launch.xml map_path:=/home/username/autoware_universe/autoware/src/${map_name} vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit

4、修改 autoware.launch.xml 文件

sudo gedit ~/autoware_universe/autoware/src/launcher/autoware_launch/autoware_launch/launch/autoware.launch.xml

在第11行
添加如下:

<arg name="launch_carla_interface" default="true" description="convert carla sensor data to autoware suitable format"/>

在第17行
launch_sensing_driver中的true改成false,可以直接复制以下替换第17行。

  <arg name="launch_sensing_driver" default="false" description="launch sensing driver"/>

在第23行
use_sim_time中的false改成true,可以直接复制以下替换第23行。

<arg name="use_sim_time" default="true" description="use_sim_time"/>

在第52行
添加如下:

  <!-- CARLA -->
    <group if="$(var launch_carla_interface)">
		<node pkg="carla_pointcloud" exec="carla_pointcloud_node" name="carla_pointcloud_interface" output="screen"/>
	</group>

5、修改 gnss.launch.xml 文件

sudo gedit ~/autoware_universe/autoware/src/sensor_kit/sample_sensor_kit_launch/sample_sensor_kit_launch/launch/gnss.launch.xml 

在第4行
coordinate_system中的1改成2,可以直接复制以下替换第4行。

<arg name="coordinate_system" default="2" description="0:UTM, 1:MGRS, 2:PLANE"/>

在第5行
添加如下:

<arg name="plane_zone" default="0"/>

5、修改 sensor_kit_calibration.yaml 文件

sudo gedit ~/autoware_universe/autoware/src/sensor_kit/sample_sensor_kit_launch/sample_sensor_kit_description/config/sensor_kit_calibration.yaml 

由于修改较多,可以直接全部替换:

sensor_kit_base_link:
  camera0/camera_link:
    x: 0.7
    y: 0.0
    z: 0.0
    roll: 0.0
    pitch: 0.0
    yaw: 0.0
  camera1/camera_link:
    x: 0.0
    y: 0.0
    z: 0.0
    roll: 0.0
    pitch: 0.0
    yaw: 0.0
  camera2/camera_link:
    x: 0.0
    y: 0.0
    z: 0.0
    roll: 0.0
    pitch: 0.0
    yaw: 0.0
  camera3/camera_link:
    x: 0.0
    y: 0.0
    z: 0.0
    roll: 0.0
    pitch: 0.0
    yaw: 0.0
  camera4/camera_link:
    x: 0.0
    y: 0.0
    z: 0.0
    roll: 0.0
    pitch: 0.0
    yaw: 0.0
  camera5/camera_link:
    x: 0.0
    y: 0.0
    z: 0.0
    roll: 0.0
    pitch: 0.0
    yaw: 0.0
  traffic_light_right_camera/camera_link:
    x: 0.0
    y: 0.0
    z: 0.0
    roll: 0.0
    pitch: 0.0
    yaw: 0.0
  traffic_light_left_camera/camera_link:
    x: 0.0
    y: 0.0
    z: 0.0
    roll: 0.0
    pitch: 0.0
    yaw: 0.0
  velodyne_top_base_link:
    x: 0.0
    y: 0.0
    z: 0.8
    roll: 0.0
    pitch: 0.0
    yaw: 0.0
  velodyne_left_base_link:
    x: -0.5
    y: 0.0
    z: 0.8
    roll: 0.0
    pitch: 0.0
    yaw: 0.0
  velodyne_right_base_link:
    x: 0.5
    y: 0.0
    z: 0.8
    roll: 0.0
    pitch: 0.0
    yaw: 0.0
  gnss_link:
    x: 0.0
    y: 0.0
    z: 0.8
    roll: 0.0
    pitch: 0.0
    yaw: 0.0
  tamagawa/imu_link:
    x: 0.0
    y: 0.0
    z: 0.8
    roll: 0.0
    pitch: 0.0
    yaw: 0.0

6、修改 sensors_calibration.yaml 文件

sudo gedit ~/autoware_universe/autoware/src/sensor_kit/sample_sensor_kit_launch/sample_sensor_kit_description/config/sensors_calibration.yaml 

由于修改较多,可以直接全部替换:

base_link:
  sensor_kit_base_link:
    x: 0.0
    y: 0.0
    z: 1.6
    roll: 0.0
    pitch: 0.0
    yaw: 0.0
  velodyne_rear_base_link:
    x: 0.0
    y: 0.0
    z: 0.0
    roll: 0.0
    pitch: 0.0
    yaw: 0.0

7、修改环境变量

sudo gedit ~/.bashrc

根据安装位置修改路径后,再添加到环境变量中。

export CARLA_ROOT=/opt/carla-simulator
export SCENARIO_RUNNER_ROOT=/home/username/autoware_universe/op_carla/scenario_runner
export LEADERBOARD_ROOT=/home/username/autoware_universe/op_carla/op_bridge
export TEAM_CODE_ROOT=/home/username/autoware_universe/op_carla/op_agent
export PYTHONPATH=$PYTHONPATH:${CARLA_ROOT}/PythonAPI
export PYTHONPATH=$PYTHONPATH:${CARLA_ROOT}/PythonAPI/util
export PYTHONPATH=$PYTHONPATH:${CARLA_ROOT}/PythonAPI/carla
export PYTHONPATH=$PYTHONPATH:${CARLA_ROOT}/PythonAPI/carla/agents
export PYTHONPATH=$PYTHONPATH:$CARLA_ROOT/PythonAPI/carla/dist/carla-0.9.13-py3.7-linux-x86_64.egg

五、运行Carla和Autoware

cd $CARLA_ROOT
./CarlaUE4.sh -quality-level=Epic -world-port=2000 -resx=800 -resy=600

在这里插入图片描述

再打开一个终端:

cd ~/autoware_universe/op_carla/op_bridge/op_scripts
source ~/autoware_universe/autoware/install/setup.bash
./run_exploration_mode_ros2.sh

如果报错,需要什么依赖,安装什么依赖:

pip install py-trees
pip install networkx
pip install tabulate
sudo apt-get install ros-galactic-sensor-msgs-py

在这里插入图片描述

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

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

相关文章

代码随想录算法训练营第五十八天-单调栈1|739. 每日温度 496.下一个更大元素 I

739. Daily Temperatures public class DailyTemperatures {//暴力解法public int[] dailyTemperatures(int[] T){int length T.length;int[] result new int[length];for(int i 0; i < length; i){int current T[i];if(current < 100){for(int j i 1; j < len…

C++语法(13)---- 模拟实现priority_queue

C语法&#xff08;12&#xff09;---- 模拟实现queue和stack_哈里沃克的博客-CSDN博客https://blog.csdn.net/m0_63488627/article/details/130068637 目录 1.使用 2.模拟实现 1.数据元素 2.数据建立 3.函数实现 4.向上调整和向下调整 3.仿函数&#xff08;函数对象&…

【马蹄集】第五周作业

第五周作业 目录MT2030 邮箱地址MT2039 换换换MT2040 银行账户MT2041 三角形的个数MT2046 巨大的错误MT2030 邮箱地址 难度&#xff1a;钻石    时间限制&#xff1a;1秒    占用内存&#xff1a;128M 题目描述 一个地址由 <username><hostname>[/resource] …

DAY 34 正则表达式

正则表达式 REGEXP&#xff1a; Regular Expressions&#xff0c;由一类特殊字符及文本字符所编写的模式&#xff0c; 其中有些字符&#xff08;元字符&#xff09;不表示字符字面意义&#xff0c;而表示控制或通配的功能&#xff0c; 类似于增强版的通配符功能&#xff0c;但…

day13 信号机制 (上)

目录 信号的概念 信号的发送和定时器 信号的函数 定时器函数 信号的捕捉 信号的概念 概念&#xff1a; 信号是软件层次上对中断机制的一种模拟&#xff0c;是一种异步通信方式&#xff0c;所有信号的产生及处理都是有内核完成的。 信号的产生&#xff1a; 1、按键产生…

Excel常用函数公式20例

目录 一、【IF函数条件判断】 二、【多条件判断】 三、【条件求和】 四、【多条件求和】 五、【条件计数】 六、【多条件计数】 七、【条件查找】 八、【多条件查找】 九、【计算文本算式】 十、【合并多个单元格内容】 十一、【合并带格式的单元格内容】 十二、…

SpringBoot整合minio实现对象存储

分布式文件系统应用场景 互联网海量非结构化数据的存储需求电商网站&#xff1a;海量商品图片视频网站&#xff1a;海量视频文件网盘&#xff1a;海量文件社交网站&#xff1a;海量图片 minio的概念 Minio是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊…

淘宝天猫数据分析工具推荐(竞品数据监控查询)

在当前的电商环境下&#xff0c;天猫平台的商家非常多&#xff0c;且不同商家的营销策略、手段等都不尽相同。对于商家而言&#xff0c;面对庞大的竞争对手&#xff0c;做好对竞争对手的监控工作也是一个非常重要的课题。 商家做好竞品监控的好处有哪些呢&#xff1f; 1、做好竞…

想毕业我阿里P8测开?除非把整条业务线都裁了.我的底气何来?

简单介绍一下自己&#xff0c;某985硕士&#xff0c;现在阿里智能事业部&#xff0c;视频云中台&#xff0c;测试开发岗。年纪嘛&#xff0c;快接近你们说的去送外卖的年纪了。主要的工作职责是参与制定测试保障策略和建立测试保障体系&#xff0c;开发和维护定制的自动化测试工…

cm-14.1 Android系统启动过程分析(n)- 关机/重启/重置/升级的那些事(偏嵌入式方向)

声明 前阶段在项目中涉及到了Android系统定制任务,Android系统定制前提要知道Android系统是如何启动的。本文参考了一些书籍的若干章节。本文使用的代码是LineageOS的cm-14.1,对应Android 7.1.2,可以参考我的另一篇博客:如何下载Nexus5的LineageOS14.1(cm-14.1)系统源码并编…

Linux-初学者系列——篇幅3_操作界面获取帮助

操作界面获取帮助-目录1、获取帮助信息-man2、获取帮助信息-help3、获取帮助信息-info上篇: Linux-初学者系列——篇幅2_系统命令界面 利用帮助命令自学&#xff1a;man help info1、获取帮助信息-man 查看命令和部分文件帮助说明信息 使用方法&#xff1a; man [参数选项]…

Linux-系统大概介绍

桌面和终端基本使用 使用CtrlAlt可以取消状态&#xff0c;利于TabAlt切屏 在Linux中&#xff0c;WIN键是Super键 打开终端&#xff0c;终端有点像Windows的命令行&#xff0c;然后Ctrlaltf2可以切换为纯命令行&#xff0c;Ctrlalt是调出鼠标&#xff0c;Ctrlaltf1切回图形用户…

Unity使用webSocket与服务器通信(三)——C#服务端(Fleck)与Unity客户端( NativeWebSocket)传输多种数据数据

一、通信时会传输哪些内容 1、字符串数据 简单的字符串&#xff1a;比如登录请求信息&#xff0c;登录结果返回的信息。 用json系列化的字符串&#xff1a;比如上传一个表到服务器&#xff0c;让它写入到数据库中。 读取文件的时候&#xff0c;读取的是string内容。 2、二进制…

如何使用Midjourney自己设计独特的Logo,常用的提示和使用效果展示(内附Midjourney提示词网站)

文章目录一、提示技巧二、图案标志(图形)1.最小线条标志(Minimal Line Marks)2.渐变标志(Gradient Marks)3.中式标志&#xff08;Chinese Style Marks&#xff09;三、抽象/几何标志四、徽章设计五、吉祥物Logo六、平面设计七、其它一些Logo八、好用的Midjourney提示词网站生成…

Java通过继承的方法来实现长方形的面积和体积

目录 前言 一、测试.java类 1.1运行流程&#xff08;思想&#xff09; 1.2代码段 二、Changfangxing.java类 1.1运行流程&#xff08;思想&#xff09; 1.2代码段 三、Jxing.java类 1.1运行流程&#xff08;思想&#xff09; 1.2代码段 1.3运行截图 前言 1.若有选择…

【通用篇】chrome调试技巧

一、前言 Google Chrome 是一款由 Google 公司开发的免费网页浏览器&#xff0c;它的特点是速度快、安全、简单易用。它的市场份额长期位居全球第一&#xff0c;受到了广泛的用户和开发者的欢迎。 Chrome DevTools 是 Chrome 浏览器内置的一组开发者工具&#xff0c;旨在帮助…

深度学习目标检测项目实战(四)—基于Tensorflow object detection API的骨折目标检测及其界面运行

深度学习目标检测项目实战(四)—基于Tensorflow object detection API的骨折目标检测及其界面运行 使用tensorflow object detection进行训练检测 参考原始代码&#xff1a;https://github.com/tensorflow/models/tree/master/research 我用的是1.x的版本 所以环境必须有gpu版…

初级算法-二叉树

主要记录算法和数据结构学习笔记&#xff0c;新的一年更上一层楼&#xff01; 初级算法-二叉树一、递归遍历二、迭代遍历三、统一迭代法四、层序遍历五、翻转二叉树六、对称二叉树七、二叉树的最大深度八、二叉树的最小深度九、完全二叉树的节点个数十、平衡二叉树十一、二叉树…

浅说黄河三门

黄河是一首雄浑的诗。 黄河是一幅神奇的画。 她从雪域高原走来&#xff0c;一路接百川、纳细流&#xff0c;穿山越岭。 在行至内蒙古托尧托县的河口镇时&#xff0c;骤然调头南下&#xff0c;滚滚河水如一把利剑&#xff0c;将偌大的黄土高原一劈两半。 在秦晋两省的边界线上…

网络安全自学笔记+岗位介绍

我就在这个行业&#xff0c;目前湖南&#xff0c;薪资就没必要说了&#xff0c;高就对了。 这个行业优势就是工资高&#xff0c;缺点就需要一直学&#xff0c;卷得要死&#xff0c;不是跟别人卷&#xff0c;而是自己卷&#xff0c;一会后面细说 这个行业目前分为几个岗位&#…