ethz-asl / hand_eye_calibration

Python tools to perform time-synchronization and hand-eye calibration.
BSD 3-Clause "New" or "Revised" License
430 stars 115 forks source link

Added dependencies.rosinstall file #41

Closed HannesSommer closed 7 years ago

HannesSommer commented 7 years ago

Hm, aslam_cv2 seems to cause issues here. E.g. aslam::common::Hamming::SSSE3PopcntofXORed does not compile because of missing SSE support. Does somebody know about his? (aslam_cv2 master seems to fail on Jenkins for the same reason: http://129.132.38.183:8080/job/aslam_cv2/label=ubuntu-xenial/901/console).

ffurrer commented 7 years ago

@HannesSommer Yes, we had this issue lately on Ubuntu 16.04, we had to add something like

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mssse3")

@ntonci is that right?

And thanks for setting up jenkins :)

HannesSommer commented 7 years ago

Hm, in that case this should be a patch for aslam_cv2 somehow, no? @schneith ?

HannesSommer commented 7 years ago

What about using the __SSE3__ macro (http://stackoverflow.com/questions/28939652/how-to-detect-sse-avx-avx2-availability-at-compile-time) to check whether the compiler has SSE enabled and if not yield a meaningful error (#error) to the user to enable it with the compiler flags. This way the packages that truly need it can be found easily. And for them we enable it e.g. with set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mssse3").
To make this more transparent we could move this line into an exported CMAKE macro (e.g. enableHummingDistance()), that the user has to call (and this error message refers to). That would nicely document for what this was turned on AND as soon as the package does no longer depend on aslam_cv_common cmake will raise a nice error.

ffurrer commented 7 years ago

Test this please

HannesSommer commented 7 years ago

Nice! The only problem seems to be that currently some python test require a display : TclError: no display name and no $DISPLAY environment variable

(see http://jenkins.asl.ethz.ch/job/hand_eye_calibration/16/label=ubuntu-xenial/parsed_console/)

I'd suggest disabling all the plots in the tests or condition it on the DISPLAY itself. A quick fix could of course be the Xvfb iff the plots are not blocking..

HannesSommer commented 7 years ago

The python test "test_time_alignment" seems to run indefinitely. I've just stopped one after it running for more than a day :). I don't know for why. strace wasn't conclusive. It just does over and over: futex(0x7f8b76d298e0, FUTEX_WAKE_PRIVATE, 1) = 1 futex(0x3810dcc, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 2231, {1498379625, 125690000}, ffffffff) = -1 ETIMEDOUT (Connection timed out) write(9, "\0", 1) = 1 futex(0x7f8b76d298e0, FUTEX_WAKE_PRIVATE, 1) = 0 recvmsg(6, 0x7ffdd8b69f90, 0) = -1 EAGAIN (Resource temporarily unavailable) recvmsg(6, 0x7ffdd8b69f90, 0) = -1 EAGAIN (Resource temporarily unavailable) write(9, "\0", 1)

This probably means it is waiting for user interaction? (e.g. show(block=True) ??) If it isn't that. Next time we should try to get a python stack trace.

ffurrer commented 7 years ago

@HannesSommer thanks, yeah I might have forgotten to disable some blocks :-S, will fix it now

HannesSommer commented 7 years ago

Green! Finally! Awesome :). Thanks to your courageous merge override ;)...

HannesSommer commented 7 years ago

The list of dependencies for the target extractor is massive, though : https://github.com/ethz-asl/hand_eye_calibration/pull/41/files#diff-a9163fc9b457442112d4939786cccebe. Maybe we can remove some. Before this can go public we must check all deps that are currently entered with git@... (All the https dpes must already be public (Jenkins can not authenticate via https)).