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

时间:2024-03-29 11:07:27

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

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

出现的具体问题

最近研究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的。

一、硬件的检查

巧用xrandr解决rviz无法打开的问题
上图是某型号的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
巧用xrandr解决rviz无法打开的问题
通过xrandr,可以看到显示输出的信号的设置,更改过系统分辨率的朋友,可能接触过这一命令,xrandr具体细节,大家自行搜索就好。
xrandr --newmode Mode2 148.500 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
xrandr --addmode VIRTUAL1 Mode2
//参见并感谢:https://bbs.csdn.net/topics/394364481
新建了一个Mode,并把这个Mode添加到HDMI1接口中。即让系统强制输出了一个显示信号,到HDMI1中。
再次在终端运行rviz,美好的事情就发生了。
巧用xrandr解决rviz无法打开的问题

总结

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