概述
文章目录
本文总结了CARLA与autoware和ROS的联合仿真的安装过程和一些问题。主要参考了以下链接:
- Autoware-Carla Bridge的官方链接为:https://github.com/carla-simulator/carla-autoware
- Carla-ROS Bridge的官方链接为:https://github.com/carla-simulator/ros-bridge和https://carla.readthedocs.io/en/latest/ros_installation/
1. 安装Carla-Autoware-Bridge
预先安装的软件
- 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了。 - Autoware 1.12.0 (安装详情可以见我的这篇博客)
Carla-Autoware-Bridge安装过程
其实Carla-Autoware-Bridge本质上算是一个ROS Package,整个包的大小大约在1.6GB
左右。其安装过程按照官方链接中的指令做基本就可以。但是遇到的问题就是下载太慢,git clone中有子文件夹。
- 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
- 下载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中初始化工作空间的指令。
-
如果rosdep update出现网络连接问题,可以参考我的这篇博客
-
rosdep update
的下一步rosdep install
过程中有可能出现缺少一些依赖包,我这里后续又遇到了缺少libpcl-dev
的情况,这时用以下指令即可安装成功。(用之前把software中的设置里的选项全勾选上)
sudo aptitude install libpcl-dev #或者是sudo aptitude install <package-name>
- 如果使用的包是从其他电脑传过来的,很可能遇到
catkin_make
编译失败的问题,参考以下链接,https://stackoverflow.com/questions/35784700/cmake-error-when-building-opencv-cmakelists-not-match?r=SearchResults
将build文件包删除重新编译即可。
CMake generates a cache in the build dir (It’s a simple file named
CMakeCache.txt). This file contains some information like:The path to the sources /path/to/opencv
The path to the build dir
/path/to/opencv/build
The CMake Generator used (Ninja, Unix Makefiles…)
If you ever re-run CMake and change one of these values, (by re-running cmake with different arguments, setting an other generotor or moving files), CMake will complain with this kind of message.A good solution is then to delete the CMakeCache, or even the whole build dir to be safe.
运行Carla-Autoware-Bridge
- 启动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
到环境变量中(建议加到~/.bashrc
中),会出现导入carla库失败ImportError: no module named CARLA的情况。
以下代码用来检查carla环境变量是否配置成功:
python -c 'import carla;print("Success")'
该指令也有可能造成缺少库文件的情况:
sudo apt-get install libpng16-16
输入以上指令之后会出现一个pygame的窗口显示运行结果,等上一段时间车辆会开始缓慢行驶。也可以手动控制车辆,按下B键即可切换。(如果车辆没有自动行驶,说明devel.launch
启动中出现错误,建议根据终端显示的报错信息进行调试。)
这里我遇到的坑是缺少几个python模块:分别是networkx
和simple_pid
出现的报错如下:
File "/home/guo/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 "/home/guo/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
即可
- 启动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下载的,没有用该指令,不能保证其有效性。)
预先安装的软件
- ROS Kinetic
- 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
运行过程
- 配置相关环境变量(最好只对当前终端使用)
source ~/carla-ros-bridge/catkin_ws/devel/setup.bash
- 启动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**
最后
以上就是聪明牛排为你收集整理的Carla Autoware及Carla ROS安装过程1. 安装Carla-Autoware-Bridge2. 源码安装ROS-Bridge的全部内容,希望文章能够帮你解决Carla Autoware及Carla ROS安装过程1. 安装Carla-Autoware-Bridge2. 源码安装ROS-Bridge所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复