Skip to content
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

Support using precompiled libsnopt.so #8836

Closed
junhyeokahn opened this issue May 18, 2018 · 6 comments
Closed

Support using precompiled libsnopt.so #8836

junhyeokahn opened this issue May 18, 2018 · 6 comments
Assignees
Labels

Comments

@junhyeokahn
Copy link

Hi, thank you for your effort maintaining the repository.

I would like to use snopt.
I have a license of it and a lib (.so files).
However, the way drake explicitly set the path for snopt is

export SNOPT_PATH=/home/username/Downloads/snopt7.6.tar.gz

What is the best way to use snopt in the case of having .so files?
Or could I obtain access to the private RobotLocomotion/snopt GitHub repository?

@junhyeokahn junhyeokahn changed the title snopt library snopt installation May 18, 2018
@jwnimmer-tri jwnimmer-tri self-assigned this May 22, 2018
@jwnimmer-tri jwnimmer-tri added unused type: question component: distribution Nightly binaries, monthly releases, docker, installation team: software core labels May 22, 2018
@jwnimmer-tri
Copy link
Collaborator

I can't speak to the RobotLocomotion repository permission question, but I can speak to using binary snopt.

To be honest, this is the first I've heard of snopt being available in binary form. Previously, I was aware only of two kinds of source releases -- one (source) release for licensed users which has no size limits, and then one (source) release for students that has some problem-size limits built in (see #245).

Does the so you have come with headers, or (if you know?) does it assume that the https://github.com/snopt/snopt-interface/tree/master/include headers are the relevant ones? Is there a way that Drake developer(s) could obtain the same or similar snopt binaries, if we wanted to test our compatibility with it?

Its likely that to use an *.so release of snopt, we would have to edit the files in https://github.com/RobotLocomotion/drake/tree/master/tools/workspace/snopt to handle that case, doing a cc_library() call with srcs = ["snopt.so"] etc. Take note also of #8825 where those build files are already planned for rework a little bit.

@junhyeokahn
Copy link
Author

Thank you for your kind reply.

Does the so you have come with headers, or (if you know?) does it assume that the https://github.com/snopt/snopt-interface/tree/master/include headers are the relevant ones? Is there a way that Drake developer(s) could obtain the same or similar snopt binaries, if we wanted to test our compatibility with it?

I have so with https://github.com/snopt/snopt-interface/tree/master/include headers.

Do you guys have any plan to handle this case by editing build.bazel? Or I could start looking at it in my local computer.

@jwnimmer-tri
Copy link
Collaborator

Issue #7984 tracks porting Drake to use those signatures, instead of the legacy Fortran signatures that we are currently using. That would be a prerequisite of adding support for a precompiled so. (Once 7984 is solved, the package.BUILD.bazel changes to use it would be relatively easy -- change srcs = [] to be the *.so file, instead of the C sources.)

I don't think anyone is actively working on #7984 yet, but that issue would be the place to discuss getting it done.

@jwnimmer-tri jwnimmer-tri changed the title snopt installation Support using precompiled libsnopt.so May 22, 2018
@jwnimmer-tri
Copy link
Collaborator

As noted above, this will be an easy tweak, once #7984 is solved. Over to @EricCousineau-TRI for the kitware backlog.

@jwnimmer-tri
Copy link
Collaborator

I think I was wrong that this would be easy. Drake is stuck using our own build of a patched SNOPT 7.4, because of functionality regressions in 7.6. I'm sorry to say I don't think we can support libsnopt.so runtime loading in the near future.

Perhaps the https://github.com/RobotLocomotion/drake/releases are good enough for some users -- they contain SNOPT code already embedded.

@jwnimmer-tri
Copy link
Collaborator

This came up again here on stackoverflow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants