cartographer_ros
cartographer_ros copied to clipboard
Unable to install cartographer for ROS Noetic.
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
I'm having the same issue! Could you make it work?