현재 Robot OS를 이용하여 자율드론을 만들어보려고 합니다.활성산소종). 이를 위해 나는 설치했다라즈베리 파이 라이트(제시)안에라즈베리 파이 3현재 사용 중ROS 역학위에. 이 때문에라즈베리 파이 라이트, 창 관리자나 데스크탑 환경 없이 설치됩니다. 나는 가기로 결정했다Openbox 창 관리자편의를 위해 터미널이 설치되어 있습니다. 그냥 전화 sudo startx
하면 창 관리자가 열리고 액세스할 수 있습니다 Ctrl + alt + F2
. 시스템 전체의 터미널이기 때문에 저도 설치했습니다.멀티플렉서편의상. 특정 포드에서 xserver를 실행하고 다른 포드에서 ROS 작업을 수행하고 있습니다.
이제 시스템 전체 터미널에서 GUI 응용 프로그램을 호출하는 명령을 실행하려고 하면 오류가 발생합니다.
QxcbConnection: Could not connect to display
Aborted
이제 이 문제를 해결하는 두 가지 방법이 있습니다.
내 창 관리자에 터미널이 설치되어 있으므로 ROS가 이를 처리하도록 해야 합니까? 그런데 창 관리자 내에서 터미널 에뮬레이터의 환경을 시스템 전체 터미널의 환경과 동일하게 변경하는 방법을 모르겠습니다. 쉘을 바꾸는 것만 큼 간단합니까?
실제로 현재 명령을 실행 중인 tmux 창으로 GUI 응용 프로그램을 보내는 방법을 찾았습니다
sudo startx
. 프로세스의 상위 프로세스를 다른 프로세스의 상위 프로세스로 전환하는 방법은 무엇입니까?
노트:나는 두 번째 솔루션이 내 작업 흐름에 더 우아하고 효율적이기 때문에 확실히 선호합니다.
답변1
GUI 환경의 터미널에서 다음을 입력합니다.
xhost +
GUI가 아닌 환경에서는 다음을 입력합니다.
export DISPLAY="localhost:0"
GUI가 아닌 환경에서 시작된 그래픽 응용 프로그램은 GUI 환경에 나타납니다.
더 읽어보실 수 있습니다man xhost
다음 답변도 참조하세요.이 명령은 xhost …
무엇을 합니까 ?