SUMO学习笔记——ubuntu16.04下SUMO源码安装与Traci通讯例程的测试


 

         笔者近期需要运用SUMO完成关于Intelligent Vehicle仿真demo的搭建,于是需要通过Traci来与外部进行通讯。

        但是按照SUMO官网教程所指导的方法进行安装和环境配置后,Traci 通讯的例程总是报错。查阅国内外相关论坛发现有不少人遇到了同样的问题,但是没有给出适合我这个环境的方法。

        最终在查阅官方资料还有相关研究者的博客,折腾了快一周后,很神奇地跑通了。所以记录下来希望能帮助到后续进行相关工作的同学们。

        Remark:我的操作系统是 Ubuntu 16.04 , python 2.7,sumo-0.32.0(不过个人认为这些并不会有太大的影响,在操作系统都是linux的前提下)

 

一、 SUMO的安装方式——源码安装

        按照SUMO官方文件上运用 三句 apt-get的方法进行的安装,的确是可以安装上,但是我们会发现,sumo、tools、docs三个文件夹分别被默认地安装到了/usr/share/、/usr/share/docs、/usr/bin/这三个独立的地方,从而在按官方文档后续SUMO_HOME的配置中,就没有办法让其直接作为bin, tools,docs的上层文件的路径。虽然在terminal中输入sumo和sumo-gui时没有报错,但是在测试Traci例程 runner.py的时候就会出现报错:

ImportError:   please declare environment variable 'SUMO_HOME' as the root directory of your sumo installation (it should contain folders 'bin', 'tools' and 'docs')

进过逐步调试,发现还是因为没有通过环境变量 “SUMO_HOME”找到tools文件夹,从而其中的sumolib 和 traci 库没有被import成功。然后我就开始尝试各种方法修改  ~./bashrc中的环境变量,均没有成功,最后参考官网的 binary packages 安装方法,进行相关的调整,完成了安装。

1. 如果之前运用apt-get 安装了sumo的话, 用以下语句卸载

apt-get --purge remove sumo 

 

apt-get --purge remove sumo-tools
apt-get --purge remove sumo-docs

2. 点击下载SUMO文件包,我是默认下载到/home/Downloads/中

3. 解压并进入sumo文件夹,将src-<version>中的version换成自己的版本,我这里是0.32.0

tar xzf sumo-src-0.32.0.tar.gz
cd sumo-0.32.0/

 

4. Subversion checkout 

 

svn co https://svn.code.sf.net/p/sumo/code/trunk/sumo 
cd sumo 
make -f Makefile.cvs 

5.SUMO_HOME 环境变量的配置

gedit ~/.bashrc

 

进入bashrc 文件进行修改,首先要知道/sumo-0.32.0/的位置,例如我的系统中它装在了home/<user>/Downloades/下,那么我的bashrc文件中要加上:

 

修改完毕保存退出后要通过source来使环境变量生效:

source ~/.bashrc

可以通过 echo $SUMO_HOME 来初步检测有没有修改成功

echo $SUMO_HOME

 

6.Building the SUMO binaries

./configure --prefix=$HOME
make

make的时间会比较久,可能需要五到十分钟~

 

7.SUMO binaries 最终安装

make install

很快就可安装完毕

8.将内层/sumo/bin/中的文件拷贝到父层/sumo-0.32.0/bin/中

这一步也是比较神奇,但是的确有用,因为在执行过第7步后,/sumo-0.32.0/中将会出现一个/sumo/的子文件夹,然后对比发现子文件夹几乎与父文件夹一模一样,只是子文件夹中/bin/比父文件夹中的/bin/要多出很多文件,父文件夹中只有两个makefile文件。将/sumo-0.32.0/sumo/bin/中的全部文件拷贝(相同名称文件替换)到/sumo-0.32.0/bin/中。

至此安装完毕,可在terminal中输入sumo或sumo-gui,测试是否有界面弹出。

 

二、 Traci 通讯例程的实现

        通讯例程的实现按照官网教程即可,没有太大的难度。

例程在/sumo-0.32.0/docs/tutorial/traci_tls 中,其中runner.py为核心脚本。

运用编辑器(我用的是spyder)打开runner.py并运行后,脚本会自动生成路网文件,在弹出的sumo-gui界面中点击绿色的开始模拟按钮,调整delay时间后即可看到仿真结果。

 

 

 

 

 

  • 11
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 41
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值