ROS Noetic更换最新版teb_local_planner功能包编译报错has no member named ‘feasibility_check_lookahead...解决方法

   今天将最新版Noetic版本的teb_local_planner功能包放到工作空间内进行编译时产生了以下报错:

在这里插入图片描述

/home/gly/catkin_ws/src/local_planner/teb_local_planner-noetic-devel/src/teb_config.cpp: In member function ‘void teb_local_planner::TebConfig::reconfigure(teb_local_planner::TebLocalPlannerReconfigureConfig&):
/home/gly/catkin_ws/src/local_planner/teb_local_planner-noetic-devel/src/teb_config.cpp:202:57: error:class teb_local_planner::TebLocalPlannerReconfigureConfighas no member namedfeasibility_check_lookahead_distance202 |   trajectory.feasibility_check_lookahead_distance = cfg.feasibility_check_lookahead_distance;
      |                                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gly/catkin_ws/src/local_planner/teb_local_planner-noetic-devel/src/teb_config.cpp:204:45: error:class teb_local_planner::TebLocalPlannerReconfigureConfighas no member namedcontrol_look_ahead_poses204 |   trajectory.control_look_ahead_poses = cfg.control_look_ahead_poses;
      |                                             ^~~~~~~~~~~~~~~~~~~~~~~~
/home/gly/catkin_ws/src/local_planner/teb_local_planner-noetic-devel/src/teb_config.cpp:205:55: error:class teb_local_planner::TebLocalPlannerReconfigureConfighas no member namedprevent_look_ahead_poses_near_goal205 |   trajectory.prevent_look_ahead_poses_near_goal = cfg.prevent_look_ahead_poses_near_goal;
      |                                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gly/catkin_ws/src/local_planner/teb_local_planner-noetic-devel/src/teb_config.cpp:218:43: error:class teb_local_planner::TebLocalPlannerReconfigureConfighas no member nameduse_proportional_saturation218 |   robot.use_proportional_saturation = cfg.use_proportional_saturation;
      |                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gly/catkin_ws/src/local_planner/teb_local_planner-noetic-devel/src/teb_config.cpp:219:11: error:class teb_local_planner::TebLocalPlannerReconfigureConfighas no member namedmax_vel_trans; did you mean ‘max_vel_theta’?
  219 |   if (cfg.max_vel_trans == 0.0)
      |           ^~~~~~~~~~~~~
      |           max_vel_theta
/home/gly/catkin_ws/src/local_planner/teb_local_planner-noetic-devel/src/teb_config.cpp:222:9: error:class teb_local_planner::TebLocalPlannerReconfigureConfighas no member namedmax_vel_trans; did you mean ‘max_vel_theta’?
  222 |     cfg.max_vel_trans = robot.max_vel_x;
      |         ^~~~~~~~~~~~~
      |         max_vel_theta
/home/gly/catkin_ws/src/local_planner/teb_local_planner-noetic-devel/src/teb_config.cpp:224:29: error:class teb_local_planner::TebLocalPlannerReconfigureConfighas no member namedmax_vel_trans; did you mean ‘max_vel_theta’?
  224 |   robot.max_vel_trans = cfg.max_vel_trans;
      |                             ^~~~~~~~~~~~~
      |                             max_vel_theta
/home/gly/catkin_ws/src/local_planner/teb_local_planner-noetic-devel/src/teb_config.cpp:230:42: error:class teb_local_planner::TebLocalPlannerReconfigureConfighas no member namedtrans_stopped_vel230 |   goal_tolerance.trans_stopped_vel = cfg.trans_stopped_vel;
      |                                          ^~~~~~~~~~~~~~~~~
/home/gly/catkin_ws/src/local_planner/teb_local_planner-noetic-devel/src/teb_config.cpp:231:42: error:class teb_local_planner::TebLocalPlannerReconfigureConfighas no member namedtheta_stopped_vel231 |   goal_tolerance.theta_stopped_vel = cfg.theta_stopped_vel;
      |                                          ^~~~~~~~~~~~~~~~~
/home/gly/catkin_ws/src/local_planner/teb_local_planner-noetic-devel/src/teb_config.cpp:244:52: error:class teb_local_planner::TebLocalPlannerReconfigureConfighas no member namedobstacle_proximity_ratio_max_vel244 |   obstacles.obstacle_proximity_ratio_max_vel = cfg.obstacle_proximity_ratio_max_vel;
      |                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gly/catkin_ws/src/local_planner/teb_local_planner-noetic-devel/src/teb_config.cpp:245:50: error:class teb_local_planner::TebLocalPlannerReconfigureConfighas no member namedobstacle_proximity_lower_bound245 |   obstacles.obstacle_proximity_lower_bound = cfg.obstacle_proximity_lower_bound;
      |                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gly/catkin_ws/src/local_planner/teb_local_planner-noetic-devel/src/teb_config.cpp:246:50: error:class teb_local_planner::TebLocalPlannerReconfigureConfighas no member namedobstacle_proximity_upper_bound246 |   obstacles.obstacle_proximity_upper_bound = cfg.obstacle_proximity_upper_bound;
      |                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gly/catkin_ws/src/local_planner/teb_local_planner-noetic-devel/src/teb_config.cpp:269:46: error:class teb_local_planner::TebLocalPlannerReconfigureConfighas no member namedweight_velocity_obstacle_ratio269 |   optim.weight_velocity_obstacle_ratio = cfg.weight_velocity_obstacle_ratio;
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gly/catkin_ws/src/local_planner/teb_local_planner-noetic-devel/src/teb_config.cpp:277:47: error:class teb_local_planner::TebLocalPlannerReconfigureConfighas no member namedmax_number_plans_in_current_class277 |   hcp.max_number_plans_in_current_class = cfg.max_number_plans_in_current_class;
      |                                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gly/catkin_ws/src/local_planner/teb_local_planner-noetic-devel/src/teb_config.cpp:283:44: error:class teb_local_planner::TebLocalPlannerReconfigureConfighas no member namedselection_dropping_probability283 |   hcp.selection_dropping_probability = cfg.selection_dropping_probability;
      |                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gly/catkin_ws/src/local_planner/teb_local_planner-noetic-devel/src/teb_config.cpp:299:46: error:class teb_local_planner::TebLocalPlannerReconfigureConfighas no member nameddivergence_detection_enable299 |   recovery.divergence_detection_enable = cfg.divergence_detection_enable;
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gly/catkin_ws/src/local_planner/teb_local_planner-noetic-devel/src/teb_config.cpp:300:55: error:class teb_local_planner::TebLocalPlannerReconfigureConfighas no member nameddivergence_detection_max_chi_squared300 |   recovery.divergence_detection_max_chi_squared = cfg.divergence_detection_max_chi_squared;
      |                                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [local_planner/teb_local_planner-noetic-devel/CMakeFiles/teb_local_planner.dir/build.make:128:local_planner/teb_local_planner-noetic-devel/CMakeFiles/teb_local_planner.dir/src/teb_config.cpp.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:726:local_planner/teb_local_planner-noetic-devel/CMakeFiles/teb_local_planner.dir/all] 错误 2
make: *** [Makefile:141:all] 错误 2
Invoking "make -j1 -l1" failed

   1、报错内容

   总结一下大致是 error: ‘class teb_local_planner::TebLocalPlannerReconfigureConfig’ has no member named ‘xxx’这一类的错误

   2、报错原因

   报错原因是之前采用了以下语句,在ROS默认路径下安装了旧版本的teb_local_palnner,使得在/opt/ros/noetic/include路径下存在着旧版本teb_local_palnner所对应的一系列头文件

sudo apt install ros-noetic-teb-local-planner

   新版本的teb_local_palnner添加了上述报错内容中的参数,然而这些参数在旧版本的TebLocalPlannerReconfigureConfig.h文件中编写的teb_local_planner::TebLocalPlannerReconfigureConfig类中是不存在的,因此,当我们在自己创建的工作空间下第一次进行新的teb_local_palnner包的编译时,由于之前没有编译过,自然也就没有生成这个新包对应的TebLocalPlannerReconfigureConfig.h文件,而在ROS的默认路径中却存在旧版本的这个文件,旧版本的这个文件中缺少新加入的参数,因此发送报错。

   3、报错内容解决方法

   (1)、打开一个新的终端,执行以下语句,进入存放该旧版头文件的目录下

cd /opt/ros/noetic/include

   (2)、执行以下语句删除旧版teb_local_palnner包的相关头文件

sudo rm -rf ./teb_local_planner/

   4、方法验证

   此时,在存放新的teb_lcoal_planner功能包的工作空间下进行编译,即可成功编译

在这里插入图片描述

   编译成功后在工作空间的devel/include/teb_local_planner文件夹下生成了新的TebLocalPlannerReconfigureConfig.h

在这里插入图片描述


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕羽★

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值