参考:https://github.com/guardstrikelab/carla_apollo_bridge/blob/master/docs/GettingStarted.md
Prerequisites
- docker
sudo apt-get install docker.io
- NVIDIA Container Toolkit
curl https://get.docker.com | sh \
&& sudo systemctl --now enable docker
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
&& curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-docker2
sudo systemctl restart docker
- docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.0.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- 更改文件权限
sudo chmod +x /usr/local/bin/docker-compose
Build And Run Apollo
依据Apollo下载安装
在Apollo-7.0.0文件夹下打开终端:
进入仓库:
sudo ./docker/scripts/dev_start.sh
进入容器:
sudo ./docker/scripts/dev_into.sh
Build Apollo
./apollo.sh build_opt_gpu
若出现报错,参考:Build Apollo中的报错解决
成功后显示:
==============================================
[ OK ] Done building apollo. Enjoy!
==============================================
在容器内输入:
./scripts/bootstrap.sh
然后,在浏览器中打开网址http://localhost:8888/
Run Carla
在Apollo容器外克隆carla_apollo_bridge project :‘
# Using SSH
git clone git@github.com:guardstrikelab/carla_apollo_bridge.git
#Using HTTPS
git clone https://github.com/guardstrikelab/carla_apollo_bridge.git
Pull carla image and run,此处官方文档中为:
cd carla_apollo_bridge
./scripts/docker_run_carla.sh
但实际克隆的carla_apollp_bridge中没有scripts文件夹,而是carla_scripts,故使用以下方法成功:
cd carla_apollo_bridge/carla_scripts
./docker_run_carla.sh
会打开CarlaUE4:
然后参考carla_apollo_bridge运行carla_apollo_bridge
在/carla_apollo_bridge文件夹内打开终端,将src文件夹复制到apollo/carla_bridge容器中
docker cp carla_bridge apollo_dev_用户名:/apollo/modules/carla_bridge
安装carla_bridge
进入apollo容器并运行:
cd /apollo/modules/carla_bridge
chmod +x install.sh
./install.sh
source ~/.bashrc
然后开启bridge:
python main.py
但是出现报错:
执行下述命令:
ulimit -s unlimited
再运行python文件,仍然报错:
网上查到下载matplotlib:
pip install matplotlib
但没用,还是报错段错误
退出conda环境后运行:
python3 main.py
报错:
Traceback (most recent call last):
File “main.py”, line 13, in
from cyber.proto.clock_pb2 import Clock
ModuleNotFoundError: No module named ‘cyber’
查找后,根据ggithub上carla_apollo_bridge/issues/#155
source /apollo/cyber/setup.bash
仍报错:
Traceback (most recent call last):
File “main.py”, line 13, in
from cyber.proto.clock_pb2 import Clock
ModuleNotFoundError: No module named ‘cyber’
然后发现,要进入容器里面run carla_apollo_bridge
!!!!一定要进入容器
进入apollo容器并运行:
cd /apollo/modules/carla_bridge
chmod +x install.sh
./install.sh
source ~/.bashrc
然后开启bridge:
python main.py
终于!!!成功了!!!一首《终于等到你》送给大家!(/90度鞠躬)