ROS2 Galactic teb_local_planner

一、下载编译

从git上下载costmap_converter包和teb_local_planner包(选择ros2-master即可),这两个包中总共是四个包,编译顺序为:

  1. costmap_converter_msgs
  2. costmap_converter
  3. teb_msgs
  4. teb_local_planner

teb_local_planner 编译遇到std::shared_ptr的问题

解决方法,将 optimal_planner.cpp 文件中的函数进行如下修改:

template < typename T>
void register_type(g2o::Factory* factory, const std::string name)
{
  /*
  std::unique_ptr> ptr_(new g2o::HyperGraphElementCreator());
  std::shared_ptr> shared_(std::move(ptr_));

  factory->registerType(name, shared_);
  */
  factory->registerType(name, new g2o::HyperGraphElementCreator());
}

遇到 std::shared_ptr 的问题则需要降低 g2o 库的版本,不能用最新版的 g2o

二、运行

  1. launch文件从foxy版本下复制过来
  2. 需要将 cmakelist 文件中install(DIRECTORY params DESTINATION share/${PROJECT_NAME})修改为install(DIRECTORY launch DESTINATION share/${PROJECT_NAME})
  3. 需要修改launch/teb_params.yaml,参考nav2的默认参数文件进行修改
  4. 使用时记得添加默认地图

你可能感兴趣的:(vslam_exp,c++)