RobotLocomotion / drake

Model-based design and verification for robotics.
https://drake.mit.edu
Other
3.25k stars 1.25k forks source link

Provide pod wrapper for the student version of snopt #245

Closed junji15 closed 6 years ago

junji15 commented 10 years ago

Hello. I am trying to install Drake (rigidbody) of Ubuntu 12.04.1 After the installation and make from source file, if I try to use "addpath_drake.m", the below is apeeared in Matlab:


Error using addpath_drake (line 24) You must run make first (and/or add your pod build/matlab directory to the matlab path)

Error in run (line 63) evalin('caller', [script ';']);


But I cannot find "build/matlab directory" in drake-distro. The build folder includes only "bin","include","lib","share".

I would appreciate it very much if you could advise me anything. Junji Kikuchi

RussTedrake commented 10 years ago

my best guess is that you had some failures during your build process. Most likely cmake could not find your matlab executable. If you run “make configure” in the drake-distro/drake folder you should see the error.

If my guess is correct, then the easiest fix is to do something like

cd /usr/local/bin
sudo ln -s /usr/local/MATLAB_R2014a/bin/matlab 

Then you will have to rerun make (from drake-distro, because spotless will have failed to install, too).

If I’m wrong, sending me the output of the make configure will help us debug.

On Jul 24, 2014, at 9:27 AM, junji15 notifications@github.com wrote:

Hello. I am trying to install Drake (rigidbody) of Ubuntu 12.04.1 After the installation and make from source file, if I try to use "addpath_drake.m", the below is apeeared in Matlab:

Error using addpath_drake (line 24) You must run make first (and/or add your pod build/matlab directory to the matlab path)

Error in run (line 63) evalin('caller', [script ';']);

But I cannot find "build/matlab directory" in drake-distro. The build folder includes only "bin","include","lib","share".

I would appreciate it very much if you could advise me anything. Junji Kikuchi

— Reply to this email directly or view it on GitHub.

junji15 commented 10 years ago

Dear Mr.Russ,

Thank you for your advice. Because I forgot that I needed to run "make" in each folder of drake-distro(e.g lcm, spotless, etc). And it works now. I greatly appreciate for your cooperation.

But I've not solved a problem yet. If I run the "testIK.m" in Matlab, The below message is appeared.


run('/home/kikuchi/Downloads/drake-distro3/addpath_pods.m') Adding /home/kikuchi/Downloads/drake-distro3/build/matlab to the matlab path

run('/home/kikuchi/Downloads/drake-distro3/drake/addpath_drake.m') Warning: Invalid file or directory '/home/kikuchi/Downloads/drake-distro3/build/share/java/drake.jar'. In javaclasspath>local_validate_dynamic_path at 274 In javaclasspath>local_javapath at 182 In javaclasspath at 119 In javaaddpath at 71 In addpath_drake at 65 In run at 63 Calling addpath_spotless Added the lcm jar to your javaclasspath (found via cmake) Warning: Invalid file or directory '/home/kikuchi/Downloads/drake-distro3/build/share/java/lcmtypes_drake.jar'. In javaclasspath>local_validate_dynamic_path at 274 In javaclasspath>local_javapath at 182 In javaclasspath at 119 In javaaddpath at 71 In javaaddpathProtectGlobals at 23 In checkDependency at 60 In addpath_drake at 110 In run at 63

run('/home/kikuchi/Downloads/drake-distro3/drake/systems/plants/test/testIK.m') Warning: This model has no mex pointer. Only checking collisions between terrain contact points and terrain In WarningManager>WarningManager.warnOnce at 18 In RigidBodyManipulator.collisionDetect at 97 In RigidBodyManipulator.RigidBodyManipulator>RigidBodyManipulator.compile at 637 In RigidBodyManipulator.addRobotFromURDF at 58 In RigidBodyManipulator.RigidBodyManipulator>RigidBodyManipulator.RigidBodyManipulator at 53 In testIK at 11 In run at 63 Warning: You asked to enable mex, but mex support is currently disabled (because the IK mex has not been built) In IKoptions>IKoptions.setMex at 137 In testIK at 56 In run at 63 Check a single CoM constraint Warning: You asked to enable mex, but mex support is currently disabled (because the IK mex has not been built) In IKoptions>IKoptions.setMex at 137 In testIK>test_IK_userfun at 438 In testIK at 61 In run at 63 Error using InverseKinematics/infeasibleConstraintName (line 162) not implemented yet

Error in InverseKinematics/solve (line 126) [info,infeasible_constraint] = infeasibleConstraintName(obj,x,info);

Error in testIK>test_IK_userfun (line 451) [qik,F,info,infeasible_cnstr_ik] = ikproblem.solve(q_seed);

Error in testIK (line 61) q = test_IK_userfun(robot,q_seed,q_nom,kc1,ikoptions);

Error in run (line 63) evalin('caller', [script ';']);


But I cannot find "IK mex" in drake-distro now. How can I build "IK mex"? I would appreciate it very much if you could advise me anything. Junji Kikuchi

RussTedrake commented 10 years ago

The first warning makes me think that the build process could not find a java compiler. That will limit your use of LCM.

Unfortunately, the current mex IK implementation requires a license for SNOPT (there is a free, but limited student license). We should handle this missing dependency more gracefully. IK should run (more slowly) without mex, but the IK_test explicitly tries to compare the mex implementation with the matlab-only implementation, so is failing for you.

For the mex collision detection to be enabled, you will need bullet and eigen3, which are pods available in the "rigidbody" distro.

On Jul 26, 2014, at 7:47 PM, junji15 notifications@github.com wrote:

Dear Mr.Russ,

Thank you for your advice. Because I forgot that I needed to run "make" in each folder of drake-distro(e.g lcm, spotless, etc). And it works now. I greatly appreciate for your cooperation.

But I've not solved a problem yet. If I ran the "testIK.m", The below message is appeared.

run('/home/kikuchi/Downloads/drake-distro3/addpath_pods.m') Adding /home/kikuchi/Downloads/drake-distro3/build/matlab to the matlab path

run('/home/kikuchi/Downloads/drake-distro3/drake/addpath_drake.m') Warning: Invalid file or directory '/home/kikuchi/Downloads/drake-distro3/build/share/java/drake.jar'. In javaclasspath>local_validate_dynamic_path at 274 In javaclasspath>local_javapath at 182 In javaclasspath at 119 In javaaddpath at 71 In addpath_drake at 65 In run at 63 Calling addpath_spotless Added the lcm jar to your javaclasspath (found via cmake) Warning: Invalid file or directory '/home/kikuchi/Downloads/drake-distro3/build/share/java/lcmtypes_drake.jar'. In javaclasspath>local_validate_dynamic_path at 274 In javaclasspath>local_javapath at 182 In javaclasspath at 119 In javaaddpath at 71 In javaaddpathProtectGlobals at 23 In checkDependency at 60 In addpath_drake at 110 In run at 63

run('/home/kikuchi/Downloads/drake-distro3/drake/systems/plants/test/testIK.m') Warning: This model has no mex pointer. Only checking collisions between terrain contact points and terrain In WarningManager>WarningManager.warnOnce at 18 In RigidBodyManipulator.collisionDetect at 97 In RigidBodyManipulator.RigidBodyManipulator>RigidBodyManipulator.compile at 637 In RigidBodyManipulator.addRobotFromURDF at 58 In RigidBodyManipulator.RigidBodyManipulator>RigidBodyManipulator.RigidBodyManipulator at 53 In testIK at 11 In run at 63 Warning: You asked to enable mex, but mex support is currently disabled (because the IK mex has not been built) In IKoptions>IKoptions.setMex at 137 In testIK at 56 In run at 63 Check a single CoM constraint Warning: You asked to enable mex, but mex support is currently disabled (because the IK mex has not been built) In IKoptions>IKoptions.setMex at 137 In testIK>test_IK_userfun at 438 In testIK at 61 In run at 63 Error using InverseKinematics/infeasibleConstraintName (line 162) not implemented yet

Error in InverseKinematics/solve (line 126) [info,infeasible_constraint] = infeasibleConstraintName(obj,x,info);

Error in testIK>test_IK_userfun (line 451) [qik,F,info,infeasible_cnstr_ik] = ikproblem.solve(q_seed);

Error in testIK (line 61) q = test_IK_userfun(robot,q_seed,q_nom,kc1,ikoptions);

Error in run (line 63) evalin('caller', [script ';']);

But I cannot find "IK mex" in drake-distro now. How can I build "IK mex"? I would appreciate it very much if you could advise me anything. Junji Kikuchi

— Reply to this email directly or view it on GitHub.

junji15 commented 10 years ago

Dear Mr. Russ,

Thank you for your answer. And I want to ask some questions.

  1. I installed studentSnopt from below internet page. http://www.scicomp.ucsd.edu/~peg/Software.html And I put it in drake-distro folder and ran some programs. But I cannot find a way which builds "IK mex" by using Snopt. Could you tell me how to build it or do I need other specific licenses?
  2. I tried re-install of drake-distro several times. But when I run the "addpath_drake.m" on Matlab, it also cannot be fixed:

run('/home/kikuchi/Downloads/drake-distro/drake/addpath_drake.m') Warning: Invalid file or directory '/home/kikuchi/Downloads/drake-distro/build/share/java/lcmtypes_drake.jar'. In javaclasspath>local_validate_dynamic_path at 274 In javaclasspath>local_javapath at 182 In javaclasspath at 119 In javaaddpath at 71 In javaaddpathProtectGlobals at 23 In checkDependency at 60 In addpath_drake at 110 In run at 63 ,


Which stage did I mistake of the build process? It is the result of running “make configure” in the drake-distro and drake folder.


kikuchi@prak3:~/Downloads/drake-distro$ make configure


-- lcm


checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c -C checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking for GLIB... yes checking for jar... /usr/bin/jar checking for javac... /usr/bin/javac checking whether make supports nested variables... yes checking how to print strings... printf checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for fgrep... /bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 3458764513820540925 checking whether the shell understands some XSI constructs... yes checking whether the shell understands "+="... yes checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for mt... mt checking if mt is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... no checking for library containing gethostbyname... none required checking for library containing socket... none required checking for library containing nanosleep... none required checking for library containing inet_aton... none required checking for a Python interpreter with version >= 2.3... python checking for python... /usr/bin/python checking for python version... 2.7 checking for python platform... linux2 checking for python script directory... ${prefix}/lib/python2.7/site-packages checking for python extension module directory... ${exec_prefix}/lib/python2.7/site-packages checking for headers required to compile python extensions... found checking for a Lua interpreter with version >= 5.1... none checking whether NLS is requested... yes checking for msgfmt... /usr/bin/msgfmt checking for gmsgfmt... /usr/bin/msgfmt checking for xgettext... /usr/bin/xgettext checking for msgmerge... /usr/bin/msgmerge checking for ld used by GCC... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking for shared library run path origin... done checking for CFPreferencesCopyAppValue... no checking for CFLocaleCopyCurrent... no checking whether NLS is requested... yes checking for GNU gettext in libc... yes checking whether to use NLS... yes checking where the gettext function comes from... libc checking for iconv... yes checking for iconv declaration... extern size_t iconv (iconv_t cd, char * inbuf, size_t inbytesleft, char * outbuf, size_t outbytesleft); configure: creating ./config.status config.status: creating Makefile config.status: creating lcm/Makefile config.status: creating lcm/lcm.pc config.status: creating liblcm-test/Makefile config.status: creating lcm-logger/Makefile config.status: creating lcmgen/Makefile config.status: creating lcm-java/Makefile config.status: creating lcm-java/lcm-java.pc config.status: creating lcm-python/Makefile config.status: creating lcm-lua/Makefile config.status: creating examples/Makefile config.status: creating m4/Makefile config.status: creating po/Makefile.in config.status: WARNING: 'po/Makefile.in.in' seems to ignore the --datarootdir setting config.status: creating m4macros/Makefile config.status: executing depfiles commands config.status: executing libtool commands config.status: executing default-1 commands config.status: creating po/POTFILES config.status: creating po/Makefile

Configuration (LCM):

Source code location:  .
Compiler:              gcc
Java Support:          Enabled
Python Support:        Enabled
Lua Support:           Disabled

-- libbot


make[1]: *\ No rule to make target `configure'. Stop.


-- eigen


BUILD_PREFIX: /home/kikuchi/Downloads/drake-distro/build

abort: repository /home/kikuchi/Downloads/drake-distro/eigen/eigen-eigen-6b38706d90a9 not found! abort: repository /home/kikuchi/Downloads/drake-distro/eigen/eigen-eigen-6b38706d90a9 not found! -- Standard libraries to link to explicitly: none -- searching for 'pkgconfig' directory in PKG_CONFIG_LIBDIR ( ), /home/kikuchi/Downloads/drake-distro/build/share, and /home/kikuchi/Downloads/drake-distro/build/lib -- found /home/kikuchi/Downloads/drake-distro/build/lib/pkgconfig -- Found Qt4: /usr/bin/qmake (found version "4.8.1") -- /home/kikuchi/Downloads/drake-distro/eigen/pod-build/test -- Could NOT find SUPERLU (missing: SUPERLU_INCLUDES SUPERLU_LIBRARIES) -- Could NOT find PASTIX (missing: PASTIX_INCLUDES PASTIX_LIBRARIES) -- Could NOT find SCOTCH (missing: SCOTCH_INCLUDES SCOTCH_LIBRARIES) -- Could NOT find METIS (missing: METIS_INCLUDES METIS_LIBRARIES) -- Could NOT find GOOGLEHASH (missing: GOOGLEHASH_INCLUDES GOOGLEHASH_COMPILE) -- Could NOT find ADOLC (missing: ADOLC_INCLUDES ADOLC_LIBRARIES) -- Could NOT find MPFR (missing: MPFR_INCLUDES MPFR_LIBRARIES MPFR_VERSION_OK) (Required is at least version "2.3.0") -- Could NOT find FFTW (missing: FFTW_INCLUDES FFTW_LIBRARIES) -- Found Glew: /usr/lib/libGLEW.so -- Found Qt4: /usr/bin/qmake (found version "4.8.1") -- Could NOT find SUPERLU (missing: SUPERLU_INCLUDES SUPERLU_LIBRARIES) -- Could NOT find PASTIX (missing: PASTIX_INCLUDES PASTIX_LIBRARIES) -- Could NOT find SCOTCH (missing: SCOTCH_INCLUDES SCOTCH_LIBRARIES) -- Could NOT find METIS (missing: METIS_INCLUDES METIS_LIBRARIES) -- **** -- * Eigen's unit tests configuration summary *

-- ****

-- Build type: Release -- Build site: prak3 -- Build string: linux-3.2.0-64-generic-_-4.6.3-sse2-64bit -- Enabled backends: Cholmod, UmfPack, SPQR, Qt4 support, OpenGL, -- Disabled backends: SuperLU, PaStiX, METIS, GoogleHash, Adolc, MPFR C++, fftw, -- Default order: Column-major -- Maximal matrix/vector size: 320 -- SSE2: Using architecture defaults -- SSE3: Using architecture defaults -- SSSE3: Using architecture defaults -- SSE4.1: Using architecture defaults -- SSE4.2: Using architecture defaults -- Altivec: Using architecture defaults

-- ARM NEON: Using architecture defaults

CXX: /usr/bin/c++ CXX_VERSION: c++ (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 CXX_FLAGS: -fexceptions -pedantic -Wall -Wextra -Wundef -Wcast-align -Wchar-subscripts -Wnon-virtual-dtor -Wpointer-arith -Wwrite-strings -Wformat-security -Wno-psabi -Wno-variadic-macros -Wno-long-long -fno-check-new -fno-common -fstrict-aliasing -ansi -g2 Sparse lib flags: ;/usr/lib/libcholmod.so;/usr/lib/libamd.so;/usr/lib/libcolamd.so;/usr/lib/libcamd.so;/usr/lib/libccolamd.so;eigen_blas;eigen_lapack;/usr/lib/libumfpack.so;/usr/lib/libcolamd.so;/usr/lib/libamd.so;eigen_blas;/usr/lib/libspqr.a;/usr/lib/libcholmod.so;/usr/lib/libamd.so;/usr/lib/libcolamd.so;/usr/lib/libcamd.so;/usr/lib/libccolamd.so;eigen_lapack;eigen_blas

-- ****

-- Configured Eigen 3.2.1

-- Some things you can do now:

-- --------------+-------------------------------------------------------------- -- Command | Description

-- --------------+-------------------------------------------------------------- -- make install | Install to /home/kikuchi/Downloads/drake-distro/build. To change that: -- | cmake . -DCMAKE_INSTALL_PREFIX=yourpath -- | Eigen headers will then be installed to: -- | /home/kikuchi/Downloads/drake-distro/build/include/eigen3 -- | To install Eigen headers to a separate location, do: -- | cmake . -DEIGEN_INCLUDE_INSTALL_DIR=yourpath -- make doc | Generate the API documentation, requires Doxygen & LaTeX -- make check | Build and run the unit-tests. Read this page: -- | http://eigen.tuxfamily.org/index.php?title=Tests -- make blas | Build BLAS library (not the same thing as Eigen)

-- --------------+--------------------------------------------------------------

-- Configuring done -- Generating done -- Build files have been written to: /home/kikuchi/Downloads/drake-distro/eigen/pod-build


-- bullet


BUILD_PREFIX: /home/kikuchi/Downloads/drake-distro/build

OPENGL FOUND /usr/lib/x86_64-linux-gnu/libGLU.so/usr/lib/x86_64-linux-gnu/libGL.so/usr/lib/x86_64-linux-gnu/libSM.so/usr/lib/x86_64-linux-gnu/libICE.so/usr/lib/x86_64-linux-gnu/libX11.so/usr/lib/x86_64-linux-gnu/libXext.so -- WARNING: you are using the obsolete 'GLU' package, please use 'OpenGL' instead GLUT FOUND /usr/lib/x86_64-linux-gnu/libglut.so -- WARNING: you are using the obsolete 'GLU' package, please use 'OpenGL' instead -- Configuring done -- Generating done -- Build files have been written to: /home/kikuchi/Downloads/drake-distro/bullet/pod-build


-- snopt


make[1]: *\ No rule to make target `configure'. Stop.


-- gurobi


make: *\ gurobi: No such file or directory. Stop.


-- gloptipoly3


make: *\ gloptipoly3: No such file or directory. Stop.


-- bertini


make: *\ bertini: No such file or directory. Stop.


-- sedumi


make: *\ sedumi: No such file or directory. Stop.


-- avl


BUILD_PREFIX: /home/kikuchi/Downloads/drake-distro/build

-- Configuring done -- Generating done -- Build files have been written to: /home/kikuchi/Downloads/drake-distro/avl/pod-build


-- xfoil


BUILD_PREFIX: /home/kikuchi/Downloads/drake-distro/build

-- Configuring done -- Generating done -- Build files have been written to: /home/kikuchi/Downloads/drake-distro/xfoil/pod-build


-- spotless


BUILD_PREFIX: /home/kikuchi/Downloads/drake-distro/build

-- Configuring done -- Generating done -- Build files have been written to: /home/kikuchi/Downloads/drake-distro/spotless/pod-build


-- drake


BUILD_PREFIX: /home/kikuchi/Downloads/drake-distro/build

CMake Warning at cmake/mex.cmake:204 (message): Your MEX compiler flags contained '-ansi', but we've removed that flag for compatibility with C++11 Call Stack (most recent call first): cmake/mex.cmake:302 (mex_setup) CMakeLists.txt:41 (include)

-- checking for module 'lcm' -- found lcm, version 1.0.0 -- Found lcm-java -- Found bot2-lcmgl -- Found eigen3 -- Writing drake_debug_mex.sh CMake Warning at cmake/pods.cmake:412 (message): Could not find gurobi using pods_find_pkg_config Call Stack (most recent call first): solvers/CMakeLists.txt:4 (pods_find_pkg_config)

-- Found bullet -- checking for module 'bullet' -- found bullet, version 2.81 -- Found eigen3 -- Found bot2-vis -- checking for module 'bot2-lcmgl-renderer' -- found bot2-lcmgl-renderer, version 0.0.1 -- checking for module 'bot2-lcmgl-client' -- found bot2-lcmgl-client, version 0.0.1 -- checking for module 'bot2-lcmgl-renderer' -- found bot2-lcmgl-renderer, version 0.0.1 CMake Warning at cmake/pods.cmake:412 (message): Could not find gurobi using pods_find_pkg_config Call Stack (most recent call first): systems/plants/CMakeLists.txt:72 (pods_find_pkg_config)

CMake Warning at cmake/pods.cmake:412 (message): Could not find snopt_cpp using pods_find_pkg_config Call Stack (most recent call first): systems/plants/CMakeLists.txt:73 (pods_find_pkg_config)

CMake Warning at cmake/pods.cmake:433 (message): Useless invocation of pods_use_pkg_config_packages Call Stack (most recent call first): systems/plants/CMakeLists.txt:91 (pods_use_pkg_config_packages)

CMake Warning at cmake/pods.cmake:412 (message): Could not find gurobi using pods_find_pkg_config Call Stack (most recent call first): systems/controllers/CMakeLists.txt:2 (pods_find_pkg_config)

-- checking for module 'eigen3' -- found eigen3, version 3.2.1 -- Writing addpath_drake.m and rmpath_drake.m to /home/kikuchi/Downloads/drake-distro/build/matlab -- Configuring done -- Generating done -- Build files have been written to: /home/kikuchi/Downloads/drake-distro/drake/pod-build


The below is the result of the drake folder.


kikuchi@prak3:~/Downloads/drake-distro/drake$ make configure

BUILD_PREFIX: /home/kikuchi/Downloads/drake-distro/build

CMake Warning at cmake/mex.cmake:204 (message): Your MEX compiler flags contained '-ansi', but we've removed that flag for compatibility with C++11 Call Stack (most recent call first): cmake/mex.cmake:302 (mex_setup) CMakeLists.txt:41 (include)

-- checking for module 'lcm' -- found lcm, version 1.0.0 -- Found lcm-java -- Found bot2-lcmgl -- Found eigen3 -- Writing drake_debug_mex.sh CMake Warning at cmake/pods.cmake:412 (message): Could not find gurobi using pods_find_pkg_config Call Stack (most recent call first): solvers/CMakeLists.txt:4 (pods_find_pkg_config)

-- Found bullet -- checking for module 'bullet' -- found bullet, version 2.81 -- Found eigen3 -- Found bot2-vis -- checking for module 'bot2-lcmgl-renderer' -- found bot2-lcmgl-renderer, version 0.0.1 -- checking for module 'bot2-lcmgl-client' -- found bot2-lcmgl-client, version 0.0.1 -- checking for module 'bot2-lcmgl-renderer' -- found bot2-lcmgl-renderer, version 0.0.1 CMake Warning at cmake/pods.cmake:412 (message): Could not find gurobi using pods_find_pkg_config Call Stack (most recent call first): systems/plants/CMakeLists.txt:72 (pods_find_pkg_config)

CMake Warning at cmake/pods.cmake:412 (message): Could not find snopt_cpp using pods_find_pkg_config Call Stack (most recent call first): systems/plants/CMakeLists.txt:73 (pods_find_pkg_config)

CMake Warning at cmake/pods.cmake:433 (message): Useless invocation of pods_use_pkg_config_packages Call Stack (most recent call first): systems/plants/CMakeLists.txt:91 (pods_use_pkg_config_packages)

CMake Warning at cmake/pods.cmake:412 (message): Could not find gurobi using pods_find_pkg_config Call Stack (most recent call first): systems/controllers/CMakeLists.txt:2 (pods_find_pkg_config)

-- checking for module 'eigen3' -- found eigen3, version 3.2.1 -- Writing addpath_drake.m and rmpath_drake.m to /home/kikuchi/Downloads/drake-distro/build/matlab -- Configuring done -- Generating done -- Build files have been written to: /home/kikuchi/Downloads/drake-distro/drake/pod-build


I'm sorry for asking many questions. I'm lookin forward to your response.

Junji Kikuchi

RussTedrake commented 10 years ago

Sorry for the delay.
Regarding your first issue: i have made a wrapper for snopt (our licensed version) that builds the proper libraries and writes a pkgconfig file. it wouldn't be hard for me to release a pod that did the same thing for the student version. I will put that on the list. For you to make it work yourself, you would basically need to write your own pkgconfig file for snopt and put it in e.g. drake-distro/build/lib/pkgconfig . If it helps, i have the following three files:

prefix=/Users/russt/drake-distro/build
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

Name: snopt
Description: snopt
Requires:
Version: 0.0.1
Libs: -L${libdir}  -L/Users/russt/drake-distro/build/lib -lsnopt -lsnblas -lsnprint
Cflags: -I${includedir}
classpath=
prefix=/Users/russt/drake-distro/build
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

Name: snopt_c
Description: snopt_c
Requires:
Version: 0.0.1
Libs: -L${libdir}  -L/Users/russt/drake-distro/build/lib -lsnopt_c -lf2c
Cflags: -I${includedir}  -I/Users/russt/drake-distro/build/include/snopt
classpath=
prefix=/Users/russt/drake-distro/build
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

Name: snopt_cpp
Description: snopt_cpp
Requires:  snopt_c
Version: 0.0.1
Libs: -L${libdir}  -L/Users/russt/drake-distro/build/lib -lsnopt_cpp
Cflags: -I${includedir}  -I/Users/russt/drake-distro/build/include/snopt
classpath=
RussTedrake commented 10 years ago

for the second issue, the results of your make configure look aok. do you have the file /home/kikuchi/Downloads/drake-distro/build/share/java/lcmtypes_drake.jar on your system?

RussTedrake commented 10 years ago

renaming this issue to remind me of the student snopt request

junji15 commented 10 years ago

Dear Mr. Russ,

Thank you for your answer.

Regarding first issue: Thank you for giving me the file. I try to set pkgconfig files in drake-distro.

Regarding second issue: I'm searching "lcmtypes_drake.jar" in these folders. But I couldn't find it. I guess my building process has a something wrong. Which building process of the pod is included the file?

I would appreciate it very much if you could advise me anything. Junji Kikuchi

RussTedrake commented 10 years ago

lcmtypes_drake.jar will be built from the drake directory if it finds the required prerequisites (java and lcm-java). And should land in the build/share/java folder afterwords.

On Aug 4, 2014, at 4:15 PM, junji15 notifications@github.com wrote:

Dear Mr. Russ,

Thank you for your answer.

Regarding first issue: Thank you for giving me the file. I try to set pkgconfig files in drake-distro.

Regarding second issue: I'm searching "lcmtypes_drake.jar" in these folders. But I couldn't find it. I guess my building process has a something wrong. Which building process of the pod is included the file?

I would appreciate it very much if you could advise me anything. Junji Kikuchi

— Reply to this email directly or view it on GitHub.

RussTedrake commented 8 years ago

@sammy-tri -- it would be good to get your input on how we'll link the c++ snopt wrapper to the student version, in case there are potential roadblocks there.

david-german-tri commented 7 years ago

Evicting from the Kitware queue and handing over to @sammy-tri, based on @RussTedrake's last comment.

sammy-tri commented 7 years ago

The link above for student SNOPT is dead, and I can't seem to find any live links poking around on google. Is this still something we're interested in? Also our SNOPT build got a bit more custom during the process of adding IPOPT (fortran symbol collisions in versions of BLAS packaged with both libraries, IIRC), so if the student version is binary-only, that could also present some issues.

Of course, that assumes I could find that version to test with.

ljarin commented 7 years ago

I have a full version of SNOPT - but I want to build with ROS. I see people posted a makefile for using student snopt, but is there a way I could get the CMakeLists.txt from externals/snopt?

RussTedrake commented 7 years ago

Hi @ljarin. You're actually a special case (being at MIT), so I will send you an email on how to proceed.

jwnimmer-tri commented 7 years ago

It would be nice to get a refresh on what's still wanted here. Could someone post a new summary below?

RussTedrake commented 7 years ago

not everyone has a snopt license. students can download a restricted version of snopt (with a variable limit). it would be nice to be able to let MathematicalProgram call that version instead. but right now we've forked the main snopt repo and updated the build to link against it.

Perhaps a useful summary might be to support "using system snopt". If we can use a version of snopt that someone already has installed, then lots of things get easier. And the student version should work, too.

jwnimmer-tri commented 7 years ago

Within TRI, I have BUILD files written for using pristine upstream SNOPT. We could first switch back Drake to use pristine SNOPT, and after that it should be fairly easy to let the user change which source tarball Bazel refers to.

RussTedrake commented 7 years ago

Sounds excellent. I believe that the student snopt is, from the perspective of the build system, identical to the licensed snopt (it just adds a variable limit somewhere in the code). @hongkai-dai -- chime in if you know otherwise?

hongkai-dai commented 7 years ago

Sorry for being late. I believe they should be identical. If the student SNOPT is in 7.2.12. The newer SNOPT 7.5 has different API from ours, and I do not know if we can build SNOPT 7.5.

jwnimmer-tri commented 6 years ago

Since I am about to start on #7240, which we believe will resolve this issue, I will also take ownership here.

jwnimmer-tri commented 6 years ago

On master right now, http://drake.mit.edu/bazel.html documents how to set the SNOPT_PATH environment variable to a tarball of the SNOPT source archive one wants to use. I think that is all we need to support the student version, but I can't be sure without the ability to duplicate the students' setup. I'll kick this over to @RussTedrake for any testing or delegation to confirm it works, before closing it out.

RussTedrake commented 6 years ago

I would have to register as a student and get approved to test this myself. Based on my reading, I think that we can safely consider it resolved. Thank you!

N.B. the https://bazel.build/versions/master/docs/bazel-user-manual.html#bazelrc link on http://drake.mit.edu/bazel.html is broken.

jwnimmer-tri commented 6 years ago

N.B. the https://bazel.build/versions/master/docs/bazel-user-manual.html#bazelrc link on http://drake.mit.edu/bazel.html is broken.

Ah yes, they have redirects for most URLs but they messed up that one. I'll PR that.