humanoid-path-planner / hpp-doc

Documentation for project Humanoid Path Planner
https://humanoid-path-planner.github.io/hpp-doc
ISC License
30 stars 23 forks source link

make: *** No rule to make target 'iai_maps.install' on Ubuntu 20.04 (focal) #85

Closed nicholaspalomo closed 1 year ago

nicholaspalomo commented 2 years ago

Greetings,

This project looks really cool and I would like to try it out.

I have followed the instructions given here to try to install HPP from source on Ubuntu 20.04 with ROS Noetic.

All goes well until I need to run the command:

make iai_maps.install;

Which returns:

make: *** No rule to make target 'iai_maps.install'.  Stop.

Is the documentation outdated here?

Thanks in advance for your assistance!

florent-lamiraux commented 2 years ago

Thank you for your interest in our work. Can you simply try

source config.sh
cd src
make all

and let me know the result ?

nicholaspalomo commented 2 years ago

Hi, @florent-lamiraux,

Thank you for your reply.

I tried that, and here is the output:

mkdir -p /home/apptronik/software/hpp/src/hpp-fcl/build-rel; \
cd /home/apptronik/software/hpp/src/hpp-fcl/build-rel; \
cmake -DCMAKE_INSTALL_PREFIX=/home/apptronik/software/hpp/install -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_BUILD_TYPE=Release \
                -DENFORCE_MINIMAL_CXX_STANDARD=ON \
                -DINSTALL_DOCUMENTATION=ON \
                -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-g -O3 -DNDEBUG" \
                -DCMAKE_BUILD_TYPE=Release ..
-- Package version (ROS package.xml): 1.8.1
-- Default C++ standard: 201402
-- C++ standard sufficient: Minimal required 11, currently defined: 14
-- eigenpy FOUND. eigenpy at /home/apptronik/software/hpp/install/lib/libeigenpy.so
CMake Error at /usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:146 (message):
  Could NOT find Boost (missing: serialization) (found version "1.71.0")
Call Stack (most recent call first):
  /usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:393 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake-3.16/Modules/FindBoost.cmake:2179 (find_package_handle_standard_args)
  cmake/package-config.cmake:97 (find_package)
  CMakeLists.txt:108 (ADD_PROJECT_DEPENDENCY)

-- Configuring incomplete, errors occurred!
See also "/home/apptronik/software/hpp/src/hpp-fcl/build-rel/CMakeFiles/CMakeOutput.log".
make[1]: *** [Makefile:410: hpp-fcl.configure_nodep] Error 1
make[1]: Leaving directory '/home/apptronik/software/hpp/src'
make: *** [Makefile:407: hpp-fcl.configure] Error 2

So, it looks like Boost serialization could not be found.

After investigating a bit, it looks like this error is generated here. However, I'm not quite sure how to resolve this. I do have libboost-all-dev installed, which contains the serialization library.

Have you ever encountered this on 20.04 and, if so, do you have any suggestions for things I can try?

florent-lamiraux commented 2 years ago

Are you sure you have the following package ? libboost-serialization1.71-dev Can you type dpkg -l | grep boost | grep serialization in a terminal ?

nicholaspalomo commented 2 years ago

Yes, I have that package. The output of the command is:

$ dpkg -l | grep boost | grep serialization
ii  libboost-serialization-dev:amd64                   1.71.0.0ubuntu2                                   amd64        serialization library for C++ (default version)
ii  libboost-serialization1.71-dev:amd64               1.71.0-6ubuntu6                                   amd64        serialization library for C++
florent-lamiraux commented 2 years ago

That is very strange. Haven't you installed a version of boost from source somewhere on your machine ? Can you type env in the terminal in which you compile ?

nicholaspalomo commented 2 years ago

No, I have not installed Boost from source; only from sudo apt-install (e.g. sudo apt install libboost-all-dev, sudo apt install libboost-serialization1.71-dev, etc.). Would this create a problem?

I tracked down in my filesystem where the cmake for boost_serialization is located, and I found it in /usr/lib/x86_64-linux-gnu/cmake. So, I changed this line to

ADD_PROJECT_DEPENDENCY(Boost REQUIRED chrono serialization HINTS /usr/lib/x86_64-linux-gnu/cmake)

and now hpp-fcl is building.

However, it looks like the next problem comes when trying to build pinocchio:

mkdir -p /home/apptronik/software/hpp/src/pinocchio/build-rel; \
cd /home/apptronik/software/hpp/src/pinocchio/build-rel; \
cmake -DCMAKE_INSTALL_PREFIX=/home/apptronik/software/hpp/install -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_BUILD_TYPE=Release \
                -DENFORCE_MINIMAL_CXX_STANDARD=ON \
                -DINSTALL_DOCUMENTATION=ON \
                -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-g -O3 -DNDEBUG" \
                -DBUILD_UNIT_TESTS=OFF -DBUILD_WITH_COLLISION_SUPPORT=ON ..
-- Package version (ROS package.xml): 2.6.3
CMake Warning (dev) at CMakeLists.txt:56 (MESSAGE):
  BUILD_UNIT_TESTS is deprecated.  Use BUILD_TESTING instead.  If you are
  manually building Pinocchio from source in an existing build folder, we
  suggest that you delete your build folder and make a new one.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Since urdfdom >= 1.0.0, the default C++ standard is C++11. The project is then compiled with C++11 standard.
-- The Python bindings of Pinocchio will be compiled along the main library. If you want to disable this feature, please set the option BUILD_PYTHON_INTERFACE to OFF.
-- PythonLibraryDirs: /usr/lib/x86_64-linux-gnu
-- PythonLibVersionString: 3.8.10
-- Python site lib: lib/python3/dist-packages
CMake Warning at /usr/share/cmake-3.16/Modules/FindBoost.cmake:2020 (message):
  No header defined for python-py38; skipping header check (note: header-only
  libraries have no designated component)
Call Stack (most recent call first):
  cmake/boost.cmake:27 (FIND_PACKAGE)
  cmake/boost.cmake:93 (SEARCH_FOR_BOOST_COMPONENT)
  CMakeLists.txt:145 (SEARCH_FOR_BOOST_PYTHON)

CMake Warning at cmake/boost.cmake:102 (MESSAGE):
  Impossible to check Boost.Python version.  Trying with 'python'.
Call Stack (most recent call first):
  CMakeLists.txt:145 (SEARCH_FOR_BOOST_PYTHON)

-- Could NOT find Boost (missing: python) (found version "1.71.0")
-- Boost_PYTHON_LIBRARY: 
-- eigenpy FOUND. eigenpy at /home/apptronik/software/hpp/install/lib/libeigenpy.so
-- Python compiler: CPython
-- hpp-fcl FOUND. hpp-fcl at /home/apptronik/software/hpp/install/lib/libhpp-fcl.so
CMake Error at /usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake:117 (find_package):
  Found package configuration file:

    /usr/lib/x86_64-linux-gnu/cmake/boost_chrono-1.71.0/boost_chrono-config.cmake

  but it set boost_chrono_FOUND to FALSE so package "boost_chrono" is
  considered to be NOT FOUND.  Reason given by package:

  No suitable build variant has been found.

  The following variants have been tried and rejected:

  * libboost_chrono.so.1.71.0 (release runtime, Boost_USE_DEBUG_RUNTIME=TRUE)

  * libboost_chrono.a (static, Boost_USE_STATIC_LIBS=OFF)

Call Stack (most recent call first):
  /usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake:182 (boost_find_component)
  /usr/share/cmake-3.16/Modules/CMakeFindDependencyMacro.cmake:47 (find_package)
  /home/apptronik/software/hpp/install/lib/cmake/hpp-fcl/hpp-fclConfig.cmake:149 (find_dependency)
  cmake/package-config.cmake:84 (find_package)
  CMakeLists.txt:166 (ADD_PROJECT_DEPENDENCY)

-- Configuring incomplete, errors occurred!

I tried modifying the boost.cmake with the changes in this Stackoverflow post. I also tried modifying the boost.cmake by setting Boost_USE_STATIC_LIBS to ON. However, the error persists.

florent-lamiraux commented 2 years ago

pinocchio and hpp-fcl devel branches are very unstable. I suggest that you select option "stable" on the download page: https://humanoid-path-planner.github.io/hpp-doc/download.html.

florent-lamiraux commented 2 years ago

Any news on this issue ?