github地址:
github开源bark:https://github.com/bark-simulator/bark/
bark官网:https://bark-simulator.github.io/
bark指导手册:https://github.com/bark-simulator/bark/blob/master/docs/source/installation.md
Youtube视频:https://www.youtube.com/user/fortissTV/search?query=BARK
相关论文:
Anaconda的安装和配置参考博客:Ubuntu软件安装
# 新建一个Anaconda环境
conda create -n bark python=3.7
# 如果想删除环境采用以下操作
# conda remove -n your_env_name(虚拟环境名称) --all
# 进入环境
conda activate bark
pip install virtualenv==16.7.8
pip install bark-simulator
sudo apt-get install libsqlite3-dev sqlite3
git clone https://github.com/bark-simulator/bark.git
cd bark
如果一直卡在正克隆到 ‘bark’…,参考链接
解决:git clone没反应或速度慢,卡在正在克隆到 ‘xxx’ …
如果没用的话可能要多运行几次,可以在电脑上打开github,如果页面能正常加载,一般就能正常下载。
先查看一下自己的python路径
which python
# /home/myx/anaconda3/envs/bark/bin/python # 这是我的路径
在bark目录下有一个install.sh文件,这里要修改install.sh文件的2个地方
sudo vim install.sh
# 将第一行改为自己python3.7所在的地方
# /home/myx/anaconda3/envs/bark/bin/python
# 将最后一行改为
# sudo bash tools/installers/install_apt_packages.sh
修改前:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OKsPCQES-1662359914781)(/home/myx/.config/Typora/typora-user-images/image-20220715221654581.png)]
修改后:
修改完运行如下命令
sudo bash install.sh
如果这里报错RuntimeError: failed to find interpreter for Builtin discover of python_spec='python3.7'
的话,可以考虑采用方法二。
如果正常运行就继续进行下面步骤
source dev_into.sh
运行后会进入虚拟环境venv
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wJxPyovx-1662359914783)(/home/myx/.config/Typora/typora-user-images/image-20220715222034110.png)]
如果方法一报错RuntimeError: failed to find interpreter for Builtin discover of python_spec='python3.7'
的话,可以考虑采用方法二。
其实就是不要用virtualenv创建python虚拟环境了,改为运行如下代码
# 代替 install.sh,跳过 dev_into.sh
pip install -r tools/installers/requirements.txt
sudo apt install g++ unzip zip
# sudo bash tools/installers/install_apt_packages.sh
如果没有安装过bazel,需要进行安装。如果已安装,就跳过该步骤
可以运行tools/installers
目录下的install_bazel.sh
文件
sudo bash tools/installers/install_bazel.sh
但是我运行的时候会超时,一直无法安装,于是可以用其他命令下载,即
# 代替 install_bazel.sh
sudo apt install g++ unzip
sudo echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
sudo curl https://bazel.build/bazel-release.pub.gpg | apt-key add -
就是上面的最后一步可能会超时,可以进入链接https://bazel.build/bazel-release.pub.gpg,手动将内容另存,放到bark下,执行下面的命令
sudo apt-key add bazel-release.pub.gpg
sudo apt-get update
sudo apt-get install -y bazel
# 卸载
# sudo apt-get remove bazel
sudo rm -rf /var/lib/apt/lists/*
官网链接:https://github.com/bazelbuild/bazel/releases
选择bazel-5.2.0-installer-linux-x86_64.sh进行下载。
到目录下打开终端,运行以下代码sudo
# chmod +x bazel--installer-linux-x86_64.sh
# ./bazel--installer-linux-x86_64.sh --user
chmod +x bazel-5.2.0-installer-linux-x86_64.sh
./bazel-5.2.0-installer-linux-x86_64.sh --user
sudo gedit ~/.bashrc
在最后一行加入export PATH="$PATH:$HOME/bin"
更新文件
source ~/.bashrc
# sudo rm -rf /usr/bin/bazel
# sudo rm -rf ~/bin
# sudo rm -rf /usr/bin/bazel
将 ~/.bashrc
中bazel的环境变量注释或删除
# sudo gedit ~/.bashrc
参考链接:
在自己的路径下运行样例
# 先运行这句代码,测试bark是否工作,以及行为和场景构建
bazel test //...
# sudo bazel test //... --python_path=/home/myx/Project/bark/bark/python_wrapper/venv/bin/python
# 场景测试
bazel run //bark/examples:highway # 两车道高速公路示例
bazel run //bark/examples:merging
bazel run //bark/examples:intersection # 三路交叉口
# bazel run //bark/examples:interaction_dataset # 数据集回放
# bazel run //bark/examples:benchmark_database # 使用场景数据库对行为进行基准测试
在bazel test //...
中成功build
如果运行时卡住没有进展,可以修改hosts文件
sudo vim /etc/hosts
# 在末尾加入
172.217.1.110 bazel
# 安装jupyter解释器
pip install ipykernel
python -m ipykernel install --user --name 环境名 --display-name 显示的环境名
# 打开目录
bazel run //docs/tutorials:run
这个板块是实现地图相关
遇到报错No such file or directory: '../../bark/runtime/tests/data/Crossing8Course.xodr'
需要调整地图文件,因为我们并没有Crossing8Course.xodr
。
OpenDRIVE官网:https://www.asam.net/standards/detail/opendrive/
可以到路径/bark/bark/runtime/tests/data
下,随便选一个xodr文件,修改代码【以4way_intersection.xodr为例】
matplotlib qt
问题遇到%matplotlib qt
语句报错Failed to import any qt binding
,解决方式见博客解决:Failed to import any qt binding
/home/myx/Project/bark/bark/runtime/scenario/scenario_generation
/home/myx/.cache/bazel/_bazel_myx/2b95cf4426d57e499a6045a0f87bd019/execroot/bark_project/bazel-out/k8-fastbuild/bin/docs/tutorials/run.runfiles/benchmark_database/data/tutorial_database/scenario_sets/highway_merging/scenario_set1.json
在4的代码中需要使用到数据集,先介绍一下数据集的使用方式
数据集使用方式指导:https://github.com/interaction-dataset/interaction-dataset
如果要添加自己的地图和数据集,文件目录应如下构造
在目录下打开终端,测试运行数据。
conda activate bark
cd interaction-dataset-master
pip install -r requirements.txt
# 展示数据
# ./main_visualize_data.py
./python/main_visualize_data.py .TestScenarioForScripts
# 载入数据
# ./main_load_track_file.py
./python/main_load_track_file.py ./recorded_trackfiles/.TestScenarioForScripts/vehicle_tracks_000.csv
如果想要载入自己的数据,就通过以下几个步骤
在interaction-dataset-master/maps
路径下放入.Scenario_myx.osm
文件
在interaction-dataset-master/recorded_trackfiles
路径下新建.Scenario_myx
文件夹【注意这个文件要和前面的osm文件名一致】,文件夹中放入vehicle_tracks_xxx.csv
文件【以vehicle_tracks_001.csv为例】
修改interaction-dataset-master/python/main_visualize_data.py
文件,将track_file_number
设置为传参模式,即将track_file_number
改为--track_file_number
运行下面代码
# 展示数据
./python/main_visualize_data.py .Scenario_myx --track_file_number 001
# ./python/main_visualize_data.py .Scenario_myx --track_file_number 1
# 加载数据
./python/main_load_track_file.py ./recorded_trackfiles/.Scenario_myx/vehicle_tracks_001.csv
sudo apt install ffmpeg
# print(module.__file__) # 查找某个包所在具体路径
print(bark.__file__)
# print(module.__code__) # 查找某个方法所在文件路径
pip install bark-ml
git clone https://github.com/bark-simulator/bark-ml
cd bark-ml
bash utils/install.sh
bash utils/install.sh
--no-cache-dir --upgrade --trusted-host pypi.org -r ./utils/docker/installers/requirements.txt