如果没有ninja,在使用时会报错: CMake was unable to find a build program corresponding to "Ninja". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool.
constexprchar kClockTopic[] = "clock"; constexprchar kTfStaticTopic[] = "/tf_static"; constexprchar kTfTopic[] = "tf"; constexprdouble kClockPublishFrequencySec = 1. / 30.; constexprint kSingleThreaded = 1; // We publish tf messages one second earlier than other messages. Under // the assumption of higher frequency tf this should ensure that tf can // always interpolate. const ::ros::Duration kDelay = ::ros::Duration(1.0);
voidMapBuilderBridge::FinishTrajectory(constint trajectory_id) { LOG(INFO) << "Finishing trajectory with ID '" << trajectory_id << "'..."; // Make sure there is a trajectory with 'trajectory_id'. CHECK_EQ(sensor_bridges_.count(trajectory_id), 1); map_builder_->FinishTrajectory(trajectory_id); sensor_bridges_.erase(trajectory_id); }
对于residual[1] = T(0.0);的情况,如果不加T,编译就会报错 error: no match for ‘operator=’ (operand types are ‘ceres::Jet’ and ‘double’) . Jet类型是ceres内置类型,我们要把double转成Jet类型,也就是T(0.0)
方案:一台机器运行local optimization,另一台运行 global optimization
Cloud-based mapping ,using a gRPC streaming connection between local and global SLAM to propagate sensor data and local SLAM updates, which does not support ACKs and resending, hence this is not going to work over spotty WiFi.
先安装protobuf和ceres
安装 grpc
一开始下载grpc后进行编译,结果报错:
1 2 3 4
CMake Warning at cmake/abseil-cpp.cmake:30 (message): gRPC_ABSL_PROVIDER is "module" but ABSL_ROOT_DIR is wrong Call Stack (most recent call first): CMakeLists.txt:188 (include)