-
Notifications
You must be signed in to change notification settings - Fork 91
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add missing dependency on libceres-dev #85
Conversation
I think this was left out on purpose, as it's not clear whether the Ceres this See also #32 and #62 (comment). |
Thanks, I wasn't aware that there were already those discussions about Ceres. So don't merge this PR. On Ubuntu Trusty-Wily, this rosdep rule indeed resolves to libceres-dev 1.8.0 by Mike Ferguson. On Ubuntu Xenial, libceres-dev 1.11.0 is in the Ubuntu upstream repositories, and the rosdep rule resolves to that. I fully agree with your comment on #62. It's a bit unfortunate that nobody answered your question though. So:
|
@mintar wrote:
I'm referring to the instructions on the wiki here. re: the rest of your comment: I don't think we can resolve this without some input from @drchrislewis. |
@mintar Sorry I have not chimed in. At this point I have nothing to offer. I've not looked at nor installed Ceres in a while. Installing the correct version was always a challenge for me. The last time I developed any new code for the cal-package I had to install from src in order to get the covariance computation features I wanted. I fought something having to do with -fPIC. I always just followed the Ceres install from src instructions. They don't always work. Others with more know how have updated the CMakelist well beyond my understanding of how the build system works. My vague understanding is that with the PR, one should be able to start with a fresh ROS install, git clone the calibration package, type rosdep install industrial_calibration, and the correct version of Ceres should magically appear? If this is true, then to test this, I need a computer without Ceres, and one that we can afford to break its configuration. I'd like to do this. I still feel less than confident that I would know if the changes in the build files was right. I'm not ignoring the PR, I'm just incompetent when it comes to build system nuances. |
Yes, almost. The command is How to install ceres 1.8.0
How to switch back to ceres 1.11.0
|
@mintar wrote:
That is actually one of the outstanding issues. See @drchrislewis in #62 (comment):
|
@mintar wrote:
This is actually the main thing: without knowledge of what should happen, it's hard to know whether the Ferguson-port is recent enough. I certainly don't feel qualified to say whether 1.8 should/would work. Unless @drchrislewis actually means that it shouldn't even compile if 1.8 is used, that would be easy to check. |
@mintar I installed libceres-dev recompiled and it ran at least one demo. However, I don't know how to know that it linked to the latest Ceres, and not the one I installed from source. Both Ceres libraries are installed on my machine now, just in different locations. I'll try to remove the source install, but I won't have time today. |
Chris you can use ldd on the binary to know what it links to; eg:
|
@VictorLamoine for some reason libceres does not show up in the ldd list for any of my ceres executables. Perhaps its statically linked? |
@drchrislewis Which libceres is it linked to (on my machine)?
Aha, the one from /usr/lib, so it should come from a deb package. Which one?
Ok, show me the version of
It's 1.8.0 from |
@mintar Thanks for the detailed instructions, but this old man is still perplexed |
@drchrislewis Sounds like a plan. Note that I've included instructions above on how to uninstall glog, gflags and ceres that were installed from source (the stuff starting with |
To uninstall a CMake project you should use https://cmake.org/Wiki/CMake_FAQ#Can_I_do_.22make_uninstall.22_with_CMake.3F |
@VictorLamoine Yes, you're right in general; but since some of the projects are non-CMake projects without an uninstall (that I could find, at least), I thought I'd keep the instructions simple. |
@mintar I un-installed ceres, installed libceres-dev, neither your branch, nor my branch now compile due to a missing ceres dependency:: Eigen version 3.2.0. I did "sudo apt-get install libeigen3-dev", and can see the eigen header files in /usr/include/eigen3. Sorry, I'm not getting anywhere. @shaun-edwards is back today. Perhaps he will be kind enough to help. |
That is weird. I also have |
@mintar Sorry its taken me so long to figure this one out. I could not get this change to compile correctly until I added to all the CMakelist.txt files |
All dependencies are now properly found via rosdep, no manual installation from source required any more.
@drchrislewis : I cannot reproduce your problem, it must be a problem on your local machine. As proof, I've written a Vagrantfile. You can try it like this: sudo apt-get install vagrant
vagrant up # must be run in the directory that holds the Vagrantfile This will create a clean virtual machine, install everything required and build Further proof: I've removed the script that installs ceres and friends from source from the Travis config. It still builds with my changes, and as a nice side-effect the build time drops from 12:09 min to 5:39 min on the Travis servers. So in summary, this PR compiles everything correctly. The versions are a bit older than the ones from source, but that doesn't seem to matter - at least we don't have any indication that it would hurt. |
Just a note: apparently @mikepurvis has a deb of 1.11 in his PPA (from discourse post). |
I'm guessing this got closed in favour of #94? |
@gavanderhoorn you are correct, but we want to make sure we can also build against a binary/debian as well. We are going to continue to do testing in the near term and make sure this all runs. We are also going to look at the issues and address them. If you have anything in particular, please send me an email [email protected]. Thanks! |
No description provided.