kalibr的编译bug

系统ubuntu16
BUG1.No moudule named pyx
BUG2. fatal error: numpy/arrayobject.h: 没有那个文件或目录

BUG1.No moudule named pyx
下载好了kalibr,先用它的python工具产生标定板,以下命令

python kalibr_create_target_pdf --type apriltag --nx 4 --ny 5 --tsize 0.04 

编译器报错,import不到pyx这个包(pyx这个python包用于产生pdf文件),然后我就按照常规的pip方法安装python的依赖

sudo pip install pyx

安装完这个包之后还是报错,python语法上的,类似下面这些,反正都是与pyx相关的,因为我电脑上有两个版本的python,我就怀疑是不是pip安装的路径不对,后来参考了n多博客,发现依然没用。

Traceback (most recent call last):
  File "kalibr_create_target_pdf", line 206, in <module>
    generateAprilBoard(canvas, parsed.n_cols, parsed.n_rows, parsed.tsize, parsed.tagspacing, parsed.tagfamiliy, parsed.skipIds)
  File "kalibr_create_target_pdf", line 122, in generateAprilBoard
    c.text(pos[0]+tagSize*0.3, pos[1], "x")
  File "/usr/local/lib/python2.7/dist-packages/pyx/canvas.py", line 324, in text
    return self.insert(self.texrunner.text(x, y, atext, *args, **kwargs))
  File "/usr/local/lib/python2.7/dist-packages/pyx/text.py", line 1194, in text
    self.execute(expr, self.defaulttexmessagesdefaultrun + self.texmessagesdefaultrun + texmessages)
  File "/usr/local/lib/python2.7/dist-packages/pyx/text.py", line 951, in execute
    self.defaulttexmessagesstart + self.texmessagesstart)
  File "/usr/local/lib/python2.7/dist-packages/pyx/text.py", line 1005, in execute
    self.texinput.write(self.expr)
IOError: [Errno 32] Broken pipe
Error in atexit._run_exitfuncs:
Traceback (most recent call last):
  File "/usr/lib/python2.7/atexit.py", line 24, in _run_exitfuncs
    func(*targs, **kargs)
  File "/usr/local/lib/python2.7/dist-packages/pyx/text.py", line 748, in _cleantmp
Exception in thread Thread-1:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/local/lib/python2.7/dist-packages/pyx/text.py", line 663, in run
    raise RuntimeError("TeX/LaTeX finished unexpectedly")
RuntimeError: TeX/LaTeX finished unexpectedly
    texrunner.texinput.write("\n\\end\n")

IOError: [Errno 32] Broken pipe
Error in sys.exitfunc:
Traceback (most recent call last):
  File "/usr/lib/python2.7/atexit.py", line 24, in _run_exitfuncs
    func(*targs, **kargs)
  File "/usr/local/lib/python2.7/dist-packages/pyx/text.py", line 748, in _cleantmp
    texrunner.texinput.write("\n\\end\n")
IOError: [Errno 32] Broken pipe

然后就玄学了,我用了这个命令来安装pyx,然后再生成pdf,直接就好了,真的是玄学。

sudo apt-get install python-pyx

BUG2. fatal error: numpy/arrayobject.h: 没有那个文件或目录
首先确认安装了numpy,然后使用下面的命令

ln -s /usr/local/lib/python2.7/dist-packages/numpy/core/include/numpy /usr/local/include/numpy

这个时参考了这位大神的解释

https://github.com/ethz-asl/kalibr/issues/123

你可能感兴趣的:(MySLam)