srv / fovis

ROS wrapper for fovis, a visual odometry library
23 stars 21 forks source link

Is it possible to compile this in an ARM platform? #8

Closed TSC21 closed 10 years ago

TSC21 commented 10 years ago

I already tried but it gives me issues on libfovis related to -msse2 and -msse3, which are x86 compatible only. Is there any way of pull a solution to this?

Thanks!

stwirth commented 10 years ago

Don't know, never tried.

I can see a FOVIS_USE_SSE flag here: https://code.google.com/p/fovis/source/browse/libfovis/libfovis/intensity_descriptor.cpp

You can install (our fork of) libfovis from source (https://github.com/srv/libfovis) to play with compiler switches.

stwirth commented 10 years ago

Just saw that the original fork got updated quite a bit, the README does not state SSE2 as a requirement any more.

https://code.google.com/p/fovis/source/browse/libfovis/README

TSC21 commented 10 years ago

Thanks mate! I will try to compile libfovis withou that flag and see the result ;) I will let you know!

TSC21 commented 10 years ago

Ok I tried what is suggested in http://code.google.com/p/fovis/source/browse/libfovis/README, but it really doesn't work since it continued to ask for emmintrin.h. So I deleted all the includes of this library on the files that had it and it complied ok.

TSC21 commented 10 years ago

Well I opted for using the libfovis repo of ROS and compile it together with fovis with catkin_make. Since the Cmake option didn't work, I also removed all the emmintrin.h references on code. Issuing catkin_makeon my ws I get:

In file included from /home/linaro/AIMAVProject_ws/src/pose_estimation_pkgs/fovis/libfovis/libfovis/motion_estimation.cpp:16:0:
/home/linaro/AIMAVProject_ws/src/pose_estimation_pkgs/fovis/libfovis/libfovis/sad.hpp: In member function 'int32_t fovis::SAD::score(const uint8_t*, const uint8_t*)':
/home/linaro/AIMAVProject_ws/src/pose_estimation_pkgs/fovis/libfovis/libfovis/sad.hpp:45:20: error: 'descriptor_len' was not declared in this scope
/home/linaro/AIMAVProject_ws/src/pose_estimation_pkgs/fovis/libfovis/libfovis/intensity_descriptor.cpp: In member function 'void fovis::IntensityDescriptorExtractor::normalizeDescriptor(uint8_t*) const':
/home/linaro/AIMAVProject_ws/src/pose_estimation_pkgs/fovis/libfovis/libfovis/intensity_descriptor.cpp:121:9: error: '__m128i' was not declared in this scope
/home/linaro/AIMAVProject_ws/src/pose_estimation_pkgs/fovis/libfovis/libfovis/intensity_descriptor.cpp:121:17: error: expected primary-expression before ')' token
/home/linaro/AIMAVProject_ws/src/pose_estimation_pkgs/fovis/libfovis/libfovis/intensity_descriptor.cpp:121:18: error: expected ')' before 'desc'
/home/linaro/AIMAVProject_ws/src/pose_estimation_pkgs/fovis/libfovis/libfovis/intensity_descriptor.cpp:127:9: error: '__m128i' was not declared in this scope
/home/linaro/AIMAVProject_ws/src/pose_estimation_pkgs/fovis/libfovis/libfovis/intensity_descriptor.cpp:127:17: error: expected primary-expression before ')' token
/home/linaro/AIMAVProject_ws/src/pose_estimation_pkgs/fovis/libfovis/libfovis/intensity_descriptor.cpp:127:18: error: expected ')' before 'desc'
[ 42%] Built target px_comm_generate_messages_lisp
[ 45%] Built target px_comm_generate_messages_py
[ 45%] Built target px_comm_gencpp

Gets no declarations of descriptor_len and __m128i. The only thing I did on motion_estimation.cppwas removing the USE_SSE definitions and the IFDEF related. I think this can be corrected on build time by adding a cmake option to catkin_make but catkin_make -DUSE_SSE=OFF doesn't do nothing.

@miquelmassot @plnegre can you also give an help in here? Thanks!

Note: So I think this issue is not really closed.

TSC21 commented 10 years ago

Well no one wants to bother? Seems your platform has it's own issues and you don't want to resolve them. I repeat that catkin_make -DUSE_SSE=OFF option doesn't deactivate the use of sse flags on compile time.

stwirth commented 10 years ago

Although we developed the ROS wrapper for fovis some time ago we are not actively developing it. It fits the purpose for our project. I'm working (and getting payed) on a totally different thing now. If you figure out how this wrapper can be improved, please do so and open a pull-request.

zardchim commented 9 years ago

@TSC21 Following your route and I am able to compile the code on Jetson Tk1 board.

I have installed ROS on jetson tk1 and am going to test it

y22ma commented 9 years ago

@zardchim Sweet! What are the steps you took?