Hello, I'm new both to ROS and to linux. I've tried to build 3d_navigation package as it is described in tutorial: 3d_navigation. After completing all the steps to check out the code from svn repositories and calling
rosmake --rosdep-install 3d_navigation
I get an error that octomap_server fails to be built.
If I install just single package octomap_server and build it
rosmake octomap_server
I get the same error. Below is the log of build failures.
Note that I install packages in custom folder ~/ros_stacks and all the paths are configured in bashrc. The OS I use is Ubuntu 11.04. The distribution of ROS is Diamondback.
How can I solve this problem?
Build failures with context:
---------------------
octomap_server
mkdir -p bin
cd build && cmake -Wdev -DCMAKE_TOOLCHAIN_FILE=`rospack find rosbuild`/rostoolchain.cmake ..
[rosbuild] Building package octomap_server
[rosbuild] Including /opt/ros/diamondback/stacks/ros_comm/clients/roslisp/cmake/roslisp.cmake
[rosbuild] Including /opt/ros/diamondback/stacks/ros_comm/clients/rospy/cmake/rospy.cmake
[rosbuild] Including /opt/ros/diamondback/stacks/ros_comm/clients/cpp/roscpp/cmake/roscpp.cmake
-- Configuring done
-- Generating done
-- Build files have been written to: /home/probob/ros_stacks/octomap_server/build
cd build && make -l2
make[1]: Entering folder `/home/probob/ros_stacks/octomap_server/build'
make[2]: Entering folder `/home/probob/ros_stacks/octomap_server/build'
make[3]: Entering folder `/home/probob/ros_stacks/octomap_server/build'
make[3]: Exiting from folder `/home/probob/ros_stacks/octomap_server/build'
[ 0%] Built target rospack_genmsg_libexe
make[3]: Entering folder `/home/probob/ros_stacks/octomap_server/build'
make[3]: Exiting from folder `/home/probob/ros_stacks/octomap_server/build'
[ 0%] Built target rosbuild_precompile
make[3]: Entering folder `/home/probob/ros_stacks/octomap_server/build'
make[3]: Exiting from folder `/home/probob/ros_stacks/octomap_server/build'
make[3]: Entering folder `/home/probob/ros_stacks/octomap_server/build'
[ 20%] Building CXX object CMakeFiles/octomap_server.dir/src/OctomapServerCombined.o
/home/probob/ros_stacks/octomap_server/src/OctomapServerCombined.cpp: In member function ‘void octomap::OctomapServerCombined::insertCloudCallback(const sensor_msgs::PointCloud2_<std::allocator<void> >::ConstPtr&)’:
/home/probob/ros_stacks/octomap_server/src/OctomapServerCombined.cpp:164:3: error: ‘KeySet’ is not a member of ‘octomap::OctomapROS<octomap::OcTree>::OcTreeType’
/home/probob/ros_stacks/octomap_server/src/OctomapServerCombined.cpp:164:33: error: expected ‘;’ before ‘free_cells’
/home/probob/ros_stacks/octomap_server/src/OctomapServerCombined.cpp:177:6: error: ‘free_cells’ was not declared in this scope
/home/probob/ros_stacks/octomap_server/src/OctomapServerCombined.cpp:183:7: error: ‘occupied_cells’ was not declared in this scope
/home/probob/ros_stacks/octomap_server/src/OctomapServerCombined.cpp:189:9: error: ‘free_cells’ was not declared in this scope
/home/probob/ros_stacks/octomap_server/src/OctomapServerCombined.cpp:198:33: error: ‘octomap::OcTreeType::KeySet’ has not been declared
/home/probob/ros_stacks/octomap_server/src/OctomapServerCombined.cpp:198:50: error: expected ‘;’ before ‘it’
/home/probob/ros_stacks/octomap_server/src/OctomapServerCombined.cpp:198:97: error: name lookup of ‘it’ changed for ISO ‘for’ scoping
/home/probob/ros_stacks/octomap_server/src/OctomapServerCombined.cpp:198:97: note: (if you use ‘-fpermissive’ G++ will accept your code)
/home/probob/ros_stacks/octomap_server/src/OctomapServerCombined.cpp:198:102: error: ‘end’ was not declared in this scope
/home/probob/ros_stacks/octomap_server/src/OctomapServerCombined.cpp:199:12: error: ‘occupied_cells’ was not declared in this scope
/home/probob/ros_stacks/octomap_server/src/OctomapServerCombined.cpp:200:51: error: no matching function for call to ‘octomap::OcTree::updateNode(const pcl::PointXYZ&, bool, bool)’
/home/probob/ros_stacks/octomap_mapping/octomap/octomap/include/octomap/OccupancyOcTreeBase.hxx:206:9: note: candidates are: NODE* octomap::OccupancyOcTreeBase<NODE>::updateNode(const octomap::point3d&, bool, bool) [with NODE = octomap::OcTreeNode, octomap::point3d = octomath::Vector3]
/home/probob/ros_stacks/octomap_mapping/octomap/octomap/include/octomap/OccupancyOcTreeBase.hxx:214:9: note: NODE* octomap::OccupancyOcTreeBase<NODE>::updateNode(const octomap::point3d&, float, bool) [with NODE = octomap::OcTreeNode, octomap::point3d = octomath::Vector3]
/home/probob/ros_stacks/octomap_mapping/octomap/octomap/include/octomap/OccupancyOcTreeBase.hxx:222:9: note: NODE* octomap::OccupancyOcTreeBase<NODE>::updateNode(const octomap::OcTreeKey&, bool, bool) [with NODE = octomap::OcTreeNode]
/home/probob/ros_stacks/octomap_mapping/octomap/octomap/include/octomap/OccupancyOcTreeBase.hxx:234:9: note: NODE* octomap::OccupancyOcTreeBase<NODE>::updateNode(const octomap::OcTreeKey&, float, bool) [with NODE = octomap::OcTreeNode]
/home/probob/ros_stacks/octomap_server/src/OctomapServerCombined.cpp:205:31: error: ‘octomap::OcTreeType::KeySet’ has not been declared
/home/probob/ros_stacks/octomap_server/src/OctomapServerCombined.cpp:205:48: error: expected ‘;’ before ‘it’
/home/probob/ros_stacks/octomap_server/src/OctomapServerCombined.cpp:205:104: error: ‘end’ was not declared in this scope
/home/probob/ros_stacks/octomap_server/src/OctomapServerCombined.cpp:206:47: error: no matching function for call to ‘octomap::OcTree::updateNode(const pcl::PointXYZ&, bool, bool)’
/home/probob/ros_stacks/octomap_mapping/octomap/octomap/include/octomap/OccupancyOcTreeBase.hxx:206:9: note: candidates are: NODE* octomap::OccupancyOcTreeBase<NODE>::updateNode(const octomap::point3d&, bool, bool) [with NODE = octomap::OcTreeNode, octomap::point3d = octomath::Vector3]
/home/probob/ros_stacks/octomap_mapping/octomap/octomap/include/octomap/OccupancyOcTreeBase.hxx:214:9: note: NODE* octomap::OccupancyOcTreeBase<NODE>::updateNode(const octomap::point3d&, float, bool) [with NODE = octomap::OcTreeNode, octomap::point3d = octomath::Vector3]
/home/probob/ros_stacks/octomap_mapping/octomap/octomap/include/octomap/OccupancyOcTreeBase.hxx:222:9: note: NODE* octomap::OccupancyOcTreeBase<NODE>::updateNode(const octomap::OcTreeKey&, bool, bool) [with NODE = octomap::OcTreeNode]
/home/probob/ros_stacks/octomap_mapping/octomap/octomap/include/octomap/OccupancyOcTreeBase.hxx:234:9: note: NODE* octomap::OccupancyOcTreeBase<NODE>::updateNode(const octomap::OcTreeKey&, float, bool) [with NODE = octomap::OcTreeNode]
make[3]: *** [CMakeFiles/octomap_server.dir/src/OctomapServerCombined.o] Error 1
make[3]: Exiting from folder `/home/probob/ros_stacks/octomap_server/build'
make[2]: *** [CMakeFiles/octomap_server.dir/all] Error 2
make[2]: Exiting from folder `/home/probob/ros_stacks/octomap_server/build'
make[1]: *** [all] Error 2
make[1]: Exiting from folder `/home/probob/ros_stacks/octomap_server/build'
make: *** [all] Error 2
I am currently working on all of it for improvements - 3d_navigation, octomap_server and octomap. Some of these improvements require changes in all of these packages simultaneously, and the underlying OctoMap library package itself. There is now a new OctoMap 1.1.1 released for testing and the octomap package is updated to use the new version. Update your packages ("svn up" in octomap should be enough) and all should compile again.
That being said, expect changes throughout the code as it is still under active development.
It's interesting that the problem is not really in octomap_server. After changing folder permissions for the local user to read and write, octomap_server and whole octomap_mapping packages are compiled normally.
But when I call rosmake 3d_navigation I get two failures regarding motion_planning_common package.
In file motion_planning_common/planning_environment/src/models I've changed the line 79:
kmodel_ = new planning_models::KinematicModel::KinematicModel(*urdf_, group_configs, multi_dof_configs);
to
kmodel_ = new planning_models::KinematicModel(*urdf_, group_configs, multi_dof_configs);
In file motion_planning_common/planning_environment/src/tools I've added
#include <boost/thread.hpp>
After those fixes I could successfully compile 3d_navigation package and run the simulation.
Asked: 2011-07-28 15:01:49 -0500
Seen: 212 times
Last updated: Aug 01 '11
How to get octomap to store data sent by rgbdslam
how does octomap realize the height of different place?
Improve quality of octomap with params
how to find or know the values for Z-axis in octomap?
subscribe point clouds to octomap
Point cloud to Octomap? No map received
Overlay octomap with devel branch (source) for ROS
How to use RGBD-6D-SLAM for path planning and navigation with Kinect
Initializing and manipulating OctoMaps with more than just occupancy
ROS Answers is licensed under Creative Commons Attribution 3.0 Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.