星期二, 9月 22, 2009

MOVE,SUMO 無痛安裝,順便當備忘 (更正錯誤!!)

這篇安裝教學的目的是在命令列 (cmd) 中使用MOVE模擬車流,NS和NAM則必須回到 cygwin下操作。因為使用 Cygwin操作MOVE,MOVE會讀不懂路徑,結果就是沒有反應。反之在 cmd 下,NS和NAM2都動不起來。 有點麻煩,但還可以湊合著用。

MOVE (MObility model generator for VEhicular networks) 其實就是把SUMO的功能用GUI包裝起來,讓使用者可以方便輸出輸入,更進一步的生成模擬 VANET 的環境。

之前在網路找到一篇"Setup and use of MOVE simulator",看起像是教學用的NOTE,寫的非常的詳細,但是 google 一下發現連結已經被拿掉。以下為安裝步驟,

1. 安裝SUMO,在<link>內點選以下的選項,下載binaries檔。
  • The latest MS Windows binaries.
Contains the binaries, all dlls needed, the examples, tools, and documentation in pdf format.
Download as: sumo-winbin-0.10.3.zip, ~8.2MB
2. 解壓縮到Cygwin下,/home/kenbe 目錄以內。例: E:\cygwin\home\kenbe\sumo-0.10.3

3.在 .bash_profile 中 原本的PATH中 加入 "/home/kenbe/sumo-0.10.3/bin:"這一段。
完成後會長這樣,

export PATH=/home/kenbe/sumo-0.10.3/bin:/home/kenbe/proj/bin:/home/kenbe/xerces-c-3.0.1/bin:$NS_HOME/nam-1.11:$NS_HOME/tcl8.4.5/unix:$NS_HOME/tk8.4.5/unix:$NS_HOME/bin:$PATH

4. Cygwin重開,或者是 source ~/.bash_profile 。

5. 在 Cygwin 鍵入 guisim,應該可以打開 sumo的圖形介面,sumo安裝完成。

6. 安裝MOVE,在<LINK>中可以找到下載點。

download here
Current version: 0.9

7. 將 vanetsim.zip 解壓縮到系統槽(如:E:),這樣比較方便操作。並且裝好JAVA SDK。

8. 打開 E:\move\netConvert.java,在170行左右找到,

    cmd = "sumo-netconvert -v -c " + configurationPath.getText();

    改成 cmd = "netconvert -v -c " + configurationPath.getText();

    還有,打開 E:\move\autoRoutes.java,在544行左右找到,

    cmd = "sumo-" + options + " -v -o " + outputPath.getText() + " -b " + begin.getText() + " -e " + end.getText();

改成 cmd = options + " -v -o " + outputPath.getText() + " -b " + begin.getText() + " -e " + end.getText();
  

9. 在解壓縮的目錄下(如: E:\move),鍵入 javac *.java 編譯 MOVE ,會出現 warning 但是不用理他。

10. 在原始碼目錄(如:E:\move) 下執行 java vanetsim,程式有動就代表安裝成功。

11.使用 sumo 內建的教學檔測試 MOVE。

[Mobility Model] -> [Manual Map / Create Map] -> [...] ,

選擇 "sumo-0.8.x\data\examples\simple_nets\box\box1l" 下 box1l.netc.cfg 檔。

按下 [OK] ,中間的 panel 應該會出現 success!! 而且會生成 box1l.net.xml 檔。


32 則留言:

mandy 提到...

您好:
我想請教您一些關於此篇文章的問題。
我已經安裝好MOVE,但是當我想要產生地圖時,按下程式中的 OK ,
在命令提示字元中,會產生一大串錯誤訊息,主要是沒法開啟sumo-netgen這個程式,請問這樣要如何解決?謝謝
如果可以的話,希望可以用e-mail與您討論。bgotenks@gmail.com

Clarinet 's Home 提到...

不好意思!
我有一個問題想要請教您,為什麼我在按下Creat Map並設定好*.cfg檔按OK之後,畫面一直停留在Loading configuration...就不動了?
請問您知道這是什麼原因嗎?
如您有空幫我解答,可以麻煩您寄信給我或直接回覆,非常謝謝您。
clarinet1011@gmail.com

AsHew~ 提到...

會發生動不了的問題應該是MOVE呼叫了不存在的執行檔,你可以檢查一下原始檔再執行的時候呼叫的執行檔和SUMO實際的執行檔名稱是否相同。 (改法大概就像第八點)

Clarinet 's Home 提到...

不好意思!
先前的問題我已經解決哩!
可是又有新的問題產生...
在要產生NS2.tcl時,不是要預先載入*.trace與*.net.xml
依照他的範例來說,載入之後不是會有一些訊息讀進來,可是我的依照沒有反應= =
不知道您是否有這個問題的解法?

匿名 提到...

hello 我對您提出的這一套模擬軟體,很有興趣,但我試不出來
可以加我的 msn 討論一下嗎?
jacky3560@hotmail.com

AsHew~ 提到...

MOVE 不是我寫的啦~~
如果有什麼問題,可以直接留言,我會的部分一定會回答~~

dinbeer 提到...

您好,不好意思 因為我也出現了在creaste map出現loading configuration的問題 請問可能是哪裡出了問題呢 已經卡了好久都找不到問題 打擾了 謝謝~

小言 提到...

Hi, 我想請問一下,利用sumo+ns2所跑出來的trace檔的格式,請問您熟悉嗎?因為去比對原本只用ns2的無線網路所跑出來的trace格式,我發現後面完全不一樣!如果您熟悉格式的話,是否可以告知我,感謝您。

AsHew~ 提到...

To 小言,
再使用 sumo過程中出現的 xx.trace 是用來產生node移動路徑的檔案。這和跑完NS2 產生的 trace 檔完全沒有關係。反之, ns2 產生的trace是記錄模擬過程中發生的大小事情。

uni6666 提到...

您好,可否跟您要tcl檔來測試,謝謝

小肥興 提到...

想請問一下這是大概哪一個環節出問題?一直找不出來= =?
Error: invalid byte '' at position 1 of a 1-byte sequence
Error: (At line/column 2/1).
Error: Could not load configuration 'F:\sumo\rodes.edg.xml.netc.cfg'.
Quitting (on error).

AsHew~ 提到...

To 小肥興,
你的 error 我沒遇過。

不過出現 Could not load configuration 會讓我覺得是"rodes.edg.xml.netc.cfg"這個檔案生成的過程中設定出了錯,讓SUMO讀不懂。

匿名 提到...

請問版主,create map 出現 success,但是程式停住,並沒有產生*.net.xml檔,請問是那個環節出問題了?請版主幫忙點一下.謝謝

Tiger 提到...

我按照您的上述安装指南安装MOVE+SUMO时,最后一步“使用sumo 內建的教學檔測試 MOVE”时,在按下Create Map并设定某个.cfg文件后,按OK后panel没有任何显示,同时命令窗口出现一大堆错误信息。
请问如何解决这个问题呢?
非常感谢您。

AsHew~ 提到...

To tiger:

可能是 netConvert.java和autoRoutes.java 裡面的程式碼沒修改的關係。補充在第8點,你試試看。

Tiger 提到...
作者已經移除這則留言。
Tiger 提到...

非常感谢您的神速回复和耐心解答。
我按照您的指导修改了相应文件并重新编译,但问题依然如故。问题原因应该就像您指出的那样,因为几乎每条出错信息的最后都是unknown source。不知道还有其他文件需要修改吗?或者我把出错信息的抓图发给您?(我的邮箱是tigerzhh@gmail.com)。
我知道解答这类繁琐问题可能会耽误您很多时间,所以非常不好意思。谢谢。

AsHew~ 提到...

To Tiger,

對於unknown source的錯誤我沒有概念,也許你貼上完整的錯誤資訊,這樣會比較清楚。

我照文章裡的步驟重新安裝過一次,到createMap都沒發生問題。所以,你可以檢查是否是路徑設定錯誤。

Tiger 提到...

非常感谢您耐心的重新安装。
按照您的要求,附上我的完整出错信息(由于这里无法贴图,所以我是对照屏幕打出来的,可能有个别拼写错误),请您帮忙看看问题出在哪里:

java.io.IOException: Cannot run program "netconvert": CreateProcess error=2,??????????????
at java.lang.ProcessBuilder.start{Unknown Source}
at java.lang.Runtime.exec{Unknown Source}
at java.lang.Runtime.exec{Unknown Source}
at java.lang.Runtime.exec{Unknown Source}
at netConvert.OKButtonActionPerformed{netConvert.java:172}
at netConvert.access$200{netConvert.java.13}
at netConvert$1.actionPerformed{netConvert.java:68}
at javax.swing.AbstractButtion.fireActionPerformed{Unknown Source}
at javax.swing.AbstractButtion$Handler.actionPerformed{Unknown Source}
at javax.swing.DefaultButtionModel.fireActionPerformed{Unknown Source}
at javax.swing.DefaultButtionModel.setPressed{Unknown Source}
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased{Unknown Source}
at java.awt.Component.processMouseEvent{Unknown Source}
at javax.swing.JComponent.processMouseEvent{Unknown Source}
at java.awt.Component.processEvent{Unknown Source}
at java.awt.Container.processEvent{Unknown Source}
at java.awt.Component.dispatchEventImpl{Unknown Source}
at java.awt.Container.dispatchEventImpl{Unknown Source}
at java.awt.Component.dispatchEvent{Unknown Source}
at java.awt.LightweightDispatcher.retargetMouseEvent{Unknown Source}
at java.awt.LightweightDispatcher.processMouseEvent{Unknown Source}
at java.awt.LightweightDispatcher.dispatchEvent{Unknown Source}
at java.awt.Container.dispatchEventImpl{Unknown Source}
at java.awt.window.dispatchEventImpl{Unknown Source}
at java.awt.Component.dispatchEvent{Unknown Source}
at java.awt.EventQueue.dispatchEvent{Unknown Source}
at java.awt.EventDispatchThread.pumpOneEventForFilters{Unknown Source}
at java.awt.EventDispatchThread.pumpEventsForFilter{Unknown Source}
at java.awt.EventDispatchThread.pumpEventsForHierarchy{Unknown Source}
at java.awt.EventDispatchThread.pumpEvents
at java.awt.EventDispatchThread.pumpEvents{Unknown Source}
at java.awt.EventDispatchThread.run{Unknown Source}
Caused by: java.io.IOException:CreateProcess error=2, ????????????????
at java.lang.ProcessImpl.create{Native Method}
at java.lang.ProcessImpl.{Unknown Source}
at java.lang.ProcessImpl.start{Unknown Source}
...32 more

另外,您说“檢查是否是路徑設定錯誤”,不知道是不是 .bash_profile 中设置的路径。
我又详细阅读了您的文章,发现在您的.bash_profile路径设置中,有“/home/kenbe/proj/bin:/home/kenbe/xerces-c-3.0.1/bin:”。请问是不是必须安装Xerces和PROJ?我先前没有装。如果需要,能否提供您的安装版本的下载地址?
给您添麻烦了,非常感谢您。

AsHew~ 提到...

proj和xerces-c-3.0.1都和move沒關係。

你看看 /home/user/sumo-??/bin 裡面是否有netconvert 這個程式? 如果有其他類似的,那就把第8點的程式碼修改成那個名稱。

Tiger 提到...

您好,我的C:\cygwin\home\Administrator\sumo-0.10.3\bin里面确实有netconvert.exe
是不是除了netConvert.java和autoRoutes.java外,还需要修改其它文件的代码?您修改这类代码的规则是什么?
谢谢.

Tiger 提到...

刚才我发现我这里如果在cygwin下按照您的方法编译、运行MOVE,在最后一步create map的时候,MOVE panel会显示Loading configuration...,同时cygwin窗口无错误显示(如果不按照您说的修改第8步,则cygwin窗口会有我昨天发给您的一模一样的错误显示),好像比在cmd下结果好一点。能否想办法让MOVE直接在cygwin下运行?这样是不是能解决您在您的文章开头提出的问题,让MOVE在cygwin下实现其全部功能?
请您指教。谢谢:)

AsHew~ 提到...

To Tiger:

在第三點,/home/kenbe/sumo-0.10.3/bin: 裡面的 kenbe,你有沒有改成你的賬號名稱?
(kenbe 是我使用的帳號名稱。)

Tiger 提到...

我用您的方法在cygwin下重新编译了MOVE,特别是按照第8点的路径修改方法修改了几个文件的cmd行,目前MOVE已经能在cygwin下达到您在文章里提到的效果了:)
由于之前一无所知,所以提了很多不得要领的问题,非常感谢您的耐心解答。
祝您学业顺利,心想事成。
有机会来北京玩,邮件联系我啦。

提到...

如果你不滿意現在的生活,選擇改變吧!
真的要堅信,命運是掌握在自己手中的,
找對方向,每個人都能找出人生的金鑰匙,
創造財富、健康、美麗、自信來享受豐富的人生
一個您絕對不後悔投入有價值的網路創業機會
你還等什麼?現在行動! ...
點我參加評估了解
http://joe80411.weebly.com/
祝~天天都是有美好的一天˙快樂與您同在

偉城 提到...

想請問您一下,不知道您是否有直接匯入tiger的地圖過,因為在tiger的地圖中副檔名大多為xml,不知道程式中所指的dat是如何產生的。

家益 提到...
作者已經移除這則留言。
家益 提到...

# ~/.bash_profile: executed by bash for login shells.

if [ -e /etc/bash.bashrc ] ; then
source /etc/bash.bashrc
fi

if [ -e ~/.bashrc ] ; then
source ~/.bashrc
fi

# Set PATH so it includes user's private bin if it exists
# if [ -d ~/bin ] ; then
# export PATH=/home/Administrator/sumo-0.12.3/bin:/home/Administrator/proj/bin:/home/Administrator/xerces-c-3.0.1/bin:$NS_HOME/nam-1.11:$NS_HOME/tcl8.4.5/unix:$NS_HOME/tk8.4.5/unix:$NS_HOME/bin:$PATH
# fi

# Set MANPATH so it includes users' private man if it exists
# if [ -d ~/man ]; then
# MANPATH="~/man:${MANPATH}"
# fi

# Set INFOPATH so it includes users' private info if it exists
# if [ -d ~/info ]; then
# INFOPATH="~/info:${INFOPATH}"
# fi
妳好這是我 .bash_profile 的內容不知道是不是有錯我輸入guisim都顯示找不到檔案

家益 提到...

請問sumo-0.10.3和sumo-0.12.3版本範例不同嗎?
我用sumo-0.10.3中您說的範例可以用MOVE執行
但是sumo-0.12.3不行它的檔名是test.sumo.cfg

se 提到...

您好:
不好意思想請教個問題
我在產生sumo.cfg時
不是有一哦create trace然後要選路徑的選項嗎
後來我純檔後,卻沒有trace耶跑出來耶
請問您知道大概是要如何解決嗎?
謝謝~><

SanDiego 提到...

Sorry, it has been a long that I do not use SUMO package. So, my experience may be out of data.

arjun 提到...

hi
Myself Arjun Joshi. I read a manual Rapid generation of Realistic Simulation for VANET. I am currently doing my M.Tech Project in VANET.I am using SUMO-MOVE for the simulation. I am confused for MAP scenario that is taken from google earth image. Generally all the MAP images are in .jpg format. How can i convert that .jpg image to MOVE supportable .dat file ? AS the MOVE generate .nod.xml file and .edg.xml file from the .dat MAP file then how can i detect particular edge from the .edg.xml file of real world MAP ?