首页 > 其他 > 详细

ROS Could not connect to display localhost:17.0

时间:2020-04-15 17:21:25      阅读:103      评论:0      收藏:0      [点我收藏+]
问题

我是 Xshell 连接的 VirtualBox 的 Ubuntu16.04 版本
是因为我在命令行窗口启动 GUI 界面导致的

QXcbConnection: Could not connect to display localhost:17.0
rqt: cannot connect to X server localhost:.0

解释

17.0 是 DISPLAY 变量的值
关于DISPLAY 变量的解释,建议可以参考 Linux DISPLAY环境变量的妙用 文章格式有点乱,但戳中了正点.

解决方法

  1. 删掉 Docker 容器,在图形化桌面开启容器,因为这样默认分配到图形化桌面的显示器来显示
    root@ubuntu:/home/walker# docker container rm kinetic -f
    root@ubuntu:/home/walker# docker run -itd --name kinetic --env="DISPLAY" --env="QT_X11_NO_MITSHM=1" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" -v "/root/.ros/:/root/.ros/" osrf/ros:kinetic-desktop-full-xenial rqt
  2. 这个未经验证,是根据对 DISPLAY 的理解来推理的(请自己肉测)
    1)查看图形化桌面的 DISPLAY 值
    2)修改报错的那个终端的 DISPLAY 值为系统桌面的

若碰到 No protocol specified rqt: cannot connect to X server :1 提示,记得赋权限

root@ubuntu:/home/walker# echo ${DISPLAY}
:1
root@ubuntu:/home/walker# xhost +
access control disabled, clients can connect from any host

技术分享图片

ROS Could not connect to display localhost:17.0

原文:https://blog.51cto.com/laok8/2487505

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!