iT邦幫忙

2023 iThome 鐵人賽

DAY 9
0
自我挑戰組

一個營建系學生的韌體之路-自走車篇系列 第 9

【AMR_Day9】 關於GUI的歪路

  • 分享至 

  • xImage
  •  

歪七扭八的學習之路

為了要寫出這篇關於「為了使用GUI,我走過的那些歪路」,得先把自己的狀態拉回兩年前,小小闡述一下當時混亂的自己。
當時剛接到論文題目的我,還正試圖理解自走車的一切,以及當時研究所的其他課程

  1. Ros是什麼?
  2. Ros1和2又有什麼不同
  3. 車底盤(下位機)怎麼選擇
  4. WSL & GUI
  5. IP內網、外網怎麼設定
  6. Wordpress如何串接金流
  7. MQTT 小專案實作

    是不是很雜亂!當下的我每天都以淚洗面(?),現在回想也是因為要反省一下之前對於學習資源的整理能力不高,導致常有學了個寂寞的狀況發生。

扣回到ROS學習之路

最初對ROS1的理解就是只能在Ubuntu上操作,又當時只有windows電腦的我,學習了怎麼使用WSL(Windows 子系統 Linux 版),下一步就是要讓WSL顯示圖形介面。

給自己的小筆記:
Linux 作業系統的桌面環境有很多種,包括Openbox、FluxBox、GNOME、KDE、Xfce、LxDE、IceWM等...
來源:ubuntu wiki

以下是有成功的方式整理,依照學習順序排序,不建議效仿!!

1. VcXsrv Windows X Server

在windows wsl 情況下使用X server之VcXsrv連線工具,接著再開啟Ubuntu 終端機(WSL),安裝X Server,一些設定後,正常來說就可以出現小烏龜囉~
https://ithelp.ithome.com.tw/upload/images/20230924/201404335UMl73VoLz.jpg
來源:Window10 建置Ubuntu(WSL2)與GUI桌面配置筆記

2. realVNC

hostname -I得到終端機ip後,透過RealVNC來遠端
https://ithelp.ithome.com.tw/upload/images/20230924/20140433UfIJiMZOqB.png
https://ithelp.ithome.com.tw/upload/images/20230924/20140433MGhrqQEMq6.png
來源:How to Use WSL2 With A GUI

上面兩個是在windows操作!!
後來又慢慢地找到更方便的方法,也就是前兩天介紹的Docker,無論在windows/ubuntu都可以使用!

3. novnc + docker-compose

這是從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:

https://ithelp.ithome.com.tw/upload/images/20230925/20140433XmadFZLrZf.jpg

4. Docker on windows/ubuntu

後來搞懂自己究竟在幹嘛後,發現官方教學(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

GUI歪路記 結案

以上就是為了叫出小烏龜的血淚史QQ

ros2 run turtlesim turtlesim_node

ros2 run turtlesim turtlesim_node
明天就以這隻小烏龜來介紹node吧~


上一篇
【AMR_Day8】ROS2 & DOCKER
下一篇
【AMR_Day10】ROS2 基本功- Workspace & Packages
系列文
一個營建系學生的韌體之路-自走車篇30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言