Docker容器内出现报错,what(): Pangolin X11: Unable to retrieve framebuffer options,Aborted (core dumped)

问题

使用OpenCalib标定工具时,在docker容器内运行雷达和相机的标定代码,出现报错terminate called after throwing an instance of 'std::runtime_error'
what(): Pangolin X11: Unable to retrieve framebuffer options,Aborted (core dumped) . 看网上都是去找源码目录Pangolin\src\display\device下的display_x11.cpp文件修改(也即是注释了两行代码)。但是我这是直接拉取的镜像环境,根本查找不到这个文件。请问各位大佬,有没有其他方法可以解决呢😢

运行代码

img

img

运行结果及报错内容

运行出来图像后,标四个点,按enter后立马报错

img

img

解答思路和尝试过的方法 。

我试着跟网上办法去找文件,但是根本找不到,也修改不了,毕竟是在容器内,环境都是别人打包好的。

已经为此苦恼好久了,求各位大佬帮忙解答一番!

这个错误可能是由于您在 docker 容器内运行 OpenCalib 标定工具时,没有挂载 X11 服务器的相关文件或者没有在容器中安装相关的 X11 库造成的。可以尝试在启动容器时挂载 X11 相关文件,例如:

docker run -it --rm -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY opencalib

如果这个错误仍然出现,则需要检查容器内是否安装了相关的 X11 库,可以在容器内运行如下命令安装:

apt-get update
apt-get install libx11-dev

如果安装完成后仍然出现错误,建议您可以检查一下您的系统配置是否正确,或者尝试在容器外运行 OpenCalib 标定工具。