CARLA与Autoware和ROS的联合仿真安装过程

1. 安装Carla-Autoware-Bridge

预先安装的软件

  1. Carla 0.9.7(官方链接用的是0.9.6版本) 第一个疑问解决:官方的ROS-bridge其实是不支持0.9.6及以下的CARLA版本的,我安装之后看了下autoware-carla里面ros-bridge的readme.md文件,发现这里用的ROS-bridge其实是支持CARLA 0.9.4版本及其以上,所以autoware-carla已经包含了ros-bridge, 也就是不需要额外再安装ROS-bridge了。
  2. Autoware 1.12.0 
  3. 学习资源地址 https://gitee.com/studywangke/zdjs

Carla-Autoware-Bridge安装过程

其实Carla-Autoware-Bridge本质上算是一个ROS Package,整个包的大小大约在1.6GB左右。其安装过程按照官方链接中的指令做基本就可以。但是遇到的问题就是下载太慢,git clone中有子文件夹。 1. Ubuntu下安装git lfs

curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs
git lfs install
  1. 下载Carla-Autoware-Bridge文件包
cd ~
git lfs clone https://github.com/carla-simulator/carla-autoware.git
cd carla-autoware
git submodule update --init

疑问解决: 这一步需要花费很多时间,请保持耐心。这里要用git submodule update --init是因为当用git clone 网址下载时,文件包中的子文件夹不会被下载。git submodule update --init的作用就是自动下载子文件夹。(后续ROS-Bridge也有相同的问题)

创建catkin工作空间、安装相关依赖并编译

#初始化工作空间
cd catkin_ws
source ~/autoware.ai/install/setup.bash
catkin_init_workspace src/

#安装依赖
rosdep update
rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO

#编译工作空间
catkin_make

其中source ~/autoware.ai/install/setup.bash的作用和在autoware的运行中一样,都是把autoware中的子节点加入到环境变量中。后续的catkin_init_workspace src/是常规的ROS中初始化工作空间的指令。

运行Carla-Autoware-Bridge

  1. 启动Carla服务器
cd <path-to-Carla_0.9.7.4>
./CarlaUE4.sh -opengl

(最好把这些指令存到~目录下的shell脚本中,方便启动) 2. 启动Carla-Autoware-Bridge

export CARLA_AUTOWARE_ROOT=~/carla-autoware/autoware_launch
export CARLA_MAPS_PATH=~/carla-autoware/autoware_data/maps
source $CARLA_AUTOWARE_ROOT/../catkin_ws/devel/setup.bash
export PYTHONPATH=$PYTHONPATH:~/CARLA_0.9.7.4/PythonAPI/carla/dist/carla-0.9.7-py2.7-linux-x86_64.egg
roslaunch $CARLA_AUTOWARE_ROOT/devel.launch

这里的export CARLA_MAPS_PATH=~/carla-autoware/autoware_data/maps的作用是把相关的pcd点云文件加入到环境变量中,不添加的会可能rivz中不显示激光雷达地图。如果不添加carla-0.9.7-py2.7-linux-x86_64.egg到环境变量中会出现导入carla库失败ImportError: no module named CARLA的情况。

以下代码用来检查carla环境变量是否配置成功:

python -c 'import carla;print("Success")'

输入以上指令之后会出现一个pygame的窗口显示运行结果,等上一段时间车辆会开始缓慢行驶。也可以手动控制车辆,==按下B键即可切换。==(如果车辆没有自动行驶,说明devel.launch启动中出现错误,建议根据终端显示的报错信息进行调试。)

这里我遇到的坑缺少几个python模块:分别是networkxsimple_pid

出现的报错如下:

File "<path-to-user>/carla-autoware/catkin_ws/src/ros-bridge/carla_waypoint_publisher/src/carla_waypoint_publisher/carla_waypoint_publisher.py", line 30, in <module>
    from agents.navigation.global_route_planner import GlobalRoutePlanner
  File "<path-to-user>/CARLA_0.9.7.4/PythonAPI/carla/agents/navigation/global_route_planner.py", line 11, in <module>
    import networkx as nx
ImportError: No module named networkx
[carla_waypoint_publisher-7] process has died [pid 11565, exit code 1, cmd /home/guo/carla-autoware/catkin_ws/src/ros-bridge/carla_waypoint_publisher/src/carla_waypoint_publisher/carla_waypoint_publisher.py __name:=carla_waypoint_publisher __log:=/home/guo/.ros/log/3f7c326a-a0b1-11ea-abbb-e0d55ea64ade/carla_waypoint_publisher-7.log].
log file: /home/guo/.ros/log/3f7c326a-a0b1-11ea-abbb-e0d55ea64ade/carla_waypoint_publisher-7*.log

用以下指令安装确实的包:

pip install networkx
pip install simple_pid

安装simple_pid后建议检测一下终端是否会出现警告,如下

python
from simple_pid import PID

出现以下情况<path-to-user>/.local/lib/python2.7/site-packages/simple_pid/PID.py:22UserWarning: time.monotonic() not available in python < 3.3, using time.time() as fallback warnings.warn('time.monotonic() not available in python < 3.3, using time.time() as fallback')之后打开目录对应的文件,将time.monotonic改为time.time即可

  1. 启动Rviz ROS中的RVIZ能够帮助可视化carla城市中的激光点图。(这里不需要用autoware中的rviz)
rosrun rviz rviz

当然,也可以通过autoware的runtime manager打开rviz显示。

启动之后效果图如下:(Carla-Autoware-Bridge中已经包含各个城市的激光点云数据)

动图如下:

动图封面

2. 源码安装ROS-Bridge

踩坑:第一次安装尝试了apt安装Carla-ROS-Bridge,运行时报错。为节省时间,我直接按照官网要求进行源码安装(开发者),我觉得apt安装和源码安装bridge出现报错的原因是一样的,因为用源码安装,在git clone过程中文件夹ros-bridge中的carla_msgs为空,对应ros-bridge的github网址中高亮的文件:

下载的工程带有submodule,可以用git submodule update --init进行子文件夹下载。(我是直接从github下载的,没有用该指令,不能保证其有效性。)

预先安装的软件

  1. ROS Kinetic
  2. Carla 0.9.7.4

ROS-Bridge的源码安装过程

这里的源码安装过程就直接搬运官网指令了,基本不会出现什么问题。

mkdir -p ~/carla-ros-bridge/catkin_ws/src
cd ~/carla-ros-bridge
git clone https://github.com/carla-simulator/ros-bridge.git
cd catkin_ws/src
ln -s ../../ros-bridge
source /opt/ros/kinetic/setup.bash #Watch out, this sets ROS Kinetic. 
cd ..

#install required ros-dependencies
rosdep update
rosdep install --from-paths src --ignore-src -r

#build
catkin_make

运行过程

  1. 配置相关环境变量(最好只对当前终端使用)
source ~/carla-ros-bridge/catkin_ws/devel/setup.bash
  1. 启动carla 0.9.7.4
**# Option 1: start the ros bridge
roslaunch carla_ros_bridge carla_ros_bridge.launch

# Option 2: start the ros bridge together with RVIZ
roslaunch carla_ros_bridge carla_ros_bridge_with_rviz.launch

# Option 3: start the ros bridge together with an example ego vehicle
roslaunch carla_ros_bridge carla_ros_bridge_with_example_ego_vehicle.launch**
  • 30
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值