cartographer源码安装

29 篇文章 4 订阅

环境:ubuntu16

1

把github源码导入到gitee
搜索三个仓库:
cartographer
cartographer_ros
ceres-solver
之后下载需要。

2

https://google-cartographer-ros.readthedocs.io/en/latest/compilation.html#building-installation

sudo apt-get update
sudo apt-get install -y \
    clang \
    cmake \
    g++ \
    git \
    google-mock \
    libboost-all-dev \
    libcairo2-dev \
    libcurl4-openssl-dev \
    libeigen3-dev \
    libgflags-dev \
    libgoogle-glog-dev \
    liblua5.2-dev \
    libsuitesparse-dev \
    lsb-release \
    ninja-build \
    stow
sudo apt-get update
sudo apt-get install -y python-wstool python-rosdep ninja-build
mkdir catkin_ws
cd catkin_ws
wstool init src
wstool merge -t src https://raw.githubusercontent.com/cartographer-project/cartographer_ros/master/cartographer_ros.rosinstall
wstool update -t src

注意
下载源码需要修改文件.rosinstall仓库地址,根据自己导入的gitee仓库进行修改

# THIS IS AN AUTOGENERATED FILE, LAST GENERATED USING wstool ON 2020-09-01
- git:
    local-name: cartographer
    uri: https://gitee.com/juzhango/cartographer.git
    version: 1.0.0
- git:
    local-name: cartographer_ros
    uri: https://gitee.com/juzhango/cartographer_ros.git
    version: 1.0.0
- git:
    local-name: ceres-solver
    uri: https://gitee.com/juzhango/ceres-solver.git
    version: 1.13.0

源码下载完成。

3

导入protobuf仓库到自己的gitee
修改install_proto3.sh文件

#!/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="v3.4.1"

# Build and install proto3.
#git clone https://github.com/google/protobuf.git
git clone https://gitee.com/juzhango/protobuf.git
cd protobuf
git checkout tags/${VERSION}
mkdir build
cd build
cmake -G Ninja \
  -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
  -DCMAKE_BUILD_TYPE=Release \
  -Dprotobuf_BUILD_TESTS=OFF \
  ../cmake
ninja
sudo ninja install
src/cartographer/scripts/install_proto3.sh
sudo rosdep init
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y

4 build and install

catkin_make_isolated --install --use-ninja

5

src/
├── cartographer
│   ├── AUTHORS
│   ├── bazel
│   │   ├── repositories.bzl
│   │   └── third_party
│   │       ├── BUILD.bazel
│   │       ├── cairo
│   │       │   ├── BUILD.bazel
│   │       │   ├── cairo.BUILD
│   │       │   ├── cairo-features.h
│   │       │   └── config.h
│   │       ├── ceres.BUILD
│   │       ├── eigen.BUILD
│   │       ├── expat.BUILD
│   │       ├── fontconfig
│   │       │   ├── BUILD.bazel
│   │       │   ├── config.h
│   │       │   └── fontconfig.BUILD
│   │       ├── freetype2.BUILD
│   │       ├── gd.BUILD
│   │       ├── libjpeg.BUILD
│   │       ├── libpng.BUILD
│   │       ├── lua.BUILD
│   │       ├── pixman
│   │       │   ├── BUILD.bazel
│   │       │   ├── config.h
│   │       │   └── pixman.BUILD
│   │       └── zlib.BUILD
│   ├── BUILD.bazel
│   ├── cartographer
│   │   ├── BUILD.bazel
│   │   ├── cloud
│   │   │   ├── BUILD.bazel
│   │   │   ├── client
│   │   │   │   ├── map_builder_stub.cc
│   │   │   │   └── map_builder_stub.h
│   │   │   ├── internal
│   │   │   │   ├── client
│   │   │   │   │   ├── pose_graph_stub.cc
│   │   │   │   │   ├── pose_graph_stub.h
│   │   │   │   │   ├── trajectory_builder_stub.cc
│   │   │   │   │   └── trajectory_builder_stub.h
│   │   │   │   ├── client_server_test.cc
│   │   │   │   ├── handlers
│   │   │   │   │   ├── add_fixed_frame_pose_data_handler.cc
│   │   │   │   │   ├── add_fixed_frame_pose_data_handler.h
│   │   │   │   │   ├── add_fixed_frame_pose_data_handler_test.cc
│   │   │   │   │   ├── add_imu_data_handler.cc
│   │   │   │   │   ├── add_imu_data_handler.h
│   │   │   │   │   ├── add_imu_data_handler_test.cc
│   │   │   │   │   ├── add_landmark_data_handler.cc
│   │   │   │   │   ├── add_landmark_data_handler.h
│   │   │   │   │   ├── add_landmark_data_handler_test.cc
│   │   │   │   │   ├── add_odometry_data_handler.cc
│   │   │   │   │   ├── add_odometry_data_handler.h
│   │   │   │   │   ├── add_odometry_data_handler_test.cc
│   │   │   │   │   ├── add_rangefinder_data_handler.cc
│   │   │   │   │   ├── add_rangefinder_data_handler.h
│   │   │   │   │   ├── add_rangefinder_data_handler_test.cc
│   │   │   │   │   ├── add_sensor_data_batch_handler.cc
│   │   │   │   │   ├── add_sensor_data_batch_handler.h
│   │   │   │   │   ├── add_trajectory_handler.cc
│   │   │   │   │   ├── add_trajectory_handler.h
│   │   │   │   │   ├── add_trajectory_handler_test.cc
│   │   │   │   │   ├── finish_trajectory_handler.cc
│   │   │   │   │   ├── finish_trajectory_handler.h
│   │   │   │   │   ├── get_all_submap_poses.cc
│   │   │   │   │   ├── get_all_submap_poses.h
│   │   │   │   │   ├── get_constraints_handler.cc
│   │   │   │   │   ├── get_constraints_handler.h
│   │   │   │   │   ├── get_landmark_poses_handler.cc
│   │   │   │   │   ├── get_landmark_poses_handler.h
│   │   │   │   │   ├── get_landmark_poses_handler_test.cc
│   │   │   │   │   ├── get_local_to_global_transform_handler.cc
│   │   │   │   │   ├── get_local_to_global_transform_handler.h
│   │   │   │   │   ├── get_submap_handler.cc
│   │   │   │   │   ├── get_submap_handler.h
│   │   │   │   │   ├── get_trajectory_node_poses_handler.cc
│   │   │   │   │   ├── get_trajectory_node_poses_handler.h
│   │   │   │   │   ├── is_trajectory_finished_handler.cc
│   │   │   │   │   ├── is_trajectory_finished_handler.h
│   │   │   │   │   ├── is_trajectory_frozen_handler.cc
│   │   │   │   │   ├── is_trajectory_frozen_handler.h
│   │   │   │   │   ├── load_state_handler.cc
│   │   │   │   │   ├── load_state_handler.h
│   │   │   │   │   ├── receive_global_slam_optimizations_handler.cc
│   │   │   │   │   ├── receive_global_slam_optimizations_handler.h
│   │   │   │   │   ├── receive_local_slam_results_handler.cc
│   │   │   │   │   ├── receive_local_slam_results_handler.h
│   │   │   │   │   ├── run_final_optimization_handler.cc
│   │   │   │   │   ├── run_final_optimization_handler.h
│   │   │   │   │   ├── set_landmark_pose_handler.cc
│   │   │   │   │   ├── set_landmark_pose_handler.h
│   │   │   │   │   ├── set_landmark_pose_handler_test.cc
│   │   │   │   │   ├── write_state_handler.cc
│   │   │   │   │   └── write_state_handler.h
│   │   │   │   ├── local_trajectory_uploader.cc
│   │   │   │   ├── local_trajectory_uploader.h
│   │   │   │   ├── map_builder_context_impl.cc
│   │   │   │   ├── map_builder_context_impl.h
│   │   │   │   ├── map_builder_context_interface.h
│   │   │   │   ├── map_builder_server.cc
│   │   │   │   ├── map_builder_server.h
│   │   │   │   ├── sensor
│   │   │   │   │   ├── serialization.cc
│   │   │   │   │   └── serialization.h
│   │   │   │   └── testing
│   │   │   │       ├── handler_test.h
│   │   │   │       ├── mock_local_trajectory_uploader.h
│   │   │   │       ├── mock_map_builder_context.h
│   │   │   │       ├── test_helpers.cc
│   │   │   │       └── test_helpers.h
│   │   │   ├── map_builder_server_interface.cc
│   │   │   ├── map_builder_server_interface.h
│   │   │   ├── map_builder_server_main.cc
│   │   │   ├── map_builder_server_options.cc
│   │   │   ├── map_builder_server_options.h
│   │   │   ├── metrics
│   │   │   │   └── prometheus
│   │   │   │       ├── family_factory.cc
│   │   │   │       ├── family_factory.h
│   │   │   │       └── metrics_test.cc
│   │   │   └── proto
│   │   │       ├── map_builder_server_options.proto
│   │   │       └── map_builder_service.proto
│   │   ├── common
│   │   │   ├── blocking_queue.h
│   │   │   ├── blocking_queue_test.cc
│   │   │   ├── ceres_solver_options.cc
│   │   │   ├── ceres_solver_options.h
│   │   │   ├── config.h.cmake
│   │   │   ├── configuration_file_resolver.cc
│   │   │   ├── configuration_file_resolver.h
│   │   │   ├── configuration_files_test.cc
│   │   │   ├── fixed_ratio_sampler.cc
│   │   │   ├── fixed_ratio_sampler.h
│   │   │   ├── fixed_ratio_sampler_test.cc
│   │   │   ├── histogram.cc
│   │   │   ├── histogram.h
│   │   │   ├── internal
│   │   │   │   └── testing
│   │   │   │       ├── thread_pool_for_testing.cc
│   │   │   │       └── thread_pool_for_testing.h
│   │   │   ├── lockless_queue.h
│   │   │   ├── lockless_queue_test.cc
│   │   │   ├── lua.h
│   │   │   ├── lua_parameter_dictionary.cc
│   │   │   ├── lua_parameter_dictionary.h
│   │   │   ├── lua_parameter_dictionary_test.cc
│   │   │   ├── lua_parameter_dictionary_test_helpers.h
│   │   │   ├── make_unique.h
│   │   │   ├── math.h
│   │   │   ├── math_test.cc
│   │   │   ├── mutex.h
│   │   │   ├── optional.h
│   │   │   ├── optional_test.cc
│   │   │   ├── port.h
│   │   │   ├── proto
│   │   │   │   └── ceres_solver_options.proto
│   │   │   ├── rate_timer.h
│   │   │   ├── rate_timer_test.cc
│   │   │   ├── task.cc
│   │   │   ├── task.h
│   │   │   ├── task_test.cc
│   │   │   ├── thread_pool.cc
│   │   │   ├── thread_pool.h
│   │   │   ├── thread_pool_test.cc
│   │   │   ├── time.cc
│   │   │   └── time.h
│   │   ├── ground_truth
│   │   │   ├── autogenerate_ground_truth_main.cc
│   │   │   ├── compute_relations_metrics_main.cc
│   │   │   ├── proto
│   │   │   │   └── relations.proto
│   │   │   ├── relations_text_file.cc
│   │   │   └── relations_text_file.h
│   │   ├── io
│   │   │   ├── color.cc
│   │   │   ├── color.h
│   │   │   ├── coloring_points_processor.cc
│   │   │   ├── coloring_points_processor.h
│   │   │   ├── counting_points_processor.cc
│   │   │   ├── counting_points_processor.h
│   │   │   ├── draw_trajectories.cc
│   │   │   ├── draw_trajectories.h
│   │   │   ├── fake_file_writer.cc
│   │   │   ├── fake_file_writer.h
│   │   │   ├── fake_file_writer_test.cc
│   │   │   ├── file_writer.cc
│   │   │   ├── file_writer.h
│   │   │   ├── fixed_ratio_sampling_points_processor.cc
│   │   │   ├── fixed_ratio_sampling_points_processor.h
│   │   │   ├── frame_id_filtering_points_processor.cc
│   │   │   ├── frame_id_filtering_points_processor.h
│   │   │   ├── hybrid_grid_points_processor.cc
│   │   │   ├── hybrid_grid_points_processor.h
│   │   │   ├── image.cc
│   │   │   ├── image.h
│   │   │   ├── intensity_to_color_points_processor.cc
│   │   │   ├── intensity_to_color_points_processor.h
│   │   │   ├── internal
│   │   │   │   ├── in_memory_proto_stream.cc
│   │   │   │   ├── in_memory_proto_stream.h
│   │   │   │   ├── in_memory_proto_stream_test.cc
│   │   │   │   ├── mapping_state_serialization.cc
│   │   │   │   └── mapping_state_serialization.h
│   │   │   ├── migrate_serialization_format_main.cc
│   │   │   ├── min_max_range_filtering_points_processor.cc
│   │   │   ├── min_max_range_filtering_points_processor.h
│   │   │   ├── null_points_processor.h
│   │   │   ├── outlier_removing_points_processor.cc
│   │   │   ├── outlier_removing_points_processor.h
│   │   │   ├── pcd_writing_points_processor.cc
│   │   │   ├── pcd_writing_points_processor.h
│   │   │   ├── ply_writing_points_processor.cc
│   │   │   ├── ply_writing_points_processor.h
│   │   │   ├── points_batch.cc
│   │   │   ├── points_batch.h
│   │   │   ├── points_processor.h
│   │   │   ├── points_processor_pipeline_builder.cc
│   │   │   ├── points_processor_pipeline_builder.h
│   │   │   ├── points_processor_pipeline_builder_test.cc
│   │   │   ├── probability_grid_points_processor.cc
│   │   │   ├── probability_grid_points_processor.h
│   │   │   ├── proto_stream.cc
│   │   │   ├── proto_stream_deserializer.cc
│   │   │   ├── proto_stream_deserializer.h
│   │   │   ├── proto_stream_deserializer_test.cc
│   │   │   ├── proto_stream.h
│   │   │   ├── proto_stream_interface.h
│   │   │   ├── proto_stream_test.cc
│   │   │   ├── serialization_format_migration.cc
│   │   │   ├── serialization_format_migration.h
│   │   │   ├── serialization_format_migration_test.cc
│   │   │   ├── submap_painter.cc
│   │   │   ├── submap_painter.h
│   │   │   ├── xray_points_processor.cc
│   │   │   ├── xray_points_processor.h
│   │   │   ├── xyz_writing_points_processor.cc
│   │   │   └── xyz_writing_points_processor.h
│   │   ├── mapping
│   │   │   ├── 2d
│   │   │   │   ├── grid_2d.cc
│   │   │   │   ├── grid_2d.h
│   │   │   │   ├── map_limits.h
│   │   │   │   ├── map_limits_test.cc
│   │   │   │   ├── probability_grid.cc
│   │   │   │   ├── probability_grid.h
│   │   │   │   ├── probability_grid_range_data_inserter_2d.cc
│   │   │   │   ├── probability_grid_range_data_inserter_2d.h
│   │   │   │   ├── probability_grid_test.cc
│   │   │   │   ├── range_data_inserter_2d_test.cc
│   │   │   │   ├── submap_2d.cc
│   │   │   │   ├── submap_2d.h
│   │   │   │   ├── submap_2d_test.cc
│   │   │   │   ├── xy_index.h
│   │   │   │   └── xy_index_test.cc
│   │   │   ├── 3d
│   │   │   │   ├── hybrid_grid.h
│   │   │   │   ├── hybrid_grid_test.cc
│   │   │   │   ├── range_data_inserter_3d.cc
│   │   │   │   ├── range_data_inserter_3d.h
│   │   │   │   ├── range_data_inserter_3d_test.cc
│   │   │   │   ├── submap_3d.cc
│   │   │   │   ├── submap_3d.h
│   │   │   │   └── submap_3d_test.cc
│   │   │   ├── detect_floors.cc
│   │   │   ├── detect_floors.h
│   │   │   ├── grid_interface.h
│   │   │   ├── id.h
│   │   │   ├── id_test.cc
│   │   │   ├── imu_tracker.cc
│   │   │   ├── imu_tracker.h
│   │   │   ├── imu_tracker_test.cc
│   │   │   ├── internal
│   │   │   │   ├── 2d
│   │   │   │   │   ├── local_slam_result_2d.cc
│   │   │   │   │   ├── local_slam_result_2d.h
│   │   │   │   │   ├── local_trajectory_builder_2d.cc
│   │   │   │   │   ├── local_trajectory_builder_2d.h
│   │   │   │   │   ├── local_trajectory_builder_options_2d.cc
│   │   │   │   │   ├── local_trajectory_builder_options_2d.h
│   │   │   │   │   ├── overlapping_submaps_trimmer_2d.cc
│   │   │   │   │   ├── overlapping_submaps_trimmer_2d.h
│   │   │   │   │   ├── overlapping_submaps_trimmer_2d_test.cc
│   │   │   │   │   ├── pose_graph_2d.cc
│   │   │   │   │   ├── pose_graph_2d.h
│   │   │   │   │   ├── pose_graph_2d_test.cc
│   │   │   │   │   ├── ray_casting.cc
│   │   │   │   │   ├── ray_casting.h
│   │   │   │   │   └── scan_matching
│   │   │   │   │       ├── ceres_scan_matcher_2d.cc
│   │   │   │   │       ├── ceres_scan_matcher_2d.h
│   │   │   │   │       ├── ceres_scan_matcher_2d_test.cc
│   │   │   │   │       ├── correlative_scan_matcher_2d.cc
│   │   │   │   │       ├── correlative_scan_matcher_2d.h
│   │   │   │   │       ├── correlative_scan_matcher_test.cc
│   │   │   │   │       ├── fast_correlative_scan_matcher_2d.cc
│   │   │   │   │       ├── fast_correlative_scan_matcher_2d.h
│   │   │   │   │       ├── fast_correlative_scan_matcher_2d_test.cc
│   │   │   │   │       ├── occupied_space_cost_function_2d.h
│   │   │   │   │       ├── real_time_correlative_scan_matcher_2d.cc
│   │   │   │   │       ├── real_time_correlative_scan_matcher_2d.h
│   │   │   │   │       ├── real_time_correlative_scan_matcher_2d_test.cc
│   │   │   │   │       ├── rotation_delta_cost_functor_2d.h
│   │   │   │   │       └── translation_delta_cost_functor_2d.h
│   │   │   │   ├── 3d
│   │   │   │   │   ├── imu_integration.h
│   │   │   │   │   ├── local_slam_result_3d.cc
│   │   │   │   │   ├── local_slam_result_3d.h
│   │   │   │   │   ├── local_trajectory_builder_3d.cc
│   │   │   │   │   ├── local_trajectory_builder_3d.h
│   │   │   │   │   ├── local_trajectory_builder_3d_test.cc
│   │   │   │   │   ├── local_trajectory_builder_options_3d.cc
│   │   │   │   │   ├── local_trajectory_builder_options_3d.h
│   │   │   │   │   ├── pose_graph_3d.cc
│   │   │   │   │   ├── pose_graph_3d.h
│   │   │   │   │   ├── pose_graph_3d_test.cc
│   │   │   │   │   ├── rotation_parameterization.h
│   │   │   │   │   └── scan_matching
│   │   │   │   │       ├── ceres_scan_matcher_3d.cc
│   │   │   │   │       ├── ceres_scan_matcher_3d.h
│   │   │   │   │       ├── ceres_scan_matcher_3d_test.cc
│   │   │   │   │       ├── fast_correlative_scan_matcher_3d.cc
│   │   │   │   │       ├── fast_correlative_scan_matcher_3d.h
│   │   │   │   │       ├── fast_correlative_scan_matcher_3d_test.cc
│   │   │   │   │       ├── interpolated_grid.h
│   │   │   │   │       ├── interpolated_grid_test.cc
│   │   │   │   │       ├── low_resolution_matcher.cc
│   │   │   │   │       ├── low_resolution_matcher.h
│   │   │   │   │       ├── occupied_space_cost_function_3d.h
│   │   │   │   │       ├── precomputation_grid_3d.cc
│   │   │   │   │       ├── precomputation_grid_3d.h
│   │   │   │   │       ├── precomputation_grid_3d_test.cc
│   │   │   │   │       ├── real_time_correlative_scan_matcher_3d.cc
│   │   │   │   │       ├── real_time_correlative_scan_matcher_3d.h
│   │   │   │   │       ├── real_time_correlative_scan_matcher_3d_test.cc
│   │   │   │   │       ├── rotational_scan_matcher.cc
│   │   │   │   │       ├── rotational_scan_matcher.h
│   │   │   │   │       ├── rotational_scan_matcher_test.cc
│   │   │   │   │       ├── rotation_delta_cost_functor_3d.h
│   │   │   │   │       ├── rotation_delta_cost_functor_3d_test.cc
│   │   │   │   │       └── translation_delta_cost_functor_3d.h
│   │   │   │   ├── collated_trajectory_builder.cc
│   │   │   │   ├── collated_trajectory_builder.h
│   │   │   │   ├── connected_components.cc
│   │   │   │   ├── connected_components.h
│   │   │   │   ├── connected_components_test.cc
│   │   │   │   ├── constraints
│   │   │   │   │   ├── constraint_builder_2d.cc
│   │   │   │   │   ├── constraint_builder_2d.h
│   │   │   │   │   ├── constraint_builder_2d_test.cc
│   │   │   │   │   ├── constraint_builder_3d.cc
│   │   │   │   │   ├── constraint_builder_3d.h
│   │   │   │   │   ├── constraint_builder_3d_test.cc
│   │   │   │   │   ├── constraint_builder.cc
│   │   │   │   │   └── constraint_builder.h
│   │   │   │   ├── global_trajectory_builder.cc
│   │   │   │   ├── global_trajectory_builder.h
│   │   │   │   ├── motion_filter.cc
│   │   │   │   ├── motion_filter.h
│   │   │   │   ├── motion_filter_test.cc
│   │   │   │   ├── optimization
│   │   │   │   │   ├── ceres_pose.cc
│   │   │   │   │   ├── ceres_pose.h
│   │   │   │   │   ├── cost_functions
│   │   │   │   │   │   ├── acceleration_cost_function_3d.h
│   │   │   │   │   │   ├── cost_helpers.h
│   │   │   │   │   │   ├── cost_helpers_impl.h
│   │   │   │   │   │   ├── landmark_cost_function_2d.h
│   │   │   │   │   │   ├── landmark_cost_function_2d_test.cc
│   │   │   │   │   │   ├── landmark_cost_function_3d.h
│   │   │   │   │   │   ├── landmark_cost_function_3d_test.cc
│   │   │   │   │   │   ├── rotation_cost_function_3d.h
│   │   │   │   │   │   ├── spa_cost_function_2d.cc
│   │   │   │   │   │   ├── spa_cost_function_2d.h
│   │   │   │   │   │   ├── spa_cost_function_2d_test.cc
│   │   │   │   │   │   └── spa_cost_function_3d.h
│   │   │   │   │   ├── optimization_problem_2d.cc
│   │   │   │   │   ├── optimization_problem_2d.h
│   │   │   │   │   ├── optimization_problem_3d.cc
│   │   │   │   │   ├── optimization_problem_3d.h
│   │   │   │   │   ├── optimization_problem_3d_test.cc
│   │   │   │   │   ├── optimization_problem_interface.h
│   │   │   │   │   ├── optimization_problem_options.cc
│   │   │   │   │   └── optimization_problem_options.h
│   │   │   │   ├── range_data_collator.cc
│   │   │   │   ├── range_data_collator.h
│   │   │   │   ├── range_data_collator_test.cc
│   │   │   │   ├── scan_matching
│   │   │   │   │   ├── real_time_correlative_scan_matcher.cc
│   │   │   │   │   └── real_time_correlative_scan_matcher.h
│   │   │   │   ├── submap_controller.cc
│   │   │   │   ├── submap_controller.h
│   │   │   │   ├── testing
│   │   │   │   │   ├── fake_trimmable.h
│   │   │   │   │   ├── mock_map_builder.h
│   │   │   │   │   ├── mock_pose_graph.h
│   │   │   │   │   ├── mock_trajectory_builder.h
│   │   │   │   │   ├── test_helpers.cc
│   │   │   │   │   └── test_helpers.h
│   │   │   │   ├── trajectory_connectivity_state.cc
│   │   │   │   ├── trajectory_connectivity_state.h
│   │   │   │   └── trajectory_connectivity_state_test.cc
│   │   │   ├── local_slam_result_data.h
│   │   │   ├── map_builder.cc
│   │   │   ├── map_builder.h
│   │   │   ├── map_builder_interface.h
│   │   │   ├── map_builder_test.cc
│   │   │   ├── pose_extrapolator.cc
│   │   │   ├── pose_extrapolator.h
│   │   │   ├── pose_extrapolator_test.cc
│   │   │   ├── pose_graph.cc
│   │   │   ├── pose_graph.h
│   │   │   ├── pose_graph_interface.h
│   │   │   ├── pose_graph_test.cc
│   │   │   ├── pose_graph_trimmer.cc
│   │   │   ├── pose_graph_trimmer.h
│   │   │   ├── pose_graph_trimmer_test.cc
│   │   │   ├── probability_values.cc
│   │   │   ├── probability_values.h
│   │   │   ├── probability_values_test.cc
│   │   │   ├── proto
│   │   │   │   ├── 2d
│   │   │   │   │   ├── cell_limits.proto
│   │   │   │   │   ├── grid_2d_options.proto
│   │   │   │   │   ├── grid_2d.proto
│   │   │   │   │   ├── local_trajectory_builder_options_2d.proto
│   │   │   │   │   ├── map_limits.proto
│   │   │   │   │   ├── probability_grid.proto
│   │   │   │   │   ├── probability_grid_range_data_inserter_options_2d.proto
│   │   │   │   │   └── submaps_options_2d.proto
│   │   │   │   ├── 3d
│   │   │   │   │   ├── hybrid_grid.proto
│   │   │   │   │   ├── local_trajectory_builder_options_3d.proto
│   │   │   │   │   ├── range_data_inserter_options_3d.proto
│   │   │   │   │   └── submaps_options_3d.proto
│   │   │   │   ├── connected_components.proto
│   │   │   │   ├── internal
│   │   │   │   │   └── legacy_serialized_data.proto
│   │   │   │   ├── map_builder_options.proto
│   │   │   │   ├── motion_filter_options.proto
│   │   │   │   ├── pose_graph
│   │   │   │   │   ├── constraint_builder_options.proto
│   │   │   │   │   └── optimization_problem_options.proto
│   │   │   │   ├── pose_graph_options.proto
│   │   │   │   ├── pose_graph.proto
│   │   │   │   ├── range_data_inserter_options.proto
│   │   │   │   ├── scan_matching
│   │   │   │   │   ├── ceres_scan_matcher_options_2d.proto
│   │   │   │   │   ├── ceres_scan_matcher_options_3d.proto
│   │   │   │   │   ├── fast_correlative_scan_matcher_options_2d.proto
│   │   │   │   │   ├── fast_correlative_scan_matcher_options_3d.proto
│   │   │   │   │   └── real_time_correlative_scan_matcher_options.proto
│   │   │   │   ├── serialization.proto
│   │   │   │   ├── submap.proto
│   │   │   │   ├── submap_visualization.proto
│   │   │   │   ├── trajectory_builder_options.proto
│   │   │   │   ├── trajectory_node_data.proto
│   │   │   │   └── trajectory.proto
│   │   │   ├── range_data_inserter_interface.cc
│   │   │   ├── range_data_inserter_interface.h
│   │   │   ├── submaps.h
│   │   │   ├── submaps_test.cc
│   │   │   ├── trajectory_builder_interface.cc
│   │   │   ├── trajectory_builder_interface.h
│   │   │   ├── trajectory_node.cc
│   │   │   ├── trajectory_node.h
│   │   │   └── trajectory_node_test.cc
│   │   ├── metrics
│   │   │   ├── counter.cc
│   │   │   ├── counter.h
│   │   │   ├── family_factory.h
│   │   │   ├── gauge.cc
│   │   │   ├── gauge.h
│   │   │   ├── histogram.cc
│   │   │   ├── histogram.h
│   │   │   ├── register.cc
│   │   │   └── register.h
│   │   ├── sensor
│   │   │   ├── collator_interface.h
│   │   │   ├── compressed_point_cloud.cc
│   │   │   ├── compressed_point_cloud.h
│   │   │   ├── compressed_point_cloud_test.cc
│   │   │   ├── data.h
│   │   │   ├── fixed_frame_pose_data.cc
│   │   │   ├── fixed_frame_pose_data.h
│   │   │   ├── imu_data.cc
│   │   │   ├── imu_data.h
│   │   │   ├── internal
│   │   │   │   ├── collator.cc
│   │   │   │   ├── collator.h
│   │   │   │   ├── collator_test.cc
│   │   │   │   ├── dispatchable.h
│   │   │   │   ├── ordered_multi_queue.cc
│   │   │   │   ├── ordered_multi_queue.h
│   │   │   │   ├── ordered_multi_queue_test.cc
│   │   │   │   ├── test_helpers.h
│   │   │   │   ├── trajectory_collator.cc
│   │   │   │   ├── trajectory_collator.h
│   │   │   │   ├── trajectory_collator_test.cc
│   │   │   │   ├── voxel_filter.cc
│   │   │   │   ├── voxel_filter.h
│   │   │   │   └── voxel_filter_test.cc
│   │   │   ├── landmark_data.cc
│   │   │   ├── landmark_data.h
│   │   │   ├── landmark_data_test.cc
│   │   │   ├── map_by_time.h
│   │   │   ├── map_by_time_test.cc
│   │   │   ├── odometry_data.cc
│   │   │   ├── odometry_data.h
│   │   │   ├── point_cloud.cc
│   │   │   ├── point_cloud.h
│   │   │   ├── point_cloud_test.cc
│   │   │   ├── proto
│   │   │   │   ├── adaptive_voxel_filter_options.proto
│   │   │   │   └── sensor.proto
│   │   │   ├── range_data.cc
│   │   │   ├── range_data.h
│   │   │   ├── range_data_test.cc
│   │   │   ├── timed_point_cloud_data.cc
│   │   │   └── timed_point_cloud_data.h
│   │   └── transform
│   │       ├── proto
│   │       │   └── transform.proto
│   │       ├── rigid_transform.cc
│   │       ├── rigid_transform.h
│   │       ├── rigid_transform_test.cc
│   │       ├── rigid_transform_test_helpers.h
│   │       ├── timestamped_transform.cc
│   │       ├── timestamped_transform.h
│   │       ├── transform.cc
│   │       ├── transform.h
│   │       ├── transform_interpolation_buffer.cc
│   │       ├── transform_interpolation_buffer.h
│   │       ├── transform_interpolation_buffer_test.cc
│   │       └── transform_test.cc
│   ├── cartographer-config.cmake.in
│   ├── CHANGELOG.rst
│   ├── cmake
│   │   ├── functions.cmake
│   │   └── modules
│   │       ├── FindGMock.cmake
│   │       ├── FindLuaGoogle.cmake
│   │       └── FindSphinx.cmake
│   ├── CMakeLists.txt
│   ├── configuration_files
│   │   ├── map_builder.lua
│   │   ├── map_builder_server.lua
│   │   ├── pose_graph.lua
│   │   ├── trajectory_builder_2d.lua
│   │   ├── trajectory_builder_3d.lua
│   │   └── trajectory_builder.lua
│   ├── CONTRIBUTING.md
│   ├── Dockerfile.jessie
│   ├── Dockerfile.stretch
│   ├── Dockerfile.trusty
│   ├── Dockerfile.trusty.bazel
│   ├── Dockerfile.xenial
│   ├── docs
│   │   ├── assets
│   │   │   ├── logo_1024dp.png
│   │   │   ├── logo_128dp.png
│   │   │   ├── logo_16dp.png
│   │   │   ├── logo_16dp.svg
│   │   │   ├── logo_192dp.png
│   │   │   ├── logo_24dp.png
│   │   │   ├── logo_24dp.svg
│   │   │   ├── logo_32dp.png
│   │   │   ├── logo_32dp.svg
│   │   │   ├── logo_36dp.png
│   │   │   ├── logo_36dp.svg
│   │   │   ├── logo_48dp.png
│   │   │   ├── logo_48dp.svg
│   │   │   ├── logo_512dp.png
│   │   │   ├── logo_512dp.svg
│   │   │   ├── logo_64dp.png
│   │   │   ├── logo_64dp.svg
│   │   │   ├── logo_72dp.png
│   │   │   ├── logo_96dp.png
│   │   │   ├── logo_96dp.svg
│   │   │   └── t_shirt
│   │   │       ├── logo_cartographer_512dp_shaded.svg
│   │   │       ├── logo_cartographer.ai
│   │   │       ├── logo_cartographer.svg
│   │   │       ├── pantone_lookup.png
│   │   │       └── pantone_lookup.txt
│   │   ├── CMakeLists.txt
│   │   └── source
│   │       ├── autogenerate_groundtruth.png
│   │       ├── configuration.rst
│   │       ├── conf.py
│   │       ├── cost_functions.rst
│   │       ├── evaluation.rst
│   │       ├── high_level_system_overview.png
│   │       ├── index.rst
│   │       └── terminology.rst
│   ├── LICENSE
│   ├── package.xml
│   ├── README.rst
│   ├── RELEASING.rst
│   ├── scripts
│   │   ├── build_test_asan.sh
│   │   ├── install_async_grpc.sh
│   │   ├── install_cartographer_bazel.sh
│   │   ├── install_cartographer_cmake.sh
│   │   ├── install_cartographer_cmake_with_grpc.sh
│   │   ├── install_ceres.sh
│   │   ├── install_debs_bazel.sh
│   │   ├── install_debs_cmake.sh
│   │   ├── install_grpc.sh
│   │   ├── install_prometheus_cpp.sh
│   │   ├── install_proto3.sh
│   │   ├── load_docker_cache.sh
│   │   ├── save_docker_cache.sh
│   │   └── update_configuration_doc.py
│   ├── tools
│   │   └── bazel.rc
│   └── WORKSPACE
├── cartographer_ros
│   ├── AUTHORS
│   ├── cartographer_ros
│   │   ├── cartographer_ros
│   │   │   ├── assets_writer.cc
│   │   │   ├── assets_writer.h
│   │   │   ├── assets_writer_main.cc
│   │   │   ├── cartographer_grpc
│   │   │   │   ├── node_grpc_main.cc
│   │   │   │   └── offline_node_grpc_main.cc
│   │   │   ├── CMakeLists.txt
│   │   │   ├── configuration_files_test.cc
│   │   │   ├── dev
│   │   │   │   ├── rosbag_publisher_main.cc
│   │   │   │   └── trajectory_comparison_main.cc
│   │   │   ├── map_builder_bridge.cc
│   │   │   ├── map_builder_bridge.h
│   │   │   ├── msg_conversion.cc
│   │   │   ├── msg_conversion.h
│   │   │   ├── msg_conversion_test.cc
│   │   │   ├── node.cc
│   │   │   ├── node_constants.cc
│   │   │   ├── node_constants.h
│   │   │   ├── node.h
│   │   │   ├── node_main.cc
│   │   │   ├── node_options.cc
│   │   │   ├── node_options.h
│   │   │   ├── occupancy_grid_node_main.cc
│   │   │   ├── offline_node.cc
│   │   │   ├── offline_node.h
│   │   │   ├── offline_node_main.cc
│   │   │   ├── pbstream_map_publisher_main.cc
│   │   │   ├── pbstream_to_ros_map_main.cc
│   │   │   ├── playable_bag.cc
│   │   │   ├── playable_bag.h
│   │   │   ├── rosbag_validate_main.cc
│   │   │   ├── ros_log_sink.cc
│   │   │   ├── ros_log_sink.h
│   │   │   ├── ros_map.cc
│   │   │   ├── ros_map.h
│   │   │   ├── ros_map_writing_points_processor.cc
│   │   │   ├── ros_map_writing_points_processor.h
│   │   │   ├── sensor_bridge.cc
│   │   │   ├── sensor_bridge.h
│   │   │   ├── split_string.cc
│   │   │   ├── split_string.h
│   │   │   ├── start_trajectory_main.cc
│   │   │   ├── submap.cc
│   │   │   ├── submap.h
│   │   │   ├── tf_bridge.cc
│   │   │   ├── tf_bridge.h
│   │   │   ├── time_conversion.cc
│   │   │   ├── time_conversion.h
│   │   │   ├── time_conversion_test.cc
│   │   │   ├── trajectory_options.cc
│   │   │   ├── trajectory_options.h
│   │   │   ├── urdf_reader.cc
│   │   │   └── urdf_reader.h
│   │   ├── CHANGELOG.rst
│   │   ├── CMakeLists.txt
│   │   ├── configuration_files
│   │   │   ├── assets_writer_backpack_2d_ci.lua
│   │   │   ├── assets_writer_backpack_2d.lua
│   │   │   ├── assets_writer_backpack_3d.lua
│   │   │   ├── assets_writer_ros_map.lua
│   │   │   ├── backpack_2d_localization_evaluation.lua
│   │   │   ├── backpack_2d_localization.lua
│   │   │   ├── backpack_2d.lua
│   │   │   ├── backpack_2d_server.lua
│   │   │   ├── backpack_3d_localization.lua
│   │   │   ├── backpack_3d.lua
│   │   │   ├── demo_2d.rviz
│   │   │   ├── demo_3d.rviz
│   │   │   ├── pr2.lua
│   │   │   ├── revo_lds.lua
│   │   │   ├── taurob_tracker.lua
│   │   │   ├── transform.lua
│   │   │   └── visualize_pbstream.lua
│   │   ├── launch
│   │   │   ├── assets_writer_backpack_2d.launch
│   │   │   ├── assets_writer_backpack_3d.launch
│   │   │   ├── assets_writer_ros_map.launch
│   │   │   ├── backpack_2d.launch
│   │   │   ├── backpack_3d.launch
│   │   │   ├── demo_backpack_2d.launch
│   │   │   ├── demo_backpack_2d_localization.launch
│   │   │   ├── demo_backpack_3d.launch
│   │   │   ├── demo_backpack_3d_localization.launch
│   │   │   ├── demo_pr2.launch
│   │   │   ├── demo_revo_lds.launch
│   │   │   ├── demo_taurob_tracker.launch
│   │   │   ├── grpc_demo_backpack_2d.launch
│   │   │   ├── grpc_demo_backpack_2d_localization.launch
│   │   │   ├── offline_backpack_2d.launch
│   │   │   ├── offline_backpack_3d.launch
│   │   │   ├── taurob_tracker.launch
│   │   │   └── visualize_pbstream.launch
│   │   ├── package.xml
│   │   ├── scripts
│   │   │   ├── cartographer_grpc_server.sh
│   │   │   ├── dev
│   │   │   │   └── compare_localization_to_offline_trajectory.sh
│   │   │   ├── remove_leading_slashes.py
│   │   │   └── tf_remove_frames.py
│   │   └── urdf
│   │       ├── backpack_2d.urdf
│   │       └── backpack_3d.urdf
│   ├── cartographer_ros_msgs
│   │   ├── CHANGELOG.rst
│   │   ├── CMakeLists.txt
│   │   ├── msg
│   │   │   ├── LandmarkEntry.msg
│   │   │   ├── LandmarkList.msg
│   │   │   ├── SensorTopics.msg
│   │   │   ├── StatusCode.msg
│   │   │   ├── StatusResponse.msg
│   │   │   ├── SubmapEntry.msg
│   │   │   ├── SubmapList.msg
│   │   │   ├── SubmapTexture.msg
│   │   │   └── TrajectoryOptions.msg
│   │   ├── package.xml
│   │   └── srv
│   │       ├── FinishTrajectory.srv
│   │       ├── StartTrajectory.srv
│   │       ├── SubmapQuery.srv
│   │       └── WriteState.srv
│   ├── cartographer_ros.rosinstall
│   ├── cartographer_rviz
│   │   ├── cartographer_rviz
│   │   │   ├── drawable_submap.cc
│   │   │   ├── drawable_submap.h
│   │   │   ├── ogre_slice.cc
│   │   │   ├── ogre_slice.h
│   │   │   ├── submaps_display.cc
│   │   │   └── submaps_display.h
│   │   ├── CHANGELOG.rst
│   │   ├── CMakeLists.txt
│   │   ├── ogre_media
│   │   │   └── materials
│   │   │       ├── glsl120
│   │   │       │   ├── glsl120.program
│   │   │       │   ├── submap.frag
│   │   │       │   └── submap.vert
│   │   │       └── scripts
│   │   │           └── submap.material
│   │   ├── package.xml
│   │   └── rviz_plugin_description.xml
│   ├── CONTRIBUTING.md
│   ├── Dockerfile.indigo
│   ├── Dockerfile.kinetic
│   ├── Dockerfile.lunar
│   ├── Dockerfile.melodic
│   ├── docs
│   │   ├── CMakeLists.txt
│   │   └── source
│   │       ├── assets_writer.rst
│   │       ├── configuration.rst
│   │       ├── conf.py
│   │       ├── data.rst
│   │       ├── demos.rst
│   │       ├── faq.rst
│   │       ├── index.rst
│   │       ├── ros_api.rst
│   │       └── tuning.rst
│   ├── jenkins
│   │   ├── Dockerfile.kinetic
│   │   ├── Jenkinsfile
│   │   ├── jenkins-slave
│   │   └── worker.py
│   ├── LICENSE
│   ├── README.rst
│   └── scripts
│       ├── catkin_test_results.sh
│       ├── check_access_token.sh
│       ├── install_debs.sh
│       ├── install.sh
│       ├── load_docker_cache.sh
│       ├── prepare_catkin_workspace.sh
│       ├── prepare_jenkins_catkin_workspace.sh
│       ├── ros_entrypoint.sh
│       └── save_docker_cache.sh
├── ceres-solver
│   ├── cmake
│   │   ├── AddCeresCXX11RequirementsToTarget.cmake
│   │   ├── AddGerritCommitHook.cmake
│   │   ├── AppendTargetProperty.cmake
│   │   ├── CeresCompileOptionsToComponents.cmake
│   │   ├── CeresConfig.cmake.in
│   │   ├── CeresConfigVersion.cmake.in
│   │   ├── CheckIfUnderscorePrefixedBesselFunctionsExist.cmake
│   │   ├── config.h.in
│   │   ├── CreateCeresConfig.cmake
│   │   ├── FindCXSparse.cmake
│   │   ├── FindEigen.cmake
│   │   ├── FindGflags.cmake
│   │   ├── FindGlog.cmake
│   │   ├── FindSharedPtr.cmake
│   │   ├── FindSphinx.cmake
│   │   ├── FindSuiteSparse.cmake
│   │   ├── FindUnorderedMap.cmake
│   │   ├── iOS.cmake
│   │   ├── ReadCeresVersionFromSource.cmake
│   │   ├── uninstall.cmake.in
│   │   └── UpdateCacheVariable.cmake
│   ├── CMakeLists.txt
│   ├── config
│   │   └── ceres
│   │       └── internal
│   │           └── config.h
│   ├── data
│   │   ├── 2x2.foe
│   │   ├── 3x3.foe
│   │   ├── 5x5.foe
│   │   ├── ceres_noisy.pgm
│   │   ├── libmv-ba-problems
│   │   │   ├── problem_01.bin
│   │   │   ├── problem_02.bin
│   │   │   ├── problem_03.bin
│   │   │   └── Readme.txt
│   │   ├── nist
│   │   │   ├── Bennett5.dat
│   │   │   ├── BoxBOD.dat
│   │   │   ├── Chwirut1.dat
│   │   │   ├── Chwirut2.dat
│   │   │   ├── DanWood.dat
│   │   │   ├── Eckerle4.dat
│   │   │   ├── ENSO.dat
│   │   │   ├── Gauss1.dat
│   │   │   ├── Gauss2.dat
│   │   │   ├── Gauss3.dat
│   │   │   ├── Hahn1.dat
│   │   │   ├── Kirby2.dat
│   │   │   ├── Lanczos1.dat
│   │   │   ├── Lanczos2.dat
│   │   │   ├── Lanczos3.dat
│   │   │   ├── MGH09.dat
│   │   │   ├── MGH10.dat
│   │   │   ├── MGH17.dat
│   │   │   ├── Misra1a.dat
│   │   │   ├── Misra1b.dat
│   │   │   ├── Misra1c.dat
│   │   │   ├── Misra1d.dat
│   │   │   ├── Nelson.dat
│   │   │   ├── Rat42.dat
│   │   │   ├── Rat43.dat
│   │   │   ├── Roszman1.dat
│   │   │   └── Thurber.dat
│   │   ├── problem-16-22106-pre.txt
│   │   └── README.foe
│   ├── docs
│   │   ├── CMakeLists.txt
│   │   └── source
│   │       ├── analytical_derivatives.rst
│   │       ├── automatic_derivatives.rst
│   │       ├── bibliography.rst
│   │       ├── CMakeLists.txt
│   │       ├── conf.py
│   │       ├── contributing.rst
│   │       ├── derivatives.rst
│   │       ├── faqs.rst
│   │       ├── features.rst
│   │       ├── forward_central_error.png
│   │       ├── forward_central_ridders_error.png
│   │       ├── gradient_solver.rst
│   │       ├── gradient_tutorial.rst
│   │       ├── index.rst
│   │       ├── installation.rst
│   │       ├── interfacing_with_autodiff.rst
│   │       ├── least_squares_fit.png
│   │       ├── license.rst
│   │       ├── loss.png
│   │       ├── manhattan_olson_3500_result.png
│   │       ├── modeling_faqs.rst
│   │       ├── nnls_covariance.rst
│   │       ├── nnls_modeling.rst
│   │       ├── nnls_solving.rst
│   │       ├── nnls_tutorial.rst
│   │       ├── non_robust_least_squares_fit.png
│   │       ├── numerical_derivatives.rst
│   │       ├── pose_graph_3d_ex.png
│   │       ├── robust_least_squares_fit.png
│   │       ├── slam2d.png
│   │       ├── solving_faqs.rst
│   │       ├── spivak_notation.rst
│   │       ├── _templates
│   │       │   └── layout.html
│   │       ├── tutorial.rst
│   │       ├── users.rst
│   │       └── version_history.rst
│   ├── examples
│   │   ├── bal_problem.cc
│   │   ├── bal_problem.h
│   │   ├── bundle_adjuster.cc
│   │   ├── circle_fit.cc
│   │   ├── CMakeLists.txt
│   │   ├── curve_fitting.c
│   │   ├── curve_fitting.cc
│   │   ├── denoising.cc
│   │   ├── ellipse_approximation.cc
│   │   ├── fields_of_experts.cc
│   │   ├── fields_of_experts.h
│   │   ├── helloworld_analytic_diff.cc
│   │   ├── helloworld.cc
│   │   ├── helloworld_numeric_diff.cc
│   │   ├── libmv_bundle_adjuster.cc
│   │   ├── libmv_homography.cc
│   │   ├── Makefile.example
│   │   ├── more_garbow_hillstrom.cc
│   │   ├── nist.cc
│   │   ├── pgm_image.h
│   │   ├── powell.cc
│   │   ├── random.h
│   │   ├── robot_pose_mle.cc
│   │   ├── robust_curve_fitting.cc
│   │   ├── rosenbrock.cc
│   │   ├── sampled_function
│   │   │   ├── CMakeLists.txt
│   │   │   ├── README.md
│   │   │   └── sampled_function.cc
│   │   ├── simple_bundle_adjuster.cc
│   │   ├── slam
│   │   │   ├── CMakeLists.txt
│   │   │   ├── common
│   │   │   │   └── read_g2o.h
│   │   │   ├── pose_graph_2d
│   │   │   │   ├── angle_local_parameterization.h
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── normalize_angle.h
│   │   │   │   ├── plot_results.py
│   │   │   │   ├── pose_graph_2d.cc
│   │   │   │   ├── pose_graph_2d_error_term.h
│   │   │   │   ├── README.md
│   │   │   │   └── types.h
│   │   │   └── pose_graph_3d
│   │   │       ├── CMakeLists.txt
│   │   │       ├── plot_results.py
│   │   │       ├── pose_graph_3d.cc
│   │   │       ├── pose_graph_3d_error_term.h
│   │   │       ├── README.md
│   │   │       └── types.h
│   │   └── snavely_reprojection_error.h
│   ├── include
│   │   └── ceres
│   │       ├── autodiff_cost_function.h
│   │       ├── autodiff_local_parameterization.h
│   │       ├── c_api.h
│   │       ├── ceres.h
│   │       ├── conditioned_cost_function.h
│   │       ├── cost_function.h
│   │       ├── cost_function_to_functor.h
│   │       ├── covariance.h
│   │       ├── crs_matrix.h
│   │       ├── cubic_interpolation.h
│   │       ├── dynamic_autodiff_cost_function.h
│   │       ├── dynamic_cost_function.h
│   │       ├── dynamic_cost_function_to_functor.h
│   │       ├── dynamic_numeric_diff_cost_function.h
│   │       ├── fpclassify.h
│   │       ├── gradient_checker.h
│   │       ├── gradient_problem.h
│   │       ├── gradient_problem_solver.h
│   │       ├── internal
│   │       │   ├── autodiff.h
│   │       │   ├── disable_warnings.h
│   │       │   ├── eigen.h
│   │       │   ├── fixed_array.h
│   │       │   ├── macros.h
│   │       │   ├── manual_constructor.h
│   │       │   ├── numeric_diff.h
│   │       │   ├── port.h
│   │       │   ├── reenable_warnings.h
│   │       │   ├── scoped_ptr.h
│   │       │   └── variadic_evaluate.h
│   │       ├── iteration_callback.h
│   │       ├── jet.h
│   │       ├── local_parameterization.h
│   │       ├── loss_function.h
│   │       ├── normal_prior.h
│   │       ├── numeric_diff_cost_function.h
│   │       ├── numeric_diff_options.h
│   │       ├── ordered_groups.h
│   │       ├── problem.h
│   │       ├── rotation.h
│   │       ├── sized_cost_function.h
│   │       ├── solver.h
│   │       ├── types.h
│   │       └── version.h
│   ├── internal
│   │   └── ceres
│   │       ├── array_utils.cc
│   │       ├── array_utils.h
│   │       ├── array_utils_test.cc
│   │       ├── autodiff_cost_function_test.cc
│   │       ├── autodiff_local_parameterization_test.cc
│   │       ├── autodiff_test.cc
│   │       ├── blas.cc
│   │       ├── blas.h
│   │       ├── block_evaluate_preparer.cc
│   │       ├── block_evaluate_preparer.h
│   │       ├── block_jacobian_writer.cc
│   │       ├── block_jacobian_writer.h
│   │       ├── block_jacobi_preconditioner.cc
│   │       ├── block_jacobi_preconditioner.h
│   │       ├── block_jacobi_preconditioner_test.cc
│   │       ├── block_random_access_dense_matrix.cc
│   │       ├── block_random_access_dense_matrix.h
│   │       ├── block_random_access_dense_matrix_test.cc
│   │       ├── block_random_access_diagonal_matrix.cc
│   │       ├── block_random_access_diagonal_matrix.h
│   │       ├── block_random_access_diagonal_matrix_test.cc
│   │       ├── block_random_access_matrix.cc
│   │       ├── block_random_access_matrix.h
│   │       ├── block_random_access_sparse_matrix.cc
│   │       ├── block_random_access_sparse_matrix.h
│   │       ├── block_random_access_sparse_matrix_test.cc
│   │       ├── block_sparse_matrix.cc
│   │       ├── block_sparse_matrix.h
│   │       ├── block_sparse_matrix_test.cc
│   │       ├── block_structure.cc
│   │       ├── block_structure.h
│   │       ├── bundle_adjustment_test.cc
│   │       ├── callbacks.cc
│   │       ├── callbacks.h
│   │       ├── canonical_views_clustering.cc
│   │       ├── canonical_views_clustering.h
│   │       ├── canonical_views_clustering_test.cc
│   │       ├── c_api.cc
│   │       ├── c_api_test.cc
│   │       ├── casts.h
│   │       ├── cgnr_linear_operator.h
│   │       ├── cgnr_solver.cc
│   │       ├── cgnr_solver.h
│   │       ├── CMakeLists.txt
│   │       ├── collections_port.h
│   │       ├── compressed_col_sparse_matrix_utils.cc
│   │       ├── compressed_col_sparse_matrix_utils.h
│   │       ├── compressed_col_sparse_matrix_utils_test.cc
│   │       ├── compressed_row_jacobian_writer.cc
│   │       ├── compressed_row_jacobian_writer.h
│   │       ├── compressed_row_sparse_matrix.cc
│   │       ├── compressed_row_sparse_matrix.h
│   │       ├── compressed_row_sparse_matrix_test.cc
│   │       ├── conditioned_cost_function.cc
│   │       ├── conditioned_cost_function_test.cc
│   │       ├── conjugate_gradients_solver.cc
│   │       ├── conjugate_gradients_solver.h
│   │       ├── conjugate_gradients_solver_test.cc
│   │       ├── coordinate_descent_minimizer.cc
│   │       ├── coordinate_descent_minimizer.h
│   │       ├── corrector.cc
│   │       ├── corrector.h
│   │       ├── corrector_test.cc
│   │       ├── cost_function_to_functor_test.cc
│   │       ├── covariance.cc
│   │       ├── covariance_impl.cc
│   │       ├── covariance_impl.h
│   │       ├── covariance_test.cc
│   │       ├── cubic_interpolation_test.cc
│   │       ├── cxsparse.cc
│   │       ├── cxsparse.h
│   │       ├── dense_jacobian_writer.h
│   │       ├── dense_linear_solver_test.cc
│   │       ├── dense_normal_cholesky_solver.cc
│   │       ├── dense_normal_cholesky_solver.h
│   │       ├── dense_qr_solver.cc
│   │       ├── dense_qr_solver.h
│   │       ├── dense_sparse_matrix.cc
│   │       ├── dense_sparse_matrix.h
│   │       ├── dense_sparse_matrix_test.cc
│   │       ├── detect_structure.cc
│   │       ├── detect_structure.h
│   │       ├── detect_structure_test.cc
│   │       ├── dogleg_strategy.cc
│   │       ├── dogleg_strategy.h
│   │       ├── dogleg_strategy_test.cc
│   │       ├── dynamic_autodiff_cost_function_test.cc
│   │       ├── dynamic_compressed_row_finalizer.h
│   │       ├── dynamic_compressed_row_jacobian_writer.cc
│   │       ├── dynamic_compressed_row_jacobian_writer.h
│   │       ├── dynamic_compressed_row_sparse_matrix.cc
│   │       ├── dynamic_compressed_row_sparse_matrix.h
│   │       ├── dynamic_compressed_row_sparse_matrix_test.cc
│   │       ├── dynamic_numeric_diff_cost_function_test.cc
│   │       ├── dynamic_sparse_normal_cholesky_solver.cc
│   │       ├── dynamic_sparse_normal_cholesky_solver.h
│   │       ├── dynamic_sparse_normal_cholesky_solver_test.cc
│   │       ├── dynamic_sparsity_test.cc
│   │       ├── eigensparse.cc
│   │       ├── eigensparse.h
│   │       ├── evaluator.cc
│   │       ├── evaluator.h
│   │       ├── evaluator_test.cc
│   │       ├── evaluator_test_utils.cc
│   │       ├── evaluator_test_utils.h
│   │       ├── execution_summary.h
│   │       ├── file.cc
│   │       ├── file.h
│   │       ├── function_sample.cc
│   │       ├── function_sample.h
│   │       ├── generated
│   │       │   ├── partitioned_matrix_view_2_2_2.cc
│   │       │   ├── partitioned_matrix_view_2_2_3.cc
│   │       │   ├── partitioned_matrix_view_2_2_4.cc
│   │       │   ├── partitioned_matrix_view_2_2_d.cc
│   │       │   ├── partitioned_matrix_view_2_3_3.cc
│   │       │   ├── partitioned_matrix_view_2_3_4.cc
│   │       │   ├── partitioned_matrix_view_2_3_6.cc
│   │       │   ├── partitioned_matrix_view_2_3_9.cc
│   │       │   ├── partitioned_matrix_view_2_3_d.cc
│   │       │   ├── partitioned_matrix_view_2_4_3.cc
│   │       │   ├── partitioned_matrix_view_2_4_4.cc
│   │       │   ├── partitioned_matrix_view_2_4_8.cc
│   │       │   ├── partitioned_matrix_view_2_4_9.cc
│   │       │   ├── partitioned_matrix_view_2_4_d.cc
│   │       │   ├── partitioned_matrix_view_2_d_d.cc
│   │       │   ├── partitioned_matrix_view_4_4_2.cc
│   │       │   ├── partitioned_matrix_view_4_4_3.cc
│   │       │   ├── partitioned_matrix_view_4_4_4.cc
│   │       │   ├── partitioned_matrix_view_4_4_d.cc
│   │       │   ├── partitioned_matrix_view_d_d_d.cc
│   │       │   ├── schur_eliminator_2_2_2.cc
│   │       │   ├── schur_eliminator_2_2_3.cc
│   │       │   ├── schur_eliminator_2_2_4.cc
│   │       │   ├── schur_eliminator_2_2_d.cc
│   │       │   ├── schur_eliminator_2_3_3.cc
│   │       │   ├── schur_eliminator_2_3_4.cc
│   │       │   ├── schur_eliminator_2_3_6.cc
│   │       │   ├── schur_eliminator_2_3_9.cc
│   │       │   ├── schur_eliminator_2_3_d.cc
│   │       │   ├── schur_eliminator_2_4_3.cc
│   │       │   ├── schur_eliminator_2_4_4.cc
│   │       │   ├── schur_eliminator_2_4_8.cc
│   │       │   ├── schur_eliminator_2_4_9.cc
│   │       │   ├── schur_eliminator_2_4_d.cc
│   │       │   ├── schur_eliminator_2_d_d.cc
│   │       │   ├── schur_eliminator_4_4_2.cc
│   │       │   ├── schur_eliminator_4_4_3.cc
│   │       │   ├── schur_eliminator_4_4_4.cc
│   │       │   ├── schur_eliminator_4_4_d.cc
│   │       │   └── schur_eliminator_d_d_d.cc
│   │       ├── generate_template_specializations.py
│   │       ├── gmock
│   │       │   ├── gmock.h
│   │       │   └── mock-log.h
│   │       ├── gmock_gtest_all.cc
│   │       ├── gmock_main.cc
│   │       ├── gradient_checker.cc
│   │       ├── gradient_checker_test.cc
│   │       ├── gradient_checking_cost_function.cc
│   │       ├── gradient_checking_cost_function.h
│   │       ├── gradient_checking_cost_function_test.cc
│   │       ├── gradient_problem.cc
│   │       ├── gradient_problem_evaluator.h
│   │       ├── gradient_problem_solver.cc
│   │       ├── gradient_problem_solver_test.cc
│   │       ├── gradient_problem_test.cc
│   │       ├── graph_algorithms.h
│   │       ├── graph_algorithms_test.cc
│   │       ├── graph.h
│   │       ├── graph_test.cc
│   │       ├── gtest
│   │       │   └── gtest.h
│   │       ├── householder_vector.h
│   │       ├── householder_vector_test.cc
│   │       ├── implicit_schur_complement.cc
│   │       ├── implicit_schur_complement.h
│   │       ├── implicit_schur_complement_test.cc
│   │       ├── inner_product_computer.cc
│   │       ├── inner_product_computer.h
│   │       ├── inner_product_computer_test.cc
│   │       ├── integral_types.h
│   │       ├── invert_psd_matrix.h
│   │       ├── invert_psd_matrix_test.cc
│   │       ├── is_close.cc
│   │       ├── is_close.h
│   │       ├── is_close_test.cc
│   │       ├── iterative_schur_complement_solver.cc
│   │       ├── iterative_schur_complement_solver.h
│   │       ├── iterative_schur_complement_solver_test.cc
│   │       ├── jet_test.cc
│   │       ├── lapack.cc
│   │       ├── lapack.h
│   │       ├── levenberg_marquardt_strategy.cc
│   │       ├── levenberg_marquardt_strategy.h
│   │       ├── levenberg_marquardt_strategy_test.cc
│   │       ├── linear_least_squares_problems.cc
│   │       ├── linear_least_squares_problems.h
│   │       ├── linear_operator.cc
│   │       ├── linear_operator.h
│   │       ├── linear_solver.cc
│   │       ├── linear_solver.h
│   │       ├── line_search.cc
│   │       ├── line_search_direction.cc
│   │       ├── line_search_direction.h
│   │       ├── line_search.h
│   │       ├── line_search_minimizer.cc
│   │       ├── line_search_minimizer.h
│   │       ├── line_search_minimizer_test.cc
│   │       ├── line_search_preprocessor.cc
│   │       ├── line_search_preprocessor.h
│   │       ├── line_search_preprocessor_test.cc
│   │       ├── local_parameterization.cc
│   │       ├── local_parameterization_test.cc
│   │       ├── loss_function.cc
│   │       ├── loss_function_test.cc
│   │       ├── low_rank_inverse_hessian.cc
│   │       ├── low_rank_inverse_hessian.h
│   │       ├── map_util.h
│   │       ├── miniglog
│   │       │   └── glog
│   │       │       ├── logging.cc
│   │       │       └── logging.h
│   │       ├── minimizer.cc
│   │       ├── minimizer.h
│   │       ├── minimizer_test.cc
│   │       ├── mutex.h
│   │       ├── normal_prior.cc
│   │       ├── normal_prior_test.cc
│   │       ├── numeric_diff_cost_function_test.cc
│   │       ├── numeric_diff_test_utils.cc
│   │       ├── numeric_diff_test_utils.h
│   │       ├── ordered_groups_test.cc
│   │       ├── parameter_block.h
│   │       ├── parameter_block_ordering.cc
│   │       ├── parameter_block_ordering.h
│   │       ├── parameter_block_ordering_test.cc
│   │       ├── parameter_block_test.cc
│   │       ├── partitioned_matrix_view.cc
│   │       ├── partitioned_matrix_view.h
│   │       ├── partitioned_matrix_view_impl.h
│   │       ├── partitioned_matrix_view_template.py
│   │       ├── partitioned_matrix_view_test.cc
│   │       ├── polynomial.cc
│   │       ├── polynomial.h
│   │       ├── polynomial_test.cc
│   │       ├── preconditioner.cc
│   │       ├── preconditioner.h
│   │       ├── preprocessor.cc
│   │       ├── preprocessor.h
│   │       ├── problem.cc
│   │       ├── problem_impl.cc
│   │       ├── problem_impl.h
│   │       ├── problem_test.cc
│   │       ├── program.cc
│   │       ├── program_evaluator.h
│   │       ├── program.h
│   │       ├── program_test.cc
│   │       ├── random.h
│   │       ├── reorder_program.cc
│   │       ├── reorder_program.h
│   │       ├── reorder_program_test.cc
│   │       ├── residual_block.cc
│   │       ├── residual_block.h
│   │       ├── residual_block_test.cc
│   │       ├── residual_block_utils.cc
│   │       ├── residual_block_utils.h
│   │       ├── residual_block_utils_test.cc
│   │       ├── rotation_test.cc
│   │       ├── schur_complement_solver.cc
│   │       ├── schur_complement_solver.h
│   │       ├── schur_complement_solver_test.cc
│   │       ├── schur_eliminator.cc
│   │       ├── schur_eliminator.h
│   │       ├── schur_eliminator_impl.h
│   │       ├── schur_eliminator_template.py
│   │       ├── schur_eliminator_test.cc
│   │       ├── schur_jacobi_preconditioner.cc
│   │       ├── schur_jacobi_preconditioner.h
│   │       ├── schur_templates.cc
│   │       ├── schur_templates.h
│   │       ├── scratch_evaluate_preparer.cc
│   │       ├── scratch_evaluate_preparer.h
│   │       ├── single_linkage_clustering.cc
│   │       ├── single_linkage_clustering.h
│   │       ├── single_linkage_clustering_test.cc
│   │       ├── small_blas.h
│   │       ├── small_blas_test.cc
│   │       ├── solver.cc
│   │       ├── solver_test.cc
│   │       ├── solver_utils.cc
│   │       ├── solver_utils.h
│   │       ├── sparse_cholesky.cc
│   │       ├── sparse_cholesky.h
│   │       ├── sparse_cholesky_test.cc
│   │       ├── sparse_matrix.cc
│   │       ├── sparse_matrix.h
│   │       ├── sparse_normal_cholesky_solver.cc
│   │       ├── sparse_normal_cholesky_solver.h
│   │       ├── sparse_normal_cholesky_solver_test.cc
│   │       ├── split.cc
│   │       ├── split.h
│   │       ├── stl_util.h
│   │       ├── stringprintf.cc
│   │       ├── stringprintf.h
│   │       ├── suitesparse.cc
│   │       ├── suitesparse.h
│   │       ├── system_test.cc
│   │       ├── test_util.cc
│   │       ├── test_util.h
│   │       ├── triplet_sparse_matrix.cc
│   │       ├── triplet_sparse_matrix.h
│   │       ├── triplet_sparse_matrix_test.cc
│   │       ├── trust_region_minimizer.cc
│   │       ├── trust_region_minimizer.h
│   │       ├── trust_region_minimizer_test.cc
│   │       ├── trust_region_preprocessor.cc
│   │       ├── trust_region_preprocessor.h
│   │       ├── trust_region_preprocessor_test.cc
│   │       ├── trust_region_step_evaluator.cc
│   │       ├── trust_region_step_evaluator.h
│   │       ├── trust_region_strategy.cc
│   │       ├── trust_region_strategy.h
│   │       ├── types.cc
│   │       ├── visibility_based_preconditioner.cc
│   │       ├── visibility_based_preconditioner.h
│   │       ├── visibility_based_preconditioner_test.cc
│   │       ├── visibility.cc
│   │       ├── visibility.h
│   │       ├── visibility_test.cc
│   │       ├── wall_time.cc
│   │       └── wall_time.h
│   ├── jni
│   │   ├── Android.mk
│   │   ├── Application.mk
│   │   └── assert_ndk_version.sh
│   ├── LICENSE
│   ├── package.xml
│   ├── README.md
│   └── scripts
│       ├── make_docs.py
│       └── make_release
└── CMakeLists.txt -> /opt/ros/kinetic/share/catkin/cmake/toplevel.cmake

111 directories, 1240 files
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值