项目地址
项目依托于作者的博士论文
作者给了很多example在Google的Colab里,但是不能显示其动画效果(可以采用一些record方法存储其视频再下载观看,不过比较麻烦)。因此需要在物理机或者虚拟机中搭建环境,更方便地观察其动画。
系统中的python配置
笔者安装了一个Ubuntu20.04的虚拟机,开机自带python3.10。
但是项目里用到了tkinter模块,需要安装python3-tk。
另外,项目还要用到一些用于显示的模块,参考项目文档里的installtion,这里安装命令如下
sudo apt-get update -y
sudo apt-get install -y libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev libsdl1.2-dev libsmpeg-dev subversion libportmidi-dev ffmpeg libswscale-dev libavformat-dev libavcodec-dev libfreetype6-dev gcc
至此,系统的基础配置已经完成。
基于virtualenv的虚拟环境配置
只在一套环境里操作代码和管理包可能会导致错乱,并且不易于迁移。这里介绍基于virtualenv的虚拟环境管理方法。
首先安装pip3
sudo apt-get install pip3
配置pip3为国内源,打开pip3的配置文件
sudo vim ~/.pip/pip.conf
配置内容为
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = pypi.tuna.tsinghua.edu.cn
使用pip3安装virtualenv
pip3 install virtualenv
将virtualenv添加到PATH
export PATH=$PATH:/home/vboxuser/.local/bin
创建项目文件夹,这里起名为highway
mkdir ~/highway
cd ~/highway
使用virtualenv创建虚拟环境
virtualenv venv
激活环境
source venv/bin/activate
这时候终端里会有(venv)开头显示
取消激活,会发现开头的(venv)消失
在虚拟环境中安装项目需要的numpy和highway-env
写一个小的demo测试一下(文件名create_env.py)
import gymnasium as gym
import matplotlib
import matplotlib.pyplot as plt
import pprint
matplotlib.use('TkAgg')
env = gym.make('highway-v0', render_mode='rgb_array')
pprint.pprint(env.config)
env.config["lanes_count"] = 4
env.reset()
for _ in range(3):
action = env.action_type.actions_indexes["IDLE"]
obs, reward, done, truncated, info = env.step(action)
env.render()
plt.imshow(env.render())
plt.show()
运行程序
python3 create_env.py
运行结果
好的,这样就基本配置好了highway-env的仿真环境,参考开头的项目文档进一步修改智能体动态,奖励函数,强化学习算法等等,完成自己的论文吧!