要注意 intel 的 ai driver, library, toolkit 有分給 GPU (Arc) 跟 NPU 用的。
2025/2/20
2025/2/15
modify ollama model for cline
cline 使用 ollama 的話,有些 model 會一直 repeat 說過的話,然後出現Error.例如 deepseek-r1:14b
而 cline 需要很大的 context window.
所以要修改 context window 才行。
ollama 可以用 /parameter 命令來修改。
但是 cline 啟動的 ollama model 沒辦法這樣做。
所以要用 Modelfile 修改 model 的 default config.
ref: 修改 ollama 內的 model 的方法,就寫一個 Modelfile,放進要修改的參數,然後用 ollama command create 一個新 mode.
例如:
cline 改用這個 model,就不會有 Error 了。
但是要注意改num_ctx 改大之後,ollama load model 的 vram 也變大了。
以 deepseek-r1:14b 來看,num_ctx=4090 時,varm 是 10G
換成 num_ctx=32768 之後,vram 是 17G
other ref: num_ctx 是 model 可以記住的token 長度
num_predict 是 model 可以生成的 token 長度
* cline is having trouble... Cline uses complex prompts and iterative task execution that may be challenging for less capable models. For best results, it's recommended to use Claude 3.5 Sonnet for its advanced agentic coding capabilities.這是因為 context windows 不夠大 (default 是 4096)
而 cline 需要很大的 context window.
所以要修改 context window 才行。
ollama 可以用 /parameter 命令來修改。
但是 cline 啟動的 ollama model 沒辦法這樣做。
所以要用 Modelfile 修改 model 的 default config.
ref: 修改 ollama 內的 model 的方法,就寫一個 Modelfile,放進要修改的參數,然後用 ollama command create 一個新 mode.
例如:
$ cat Modelfile-deepseek FROM deepseek-r1:14b PARAMETER num_ctx 32768然後用 ollama command:
ollama create deepseek-r1:14b-32k -f Modelfile-deepseekcreate 完,用 ollama list 就可以看到 deepseek-r1:14b-32k 這個model
cline 改用這個 model,就不會有 Error 了。
但是要注意改num_ctx 改大之後,ollama load model 的 vram 也變大了。
以 deepseek-r1:14b 來看,num_ctx=4090 時,varm 是 10G
換成 num_ctx=32768 之後,vram 是 17G
other ref: num_ctx 是 model 可以記住的token 長度
num_predict 是 model 可以生成的 token 長度
2025/2/10
Transforms.ToTensor( ) 的注意事項
Pytorch 的 transforms.ToTesor()() 會把numpy 換成 tensor.
但是dimension sequence 不一樣.
ToTensor()()假設參數的 numpy array 是從 PILImage 來的,dimension是: H,W,C
ToTensor()()的 output,符合 pytorch 的 sequence, dimemsion 是: C,H,W
所以 經果 ToTensor( ), array 的 order 會被改掉。
但是dimension sequence 不一樣.
ToTensor()()假設參數的 numpy array 是從 PILImage 來的,dimension是: H,W,C
ToTensor()()的 output,符合 pytorch 的 sequence, dimemsion 是: C,H,W
所以 經果 ToTensor( ), array 的 order 會被改掉。
DeepSeek Janus
原來 deepseek-janus pro 有寫好 webui,是用gradio.
就是 clone...
最後啟動 demo/app_januspro.py 或是 demo/app_janusflow.py 就可以。
要注意的是
server_name=0.0.0.0 就是對 public ip,而不只是 127.0.0.1
就是 clone...
git clone https://github.com/deepseek-ai/Janus.git然後安裝 requirements.txt
最後啟動 demo/app_januspro.py 或是 demo/app_janusflow.py 就可以。
要注意的是
- python 要 3.11
- torch 要改 2.2.2
- cd Janus && export PATHONPATH=`pwd`
- 最後啟動的 app_janusXXX.py 在 demo.launch( ) 的 argument,要把 share=True 改成 server_name=0.0.0.0
server_name=0.0.0.0 就是對 public ip,而不只是 127.0.0.1
2025/2/5
ssh connect with X forward in Windows Command console
ref:
然後在 Windows Command Console 要設定環境變數 DISPLAY
可以在windows status bar 上把游標移到 X server 的地方停一下,會顯示 0.0.
然後就可以用 ssh -Y 連線了,因為 Windows 的 ssh client 沒有 -X 選項.
-Y 是 untrust X forward.
-X 是 trusrt X forward.
一定要設完環境變數再連 ssh,不然 ssh 不會設定好連線後, linux 端的環境變數。
要啟動 gnome-terminal的話,ref:Getting gnome-terminal via SSH and Xming,藥用
remote X 時,用 python 的 matplotlib.pyplot.show( ) 常常出現問題,
例如會說
- Built-in SSH X11 forwarding in PowerShell or Windows Command Prompt
- Installing and running an X Server on Windows
然後在 Windows Command Console 要設定環境變數 DISPLAY
set DISPLAY=127.0.0.1:0.0實際上後面的意思是
127.0.0.1:display_number.0.雖然我也不知道 XLauncher 的 display number 是哪個...
可以在windows status bar 上把游標移到 X server 的地方停一下,會顯示 0.0.
然後就可以用 ssh -Y 連線了,因為 Windows 的 ssh client 沒有 -X 選項.
-Y 是 untrust X forward.
-X 是 trusrt X forward.
一定要設完環境變數再連 ssh,不然 ssh 不會設定好連線後, linux 端的環境變數。
要啟動 gnome-terminal的話,ref:Getting gnome-terminal via SSH and Xming,藥用
dbus-launch gnome-terminal
remote X 時,用 python 的 matplotlib.pyplot.show( ) 常常出現問題,
例如會說
libEGL warning: DRI3: failed to query the version libEGL warning: DRI2: failed to authenticate libEGL warning: DRI3: failed to query the version有說明說,在 import matplotlib 後,加上:
matplotlib.use('TkAgg')就可以。
2025/2/3
Fast RCNN
ref:
Fast-RCNN 是一種 2stages 的 object detection network。
自己決定feature map 以每個格點為中心,都有N個 anchor box.
這N個 anchor box 的大小和長寬比例都不一樣。
然後再 feature map 上,針對每個格點上的每個 anchor box,判斷他是哪一個 class,或是都不是,就指定他是 background class。
所以RPN 的輸出是 class 和 regression(box 的 w,h).
然後每個featuer map 的格點都有 N 個 anchor box 對應的 class 和 regbox 值。
- stage 1 : 把image 經過conv 變成 feature map,再用 RPN 把 feature map 上的region (包含物件的區域) 都找出來
- stage 2 : 把所有regsion 都從 feature map 上切割出來,辨識它們的種類和位置大小
自己決定feature map 以每個格點為中心,都有N個 anchor box.
這N個 anchor box 的大小和長寬比例都不一樣。
然後再 feature map 上,針對每個格點上的每個 anchor box,判斷他是哪一個 class,或是都不是,就指定他是 background class。
所以RPN 的輸出是 class 和 regression(box 的 w,h).
然後每個featuer map 的格點都有 N 個 anchor box 對應的 class 和 regbox 值。
class : W, H, anchor_number, 2 Regre : W, H, anchor_numbwe, 4
RoIPool
一直看不懂 RoIPooling 是要做什麼用的。
ref 的那一篇就有說明了。
fast-rcnn 是 2-stages, 先把物件的區域(Region)辨識出來,並且把 feature map 上對應的Region 切出來。
這樣切出來的region 一定大小不一樣。
因為這些區域要經過 stage2,辨識出 class 和 bounding box,這是經果兩個各自的 linear (fc) 層做的。
fc 層的輸入必須是固定大小,
所以剛剛那些 stage 1 辨識出來的 region,都要scale 成同樣大小,符合 fc 的輸入。
這個scale 的方法就叫做 PoIPOOL,不單純用 scale是因為計算方便(?),然後用 maxpooling 一樣的方法,取區域中最大的值。
ref 的那一篇就有說明了。
fast-rcnn 是 2-stages, 先把物件的區域(Region)辨識出來,並且把 feature map 上對應的Region 切出來。
這樣切出來的region 一定大小不一樣。
因為這些區域要經過 stage2,辨識出 class 和 bounding box,這是經果兩個各自的 linear (fc) 層做的。
fc 層的輸入必須是固定大小,
所以剛剛那些 stage 1 辨識出來的 region,都要scale 成同樣大小,符合 fc 的輸入。
這個scale 的方法就叫做 PoIPOOL,不單純用 scale是因為計算方便(?),然後用 maxpooling 一樣的方法,取區域中最大的值。
2025/1/21
CARLA : bounding box
ref:
CARLA 裡面的每個物件,都有一個 bounding_box 屬性。
所以就想到,直接用這個屬性來 labeling.
有幾個文章github project 就是這樣做的:
所以就想到,直接用這個屬性來 labeling.
有幾個文章github project 就是這樣做的:
- DRIVETRUTH: Automated Autonomous Driving Dataset Generation for Security Applications
- CARLA bounding box
- github: CARLA-2DBBox
2025/1/20
CARLA : sensor radar
資料內容:
ref: radar sensor point 的資料是:
follow unreal engines coordinate system ?
ref:
操作
ref: 有說明,從 raw_data 轉成 上述內容的 sample code:
PythonAPI/example 中的 manual_control.py 有 G 可以toggle radar point 在畫面上。
ref: radar sensor point 的資料是:
- altitude (float – radians) : Altitude angle of the detection.
- azimuth (float – radians) : Azimuth angle of the detection.
- depth (float – meters) : Distance from the sensor to the detection position.
- velocity (float – m/s) : The velocity of the detected object towards the sensor.
follow unreal engines coordinate system ?
ref:
操作
ref: 有說明,從 raw_data 轉成 上述內容的 sample code:
# To get a numpy [[vel, azimuth, altitude, depth],...[,,,]]: points = np.frombuffer(radar_data.raw_data, dtype=np.dtype('f4')) points = np.reshape(points, (len(radar_data), 4))-- comment 排列方式跟上面的剛好不一樣
PythonAPI/example 中的 manual_control.py 有 G 可以toggle radar point 在畫面上。
2025/1/16
Xorg, VirtualGL and VNC
ref:
然後啟動一個 X server
然後啟動 TurboVNC server,這個server 會把畫面畫出來,並且傳給 vncviewer
然後用 vglrun 來啟動 application.
以 CARLA 為例,要在 headless server 上 remote run.
先 create 一個 nvidia 的 Xserver:
然後 create 一個 xorg.conf:
啟動一個 Xserver session,為了讓一班 user 也能啟動 X session,要修改 /etc/X11/Xwrapper.conf,加入下面:
啟動一個 X session,使用 display number 7
啟動 Turbovnc 的 vnc server,負責 application 的 display,用 8 作為 display number:
vnc server 啟動之後,其他pc 就可以透過 viewer 來顯示 vncserver 的內容。
vncserver 的 service port 是 5900+display numner,
也就是說,剛剛的設定,service port 是 5908
之後就可以用 vglrun 來執行 application,讓執行程式使用 virtualgl 提供的 opengl 服務,並且經由 DISPLAY 變數傳送render 的結果:
- Archlinux : VirtualGL
- Using NVIDIA GPUs in X-application on a headless node via VNC
- Headless nVidia Mini How-To
- Cannot open virtual Console
- VirtualGL : 把 application 的 OpenGL 呼叫轉送到另一個xserver,並且把這個 xserver render 的結果拿來,交給真正負責application 顯示的 x server
- Xorg : 負責一個GPU加速功能的 X server
- TurboVNC : 負責顯示
然後啟動一個 X server
然後啟動 TurboVNC server,這個server 會把畫面畫出來,並且傳給 vncviewer
然後用 vglrun 來啟動 application.
以 CARLA 為例,要在 headless server 上 remote run.
先 create 一個 nvidia 的 Xserver:
$ nvidia-xconfig --query-gpu-info Number of GPUs: 1 GPU #0: Name : NVIDIA TITAN RTX UUID : GPU-XXXXXXXXXXXX PCI BusID : PCI:1:0:0 Number of Display Devices: 1 Display Device 0 (TV-6): No EDID information available.看一下 GPU 的 PCI Bus Id.
然後 create 一個 xorg.conf:
$ sudo nvidia-xconfig -a --allow-empty-initial-configuration --use-display-device=None --virtual=1920x1080 --busid=PCI:1:0:0 Using X configuration file: "/etc/X11/xorg.conf". Option "AllowEmptyInitialConfiguration" "True" added to Screen "Screen0". Backed up file '/etc/X11/xorg.conf' as '/etc/X11/xorg.conf.backup' New X configuration file written to '/etc/X11/xorg.conf'然後因為 nvidia driver 版本大於 440.xx,所以在 xorg.conf 的 Screen 的地方加上:
Option "HardDPMS" "false"
啟動一個 Xserver session,為了讓一班 user 也能啟動 X session,要修改 /etc/X11/Xwrapper.conf,加入下面:
allowed_users=anybody needs_root_rights=yes然後 user 要在 tty group 裡。
啟動一個 X session,使用 display number 7
X.Org X Server 1.21.1.11 X Protocol Version 11, Revision 0 Current Operating System: Linux i7-14700 6.8.0-35-generic #35-Ubuntu SMP PREEMPT_DYNAMIC Mon May 20 15:51:52 UTC 2024 x86_64 Kernel command line: BOOT_IMAGE=/boot/vmlinuz-6.8.0-35-generic root=UUID=e4ea2afe-cc4e-42ce-a53f-5032e417f9f7 ro xorg-server 2:21.1.12-1ubuntu1.1 (For technical support please see http://www.ubuntu.com/support) Current version of pixman: 0.42.2 Before reporting problems, check http://wiki.x.org to make sure that you have the latest version. Markers: (--) probed, (**) from config file, (==) default setting, (++) from command line, (!!) notice, (II) informational, (WW) warning, (EE) error, (NI) not implemented, (??) unknown. (==) Log file: "/var/log/Xorg.7.log", Time: Fri Jan 17 05:52:20 2025 (==) Using config file: "/etc/X11/xorg.conf" (==) Using system config directory "/usr/share/X11/xorg.conf.d" The XKEYBOARD keymap compiler (xkbcomp) reports: > Warning: Could not resolve keysym XF86CameraAccessEnable > Warning: Could not resolve keysym XF86CameraAccessDisable > Warning: Could not resolve keysym XF86CameraAccessToggle > Warning: Could not resolve keysym XF86NextElement > Warning: Could not resolve keysym XF86PreviousElement > Warning: Could not resolve keysym XF86AutopilotEngageToggle > Warning: Could not resolve keysym XF86MarkWaypoint > Warning: Could not resolve keysym XF86Sos > Warning: Could not resolve keysym XF86NavChart > Warning: Could not resolve keysym XF86FishingChart > Warning: Could not resolve keysym XF86SingleRangeRadar > Warning: Could not resolve keysym XF86DualRangeRadar > Warning: Could not resolve keysym XF86RadarOverlay > Warning: Could not resolve keysym XF86TraditionalSonar > Warning: Could not resolve keysym XF86ClearvuSonar > Warning: Could not resolve keysym XF86SidevuSonar > Warning: Could not resolve keysym XF86NavInfo Errors from xkbcomp are not fatal to the X server
啟動 Turbovnc 的 vnc server,負責 application 的 display,用 8 作為 display number:
$ /opt/TurboVNC/bin/vncserver :8 Desktop 'TurboVNC: i7-14700:8 (charles-chang)' started on display i7-14700:8 Starting applications specified in /opt/TurboVNC/bin/xstartup.turbovnc Log file is /home/charles/.vnc/i7-14700:8.log如果是第一次啟動,會要求給一個 vncviewer 用的 password.
vnc server 啟動之後,其他pc 就可以透過 viewer 來顯示 vncserver 的內容。
vncserver 的 service port 是 5900+display numner,
也就是說,剛剛的設定,service port 是 5908
之後就可以用 vglrun 來執行 application,讓執行程式使用 virtualgl 提供的 opengl 服務,並且經由 DISPLAY 變數傳送render 的結果:
~$ DISPLAY=:8 vglrun -d :7 glxgears先指定DISPLAY環境變數是:8 (VNCSERVER),然後用 "-d :7" 指定 opengl rendering 交給 display :7 (nvidia X session) 負責。
2025/1/15
MESA-LOADER: failed to open iris
ref:
先是...
因為是 libstdc++.so.6.0.29
系統的 /usr/lib/x86-linux-gnu/libstdc++.so 是 6.0.33
所以把 /usr/lib/x86_64-linux-gnu/ 的 6.0.33 copy 到 env 的 lib,然後重新 ln libstdc++.so.6 到 libstdc++.so.6.0.33 就可以了。
先是...
MESA-LOADER: failed to open iris: /usr/lib/dri/iris_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri) failed to load driver: iris MESA-LOADER: failed to open swrast: /usr/lib/dri/swrast_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri) X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 149 (GLX) Minor opcode of failed request: 3 (X_GLXCreateContext) Value in failed request: 0x0 Serial number of failed request: 167 Current serial number in output stream: 168所以參考上面的 ref,去看 /usr/lib 下果然沒有 dri 目錄。所以把安裝位置 ln 過來...
sudo apt --reinstall install libgl1-mesa-dri cd /usr/lib sudo ln -s x86_64-linux-gnu/dri ./dri然後 Error:
MESA-LOADER: failed to open iris: /home/charles/miniconda3/envs/carla/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /lib/x86_64-linux-gnu/libLLVM-17.so.1) (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri) failed to load driver: iris MESA-LOADER: failed to open swrast: /home/charles/miniconda3/envs/carla/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /lib/x86_64-linux-gnu/libLLVM-17.so.1) (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri) X Error of failed request: BadValue (integer parameter out of range for operation)所以看一下 conda 系統的 libstdc++.so.6 的 GLIBCXX 支援版本有:
$ strings /home/charles/miniconda3/lib/libstdc++.so.6 | grep ^GLIBCXX GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 ... GLIBCXX_3.4.28 GLIBCXX_3.4.29 GLIBCXX_DEBUG_MESSAGE_LENGTH GLIBCXX_3.4.21 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.16 GLIBCXX_3.4.1 ... GLIBCXX_3.4.4 GLIBCXX_3.4.26果然沒有 3.4.30
因為是 libstdc++.so.6.0.29
系統的 /usr/lib/x86-linux-gnu/libstdc++.so 是 6.0.33
所以把 /usr/lib/x86_64-linux-gnu/ 的 6.0.33 copy 到 env 的 lib,然後重新 ln libstdc++.so.6 到 libstdc++.so.6.0.33 就可以了。
md file, markdown reader in linux console
選 bat
有在 ubuntu 的 apt repo 里,所以用 apt install bat 就可以。
但是command 是 batcat,
他是希望跟 cat 一樣的用法。
install 完後,因為它支援 theme,所以default theme不喜歡的話,就要產生一個 config,然後改 default theme.
使用方法就跟 cat 一樣:
batcat 不太好用,markdown 語法沒有render的很好,有些還是 raw output,
所以用 mdcat 試試看。
是用 rust 寫的,apt 還沒有。
所以要clone 下來 build
跟 batcat 比起來是 render 多一點 markdown 語法了。
update : 最後還是去裝 chrome 的 extension : markdown viewer
有在 ubuntu 的 apt repo 里,所以用 apt install bat 就可以。
但是command 是 batcat,
他是希望跟 cat 一樣的用法。
install 完後,因為它支援 theme,所以default theme不喜歡的話,就要產生一個 config,然後改 default theme.
$ batcat --generate-config-file Success! Config file written to /home/charles/.config/bat/config然後去修改 ~/.config/bat/config
-- #--theme="TwoDark" ++ --theme="GitHub"default theme 是給 darkmode用的。bright mode 可以用 "GitHub" 這個 theme.
使用方法就跟 cat 一樣:
batcat README.md
batcat 不太好用,markdown 語法沒有render的很好,有些還是 raw output,
所以用 mdcat 試試看。
是用 rust 寫的,apt 還沒有。
所以要clone 下來 build
跟 batcat 比起來是 render 多一點 markdown 語法了。
update : 最後還是去裝 chrome 的 extension : markdown viewer
2025/1/14
Carla : Install and run on Linux
網站說明有latest, stable, 0.9.15 ...etc,但是github 的 Download 只有 0.9.15,所以猜 latest 也是 0.9.15 (?)
github Download page 還有 nightly build,說明包含 bugfix 和 new feature,所以猜是 unstable.
Download CARLA_0.9.15.tar.gz,解開會有多目錄,所以在一個目錄中解開比較好。
從 Quick start package installation : Install Client Library
使用 tar.gz 檔安裝,PythonAPI/carla/dist 中有需要的 python packages file : *.whl
提供的 python version 是 : cp37,所以 carla-0.9.15 的 python 版本應該是 python3.7
這個folder 提供的對應 whl 檔,跟用 pip install carla 安裝的檔案相同。
使用的是 carla-0.9.15-cp37-cp37m-manylinux_2_27_x86_64.whl
除此之外,還要install pygame 和 numpy 兩個 package,就可以開始 run :
文件說明是
加上 option
從主網站 carla.org 進入可以看到release 0.10.0的說明。
0.10.0 的 python 版本不同了。
一樣從whl的檔名來看,0.10.0 的 python 版本應該是 3.10
一樣解開download 的 0.10.0 (這次是zip檔),到 PythonAPI/carla 安裝 requirement.txt,再裝 dist/*.whl,之後就可以啟動:
0.10.0 vRAM用到 8G以上,使用 RTX4070,移動鏡頭快一點就會出現 vulkan out of memory Error.
carla script 啟動的是 server,控制的化,可以參考 Python_API/Example 下的 python code.
在server running 的情況下, run 這些 python code 就可以調整carla 的內容。
在啟動 automatic_control.py 時出現 mesa load iris error.依照這一篇 解決。
ref:
run on server without display
可以 run carla server 在遠端,然後 client 才顯示出來。
carla 是一個 server ,其他 client 用 socket api 控制,就像遊戲的 server 一樣,
carla server 只對 localhost 開放,所以遠端無法控制。
使用現有的 python script 就可以操作。每個 script 都要獨立 run,所以用 & 到背景,不然就要每個都開一個 console.
這個 韓國人寫的,從頭開始寫 python code 控制 CARLA 也不錯,很清楚。
github Download page 還有 nightly build,說明包含 bugfix 和 new feature,所以猜是 unstable.
Download CARLA_0.9.15.tar.gz,解開會有多目錄,所以在一個目錄中解開比較好。
從 Quick start package installation : Install Client Library
使用 tar.gz 檔安裝,PythonAPI/carla/dist 中有需要的 python packages file : *.whl
提供的 python version 是 : cp37,所以 carla-0.9.15 的 python 版本應該是 python3.7
這個folder 提供的對應 whl 檔,跟用 pip install carla 安裝的檔案相同。
使用的是 carla-0.9.15-cp37-cp37m-manylinux_2_27_x86_64.whl
除此之外,還要install pygame 和 numpy 兩個 package,就可以開始 run :
文件說明是
./CarlaUE4.sh結果發現沒有使用 GPU,參考cannot run Carla using nvidia GPU under Linux with multi-GPU installed : PRIME instruction ignored by Carla #4716,
加上 option
./CarlaUE4.sh -prefernvidia就可以了。
從主網站 carla.org 進入可以看到release 0.10.0的說明。
0.10.0 的 python 版本不同了。
一樣從whl的檔名來看,0.10.0 的 python 版本應該是 3.10
一樣解開download 的 0.10.0 (這次是zip檔),到 PythonAPI/carla 安裝 requirement.txt,再裝 dist/*.whl,之後就可以啟動:
./CarlaUnreal.sh0.10.0 不用家 -prefernvidia,就會用 GPU了。
0.10.0 vRAM用到 8G以上,使用 RTX4070,移動鏡頭快一點就會出現 vulkan out of memory Error.
carla script 啟動的是 server,控制的化,可以參考 Python_API/Example 下的 python code.
在server running 的情況下, run 這些 python code 就可以調整carla 的內容。
在啟動 automatic_control.py 時出現 mesa load iris error.依照這一篇 解決。
ref:
run on server without display
可以 run carla server 在遠端,然後 client 才顯示出來。
.CarlaUE4.sh -prefernvidia -RenderOffScreen
carla 是一個 server ,其他 client 用 socket api 控制,就像遊戲的 server 一樣,
carla server 只對 localhost 開放,所以遠端無法控制。
使用現有的 python script 就可以操作。每個 script 都要獨立 run,所以用 & 到背景,不然就要每個都開一個 console.
- 先把 carla run 起來,可以不show 出來 . (-RenderOffScreen)
- 加入一些車流 : generate_traffic.py
- 自動改變天氣 : dynamic_weathre.py
- 開啟開車控制: manual_control.py,這時候才會出現畫面
- 控制環境 (車燈,路燈...) : util/environment.py
python environment.py --cars LowBeam All
這個 韓國人寫的,從頭開始寫 python code 控制 CARLA 也不錯,很清楚。
訂閱:
文章 (Atom)