為了要寫出這篇關於「為了使用GUI,我走過的那些歪路」,得先把自己的狀態拉回兩年前,小小闡述一下當時混亂的自己。
當時剛接到論文題目的我,還正試圖理解自走車的一切,以及當時研究所的其他課程
最初對ROS1的理解就是只能在Ubuntu上操作,又當時只有windows電腦的我,學習了怎麼使用WSL(Windows 子系統 Linux 版),下一步就是要讓WSL顯示圖形介面。
給自己的小筆記:
Linux 作業系統的桌面環境有很多種,包括Openbox、FluxBox、GNOME、KDE、Xfce、LxDE、IceWM等...
來源:ubuntu wiki
以下是有成功的方式整理,依照學習順序排序,不建議效仿!!
在windows wsl 情況下使用X server之VcXsrv連線工具,接著再開啟Ubuntu 終端機(WSL),安裝X Server,一些設定後,正常來說就可以出現小烏龜囉~
來源:Window10 建置Ubuntu(WSL2)與GUI桌面配置筆記
hostname -I得到終端機ip後,透過RealVNC來遠端
來源:How to Use WSL2 With A GUI
上面兩個是在windows操作!!
後來又慢慢地找到更方便的方法,也就是前兩天介紹的Docker,無論在windows/ubuntu都可以使用!
這是從F1tenth學到的方式,之後有機會再來慢慢補充~
以下擷取docker-compose.yml
version: '3'
services:
sim:
image: f1tenth_gym_ros
build: ./
volumes:
- .:/sim_ws/src/f1tenth_gym_ros
environment:
- DISPLAY=novnc:0.0
networks:
- x11
stdin_open: true
tty: true
novnc:
image: theasp/novnc:latest
environment:
- DISPLAY_WIDTH=1728
- DISPLAY_HEIGHT=972
ports:
- "8080:8080"
networks:
- x11
networks:
x11:
後來搞懂自己究竟在幹嘛後,發現官方教學(Using GUIs with Docker)舊友提供很好的方式了,還包含了windows/ubuntu兩個版本
以下是ubuntu版本
xhost local:root
XAUTH=/tmp/.docker.xauth
docker run -it \
--name=it15test_gui \
--env="DISPLAY" \
--env="QT_X11_NO_MITSHM=1" \
--volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
--env="XAUTHORITY=$XAUTH" \
--volume="$XAUTH:$XAUTH" \
--net=host \
--privileged\
osrf/ros:foxy-desktop \
bash
以上就是為了叫出小烏龜的血淚史QQ
ros2 run turtlesim turtlesim_node
明天就以這隻小烏龜來介紹node吧~