카테고리 없음

SUMO에서 netgenerate를 이용해 자동 네트워크 생성하기

crystal bang 2022. 8. 19. 15:13

 

ns3로 실험을 하다보면 grid 네트워크와 이동하는 노드 trace file을 자주 생성하고 사용하는데,

netedit에서 원하는 모양을 만들수는 있지만 하나씩 만들기는 너무 오래걸린다.

 

netgenerate 기능을 사용하면 터미널에 몇 줄 입력만하면 자동으로 네트워크가 생성되어서 매우 매우 편리하다!

나는 grid net만 만들어봤지만, 스파이더 등 다양한 토폴로지가 가능하다.

아래 방식을 따라가면 4x4 (간격은 300m)의 grid map이 생성된다!

이외에도 netgenerate --help를 터미널에 입력하면 매우 다양한 옵션으로 커스터마이즈 가능하다.

 

1. Grid network 자동 생성하기

netgenerate --grid --grid.number 5 --grid.length 300 --tls.guess --crossings.guess --sidewalks.guess


2. Netedit에서 위에서 생성한 네트워크 열어 토폴로지 편집 및 확인

3. Open in SUMO를 통해 SUMO에서 연 뒤, sumocfg 파일 생성

4. 이후 sumocfg를 xml 파일로 변경하기 위해 sumocfg 파일이 있는 곳으로 이동

5. sumocfg 파일을 xml파일로 변환

sumo -c ped1.sumocfg --fcd-output ped1.xml

6. 이후 xml파일을 sumo/tools에 이동시키고 터미널도 해당 위치로 이동

7. xml파일을 ns3의 mobility trace file인 tcl 파일로 변환 (이때 person의 경우 --person option을 넣어줘야 하고, 차량이면 해당 옵션을 작성하지 않는다.)

python traceExporter.py -i ped1.xml --person --ns2mobility-output=ped1.tcl