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

Provide pod wrapper for the student version of snopt #245

Closed
junji15 opened this issue Jul 24, 2014 · 23 comments
Closed

Provide pod wrapper for the student version of snopt #245

junji15 opened this issue Jul 24, 2014 · 23 comments
Assignees

Comments

@junji15
Copy link

junji15 commented Jul 24, 2014

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
Copy link
Contributor

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.

  • Russ

On Jul 24, 2014, at 9:27 AM, junji15 [email protected] 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
Copy link
Author

junji15 commented Jul 26, 2014

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
Copy link
Contributor

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.

  • Russ

On Jul 26, 2014, at 7:47 PM, junji15 [email protected] 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
Copy link
Author

junji15 commented Jul 30, 2014

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
Copy link
Contributor

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
Copy link
Contributor

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
Copy link
Contributor

renaming this issue to remind me of the student snopt request

@RussTedrake RussTedrake changed the title Ubuntu (12.04.1) install Drake Provide pod wrapper for the student version of snopt Aug 1, 2014
@junji15
Copy link
Author

junji15 commented Aug 4, 2014

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
Copy link
Contributor

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 [email protected] 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
Copy link
Contributor

@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
Copy link
Contributor

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

@sammy-tri
Copy link
Contributor

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
Copy link

ljarin commented Feb 17, 2017

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
Copy link
Contributor

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

@jwnimmer-tri
Copy link
Collaborator

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

@RussTedrake
Copy link
Contributor

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
Copy link
Collaborator

jwnimmer-tri commented Jun 19, 2017

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
Copy link
Contributor

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
Copy link
Contributor

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
Copy link
Collaborator

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

@jwnimmer-tri
Copy link
Collaborator

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
Copy link
Contributor

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
Copy link
Collaborator

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.

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

No branches or pull requests

9 participants