ubuntu20.04配置serpentine-env+veins-gym

serpentine-env是一个应用Veins-gym的例子,使用前我电脑已经配置了基本强化学习环境包括cuda、cudnn、anaconda、python、pytorch等,还有基本的通信环境:omnet++  、sumo、veins。windows的配置可以参考我的另几篇相关博客,ubuntu忘记记录了。。。

一、安装protobuf

1、卸载Ubuntu自带的protobuf;

sudo apt-get remove libprotobuf-dev
which protoc
// 运行完“which protoc”会显示一个protoc的路径,如果没有显示则下面这条命令不必执行
rm /usr/local/bin/protoc
// 具体路径以“which protoc”显示的为准

2、安装ubuntu中的protobuf=3.6.1

确保已经安装下列库:

sudo apt-get install autoconf automake libtool curl make g++ unzip

克隆制定版本的protobuf:

git clone -b v3.6.1 https://github.com/protocolbuffers/protobuf.git

移动到文件夹内

cd protobuf

下方表示克隆protobuf的子模块,主要是gtest

git submodule update --init --recursive

编译protobuf源码并安装   

    // 进入到克隆的protobuf目录
    # cd protobuf
    # ./autogen.sh
    # ./configure
    # make
    // 如果没有克隆子模块,make check会失败但是可以继续make install,但是使用某些功能时可能会出错
    # make check
    # sudo make install
    # sudo ldconfig
    // 输出protobuf版本信息则表示安装成功
    # protoc --version

3、安装虚拟环境中的protobuf=3.19.4

如果用虚拟环境的话。。。我就是没有安装好电脑和虚拟环境的,导致后边用的时候总是报错。

//激活虚拟环境:

source activate mytorch;mytorch是我的环境名

//删除已有的protobuf:

pip uninstall protobuf

//安装新protobuf:

pip install protobuf==3.19.4

4、查看版本

查看ubuntu中的版本:protoc --version

查看虚拟环境中的版本:pip show protobuf

分别是3.6.1和3.19.4

(我用虚拟环境跑的代码,如果版本不对的话虚拟环境中protoc是4.x.x版本,导致代码运行报错。。。)

二、检查基本环境配置

protoc --version   输出:libprotoc 3.6.1

sumo --version   输出:Eclipse SUMO sumo Version 1.8.0

opp_run -v   输出:Version: 5.6.2

上述命令输出对应的软件版本号则表示都有安装

三、安装snakemake、veins-gym

打开terminal,已经安装了anaconda的话会直接进入base环境

然后激活已经有的虚拟环境,我的是安装anaconda的博客中创建的虚拟环境mytorch

激活虚拟环境:

source activate mytorch

pip install veins-gym snakemake

四、配置serpentine-env

通过下列命令下载,提前进入想要的放的位置

git clone https://github.com/tkn-tub/serpentine-env

移动到文件夹内

cd serpentine-env

snakemake之前需要先生成serpentine-env/src/protobuf中的两个文件:veinsgym.pb.cc和veinsgym.pb.h

snakemake src/protobuf/veinsgym.pb.cc src/protobuf/veinsgym.pb.h -c1

然后再:

snakemake -jall

五、运行代码

运行代码前先修改以下bug:第19行文件夹的位置修改成如下所示

我是在虚拟环境mytorch中运行的,terminal进入serpentine-env文件夹后输入命令:

examples/random_agent.py

输出类似:

Number of steps taken: 3680
Mean reward: 0.674339670104825

六:现有问题

虽然运行成功了原代码,但是要改成自己需要的功能可太难了啊。。。。要写NED、C++文件,而且我需要结合simuLTE的代码,无从下手,希望有大佬能出个教程就好了

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值