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