본문 바로가기

카테고리 없음

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

 

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