巧用xrandr解决rviz无法打开的问题

巧用xrandr解决rviz无法打开的问题

rviz
直接上解决办法 :

xrandr --newmode Mode2 148.500 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
xrandr --addmode VIRTUAL1 Mode2
xrandr

出现的具体问题

最近研究AGV机器人,跑slam相关算法时,遇到rviz程序无法打开的情况。
报错为:rviz version 1.12.16
compiled against Qt version 5.5.1
QxcbConnnection:XCB error:148
Segmentation fault ( Core dumped)
进一步研究,发现,我的ros中,dispaly没有显示monitor(即使我接了hdmi转vga,接到了显示屏也不行),这是不能启用rviz的关键。我试用两端都是hdmi公头的hdmi接线,直接连接到显示器,是有图形显示的,也是可以打开rviz的。

一、硬件的检查

某型号的AGV上位机的内部
上图是某型号的AGV上位机的内部图,电源接线旁的两个hdmi接线口,可以清晰的看到两个hdmi接线口,没有损坏和其他痕迹,测试了hdmi接线,直接输出到显示器上,结果是有图形输出的,但是我用旁边的hdmi转vga接线测试时,结果是没有输出的,我显示器调成了VGA模式也不行。接线我通过在其他主机上的测试,保证了线材的完好。

二、显卡驱动的检查

上述情况的不合理,我就自然而然的怀疑起了显卡的驱动程序是不是不兼容HDMI转vga。
在ubuntu系统中,查看相关信息的命令行如下: 参见:https://www.cnblogs.com/sztom/p/10176231.html
查看显卡硬件信息:
lspci -k | grep -EA2 ‘VGA|3D’
或lshw -C display
查看显卡驱动信息:
sudo lshw -c video | grep configuration
检查显卡驱动的情况,本人的是i915:
modinfo i915
查看linux内核:
cat /proc/version
贴上我的相关配置:
显卡型号:Intel Corporation Broadwell-U Intergrated Graphics
驱动:i915
Gcc_version:5.4.0.20160609
Linux Kernel version:4.15.0-65

结合这些系统的情况,搜索了该配置的一些情况,发现并没有遇到本人遇到的问题。尝试下更新了
系统中的Intel graphic tools官方的驱动更新程序,但问题还是没有解决。(我至今仍觉得,问题就出在驱动不适配上)

三、虚拟输出的设置

上述的检查及一些相关的设置,并没有解决问题,转换思路rviz需要一个视频信号输出来激活,那么我设置一个强制输出的信号,会不会可以解决呢?
显示输出的配置需要用到命令:xrandr
xranr的输出如上所示
通过xrandr,可以看到显示输出的信号的设置。(更改过系统分辨率的朋友,可能接触过这一命令,xrandr具体细节,大家自行搜索就好。)

xrandr --newmode Mode2 148.500 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
xrandr --addmode VIRTUAL1 Mode2
xrandr

//参见并感谢:https://bbs.csdn.net/topics/394364481
新建了一个Mode,并把这个Mode添加到HDMI1接口中。即让系统强制输出了一个显示信号,到HDMI1中。
再次在终端运行rviz,美好的事情就发生了。
在这里插入图片描述

总结

目前暂时的解决了agv运行时,rviz不能在vnc中打开的问题。但驱动相关还是没有搞懂并解决,会进一步跟进。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值