一、下载编译
从git上下载costmap_converter包和teb_local_planner包(选择ros2-master即可),这两个包中总共是四个包,编译顺序为:
- costmap_converter_msgs
- costmap_converter
- teb_msgs
- 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<g2o::HyperGraphElementCreator<T>> ptr_(new g2o::HyperGraphElementCreator<T>());
std::shared_ptr<g2o::HyperGraphElementCreator<T>> shared_(std::move(ptr_));
factory->registerType(name, shared_);
*/
factory->registerType(name, new g2o::HyperGraphElementCreator<T>());
}
遇到 std::shared_ptr 的问题则需要降低 g2o 库的版本,不能用最新版的 g2o
二、运行
- launch文件从foxy版本下复制过来
- 需要将 cmakelist 文件中
install(DIRECTORY params DESTINATION share/${PROJECT_NAME}) 修改为install(DIRECTORY launch DESTINATION share/${PROJECT_NAME}) - 需要修改
launch/teb_params.yaml ,参考nav2的默认参数文件进行修改 - 使用时记得添加默认地图
|