Carla 0.9.13 与ROS bridge安装记录

2023.7.17 更新了安装环境与部分细节

Carla 0.9.13 与ROS bridge安装记录

安装环境:

Ubuntu 20.04

CPU: i5-13490F

GPU: RTX 4070

内存:32GB DDR5

ROS:Noetic

python: 3.7 

建议挂着VPN

前期准备

Carla

确保你能够正常运行carla并且不报错,我使用0.9.14时,被一个程序崩溃折磨了很久,没有找到有效的解决方法

但是换回0.9.13之后,暂时没有遇到过这个报错

4.26.2-0+++UE4+Release-4.26 522 0
Disabling core dumps.
Signal 11 caught.
Malloc Size=65538 LargeMemoryPoolOffset=65554 
CommonUnixCrashHandler: Signal=11
Malloc Size=131160 LargeMemoryPoolOffset=196744 
Malloc Size=131160 LargeMemoryPoolOffset=327928 
Engine crash handling finished; re-raising signal 11 for the default handler. Good bye.
Segmentation fault (core dumped)

(55条消息) 【仿真】CARLA可能遇到的相关问题总结_Kin__Zhang的博客-CSDN博客

自动驾驶开发与Carla模拟器 4:Carla ROS Bridge_哔哩哔哩_bilibili

关于Conda虚拟环境

不知道为什么,我处于conda虚拟环境的时候,加载不出来任何在安装ros的时候已经安装的python依赖,所以如果有在命令行窗口中启动了conda 虚拟环境的,建议先 conda deactivate 回到原来安装ros时的默认环境,否则使用ros bridge时会出现大量的依赖包丢失的情况

去github下载ros bridge

这里采用源码编译的方式,这样子比较容易修改代码和查找错误

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

注意,使用git clone必须有--recurse-submodules的参数,如果不使用git clone,直接下载的压缩包会发现carla_msgs文件夹中没有文件,需要下载完ros bridge之后必须去github中单独把carla_msg下载下来

下载完之后,参考官方的教程或者按照你的喜好进行编译

source /opt/ros/melodic/setup.bash
cd catkin_ws
rosdep update
rosdep install --from-paths src --ignore-src -r
catkin_make  # alternatively catkin_make

按照requirements.txt安装相关依赖,这个文件在你git clone或者下载的

文件夹里面

cd xxx/ros-bridge-master
pip install -r requirements.txt  # 确保你当前的python是 3.7

可能的报错:(only in python2.7)

xxxxx...
Collecting transform3d
xxxxx
File "versioneer.py", line 370
	LONG_VERSION_PY: Dict[str, str] = {}
SyntaxError: invalid syntax

解决方法:装低版本的transform3d:

sudo -H pip2 install -U transform3d==0.3.1

另外,建议单独更新一下networkx,以避免后面的报错

pip install networkx

编译完成之后

在**~/.bashrc**或你的命令行窗口的相关启动文件中,加入:

export CARLA_ROOT=<path-to-carla> # 你的carla路径
export PYTHONPATH=$PYTHONPATH:$CARLA_ROOT/PythonAPI/carla/dist/carla-<carla_version_and_arch>.egg:$CARLA_ROOT/PythonAPI/carla

因为我们用的是carla-0.9.13以及python 3.7,所以<carla_version_and_arch> = 0.9.13-py3.7-linux-x86_64

然后,source一下你存放carla-ros-bridge的工作空间的devel/setup.bash

# For GitHub repository installation of ROS bridge
source ~/carla-ros-bridge/catkin_ws/devel/setup.bash

先启动一下Carla:cd 到你的Carla路径

./CarlaUE4.sh

尝试运行ros bridge,下面选一个运行即可,两个都运行的话会有节点冲突而报错

# Option 1: start the ros bridge
roslaunch carla_ros_bridge carla_ros_bridge.launch

# Option 2: start the ros bridge together with an example ego vehicle
roslaunch carla_ros_bridge carla_ros_bridge_with_example_ego_vehicle.launch

如果能够正常运行且不报错,则基本上安装没什么问题

如果有报错Module not found: agent.xxx的,或者ImportError: no module named CARLA的,都是egg文件路径没有加入命令行的启动文件中,找不到相应的路径,或者你没有关闭conda虚拟环境,还有直接使用apt安装的也可能会出现这种问题,我改成使用源码安装就解决了

然后,来测试一下ad_demo

source ~/carla-ros-bridge/catkin_ws/devel/setup.bash
roslaunch carla_ad_demo carla_ad_demo.launch

正常情况下,会切换地图然后弹出一个manual control的窗口,并且车子直接进行自动驾驶

如果命令行一直提示waiting for route,最可能的原因是networkx版本太旧了,没有更新版本,导致无法加载一些东西,导致路径规划无法生效

解决方法:

PythonAPI/GlobalRoutePlanner fails on ubuntu 16.04 · Issue #1485 · carla-simulator/carla (github.com)

sudo apt remove python-networkx
pip install --user networkx

然后试着打开rviz看看情况

rviz -d src/carla-ros-bridge/carla_ad_demo/config/carla_ad_demo.rviz

一切正常的话,会出现以下界面,并且车辆进行自动驾驶

  • 1
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值