-
Notifications
You must be signed in to change notification settings - Fork 15
증상
Error: Can't open display: localhost:0.0
답변
x11-app이 윈도우와 연결에 실패한 메시지입니다. 문제의 원인으로 다음 세 가지의 가능성이 있습니다.
-
x11-app의 포트 설정 문제일 경우,
export DISPLAY=:0
로 설정되어 있는지 확인하세요. -
WSL 버전이 문제인 경우, WSL은 버전에 따라 네트워크 포트 구성이 다릅니다. WSL 버전이 WSL1인지 WSL2인지 확인해보십시오. 본 강의자료는 WSL1으로 제작되었으므로, 만약 WSL2를 쓰고 계신다면 문제가 발생할 수 있습니다. WSL1으로 변경하신 후 다시 시도바랍니다. Linux 배포판이 WSL 1 또는 WSL 2로 설정되어 있는지 확인하려면
wsl -l -v
명령을 사용합니다. 최근 설치되는 WSL은 기본 버전이 2로 잡혀있을 것이지만, WSL1에서만 가능한 기능들이 있습니다. 다음 명령은 WSL2를 1으로 바꿔줍니다.wsl --set-version Ubuntu-18.04 1
-
VcXsrv의 포트 설정 문제일 경우, Display number가 -1인지 확인해보십시오. 혹은 VcXsrv 프로그램의 버전이 호환되지 않는 버전이여서 생기는 문제일 수 있습니다. 사용하시는 VcXsrv에 동일한 설정이 없거나 문제가 해결되지 않는다면, 설치 가이드를 따라 VcXsrv(xlaunch)의 재설치를 권장드립니다.
WSL2로 유지하면서 문제를 해결하려면 다음 내용을 ~/.bashrc
에 추가하면 될 것으로 기대됩니다만 테스트되지 않았습니다.(출처)
export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0
export LIBGL_ALWAYS_INDIRECT=0
증상
$ echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
를 입력 후에 $ source ~/. bashrc
를 입력하면
-bash: /opt/ros/melodic/setup.bash: No such file or directory
와 같은 에러가 나서 이후에 진행이 어렵습니다.
해결
원인은 ROS가 설치되지 않아서 발생하는 오류입니다. ROS가 설치되었다면 반드시 /opt/ros/melodic/setup.bash 파일이 존재하게 됩니다. 공식 홈페이지(http://wiki.ros.org/melodic/Installation/Ubuntu)에 설치과정이 자세하게 적혀있으니 이를 따라 설치 후에 다시 시도해보시기 바랍니다.
증상
$ sudo rosdep init
을 하면 rosdep: command not found
에러 발생
해결
Rosdep 명령이 없는 것은 ROS가 제대로 설치되어 있지 않아 생기는 문제입니다. 공식 홈페이지(http://wiki.ros.org/melodic/Installation/Ubuntu)에 설치과정이 자세하게 적혀있으니 이를 따라 설치 후에 다시 시도해보시기 바랍니다.
증상
QStandardPaths: XDG_RUNTIME_DIR points to non-existing path '/some/directory/you/specify', please create it with 0700 permissions.
failed to get the current screen resources
[ INFO] [1672845756.368597400]: rviz version 1.13.29
[ INFO] [1672845756.368751000]: compiled against Qt version 5.9.5
[ INFO] [1672845756.368787500]: compiled against OGRE version 1.9.0 (Ghadamon)
[ INFO] [1672845756.411568200]: Forcing OpenGl version 0.
QXcbConnection: XCB error: 170 (Unknown), sequence: 170, resource id: 90, major code: 146 (Unknown), minor code: 20
Segmentation fault (core dumped)
답변
⚠️ 주의⚠️ 해당 문제는 노트북용 그래픽카드의 호환성이 원인인 경우가 많은 것으로 확인되고 있습니다. 그래픽카드 문제일 경우엔 아래 기술된 방안들로 문제가 해결되지 않습니다. 데스크탑에서 작업하시길 권장드립니다.
첫번째 방안. VcXsrv를 실행할 때 Native opengl 설정이 비활성화 되어 있는지 확인해주세요. 다만 이 방법으로 문제가 해결되지 않을 가능성이 높습니다. 첫번째 방안으로 해결되지 않는다면 두번째 방안을 확인해주세요.
두번째 방안. 터미널에서
echo $LIBGL_ALWAYS_INDIRECT
명령을 입력하셨을 때 숫자 1 로 표시된다면, 다음 명령을 통해 0 으로 바꾸신 후 rviz를 다시 실행시켜 보세요.
export LIBGL_ALWAYS_INDIRECT=0
만약, 위 명령으로 문제가 해결되셨다면, basrhc 마지막에
export LIBGL_ALWAYS_INDIRECT=0
를 추가하시면 매번 위 내용을 반복해서 입력하지 않으셔도 반영이 됩니다. (출처) https://answers.ros.org/question/292272/qxcb-connection-xcb-error-170/
또한 본 강의자료는 WSL1을 기준으로 제작되었으니 wsl --set-version Ubuntu-18.04 1
명령으로 WSL 버전을 2(기본)에서 1으로 낮춰주실 것을 권장합니다.
증상
roslaunch display.launch
위와 같이 입력했을 때 launch가 실행되지 않음.
해결
우선 roslaunch를 하실 때 현재 경로와 상관없이 roslaunch <패키지명> <launch파일명>
순서로 사용하셔야 합니다. 현재 첨부해주신 화면에서는 <패키지명>이 생략된 체, roslaunch <launch파일명>
으로 사용하여 roslaunch 명령어가 <launch파일명>을 <패키지명>으로 착각하여 실행이 안 되고 있는 것으로 보입니다.