Closed caimingxue closed 3 years ago
您好,我在ros-melodic上测试,的确不行,原因应该是在clean_robot这个功能包里,PathPlanningNode.cpp里面:
/costmap_2d::Costmap2DROS lcr("cleaning_costmap", tf);
以及CleaningPathPlanner.cpp:402:55: error: no matching function for call to ‘costmap_2d::Costmap2DROS::getRobotPose(tf::Stamped
猜测是movebase里面costmap_2d的版本问题,我之前测试在kinetic是ok的。然而我这两天看了好久,没发现是哪里的问题。
我刚刚修复了一下 并且通过了测试,的确是由于costmap版本的问题,melodic中tf升级为了tf2。两个ros版本中的api不一致。
具体修改为
Cleaningpathplanner.h
中 91行 initPose_类型改为
geometry_msgs::PoseStamped initPose_;
Cleaningpathplanner.cpp
中 410 411行 获取原点坐标改为
double wx = initPose_.pose.position.x; //获取原点的x坐标
double wy = initPose_.pose.position.y;
PathPlanningNode.cpp
中18行改为
tf2_ros::Buffer tf;
tf2_ros::TransformListener tf2_listener(tf); //多增加了一行
你好,我在kinetic下测试时通过的,这几天我会抽空测试一下melodic,看报错应该是costmap一些东西有不一样。