cartographer_ros icon indicating copy to clipboard operation
cartographer_ros copied to clipboard

Unable to install cartographer for ROS Noetic.

Open yashmewada9618 opened this issue 2 years ago • 1 comments

I am trying to install a cartographer for ROS Noetic by following this page. https://google-cartographer-ros.readthedocs.io/en/latest/compilation.html Everything works fine until I run the "catkin_make_isolated --install --use-ninja" command. I have tried both building it into a separate package and building it within the catkin_ws folder where all my other ROS packages exist.

When I run the catkin_make _isolated command it throws the below error!

**FAILED: cartographer.mapping.map_builder_test 
: && /usr/bin/c++  -O3 -DNDEBUG  -rdynamic CMakeFiles/cartographer.mapping.map_builder_test.dir/cartographer/mapping/map_builder_test.cc.o  -o cartographer.mapping.map_builder_test  libcartographer.a  lib/libgmock_main.a  -lpthread  libcartographer_test_library.a  lib/libgmock.a  lib/libgtest.a  libcartographer.a  /usr/lib/libceres.so.1.14.0  -lglog  /usr/lib/x86_64-linux-gnu/libgflags.so.2.2.2  -llua5.2  -lm  /usr/lib/x86_64-linux-gnu/libboost_iostreams.so.1.71.0  -lglog  /usr/lib/x86_64-linux-gnu/libgflags.so.2.2.2  -lcairo  /usr/local/lib/libprotobuf.a  /usr/local/lib/libabsl_leak_check.a  /usr/local/lib/libabsl_cord.a  /usr/local/lib/libabsl_cordz_info.a  /usr/local/lib/libabsl_cord_internal.a  /usr/local/lib/libabsl_cordz_functions.a  /usr/local/lib/libabsl_cordz_handle.a  /usr/local/lib/libabsl_hash.a  /usr/local/lib/libabsl_city.a  /usr/local/lib/libabsl_bad_variant_access.a  /usr/local/lib/libabsl_low_level_hash.a  /usr/local/lib/libabsl_raw_hash_set.a  /usr/local/lib/libabsl_bad_optional_access.a  /usr/local/lib/libabsl_hashtablez_sampler.a  /usr/local/lib/libabsl_exponential_biased.a  /usr/local/lib/libabsl_str_format_internal.a  /usr/local/lib/libabsl_synchronization.a  /usr/local/lib/libabsl_stacktrace.a  /usr/local/lib/libabsl_graphcycles_internal.a  /usr/local/lib/libabsl_symbolize.a  /usr/local/lib/libabsl_malloc_internal.a  /usr/local/lib/libabsl_debugging_internal.a  /usr/local/lib/libabsl_demangle_internal.a  /usr/local/lib/libabsl_time.a  /usr/local/lib/libabsl_strings.a  /usr/local/lib/libabsl_strings_internal.a  /usr/local/lib/libabsl_base.a  /usr/local/lib/libabsl_spinlock_wait.a  -lpthread  -lrt  /usr/local/lib/libabsl_throw_delegate.a  /usr/local/lib/libabsl_raw_logging_internal.a  /usr/local/lib/libabsl_log_severity.a  /usr/local/lib/libabsl_int128.a  /usr/local/lib/libabsl_civil_time.a  /usr/local/lib/libabsl_time_zone.a  -lpthread && :
/usr/bin/ld: libcartographer.a(ordered_multi_queue.cc.o): in function `cartographer::sensor::OrderedMultiQueue::CannotMakeProgress(cartographer::sensor::QueueKey const&)':
ordered_multi_queue.cc:(.text+0x39c): undefined reference to `google::LogMessage::LogMessage(char const*, int, int, long, void (google::LogMessage::*)())'
/usr/bin/ld: libcartographer.a(ordered_multi_queue.cc.o): in function `cartographer::sensor::OrderedMultiQueue::Add(cartographer::sensor::QueueKey const&, std::unique_ptr<cartographer::sensor::Data, std::default_delete<cartographer::sensor::Data> >)':
ordered_multi_queue.cc:(.text+0x140a): undefined reference to `google::LogMessage::LogMessage(char const*, int, int, long, void (google::LogMessage::*)())'
/usr/bin/ld: libcartographer.a(motion_filter.cc.o): in function `cartographer::mapping::MotionFilter::IsSimilar(std::chrono::time_point<cartographer::common::UniversalTimeScaleClock, std::chrono::duration<long, std::ratio<1l, 10000000l> > >, cartographer::transform::Rigid3<double> const&)':
motion_filter.cc:(.text+0x2e7): undefined reference to `google::LogMessage::LogMessage(char const*, int, int, long, void (google::LogMessage::*)())'
/usr/bin/ld: libcartographer.a(imu_based_pose_extrapolator.cc.o): in function `cartographer::mapping::ImuBasedPoseExtrapolator::ExtrapolatePosesWithGravity(std::vector<std::chrono::time_point<cartographer::common::UniversalTimeScaleClock, std::chrono::duration<long, std::ratio<1l, 10000000l> > >, std::allocator<std::chrono::time_point<cartographer::common::UniversalTimeScaleClock, std::chrono::duration<long, std::ratio<1l, 10000000l> > > > > const&)':
imu_based_pose_extrapolator.cc:(.text+0x3a04): undefined reference to `google::LogMessage::LogMessage(char const*, int, int, long, void (google::LogMessage::*)())'
collect2: error: ld returned 1 exit status
[22/61] Linking CXX executable cartogr...al.3d.local_trajectory_builder_3d_test
FAILED: cartographer.mapping.internal.3d.local_trajectory_builder_3d_test 
: && /usr/bin/c++  -O3 -DNDEBUG  -rdynamic CMakeFiles/cartographer.mapping.internal.3d.local_trajectory_builder_3d_test.dir/cartographer/mapping/internal/3d/local_trajectory_builder_3d_test.cc.o  -o cartographer.mapping.internal.3d.local_trajectory_builder_3d_test  libcartographer.a  lib/libgmock_main.a  -lpthread  libcartographer_test_library.a  lib/libgmock.a  lib/libgtest.a  libcartographer.a  /usr/lib/libceres.so.1.14.0  -lglog  /usr/lib/x86_64-linux-gnu/libgflags.so.2.2.2  -llua5.2  -lm  /usr/lib/x86_64-linux-gnu/libboost_iostreams.so.1.71.0  -lglog  /usr/lib/x86_64-linux-gnu/libgflags.so.2.2.2  -lcairo  /usr/local/lib/libprotobuf.a  /usr/local/lib/libabsl_leak_check.a  /usr/local/lib/libabsl_cord.a  /usr/local/lib/libabsl_cordz_info.a  /usr/local/lib/libabsl_cord_internal.a  /usr/local/lib/libabsl_cordz_functions.a  /usr/local/lib/libabsl_cordz_handle.a  /usr/local/lib/libabsl_hash.a  /usr/local/lib/libabsl_city.a  /usr/local/lib/libabsl_bad_variant_access.a  /usr/local/lib/libabsl_low_level_hash.a  /usr/local/lib/libabsl_raw_hash_set.a  /usr/local/lib/libabsl_bad_optional_access.a  /usr/local/lib/libabsl_hashtablez_sampler.a  /usr/local/lib/libabsl_exponential_biased.a  /usr/local/lib/libabsl_str_format_internal.a  /usr/local/lib/libabsl_synchronization.a  /usr/local/lib/libabsl_stacktrace.a  /usr/local/lib/libabsl_graphcycles_internal.a  /usr/local/lib/libabsl_symbolize.a  /usr/local/lib/libabsl_malloc_internal.a  /usr/local/lib/libabsl_debugging_internal.a  /usr/local/lib/libabsl_demangle_internal.a  /usr/local/lib/libabsl_time.a  /usr/local/lib/libabsl_strings.a  /usr/local/lib/libabsl_strings_internal.a  /usr/local/lib/libabsl_base.a  /usr/local/lib/libabsl_spinlock_wait.a  -lpthread  -lrt  /usr/local/lib/libabsl_throw_delegate.a  /usr/local/lib/libabsl_raw_logging_internal.a  /usr/local/lib/libabsl_log_severity.a  /usr/local/lib/libabsl_int128.a  /usr/local/lib/libabsl_civil_time.a  /usr/local/lib/libabsl_time_zone.a  -lpthread && :
/usr/bin/ld: libcartographer.a(motion_filter.cc.o): in function `cartographer::mapping::MotionFilter::IsSimilar(std::chrono::time_point<cartographer::common::UniversalTimeScaleClock, std::chrono::duration<long, std::ratio<1l, 10000000l> > >, cartographer::transform::Rigid3<double> const&)':
motion_filter.cc:(.text+0x2e7): undefined reference to `google::LogMessage::LogMessage(char const*, int, int, long, void (google::LogMessage::*)())'
/usr/bin/ld: libcartographer.a(imu_based_pose_extrapolator.cc.o): in function `cartographer::mapping::ImuBasedPoseExtrapolator::ExtrapolatePosesWithGravity(std::vector<std::chrono::time_point<cartographer::common::UniversalTimeScaleClock, std::chrono::duration<long, std::ratio<1l, 10000000l> > >, std::allocator<std::chrono::time_point<cartographer::common::UniversalTimeScaleClock, std::chrono::duration<long, std::ratio<1l, 10000000l> > > > > const&)':
imu_based_pose_extrapolator.cc:(.text+0x3a04): undefined reference to `google::LogMessage::LogMessage(char const*, int, int, long, void (google::LogMessage::*)())'
collect2: error: ld returned 1 exit status
[27/61] Building CXX object CMakeFiles/cartographer.mapping.internal.optimization.cost_functions.landmark_cost...tion_3d_test.dir/cartographer/mapping/internal/optimization/cost_functions/landmark_cost_function_3d_test.cc.o
ninja: build stopped: subcommand failed.
<== Failed to process package 'cartographer': 
  Command '['ninja', '-j20', '-l20']' returned non-zero exit status 1.

Reproduce this error by running:
==> cd ~/cartographer_ros/build_isolated/cartographer && ninja -j20 -l20**

Also another alternative I took was to build it using docker file using the command. docker build - < Dockerfile.noetic available in cartographer_ros github but it shows below error, Step 6/26 : COPY cartographer_ros.rosinstall cartographer_ros/ COPY failed: file not found in build context or excluded by .dockerignore: stat cartographer_ros.rosinstall: file does not exist

Current ros distro : ROS Noetic

yashmewada9618 avatar Dec 06 '22 21:12 yashmewada9618

I'm having the same issue! Could you make it work?

RobAngier avatar Apr 20 '23 18:04 RobAngier