Compare commits
10 Commits
b1b63a3cb1
...
eb5d0b2218
Author | SHA1 | Date |
---|---|---|
邱棚 | eb5d0b2218 | |
Katherine Scott | 877157a0d9 | |
Xùdōng Yáng | ef00de2317 | |
Wolfgang Hess | 9ab557476d | |
XiaotaoGuo | 1173e80c45 | |
Linh Nguyen | ca526de1f8 | |
Wolfgang Hess | dc6263414b | |
Wolfgang Hess | 7b8b29d6d5 | |
Takashi Ogura | 5663e340c0 | |
Wolfgang Hess | f76f849e6a |
|
@ -0,0 +1,15 @@
|
||||||
|
name: Debian Bullseye CI
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: ["master"]
|
||||||
|
pull_request:
|
||||||
|
branches: ["master"]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- name: Run the Dockerfile
|
||||||
|
run: docker build . -f Dockerfile.bullseye
|
|
@ -0,0 +1,15 @@
|
||||||
|
name: Ubuntu 22.04 CI
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: ["master"]
|
||||||
|
pull_request:
|
||||||
|
branches: ["master"]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- name: Run the Dockerfile
|
||||||
|
run: docker build . -f Dockerfile.jammy
|
|
@ -1,2 +1,3 @@
|
||||||
build
|
build
|
||||||
bazel-*
|
bazel-*
|
||||||
|
/scripts/abseil-cpp/
|
||||||
|
|
|
@ -29,6 +29,8 @@ include("${PROJECT_SOURCE_DIR}/cmake/functions.cmake")
|
||||||
google_initialize_cartographer_project()
|
google_initialize_cartographer_project()
|
||||||
google_enable_testing()
|
google_enable_testing()
|
||||||
|
|
||||||
|
list(APPEND CMAKE_PREFIX_PATH "/usr/local/stow/absl")
|
||||||
|
|
||||||
find_package(absl REQUIRED)
|
find_package(absl REQUIRED)
|
||||||
set(BOOST_COMPONENTS iostreams)
|
set(BOOST_COMPONENTS iostreams)
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
|
@ -268,6 +270,41 @@ target_include_directories(${PROJECT_NAME} SYSTEM PUBLIC
|
||||||
${PROTOBUF_INCLUDE_DIR})
|
${PROTOBUF_INCLUDE_DIR})
|
||||||
# TODO(hrapp): This should not explicitly list pthread and use
|
# TODO(hrapp): This should not explicitly list pthread and use
|
||||||
# PROTOBUF_LIBRARIES, but that failed on first try.
|
# PROTOBUF_LIBRARIES, but that failed on first try.
|
||||||
|
|
||||||
|
# 函数来递归查找库文件路径
|
||||||
|
function(get_library_paths target)
|
||||||
|
get_target_property(LINK_LIBS ${target} INTERFACE_LINK_LIBRARIES)
|
||||||
|
if(NOT LINK_LIBS)
|
||||||
|
message(WARNING "Target ${target} has no INTERFACE_LINK_LIBRARIES")
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
foreach(lib IN LISTS LINK_LIBS)
|
||||||
|
if(TARGET ${lib})
|
||||||
|
get_target_property(TYPE ${lib} TYPE)
|
||||||
|
if(TYPE STREQUAL "INTERFACE_LIBRARY")
|
||||||
|
get_library_paths(${lib})
|
||||||
|
elseif(TYPE STREQUAL "STATIC_LIBRARY" OR TYPE STREQUAL "SHARED_LIBRARY" OR TYPE STREQUAL "MODULE_LIBRARY")
|
||||||
|
get_target_property(LIB_PATH ${lib} LOCATION)
|
||||||
|
if(LIB_PATH)
|
||||||
|
message(STATUS "Library ${lib} is located at ${LIB_PATH}")
|
||||||
|
else()
|
||||||
|
message(WARNING "Library ${lib} has no LOCATION property")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
if("${lib}" MATCHES "-NOTFOUND$")
|
||||||
|
message(WARNING "Library ${lib} is NOTFOUND")
|
||||||
|
else()
|
||||||
|
message(STATUS "Linked library: ${lib}")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
|
||||||
|
# 获取absl::base目标的实际库文件路径
|
||||||
|
get_library_paths(absl::base)
|
||||||
|
|
||||||
target_link_libraries(${PROJECT_NAME} PUBLIC ${PROTOBUF_LIBRARY}
|
target_link_libraries(${PROJECT_NAME} PUBLIC ${PROTOBUF_LIBRARY}
|
||||||
absl::algorithm
|
absl::algorithm
|
||||||
absl::base
|
absl::base
|
||||||
|
|
|
@ -22,7 +22,7 @@ ENV CC=$cc
|
||||||
ENV CXX=$cxx
|
ENV CXX=$cxx
|
||||||
|
|
||||||
# This base image doesn't ship with sudo, apt-utils. tzdata is installed here to avoid hanging later
|
# This base image doesn't ship with sudo, apt-utils. tzdata is installed here to avoid hanging later
|
||||||
# when it would wait for user input.
|
# when it would wait for user input.
|
||||||
RUN apt-get update && apt-get install -y sudo apt-utils tzdata && rm -rf /var/lib/apt/lists/*
|
RUN apt-get update && apt-get install -y sudo apt-utils tzdata && rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
COPY scripts/install_debs_cmake.sh cartographer/scripts/
|
COPY scripts/install_debs_cmake.sh cartographer/scripts/
|
||||||
|
@ -31,11 +31,5 @@ COPY scripts/install_abseil.sh cartographer/scripts/
|
||||||
RUN cartographer/scripts/install_abseil.sh && rm -rf /var/lib/apt/lists/*
|
RUN cartographer/scripts/install_abseil.sh && rm -rf /var/lib/apt/lists/*
|
||||||
COPY scripts/install_proto3.sh cartographer/scripts/
|
COPY scripts/install_proto3.sh cartographer/scripts/
|
||||||
RUN cartographer/scripts/install_proto3.sh && rm -rf protobuf
|
RUN cartographer/scripts/install_proto3.sh && rm -rf protobuf
|
||||||
COPY scripts/install_grpc.sh cartographer/scripts/
|
|
||||||
RUN cartographer/scripts/install_grpc.sh && rm -rf grpc
|
|
||||||
COPY scripts/install_async_grpc.sh cartographer/scripts/
|
|
||||||
RUN cartographer/scripts/install_async_grpc.sh && rm -rf async_grpc
|
|
||||||
COPY scripts/install_prometheus_cpp.sh cartographer/scripts/
|
|
||||||
RUN cartographer/scripts/install_prometheus_cpp.sh && rm -rf prometheus-cpp
|
|
||||||
COPY . cartographer
|
COPY . cartographer
|
||||||
RUN cartographer/scripts/install_cartographer_cmake_with_grpc.sh && rm -rf cartographer
|
RUN cartographer/scripts/install_cartographer_cmake.sh && rm -rf cartographer
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
# Copyright 2020 The Cartographer Authors
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
FROM ubuntu:bionic
|
||||||
|
|
||||||
|
ARG cc
|
||||||
|
ARG cxx
|
||||||
|
|
||||||
|
# Set the preferred C/C++ compiler toolchain, if given (otherwise default).
|
||||||
|
ENV CC=$cc
|
||||||
|
ENV CXX=$cxx
|
||||||
|
|
||||||
|
# This base image doesn't ship with sudo, apt-utils. tzdata is installed here to avoid hanging later
|
||||||
|
# when it would wait for user input.
|
||||||
|
RUN apt-get update && apt-get install -y sudo apt-utils tzdata && rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
COPY scripts/install_debs_cmake.sh cartographer/scripts/
|
||||||
|
RUN cartographer/scripts/install_debs_cmake.sh && rm -rf /var/lib/apt/lists/*
|
||||||
|
COPY scripts/install_abseil.sh cartographer/scripts/
|
||||||
|
RUN cartographer/scripts/install_abseil.sh && rm -rf /var/lib/apt/lists/*
|
||||||
|
COPY scripts/install_proto3.sh cartographer/scripts/
|
||||||
|
RUN cartographer/scripts/install_proto3.sh && rm -rf protobuf
|
||||||
|
COPY scripts/install_grpc.sh cartographer/scripts/
|
||||||
|
RUN cartographer/scripts/install_grpc.sh && rm -rf grpc
|
||||||
|
COPY scripts/install_async_grpc.sh cartographer/scripts/
|
||||||
|
RUN cartographer/scripts/install_async_grpc.sh && rm -rf async_grpc
|
||||||
|
COPY scripts/install_prometheus_cpp.sh cartographer/scripts/
|
||||||
|
RUN cartographer/scripts/install_prometheus_cpp.sh && rm -rf prometheus-cpp
|
||||||
|
COPY . cartographer
|
||||||
|
RUN cartographer/scripts/install_cartographer_cmake_with_grpc.sh && rm -rf cartographer
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright 2016 The Cartographer Authors
|
# Copyright 2022 The Cartographer Authors
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
@ -12,7 +12,7 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
FROM debian:stretch
|
FROM debian:bullseye
|
||||||
|
|
||||||
ARG cc
|
ARG cc
|
||||||
ARG cxx
|
ARG cxx
|
||||||
|
@ -26,11 +26,5 @@ RUN apt-get update && apt-get install -y sudo && rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
COPY scripts/install_debs_cmake.sh cartographer/scripts/
|
COPY scripts/install_debs_cmake.sh cartographer/scripts/
|
||||||
RUN cartographer/scripts/install_debs_cmake.sh && rm -rf /var/lib/apt/lists/*
|
RUN cartographer/scripts/install_debs_cmake.sh && rm -rf /var/lib/apt/lists/*
|
||||||
COPY scripts/install_abseil.sh cartographer/scripts/
|
|
||||||
RUN cartographer/scripts/install_abseil.sh && rm -rf /var/lib/apt/lists/*
|
|
||||||
COPY scripts/install_ceres.sh cartographer/scripts/
|
|
||||||
RUN cartographer/scripts/install_ceres.sh && rm -rf ceres-solver
|
|
||||||
COPY scripts/install_proto3.sh cartographer/scripts/
|
|
||||||
RUN cartographer/scripts/install_proto3.sh && rm -rf protobuf
|
|
||||||
COPY . cartographer
|
COPY . cartographer
|
||||||
RUN cartographer/scripts/install_cartographer_cmake.sh && rm -rf cartographer
|
RUN cartographer/scripts/install_cartographer_cmake.sh && rm -rf cartographer
|
|
@ -22,7 +22,7 @@ ENV CC=$cc
|
||||||
ENV CXX=$cxx
|
ENV CXX=$cxx
|
||||||
|
|
||||||
# This base image doesn't ship with sudo, apt-utils. tzdata is installed here to avoid hanging later
|
# This base image doesn't ship with sudo, apt-utils. tzdata is installed here to avoid hanging later
|
||||||
# when it would wait for user input.
|
# when it would wait for user input.
|
||||||
RUN apt-get update && apt-get install -y sudo apt-utils tzdata && rm -rf /var/lib/apt/lists/*
|
RUN apt-get update && apt-get install -y sudo apt-utils tzdata && rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
COPY scripts/install_debs_cmake.sh cartographer/scripts/
|
COPY scripts/install_debs_cmake.sh cartographer/scripts/
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
# Copyright 2020 The Cartographer Authors
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
FROM ubuntu:jammy
|
||||||
|
|
||||||
|
ARG cc
|
||||||
|
ARG cxx
|
||||||
|
|
||||||
|
# Set the preferred C/C++ compiler toolchain, if given (otherwise default).
|
||||||
|
ENV CC=$cc
|
||||||
|
ENV CXX=$cxx
|
||||||
|
|
||||||
|
# This base image doesn't ship with sudo, apt-utils. tzdata is installed here to avoid hanging later
|
||||||
|
# when it would wait for user input.
|
||||||
|
RUN apt-get update && apt-get install -y sudo apt-utils tzdata && rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
COPY scripts/install_debs_cmake.sh cartographer/scripts/
|
||||||
|
RUN cartographer/scripts/install_debs_cmake.sh && rm -rf /var/lib/apt/lists/*
|
||||||
|
COPY . cartographer
|
||||||
|
RUN cartographer/scripts/install_cartographer_cmake.sh && rm -rf cartographer
|
37
README.rst
37
README.rst
|
@ -16,7 +16,7 @@
|
||||||
Cartographer
|
Cartographer
|
||||||
============
|
============
|
||||||
|
|
||||||
|build| |docs| |license|
|
|build-jammy| |build-focal| |build-bionic| |build-bullseye| |build-buster| |docs| |license|
|
||||||
|
|
||||||
Purpose
|
Purpose
|
||||||
=======
|
=======
|
||||||
|
@ -30,6 +30,23 @@ configurations.
|
||||||
.. _Cartographer: https://github.com/cartographer-project/cartographer
|
.. _Cartographer: https://github.com/cartographer-project/cartographer
|
||||||
.. _SLAM: https://en.wikipedia.org/wiki/Simultaneous_localization_and_mapping
|
.. _SLAM: https://en.wikipedia.org/wiki/Simultaneous_localization_and_mapping
|
||||||
|
|
||||||
|
A Note for ROS Users
|
||||||
|
====================
|
||||||
|
|
||||||
|
**Cartographer is no longer actively maintained.**
|
||||||
|
On rare occasions critical pull requests may be merged, but no new development is currently taking place, including issue response.
|
||||||
|
If you are installing Cartographer in ROS 1 / ROS 2 using a binary package that package is a fork of this repository.
|
||||||
|
The ROS fork of Cartographer is only maintained in a limited capacity.
|
||||||
|
No new development takes place on this fork, but pull requests may be merged at the maintainers' discretion.
|
||||||
|
|
||||||
|
The ROS fork of Cartographer, and the ROS wrapper library, can be found at these locations:
|
||||||
|
|
||||||
|
- `Cartographer Fork <https://github.com/ros2/cartographer>`_
|
||||||
|
- `Cartographer ROS <https://github.com/ros2/cartographer_ros>`_
|
||||||
|
|
||||||
|
Additional discussion can be found in `this ROS Discourse thread<https://discourse.ros.org/t/rolling-and-soon-humble-release-of-both-cartographer-and-cartographer-ros-v2-and-call-for-testing/25137>`_.
|
||||||
|
|
||||||
|
|
||||||
Getting started
|
Getting started
|
||||||
===============
|
===============
|
||||||
|
|
||||||
|
@ -83,10 +100,26 @@ Slides of these Cartographer Open House meetings are listed below.
|
||||||
- June 22, 2017: `Slides <https://storage.googleapis.com/cartographer-public-data/cartographer-open-house/170622/sildes.pdf>`_
|
- June 22, 2017: `Slides <https://storage.googleapis.com/cartographer-public-data/cartographer-open-house/170622/sildes.pdf>`_
|
||||||
- June 8, 2017: `Slides <https://storage.googleapis.com/cartographer-public-data/cartographer-open-house/170608/slides.pdf>`_
|
- June 8, 2017: `Slides <https://storage.googleapis.com/cartographer-public-data/cartographer-open-house/170608/slides.pdf>`_
|
||||||
|
|
||||||
.. |build| image:: https://github.com/cartographer-project/cartographer/actions/workflows/ci-focal.yaml/badge.svg
|
.. |build-jammy| image:: https://github.com/cartographer-project/cartographer/actions/workflows/ci-jammy.yaml/badge.svg
|
||||||
|
:alt: Ubuntu 22.04 Build Status
|
||||||
|
:scale: 100%
|
||||||
|
:target: https://github.com/cartographer-project/cartographer/actions/workflows/ci-jammy.yaml
|
||||||
|
.. |build-focal| image:: https://github.com/cartographer-project/cartographer/actions/workflows/ci-focal.yaml/badge.svg
|
||||||
:alt: Ubuntu 20.04 Build Status
|
:alt: Ubuntu 20.04 Build Status
|
||||||
:scale: 100%
|
:scale: 100%
|
||||||
:target: https://github.com/cartographer-project/cartographer/actions/workflows/ci-focal.yaml
|
:target: https://github.com/cartographer-project/cartographer/actions/workflows/ci-focal.yaml
|
||||||
|
.. |build-bionic| image:: https://github.com/cartographer-project/cartographer/actions/workflows/ci-bionic.yaml/badge.svg
|
||||||
|
:alt: Ubuntu 18.04 Build Status
|
||||||
|
:scale: 100%
|
||||||
|
:target: https://github.com/cartographer-project/cartographer/actions/workflows/ci-bionic.yaml
|
||||||
|
.. |build-bullseye| image:: https://github.com/cartographer-project/cartographer/actions/workflows/ci-bullseye.yaml/badge.svg
|
||||||
|
:alt: Debian Bullseye Build Status
|
||||||
|
:scale: 100%
|
||||||
|
:target: https://github.com/cartographer-project/cartographer/actions/workflows/ci-bullseye.yaml
|
||||||
|
.. |build-buster| image:: https://github.com/cartographer-project/cartographer/actions/workflows/ci-buster.yaml/badge.svg
|
||||||
|
:alt: Debian Buster Build Status
|
||||||
|
:scale: 100%
|
||||||
|
:target: https://github.com/cartographer-project/cartographer/actions/workflows/ci-buster.yaml
|
||||||
.. |docs| image:: https://readthedocs.org/projects/google-cartographer/badge/?version=latest
|
.. |docs| image:: https://readthedocs.org/projects/google-cartographer/badge/?version=latest
|
||||||
:alt: Documentation Status
|
:alt: Documentation Status
|
||||||
:scale: 100%
|
:scale: 100%
|
||||||
|
|
|
@ -20,11 +20,10 @@ def cartographer_repositories():
|
||||||
_maybe(
|
_maybe(
|
||||||
http_archive,
|
http_archive,
|
||||||
name = "com_github_nelhage_rules_boost",
|
name = "com_github_nelhage_rules_boost",
|
||||||
sha256 = "371f49e7b29e44a718baf8b9a2dd3eca865005a851c9ecf8fb6a10a715aa58dd",
|
sha256 = "f7d620c0061631d5b7685cd1065f2e2bf0768559555010a75e8e4720006f5867",
|
||||||
strip_prefix = "rules_boost-a5a95642f6097f8949020646ffe89d7243008981",
|
strip_prefix = "rules_boost-c3fae06e819ed8b93e31b150387dce4864758643",
|
||||||
urls = [
|
urls = [
|
||||||
"https://mirror.bazel.build/github.com/nelhage/rules_boost/archive/a5a95642f6097f8949020646ffe89d7243008981.tar.gz",
|
"https://github.com/nelhage/rules_boost/archive/c3fae06e819ed8b93e31b150387dce4864758643.tar.gz",
|
||||||
"https://github.com/nelhage/rules_boost/archive/a5a95642f6097f8949020646ffe89d7243008981.tar.gz",
|
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -374,6 +374,8 @@ void OptimizationProblem3D::Solve(
|
||||||
|
|
||||||
auto imu_it = imu_data.begin();
|
auto imu_it = imu_data.begin();
|
||||||
auto prev_node_it = node_it;
|
auto prev_node_it = node_it;
|
||||||
|
|
||||||
|
bool gravity_block_added = false;
|
||||||
for (++node_it; node_it != trajectory_end; ++node_it) {
|
for (++node_it; node_it != trajectory_end; ++node_it) {
|
||||||
const NodeId first_node_id = prev_node_it->id;
|
const NodeId first_node_id = prev_node_it->id;
|
||||||
const NodeSpec3D& first_node_data = prev_node_it->data;
|
const NodeSpec3D& first_node_data = prev_node_it->data;
|
||||||
|
@ -432,6 +434,7 @@ void OptimizationProblem3D::Solve(
|
||||||
C_nodes.at(third_node_id).translation(),
|
C_nodes.at(third_node_id).translation(),
|
||||||
&trajectory_data.gravity_constant,
|
&trajectory_data.gravity_constant,
|
||||||
trajectory_data.imu_calibration.data());
|
trajectory_data.imu_calibration.data());
|
||||||
|
gravity_block_added = true;
|
||||||
}
|
}
|
||||||
problem.AddResidualBlock(
|
problem.AddResidualBlock(
|
||||||
RotationCostFunction3D::CreateAutoDiffCostFunction(
|
RotationCostFunction3D::CreateAutoDiffCostFunction(
|
||||||
|
@ -442,8 +445,11 @@ void OptimizationProblem3D::Solve(
|
||||||
trajectory_data.imu_calibration.data());
|
trajectory_data.imu_calibration.data());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Force gravity constant to be positive.
|
if (gravity_block_added) {
|
||||||
problem.SetParameterLowerBound(&trajectory_data.gravity_constant, 0, 0.0);
|
// Force gravity constant to be positive.
|
||||||
|
problem.SetParameterLowerBound(&trajectory_data.gravity_constant, 0,
|
||||||
|
0.0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@ macro(_parse_arguments ARGS)
|
||||||
"${OPTIONS}" "${ONE_VALUE_ARG}" "${MULTI_VALUE_ARGS}" ${ARGS})
|
"${OPTIONS}" "${ONE_VALUE_ARG}" "${MULTI_VALUE_ARGS}" ${ARGS})
|
||||||
endmacro(_parse_arguments)
|
endmacro(_parse_arguments)
|
||||||
|
|
||||||
macro(_common_compile_stuff VISIBILITY)
|
macro(_common_compile_stuff)
|
||||||
set(TARGET_COMPILE_FLAGS "${TARGET_COMPILE_FLAGS} ${GOOG_CXX_FLAGS}")
|
set(TARGET_COMPILE_FLAGS "${TARGET_COMPILE_FLAGS} ${GOOG_CXX_FLAGS}")
|
||||||
|
|
||||||
set_target_properties(${NAME} PROPERTIES
|
set_target_properties(${NAME} PROPERTIES
|
||||||
|
@ -34,7 +34,7 @@ endmacro(_common_compile_stuff)
|
||||||
|
|
||||||
function(google_test NAME ARG_SRC)
|
function(google_test NAME ARG_SRC)
|
||||||
add_executable(${NAME} ${ARG_SRC})
|
add_executable(${NAME} ${ARG_SRC})
|
||||||
_common_compile_stuff("PRIVATE")
|
_common_compile_stuff()
|
||||||
|
|
||||||
# Make sure that gmock always includes the correct gtest/gtest.h.
|
# Make sure that gmock always includes the correct gtest/gtest.h.
|
||||||
target_include_directories("${NAME}" SYSTEM PRIVATE
|
target_include_directories("${NAME}" SYSTEM PRIVATE
|
||||||
|
@ -49,7 +49,7 @@ function(google_binary NAME)
|
||||||
|
|
||||||
add_executable(${NAME} ${ARG_SRCS})
|
add_executable(${NAME} ${ARG_SRCS})
|
||||||
|
|
||||||
_common_compile_stuff("PRIVATE")
|
_common_compile_stuff()
|
||||||
|
|
||||||
install(TARGETS "${NAME}" RUNTIME DESTINATION bin)
|
install(TARGETS "${NAME}" RUNTIME DESTINATION bin)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
|
@ -106,7 +106,7 @@ TRAJECTORY_BUILDER_3D = {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
-- When setting use_intensites to true, the intensity_cost_function_options_0
|
-- When setting use_intensities to true, the intensity_cost_function_options_0
|
||||||
-- parameter in ceres_scan_matcher has to be set up as well or otherwise
|
-- parameter in ceres_scan_matcher has to be set up as well or otherwise
|
||||||
-- CeresScanMatcher will CHECK-fail.
|
-- CeresScanMatcher will CHECK-fail.
|
||||||
use_intensities = false,
|
use_intensities = false,
|
||||||
|
|
|
@ -75,10 +75,6 @@ On Ubuntu 18.04 (Bionic):
|
||||||
:language: bash
|
:language: bash
|
||||||
:lines: 20-
|
:lines: 20-
|
||||||
|
|
||||||
.. literalinclude:: ../../scripts/install_ceres.sh
|
|
||||||
:language: bash
|
|
||||||
:lines: 20-
|
|
||||||
|
|
||||||
.. literalinclude:: ../../scripts/install_proto3.sh
|
.. literalinclude:: ../../scripts/install_proto3.sh
|
||||||
:language: bash
|
:language: bash
|
||||||
:lines: 20-
|
:lines: 20-
|
||||||
|
@ -97,8 +93,8 @@ on systems that meet the following requirements:
|
||||||
|
|
||||||
* 64-bit, modern CPU (e.g. 3rd generation i7)
|
* 64-bit, modern CPU (e.g. 3rd generation i7)
|
||||||
* 16 GB RAM
|
* 16 GB RAM
|
||||||
* Ubuntu 18.04 (Bionic), 20.04 (Focal)
|
* Ubuntu 18.04 (Bionic), 20.04 (Focal), 22.04 (Jammy)
|
||||||
* gcc version 6.3.0, 7.5.0, 9.3.0
|
* gcc version 7.5.0, 8.3.0, 9.3.0, 10.2.1, 11.2.0
|
||||||
|
|
||||||
Known Issues
|
Known Issues
|
||||||
------------
|
------------
|
||||||
|
|
|
@ -43,7 +43,6 @@
|
||||||
|
|
||||||
<depend>libboost-iostreams-dev</depend>
|
<depend>libboost-iostreams-dev</depend>
|
||||||
<depend>eigen</depend>
|
<depend>eigen</depend>
|
||||||
<depend>libabsl-dev</depend>
|
|
||||||
<depend>libcairo2-dev</depend>
|
<depend>libcairo2-dev</depend>
|
||||||
<depend>libceres-dev</depend>
|
<depend>libceres-dev</depend>
|
||||||
<depend>libgflags-dev</depend>
|
<depend>libgflags-dev</depend>
|
||||||
|
|
|
@ -19,7 +19,7 @@ set -o verbose
|
||||||
|
|
||||||
git clone https://github.com/abseil/abseil-cpp.git
|
git clone https://github.com/abseil/abseil-cpp.git
|
||||||
cd abseil-cpp
|
cd abseil-cpp
|
||||||
git checkout d902eb869bcfacc1bad14933ed9af4bed006d481
|
git checkout 215105818dfde3174fe799600bb0f3cae233d0bf # 20211102.0
|
||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
cmake -G Ninja \
|
cmake -G Ninja \
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# Copyright 2016 The Cartographer Authors
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
|
|
||||||
set -o errexit
|
|
||||||
set -o verbose
|
|
||||||
|
|
||||||
VERSION="1.13.0"
|
|
||||||
|
|
||||||
# Build and install Ceres.
|
|
||||||
git clone https://ceres-solver.googlesource.com/ceres-solver
|
|
||||||
cd ceres-solver
|
|
||||||
git checkout tags/${VERSION}
|
|
||||||
mkdir build
|
|
||||||
cd build
|
|
||||||
cmake .. -G Ninja -DCXX11=ON
|
|
||||||
ninja
|
|
||||||
CTEST_OUTPUT_ON_FAILURE=1 ninja test
|
|
||||||
sudo ninja install
|
|
|
@ -27,6 +27,7 @@ sudo apt-get install -y \
|
||||||
google-mock \
|
google-mock \
|
||||||
libboost-all-dev \
|
libboost-all-dev \
|
||||||
libcairo2-dev \
|
libcairo2-dev \
|
||||||
|
libceres-dev \
|
||||||
libcurl4-openssl-dev \
|
libcurl4-openssl-dev \
|
||||||
libeigen3-dev \
|
libeigen3-dev \
|
||||||
libgflags-dev \
|
libgflags-dev \
|
||||||
|
@ -35,19 +36,16 @@ sudo apt-get install -y \
|
||||||
libsuitesparse-dev \
|
libsuitesparse-dev \
|
||||||
lsb-release \
|
lsb-release \
|
||||||
ninja-build \
|
ninja-build \
|
||||||
|
python3-sphinx \
|
||||||
stow
|
stow
|
||||||
|
|
||||||
# Install Ceres Solver and Protocol Buffers support if available.
|
# Install Protocol Buffers and Abseil if available.
|
||||||
# No need to build it ourselves.
|
# No need to build it ourselves.
|
||||||
if [[ "$(lsb_release -sc)" = "focal" || "$(lsb_release -sc)" = "buster" ]]
|
case "$(lsb_release -sc)" in
|
||||||
then
|
jammy|bullseye)
|
||||||
sudo apt-get install -y python3-sphinx libgmock-dev libceres-dev protobuf-compiler
|
sudo apt-get install -y libgmock-dev protobuf-compiler libabsl-dev ;;
|
||||||
else
|
focal|buster)
|
||||||
sudo apt-get install -y python-sphinx
|
sudo apt-get install -y libgmock-dev protobuf-compiler ;;
|
||||||
if [[ "$(lsb_release -sc)" = "bionic" ]]
|
bionic)
|
||||||
then
|
;;
|
||||||
sudo apt-get install -y libceres-dev
|
esac
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue