반응형
https://jstar0525.tistory.com/202
위에서 언급한 Docker 설정 후,
ROS를 실행하고 GUI를 보는 방법은 아래와 같다.
여기에서는 아래의 두가지 방법으로 GUI를 띄우는 방법을 알아본다.
※주의 : Windows11에서는 GUI가 실행되지 않거나 문제가 있을 수 있음 (2023년 1월 21일 기준)
Docker에서 GUI 띄우는 방법
- Ubuntu 화면에 GUI 띄우기
- Windows10에서 MobaXterm의 X server를 이용하여 원격으로 GUI 띄우기
1) Ubuntu 화면에 GUI 띄우기
아래 방법은 우분투를 실행한 컴퓨터의 모니터에 GUI를 Docker를 사용하여 띄우는 방법이다.
(1) 실행하려는 터미널에 xhost 설정을 한다.
xhost +
(2) xhost 설정을 실행한 터미널에서 도커를 실행시킨다.
docker run -it \
--privileged \
--gpus all \
-e DISPLAY=$DISPLAY \
-e QT_X11_NO_MITSHM=1 \
-v /tmp/.X11-unix:/tmp/.X11-unix:rw \
-v /etc/localtime:/etc/localtime:ro \
-e TZ=Asia/Seoul \
-v /dev:/dev \
-w /root \
osrf/ros:melodic-desktop-full
이 때, $DISPLAY는 같은 컴퓨터라고 해도 부팅할 때마다 값이 변할 수 있어 변수($DISPLAY)를 사용한다.
2) Windows10에서 MobaXterm의 X server를 이용하여 원격으로 GUI 띄우기
아래의 방법은 X server를 이용하여 Windows10으로 GUI를 띄우는 방법이다.
(1) MobaXterm 설정
- configuration
- x11 remote access : full
- OpenGL acceleration의 Hardware는 Windows10의 GPU를 사용하는 것이고,
Software는 Hardware를 사용하지 않고 software를 사용하는 것이다. - 원인을 모르겠지만 가끔 Hardware에서 작동되지 않을 경우도 있다.
- software와 hardware의 차이는
mobaxterm에서 해당 원격 PC로 ssh 접속한 후
아래의 명령을 실행하면 알 수 있다.
- OpenGL acceleration의 Hardware는 Windows10의 GPU를 사용하는 것이고,
glxinfo | grep 'OpenGL renderer'
- check X server IP
(2) docker 실행
- Mobaxterm의 X server IP를 docker를 실행할 때 옵션에 넣어
Docker를 실행한다.
docker run -it \
--privileged \
--gpus all \
-e DISPLAY=192.168.131.2:0.0 \
-e QT_X11_NO_MITSHM=1 \
-v /tmp/.X11-unix:/tmp/.X11-unix:rw \
-v /etc/localtime:/etc/localtime:ro \
-e TZ=Asia/Seoul \
-v /dev:/dev \
-w /root \
osrf/ros:melodic-desktop-full
DISPLAY 옵션
Docker를 실행하고
이미 실행한 DISPLAY값을 변경하려면
아래의 두 가지 방법 중 자신이 GUI를 띄우고 싶은 방법을 진행한다.
1) 로컬 모니터에 GUI 띄우기
DISPALY값을 확인하려면
로컬에서
아래의 명령을 통해서 알 수 있다.
$ echo $DISPLAY
:0
위에서 확인된 값을 통하여
Docker에서
아래의 명령을 실행하고
같은 터미널에서 GUI를 실행한다.
export DISPLAY=:0
2) Windows10에 Mobaxterm을 통해 GUI 원격으로 띄우기
또는 이미 실행한 Docker에서
Mobaxterm 통한 GUI를 보기 위해서는
Docker에서
자신의 DISPLAY X Server IP를 export하고
같은 터미널에서 GUI를 실행한다.
export DISPLAY=192.168.132.2:0.0
GUI 테스트
# roscore
# source /opt/ros/melodic/setup.bash
# rosrun turtlesim turtlesim_node
# rqt
# rviz
# gazebo
# source ~/ws_moveit/devel/setup.bash
# roslaunch panda_moveit_config demo.launch rviz_tutorial:=true
http://docs.ros.org/en/melodic/api/moveit_tutorials/html/doc/getting_started/getting_started.html
반응형