python版本
建议:ubuntu18.04用系统自带的python2.7,ubuntu20.04用conda的python3.7,或者下载系统版本的python3.7。还有,所有的工程操作(包括ros编译和运行)都在同一个py环境进行。
carla-0.9.11源码
https://github.com/carla-simulator/carla/releases/tag/0.9.11/
下载完解压,给整个文件夹赋权限
sudo chmod -R 777 文件夹
单独carla的代码测试
安装环境
pip install pygame numpy future networkx scikit-learn transforms3d
pip install networkx
sudo apt-get install -y libomp5
sudo apt-get install jstest-gtk
本人使用的是python2.7
配置环境与测试
首先在~/.bashrc添加:
export PYTHONPATH=$PYTHONPATH:/home/xx/carla-0.9.11/PythonAPI/carla/dist/carla-0.9.11-py2.7-linux-x86_64.egg
export PYTHONPATH=$PYTHONPATH:/home/xx/carla-0.9.11/PythonAPI/carla/dist/carla-0.9.11-py2.7-linux-x86_64.egg:/home/cg/carla-0.9.11/PythonAPI/carla
这里是ubuntu18.04版本,20.04用python3.7。
然后:
source ~/.bashrc
测试一下是否可以import carla:
python -c 'import carla; print("Success")'
运行carla:
./CarlaUE4.sh
或者
./CarlaUE4.sh -prefernvidia -quality-level=Low -benchmark -fps=15
参数说明:
-prefernvidia:使用NVIDIA显卡启动
-quality-level=Low:调低渲染水平
-benchmark -fps=15:引擎以1/15秒的固定时间逐步运行
配置选项可用:
carla-rpc-port=N:侦听端口 N 处的客户端连接。默认情况下,流式端口 Streaming port 设置为 N+1;
carla-streaming-port=N:指定用于传感器数据流的端口。 使用 0 获取随机未使用的端口。 第二个端口将自动设置为 N + 1;
quality-level={Low,Epic}:更改图形质量级别;
-carla-server:让 carla以服务的方式运行;
-benchmark -fps=15:引擎以1/15秒的固定时间逐步运行;
-windowed -ResX=800 -ResY=600:屏幕窗口大小;
测试py脚本:
python PythonAPI/examples/spawn_npc.py -n 30
python PythonAPI/examples/manual_control.py
python PythonAPI/examples/automatic_control.py
python PythonAPI/examples/dynamic_weather.py -s 5
-s 5意思是把天气变化加速了5倍。
注意,使用vscode打开文件夹的时候,有些py文件运行会出现找不到目录的问题,可以通过以下指令,来修改import目录:
import sys
import os
sys.path.append(os.path.join(os.path.dirname(__file__), '../'))
ros-bridge(0.9.11版本)
源码下载:https://github.com/carla-simulator/ros-bridge/tree/0.9.11
官方文档:https://carla.readthedocs.io/projects/ros-bridge/en/latest/carla_ad_agent/
下载ainstein_radar: https://github.com/AinsteinAI/ainstein_radar
将里面的ainstein_radar_msgs放到工程
安装依赖环境
ros-melodic可以改为ros-noetic
sudo apt-get install python-protobuf
sudo apt install ros-melodic-ackermann-msgs
sudo apt install ros-melodic-derived-object-msgs
sudo apt install ros-melodic-vision-msgs
sudo apt install ros-melodic-ainstein-radar-msgs
pip install pyyaml
pip install simple_pid
pip3 install pycryptodomex
编译
每个msgs先编译,再整体编译:
catkin build object_msgs carla_msgs carla_ackermann_msgs ainstein_radar_msgs
catkin build
如果还缺东西可以继续pip安装或者sudo apt install ros-安装,python报错注意看是哪个python环境的报错,哪个python环境缺包就在哪个python环境安装。
运行
窗口运行carla:
./CarlaUE4.sh -windowed -ResX=640 -ResY=480 -quality-level=Low -fps=15
再加些车辆
python PythonAPI/examples/spawn_npc.py -n 30
测试
source ./devel/setup.bash
roslaunch carla_ros_bridge carla_ros_bridge_with_example_ego_vehicle.launch
(注意:此launch文件在本人开发的工程中被本人修改)
针对carla-0.9.11实现的ros联合仿真过程
付费内容
总结
ubuntu18.04运行carla比较麻烦,因为默认的python是2.7,包括ros自带的也是python2,所以会遇到一些错误,但是不慌,慢慢学习,解决问题。