ROS Resources: Documentation | Support | Discussion Forum | Service Status | Q&A answers.ros.org

Turtlebot2_demo with Beta 1 build issue

Hi,
I was trying to build the turtlebot2_demo with Beta 1/RTI and received the following errors during build:

/path/src/turtlebot2_demo/turtlebot2_drivers/src/kobuki_node.cpp: In function ‘int main(int, char**)’:
/path/src/turtlebot2_demo/turtlebot2_drivers/src/kobuki_node.cpp:99:3: error: ‘Pose2D’ is not a member of ‘ecl’
ecl::Pose2D pose;
^
/path/src/turtlebot2_demo/turtlebot2_drivers/src/kobuki_node.cpp:99:15: error: expected primary-expression before ‘double’
ecl::Pose2D pose;
^
/path/src/turtlebot2_demo/turtlebot2_drivers/src/kobuki_node.cpp:102:5: error: ‘Pose2D’ is not a member of ‘ecl’
ecl::Pose2D pose_update;
^
/path/src/turtlebot2_demo/turtlebot2_drivers/src/kobuki_node.cpp:102:17: error: expected primary-expression before ‘double’
ecl::Pose2D pose_update;
^
/path/src/turtlebot2_demo/turtlebot2_drivers/src/kobuki_node.cpp:106:32: error: ‘pose_update’ was not declared in this scope
g_kobuki->updateOdometry(pose_update, pose_update_rates);
^
[ 75%] Built target dumb_teleop__rmw_connext_cpp
/path/src/turtlebot2_demo/turtlebot2_drivers/src/kobuki_node.cpp:113:5: error: ‘pose’ was not declared in this scope
pose *= pose_update;
^
/path/src/turtlebot2_demo/turtlebot2_drivers/src/kobuki_node.cpp:113:13: error: ‘pose_update’ was not declared in this scope
pose *= pose_update;
^
CMakeFiles/kobuki_node__rmw_fastrtps_cpp.dir/build.make:62: recipe for target ‘CMakeFiles/kobuki_node__rmw_fastrtps_cpp.dir/src/kobuki_node.cpp.o’ failed
make[2]: *** [CMakeFiles/kobuki_node__rmw_fastrtps_cpp.dir/src/kobuki_node.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target ‘CMakeFiles/kobuki_node__rmw_fastrtps_cpp.dir/all’ failed
make[1]: *** [CMakeFiles/kobuki_node__rmw_fastrtps_cpp.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs…
CMakeFiles/kobuki_node__rmw_connext_cpp.dir/build.make:62: recipe for target ‘CMakeFiles/kobuki_node__rmw_connext_cpp.dir/src/kobuki_node.cpp.o’ failed
make[2]: *** [CMakeFiles/kobuki_node__rmw_connext_cpp.dir/src/kobuki_node.cpp.o] Error 1
CMakeFiles/Makefile2:104: recipe for target ‘CMakeFiles/kobuki_node__rmw_connext_cpp.dir/all’ failed
make[1]: *** [CMakeFiles/kobuki_node__rmw_connext_cpp.dir/all] Error 2
CMakeFiles/kobuki_node.dir/build.make:62: recipe for target ‘CMakeFiles/kobuki_node.dir/src/kobuki_node.cpp.o’ failed
make[2]: *** [CMakeFiles/kobuki_node.dir/src/kobuki_node.cpp.o] Error 1
CMakeFiles/Makefile2:173: recipe for target ‘CMakeFiles/kobuki_node.dir/all’ failed
make[1]: *** [CMakeFiles/kobuki_node.dir/all] Error 2
Makefile:138: recipe for target ‘all’ failed
make: *** [all] Error 2

Thanks
Vince

Looks like you have a new version of ecl underneath but not the latest version of the kobuki sources. Check that first.

Hi Daniel,
Thanks for the reply. I went to the following url https://github.com/yujinrobot/kobuki_core and downloaded the kinetic branch of files. I compared the two diff_drive.hpp and kobuki.hpp, which are the same as what I have in the files downloaded from sudo apt-get install ros-kinetic-kobuki-driver ros-kinetic-kobuki-ftdi. I did find that in kobuki.hpp the usage of ecl::LegacyPose2D is different from kobuki_node.cpp, which was ecl::Pose2D at lines 99 and 102. I changed them and the build works.

Thanks
Vince

Thanks
Vince

The new debs for kinetic should have this (0.7.2) so you shouldn’t need the sources. I suspect you simply had an outdated deb.

Hi Daniel,
The kinetic debs are fine it’s the urtlebot2_demo/turtlebot2_drivers/src/kobuki_node.cpp file that needs to be corrected, as stated above.

Thanks
Vince