• (1.1)bark


    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环境
    # 新建一个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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    如果一直卡在正克隆到 ‘bark’…,参考链接

    解决:git clone没反应或速度慢,卡在正在克隆到 ‘xxx’ …

    如果没用的话可能要多运行几次,可以在电脑上打开github,如果页面能正常加载,一般就能正常下载。

    二、配置环境

    1、方法一

    image-20220715221106831

    • install.sh

    先查看一下自己的python路径

    which python
    # /home/myx/anaconda3/envs/bark/bin/python  # 这是我的路径
    
    • 1
    • 2

    在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
    
    • 1
    • 2
    • 3
    • 4
    • 5

    修改前:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OKsPCQES-1662359914781)(/home/myx/.config/Typora/typora-user-images/image-20220715221654581.png)]

    修改后:

    image-20220720121507081

    修改完运行如下命令

    sudo bash install.sh
    
    • 1

    如果这里报错RuntimeError: failed to find interpreter for Builtin discover of python_spec='python3.7'的话,可以考虑采用方法二。

    如果正常运行就继续进行下面步骤

    • 运行dev_into.sh
    source dev_into.sh
    
    • 1

    运行后会进入虚拟环境venv

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wJxPyovx-1662359914783)(/home/myx/.config/Typora/typora-user-images/image-20220715222034110.png)]

    2、方法二

    如果方法一报错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
    
    • 1
    • 2
    • 3
    • 4

    三、安装Bazel

    如果没有安装过bazel,需要进行安装。如果已安装,就跳过该步骤

    1、法一:作者命令

    可以运行tools/installers目录下的install_bazel.sh文件

    sudo bash tools/installers/install_bazel.sh
    
    • 1

    2、法二:替代作者命令

    但是我运行的时候会超时,一直无法安装,于是可以用其他命令下载,即

    # 代替 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 -
    
    • 1
    • 2
    • 3
    • 4

    就是上面的最后一步可能会超时,可以进入链接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/*
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3、法三:官网下载

    官网链接:https://github.com/bazelbuild/bazel/releases

    • 下载

    选择bazel-5.2.0-installer-linux-x86_64.sh进行下载。

    image-20220720120601165

    到目录下打开终端,运行以下代码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
    
    • 1
    • 2
    • 3
    • 4
    • 环境变量和key
    sudo gedit ~/.bashrc
    
    • 1

    在最后一行加入export PATH="$PATH:$HOME/bin"

    更新文件

    source ~/.bashrc
    
    • 1
    • 卸载
    # sudo rm -rf /usr/bin/bazel
    # sudo rm -rf ~/bin
    # sudo rm -rf /usr/bin/bazel
    
    • 1
    • 2
    • 3

    ~/.bashrc 中bazel的环境变量注释或删除

    # sudo gedit ~/.bashrc
    
    • 1

    参考链接:

    bazel 的安装与卸载

    四、测试样例

    1、官方样例

    在自己的路径下运行样例

    # 先运行这句代码,测试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  # 使用场景数据库对行为进行基准测试
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    bazel test //...中成功build

    image-20220716130458791

    如果运行时卡住没有进展,可以修改hosts文件

    sudo vim /etc/hosts
    # 在末尾加入
    172.217.1.110 bazel
    
    • 1
    • 2
    • 3

    2、python样例

    配置调整:https://github.com/bark-simulator/bark/tree/master/bark/runtime/scenario/scenario_generation/config_readers

    • 打开样例列表
    # 安装jupyter解释器
    pip install ipykernel
    python -m ipykernel install --user --name 环境名 --display-name 显示的环境名
    # 打开目录
    bazel run //docs/tutorials:run
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2

    这个板块是实现地图相关

    • 选择地图

    遇到报错No such file or directory: '../../bark/runtime/tests/data/Crossing8Course.xodr'

    需要调整地图文件,因为我们并没有Crossing8Course.xodr

    OpenDRIVE官网:https://www.asam.net/standards/detail/opendrive/

    参考链接:OPENDRIVE地图中GEOMETRY线段对应X/Y坐标的计算

    可以到路径/bark/bark/runtime/tests/data下,随便选一个xodr文件,修改代码【以4way_intersection.xodr为例】

    image-20220716200350897

    3

    • matplotlib qt问题

    遇到%matplotlib qt语句报错Failed to import any qt binding,解决方式见博客解决:Failed to import any qt binding

    4

    /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的代码中需要使用到数据集,先介绍一下数据集的使用方式

    (1)数据集的使用

    数据集使用方式指导:https://github.com/interaction-dataset/interaction-dataset

    如果要添加自己的地图和数据集,文件目录应如下构造

    image-20220716185825067

    在目录下打开终端,测试运行数据。

    conda activate bark
    cd interaction-dataset-master
    pip install -r requirements.txt
    # 展示数据
    # ./main_visualize_data.py  
    ./python/main_visualize_data.py .TestScenarioForScripts
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    数据可视化

    # 载入数据
    # ./main_load_track_file.py 
    ./python/main_load_track_file.py ./recorded_trackfiles/.TestScenarioForScripts/vehicle_tracks_000.csv
    
    • 1
    • 2
    • 3

    如果想要载入自己的数据,就通过以下几个步骤

    1. interaction-dataset-master/maps路径下放入.Scenario_myx.osm文件

    2. interaction-dataset-master/recorded_trackfiles路径下新建.Scenario_myx文件夹【注意这个文件要和前面的osm文件名一致】,文件夹中放入vehicle_tracks_xxx.csv文件【以vehicle_tracks_001.csv为例】

    3. 修改interaction-dataset-master/python/main_visualize_data.py文件,将track_file_number设置为传参模式,即将track_file_number改为--track_file_number

      image-20220716192458457

    4. 运行下面代码

    # 展示数据
    ./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
    
    • 1
    • 2
    • 3
    • 4
    • 5

    5

    sudo apt install ffmpeg
    
    • 1

    6

    • 查看包路径
    # print(module.__file__)   # 查找某个包所在具体路径
    print(bark.__file__)
    # print(module.__code__)  # 查找某个方法所在文件路径
    
    • 1
    • 2
    • 3

    五、运行bark-ml

    pip install bark-ml
    git clone https://github.com/bark-simulator/bark-ml
    cd bark-ml
    bash utils/install.sh
    
    • 1
    • 2
    • 3
    • 4
    • 替代bash utils/install.sh
    --no-cache-dir --upgrade --trusted-host pypi.org -r ./utils/docker/installers/requirements.txt
    
    • 1
  • 相关阅读:
    计算机网络知多少面试---第2篇
    注意力机制 -自注意力和位置编码
    CVE-2016-3088漏洞复现
    干货 | 想给你的学术研究拍张美照吗?
    Ubuntu18.4 搭建pytorch编译环境
    前端(十九)——vue/react脚手架的搭建方式
    FastJson不出网利用
    C++运算符重载详解(日期类实操)
    Docker 进阶指南(下)- 使用Docker Compose编排多个容器
    钉钉内嵌H5遇到的一些问题
  • 原文地址:https://blog.csdn.net/Netceor/article/details/126704956