yan-lu / LineSLAM

Line feature based RGBD SLAM, supporting fusion with point feature
http://telerobot.cs.tamu.edu/MFG/rgbd/plvo
GNU General Public License v3.0
80 stars 42 forks source link

Question on livo #1

Open Ethan-Zhou opened 8 years ago

Ethan-Zhou commented 8 years ago

Hi Yan,

I am trying to run your livo, but I got stuck at compiling.

Below is what I came across,

-ThinkPad-Edge-E431:~/workspace/Project/livo$ make g++ main.o lineslam.o motion.o utils.o lsd.o -o run -I/usr/local/include/opencv -I. -O2 -L/usr/local/lib -L./levmar-2.6 -L/opt/OpenBLAS/lib -lopencv_core -lopencv_calib3d -lopencv_contrib -lopencv_features2d -lopencv_flann -lopencv_highgui -lopencv_imgproc -lopencv_nonfree -llevmar -lopenblas ./levmar-2.6/liblevmar.a(Axb.c.o): In function dAx_eq_b_QR': Axb.c:(.text+0xca): undefined reference todgeqrf' Axb.c:(.text+0x256): undefined reference to `dgeqrf' Axb.c:(.text+0x31a): undefined reference todorgqr_' Axb.c:(.text+0x450): undefined reference todtrtrs_' ./levmar-2.6/liblevmar.a(Axb.c.o): In functiondAx_eq_b_QRLS': Axb.c:(.text+0x5c7): undefined reference todgeqrf' Axb.c:(.text+0x7d9): undefined reference to`dgeqrf' Axb.c:(.text+0x905): undefined reference to dtrtrs_' Axb.c:(.text+0x9b5): undefined reference todtrtrs_' ./levmar-2.6/liblevmar.a(Axb.c.o): In function dAx_eq_b_Chol': Axb.c:(.text+0xb93): undefined reference todpotrf' Axb.c:(.text+0xc2c): undefined reference to `dpotrs' ./levmar-2.6/liblevmar.a(Axb.c.o): In functiondAx_eq_b_LU': Axb.c:(.text+0xe22): undefined reference todgetrf' Axb.c:(.text+0xecc): undefined reference to`dgetrs' ./levmar-2.6/liblevmar.a(Axb.c.o): In function dAx_eq_b_SVD': Axb.c:(.text+0x1034): undefined reference todgesvd' Axb.c:(.text+0x1276): undefined reference to `dgesvd' ./levmar-2.6/liblevmar.a(Axb.c.o): In functiondAx_eq_b_BK': Axb.c:(.text+0x1623): undefined reference todsytrf' Axb.c:(.text+0x17ac): undefined reference to`dsytrf' Axb.c:(.text+0x184e): undefined reference to dsytrs_' ./levmar-2.6/liblevmar.a(Axb.c.o): In functionsAx_eq_bQR': Axb.c:(.text+0x1957): undefined reference to `sgeqrf' Axb.c:(.text+0x1adb): undefined reference tosgeqrf_' Axb.c:(.text+0x1b9f): undefined reference tosorgqr' Axb.c:(.text+0x1cc8): undefined reference to`strtrs' ./levmar-2.6/liblevmar.a(Axb.c.o): In function sAx_eq_b_QRLS': Axb.c:(.text+0x1e3f): undefined reference tosgeqrf' Axb.c:(.text+0x203c): undefined reference to `sgeqrf' Axb.c:(.text+0x2165): undefined reference tostrtrs_' Axb.c:(.text+0x2215): undefined reference tostrtrs_' ./levmar-2.6/liblevmar.a(Axb.c.o): In functionsAx_eq_b_Chol': Axb.c:(.text+0x23f3): undefined reference tospotrf' Axb.c:(.text+0x248c): undefined reference to`spotrs' ./levmar-2.6/liblevmar.a(Axb.c.o): In function sAx_eq_b_LU': Axb.c:(.text+0x267b): undefined reference tosgetrf' Axb.c:(.text+0x2725): undefined reference to `sgetrs' ./levmar-2.6/liblevmar.a(Axb.c.o): In functionsAx_eq_b_SVD': Axb.c:(.text+0x2884): undefined reference tosgesvd' Axb.c:(.text+0x2abe): undefined reference to`sgesvd' ./levmar-2.6/liblevmar.a(Axb.c.o): In function sAx_eq_b_BK': Axb.c:(.text+0x2e5b): undefined reference tossytrf' Axb.c:(.text+0x2fe1): undefined reference to `ssytrf' Axb.c:(.text+0x3083): undefined reference tossytrs_' ./levmar-2.6/liblevmar.a(misc.c.o): In functionslevmarpseudoinverse': misc.c:(.text+0xcd1): undefined reference to`sgesvd' ./levmar-2.6/liblevmar.a(misc.c.o): In function slevmar_chol': misc.c:(.text+0x13b1): undefined reference tospotf2_' ./levmar-2.6/liblevmar.a(misc.c.o): In function dlevmar_pseudoinverse': misc.c:(.text+0x2e91): undefined reference todgesvd_' ./levmar-2.6/liblevmar.a(misc.c.o): In function dlevmar_chol': misc.c:(.text+0x3576): undefined reference todpotf2_' collect2: ld returned 1 exit status make: *\ [run] Error 1

It seems that there are some functions not fully implemented in levmar. Could you please provide a README file for this project? It will be helpful for people who wants to follow or cite your work.

many thanks

amesh90 commented 8 years ago

have you faced this error in five_point.cpp line 391 , error: no match 'operator /' for this line SOLS.block<3,10>(0,0).array() = V.block<3,10>(6,0).array() * (1/(ones31*V.row(9)).array());

also I've faced other reference errors

lligen commented 8 years ago

@Ethan-Zhou in Makefile add -llapack in line 8, because of levmar need it.