关于学习SUMO经验总结

(一)关于SUMO安装下载

  • 编辑路网时老是容易闪退,在测试多个版本后发现sumo-1.5.0版本最为稳定。
  • 在使用终端命令时报错,一般就是环境变量没设置好,去官网手册找配置方式就行了,在配置完环境变量以后一定要关机重启不然配置无法生效。

(二)关于SUMO终端命令的使用

这里分享几个实用的命令:

  •  生成随机车流(可以将sumo安装文件tools中的randomTrips.py放到目标文件夹里运行)
python randomTrips.py -n wuhu.net.xml -r wuhu.rou.xml -e 50 -p 0.1 -l 
netconvert --osm-files map.osm -o wuhu.net.xml

(三)关于编辑路网

对于转换好的路网可能我们还需要做修改,实际路网两个节点之间可能是曲折的而不是直线,网上也没有相关设置转折点的介绍,因此我们可以更该shape参数设置转折点坐标。

(四)关于调用Traic

  • 先分享不错的调用Traic不错的资料

Python: package traci (dlr.de)

  • 分享一段可以直接用python调用的代码
import os
import sys
import traci
import matplotlib.pyplot as plt


# 连接sumo
def connect_sumo():
    if 'SUMO_HOME' in os.environ:
        tools = os.path.join(os.environ['SUMO_HOME'], 'tools')
        sys.path.append(tools)
    else:
        sys.exit("please declare environment variable 'SUMO_HOME'")

if __name__ == '__main__':

    plt.rcParams['font.family'] = 'SimSun'  # 设置中文字体为 SimSun
    connect_sumo()
    sumoBinary = "sumo-gui"  # SUMO可执行文件的路径
    traci.start([sumoBinary, "-c", "demo_1.sumocfg"])

    while traci.simulation.getMinExpectedNumber() > 0:
        traci.simulationStep()
    traci.close()

### SUMO TraCI API 的使用方法及其文档 #### 什么是 TraCI? TraCI 是 Traffic Control Interface 的缩写,它是一种用于与正在运行的道路交通模拟器(如 SUMO)进行交互的工具。通过 TraCI 接口,不仅可以检索仿真对象的状态值,还可以实时操控这些对象的行为[^1]。 #### 启动 SUMO 并连接到 TraCI 为了使用 TraCI 进行交通仿真操作,首先需要启动 SUMO 模拟器,并将其配置为接受 TraCI 客户端的连接。这通常可以通过命令行参数 `--remote-port` 来完成。例如: ```bash sumo -c your_simulation.sumocfg --remote-port 9001 ``` 上述命令会启动 SUMO 模拟器并将 TCP/IP 端口设置为 9001,以便 TraCI 客户端能够与其通信[^2]。 #### Python 中的 TraCI 使用示例 SUMO 提供了一个基于 Python 的 TraCI 库,方便开发者快速上手。以下是简单的代码示例,展示如何通过 Python 脚本控制 SUMO 模拟中的车辆行为: ```python import traci import sumolib # 初始化 TraCI 连接 traci.start(["sumo", "-c", "your_simulation.sumocfg"]) try: step = 0 while step < 1000: # 设置最大步数 traci.simulationStep() # 执行一步仿真 # 获取当前所有车辆ID列表 vehicle_ids = traci.vehicle.getIDList() for vid in vehicle_ids: position = traci.vehicle.getPosition(vid) # 获取车辆位置 speed = traci.vehicle.getSpeed(vid) # 获取车辆速度 print(f"Vehicle {vid} at position {position}, speed {speed}") # 修改特定车辆的速度作为示例 if vid == 'ego_vehicle': traci.vehicle.setSpeed(vid, 15.0) # 将指定车辆速度设为15m/s step += 1 finally: traci.close() # 关闭 TraCI 连接 ``` 此脚本展示了如何初始化 TraCI、执行仿真步骤以及获取/修改车辆属性的操作[^5]。 #### 常见任务扩展 需要注意的是,在某些情况下,TraCI 可能无法满足所有的需求,比如分析道路网络结构或者处理复杂的仿真输出文件。对于这类任务,推荐结合 **Sumolib** 工具来补充功能[^3]。 #### 行人过街演示案例 如果希望进一步探索更复杂的应用场景,可以参考官方教程中关于行人过街仿真的例子。该教程假定读者已掌握基础的 Tutorials/TraCI4Traffic_Lights 内容,并熟悉如何创建车辆驱动控制器[^4]。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值