MOLAorg / mola

A Modular Optimization framework for Localization and mApping (MOLA)
https://docs.mola-slam.org/latest/
Other
379 stars 72 forks source link

make error #15

Closed carleft closed 4 years ago

carleft commented 4 years ago

Hello! I have a error when I making this program : /home/tb/workspace/mola/modules/mola-slam-gtsam/src/ASLAM_gtsam.cpp:205:20: error: ‘ISAM2UpdateParams’ is not a member of ‘gtsam’ ->gtsam::ISAM2UpdateParams updateParams;

home/tb/workspace/mola/modules/mola-slam-gtsam/src/ASLAM_gtsam.cpp:205:20: note: suggested alternative: ‘ISAM2Params’ ->gtsam::ISAM2UpdateParams updateParams;

/home/tb/workspace/mola/modules/mola-slam-gtsam/src/ASLAM_gtsam.cpp:206:13: error: ‘updateParams’ was not declared in this scope ->updateParams.newAffectedKeys =

And I also met lots of note like this

/home/tb/workspace/mola/modules/mola-slam-gtsam/src/ASLAM_gtsam.cpp:542:75: note: #pragma message: TODO: Disabled temporarily; see comment forgtsam::IMUHelper imu

How can I solve it?

Also I have noticed that in tutorial :+1:

Build GTSAM from sources and disable “optimize native”. Note that make install is not required. Also, using the precompiled version of GTSAM from the PPA is not supported since it’s built using a different version of GCC and ABI incompatibilities will lead to crashes.

but How can I disable "optimaize native" when I am building GTSAM

Thank you very much in advance!

jlblancoc commented 4 years ago

What version of GTSAM are you using?

On disabling optimize native, it's just checking OFF the CMake flag GTSAM_BUILD_WITH_MARCH_NATIVE while building gtsam. I'll probably improve the docs in that area...

carleft commented 4 years ago

What version of GTSAM are you using?

On disabling optimize native, it's just checking OFF the CMake flag GTSAM_BUILD_WITH_MARCH_NATIVE while building gtsam. I'll probably improve the docs in that area...

Thank you for your reply ! I am using GTSAM 4.0.0 So I added set(GTSAM_BUILD_WITH_MARCH_NATIVE OFF) in the gtsam CMakeList.txt and rebuild gtsam. And I rebuild MOLA. But the errors still exist , How can I solve it?

jlblancoc commented 4 years ago

So I added set(GTSAM_BUILD_WITH_MARCH_NATIVE OFF) in the gtsam CMakeList.txt and rebuild gtsam. And I rebuild MOLA.

Nope... use ccmake or cmake-gui instead.

On the "ISAM2Params" error, I think that we introduced that structure into gtsam after the release of 4.0.0... Please, take the latest release, from yesterday, I think ;-)

jlblancoc commented 4 years ago

Any news on this problem?

aaravrav142 commented 4 years ago

Hi,

I am facing a similar problem. Can you describe which fork of gtsam to use for successful use with MOLA and how to actually build it with cmake-gui or command prompt on ubuntu 16.

Thanks

Alex

On Wed, Oct 2, 2019 at 6:19 AM Jose Luis Blanco-Claraco < notifications@github.com> wrote:

Any news on this problem?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/MOLAorg/mola/issues/15?email_source=notifications&email_token=ACMUMV537QJDZ7CR2E5SG7DQMO5H5A5CNFSM4IYIC6C2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEACY7WA#issuecomment-537235416, or mute the thread https://github.com/notifications/unsubscribe-auth/ACMUMVZBJITJYP2GNNC5XLLQMO5H5ANCNFSM4IYIC6CQ .

jlblancoc commented 4 years ago

Can you describe which fork of gtsam to use for successful use with MOLA and how to actually build it with cmake-gui or command prompt on ubuntu 16.

You can use the current gtsam master branch, and build it with:

cd gtsam
mkdir build
cd build
# NOTE: Set GTSAM_BUILD_WITH_MARCH_NATIVE to OFF only for Ubuntu 16.04 !! 
cmake .. -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF 
make gtsam && make gtsam_unstable

You'll need to upgrade cmake to 3.9 or newer. I prefer downloading cmake sources and building them setting CMAKE_INSTALL_PREFIX to some directory under home, e.g.:

cd cmake-3.15.2
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/local_install_cmake/
make install -j4
$HOME/local_install_cmake/bin/cmake --version

Then go on with the normal compilation of mola:

cd mola
# Update the git repo if needed
cd build
# Change the build directories below as needed to match your local directories:
$HOME/local_install_cmake/bin/cmake .. -DGTSAM_DIR=$HOME/gtsam/build
aaravrav142 commented 4 years ago

Hi @jlblancoc

Thank you for the detailed instructions. I am getting the following error when building mola now.

/home/arav/extra_lib/gtsam/gtsam/base/Vector.h:72:1: error: static assertion failed: Error: GTSAM was built against a different version of Eigen
 static_assert(

Should I make gtsam with -DGTSAM_USE_SYSTEM_EIGEN=ON What version of eigen is required to successfully build with GTSAM? I want to use it with ROS kinetic on ubuntu 16

Thanks

Alex

carleft commented 4 years ago

Any news on this problem?

I changed my ubuntu system version from 16.04 to 18.04, and there were no errors. Thanks a lot for your answer!

jlblancoc commented 4 years ago

@carleft :

I changed my ubuntu system version from 16.04 to 18.04, and there were no errors. Thanks a lot for your answer!

Great!

@aaravrav142 :

Should I make gtsam with -DGTSAM_USE_SYSTEM_EIGEN=ON What version of eigen is required to successfully build with GTSAM? I want to use it with ROS kinetic on ubuntu 16

If you want to use ros, gtsam, mola, all together, probably the easiest solution is to: 1) Make sure you have sourced ROS setup.bash, which most people normally do automatically via its .bashrc file. 2) Then configure GTSAM with -DGTSAM_USE_SYSTEM_EIGEN=ON. Take a look at CMakeCache.txt to check if the version of Eigen that CMake found is under /opt/ros/..., which I guess will be the case. 3) Build gtsam, then build mola. 4) Build your own apps, as needed.

All programs should now have found ROS' version of Eigen.