li-haojia / Clean-robot-turtlebot3

Autonomous Clean robot. Full coverage path planner and exploration.
275 stars 92 forks source link

你好,你的这个工程是在哪个ROS版本上运行的,我用melodic编译会报错,如下 #1

Closed caimingxue closed 3 years ago

li-haojia commented 4 years ago

你好,我在kinetic下测试时通过的,这几天我会抽空测试一下melodic,看报错应该是costmap一些东西有不一样。

numb0824 commented 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的。然而我这两天看了好久,没发现是哪里的问题。

li-haojia commented 3 years ago

我刚刚修复了一下 并且通过了测试,的确是由于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); //多增加了一行
li-haojia commented 3 years ago

melodic分支代码已经更新 https://github.com/mywisdomfly/Clean-robot-turtlebot3/tree/melodic-devel