ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

pcl package missing in Hydro

asked 2014-07-07 08:14:39 -0500

kenomuseki gravatar image

Hi,

I am using Ros-Hydro in Ubuntu. While I tried to 'rosmake robotino_node', I got the following dependency error:

...

Failed to invoke /opt/ros/hydro/bin/rospack deps-manifests robotino_node [rospack] Error: package/stack 'robotino_node' depends on non-existent package 'pcl' and rosdep claims that it is not a system dependency. Check the ROS_PACKAGE_PATH or try calling 'rosdep update'

CMake Error at /opt/ros/hydro/share/ros/core/rosbuild/public.cmake:129 (message):

Failed to invoke rospack to get compile flags for package 'robotino_node'.
Look above for errors from rospack itself.  Aborting.  Please fix the
broken dependency!

...

When I checked the installed packages from 'rospack list', there were three packages related to pcl: pcl_conversions, pcl_msgs, pcl_ros but no 'pcl' package.

How do I install the package to resolve this problem.

Thanks in advance.

edit retag flag offensive close merge delete

2 Answers

Sort by » oldest newest most voted
0

answered 2014-07-07 08:27:18 -0500

Wolf gravatar image

With catkin (groovy/hydro) there are no separate packages for OpenCV and PCL anymore. However, apparently the package you mentioned still uses rosmake, which historically requires these packages, if applied.... I am not really sure what is the best way in this case, but I'd try to remove pcl and opencv2 from the dependencies in manifest.xml and add to CMakeLists.txt something like

find_package( PCL 1.2 REQUIRED segmentation filters visualization )

You might need to add further:

include_directories(  ${PCL_INCLUDE_DIRS} )

link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})

and link your targets accordingly:

target_link_libraries ( your_exec ${PCL_LIBRARIES}  )
edit flag offensive delete link more

Comments

I followed your instruction to get new error message as follows: ... {------------------------------------------------------------------------------- make[3]: Entering directory `/home/jiwung/catkin_ws/src/robotino-ros-pkg/robotino/robotino_node/build' [ 50%] Building CXX object CMakeFiles/robotino_node.dir/src/KinectROS.cpp.o /home/jiwung/catkin_ws/src/robotino-ros-pkg/robotino/robotino_node/src/KinectROS.cpp: In member function ‘void KinectROS::depthEvent(const short unsigned int*, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int)’: /home/jiwung/catkin_ws/src/robotino-ros-pkg/robotino/robotino_node/src/KinectROS.cpp:89:22: error: cannot convert ‘ros::Time’ to ‘uint64_t {aka long unsigned int}’ in assignment In file included from /usr/include/pcl-1.7/pcl/point_cloud.h:50:0, from /opt/ros/hydro/include/pcl_ros/point_cloud.h:5, from /home/jiwung/catkin_ws/src/robotino-ros-pkg/robotino/robotino_node/include/ ...

kenomuseki gravatar image kenomuseki  ( 2014-07-07 09:05:20 -0500 )edit

Hi kenomuseki, this is a conversion error. Please see http://wiki.ros.org/hydro/Migration#PCL :)

DevonW gravatar image DevonW  ( 2014-07-14 02:33:09 -0500 )edit
0

answered 2014-07-07 09:07:34 -0500

kenomuseki gravatar image

Hi Wolf, Thank you for your help. I followed your instruction but get new error message as follows:

{------------------------------------------------------------------------------- make[3]: Entering directory /home/jiwung/catkin_ws/src/robotino-ros-pkg/robotino/robotino_node/build' [ 50%] Building CXX object CMakeFiles/robotino_node.dir/src/KinectROS.cpp.o /home/jiwung/catkin_ws/src/robotino-ros-pkg/robotino/robotino_node/src/KinectROS.cpp: In member function ‘void KinectROS::depthEvent(const short unsigned int*, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int)’: /home/jiwung/catkin_ws/src/robotino-ros-pkg/robotino/robotino_node/src/KinectROS.cpp:89:22: error: cannot convert ‘ros::Time’ to ‘uint64_t {aka long unsigned int}’ in assignment In file included from /usr/include/pcl-1.7/pcl/point_cloud.h:50:0, from /opt/ros/hydro/include/pcl_ros/point_cloud.h:5, from /home/jiwung/catkin_ws/src/robotino-ros-pkg/robotino/robotino_node/include/KinectROS.h:14, from /home/jiwung/catkin_ws/src/robotino-ros-pkg/robotino/robotino_node/src/KinectROS.cpp:8: /usr/include/pcl-1.7/pcl/point_traits.h: At global scope: /usr/include/pcl-1.7/pcl/point_traits.h: In instantiation of ‘pcl::traits::fieldList<sensor_msgs::PointCloud2_<std::allocator<void> > >’: /usr/include/pcl-1.7/pcl/filters/voxel_grid.h:474:61: instantiated from ‘pcl::VoxelGrid<sensor_msgs::PointCloud2_<std::allocator<void> > >’ /home/jiwung/catkin_ws/src/robotino-ros-pkg/robotino/robotino_node/src/KinectROS.cpp:124:44: instantiated from here /usr/include/pcl-1.7/pcl/point_traits.h:152:12: error: invalid use of incomplete type ‘struct pcl::traits::fieldList<sensor_msgs::PointCloud2_<std::allocator<void> > >’ /usr/include/pcl-1.7/pcl/point_traits.h:152:12: error: declaration of ‘struct pcl::traits::fieldList<sensor_msgs::PointCloud2_<std::allocator<void> > >’ /usr/include/pcl-1.7/pcl/point_traits.h: In instantiation of ‘pcl::traits::fieldList<sensor_msgs::PointCloud2_<std::allocator<void> > >’: /usr/include/pcl-1.7/pcl/filters/voxel_grid.h:474:61: instantiated from ‘pcl::VoxelGrid<sensor_msgs::PointCloud2_<std::allocator<void> > >’ /home/jiwung/catkin_ws/src/robotino-ros-pkg/robotino/robotino_node/src/KinectROS.cpp:124:44: instantiated from here /usr/include/pcl-1.7/pcl/point_traits.h:158:7: error: no matching function for call to ‘assertion_failed(mpl_::failed************ (pcl::traits::fieldList<sensor_msgs::PointCloud2_<std::allocator<void> > >::POINT_TYPE_NOT_PROPERLY_REGISTERED::************)(sensor_msgs::PointCloud2_<std::allocator<void> >&))’ /usr/include/pcl-1.7/pcl/point_traits.h:158:7: note: candidate is: /usr/include/boost/mpl/assert.hpp:79:5: note: template<bool C> int mpl_::assertion_failed(typename mpl_::assert<C>::type) In file included from /home/jiwung/catkin_ws/src/robotino-ros-pkg/robotino/robotino_node/src/KinectROS.cpp:10:0: /usr/include/pcl-1.7/pcl/filters/voxel_grid.h: In instantiation of ‘pcl::VoxelGrid<sensor_msgs::PointCloud2_<std::allocator<void> > >’: /home/jiwung/catkin_ws/src/robotino-ros-pkg/robotino/robotino_node/src/KinectROS.cpp:124:44: instantiated from here /usr/include/pcl-1.7/pcl/filters/voxel_grid.h:474:61: error: no type named ‘type’ in ‘struct pcl::traits::fieldList<sensor_msgs::PointCloud2_<std::allocator<void> > >’ /home/jiwung/catkin_ws/src/robotino-ros-pkg/robotino/robotino_node/src/KinectROS.cpp: In member function ‘void KinectROS::depthEvent(const short unsigned int*, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int)’: /home/jiwung/catkin_ws/src/robotino-ros-pkg/robotino/robotino_node/src/KinectROS.cpp:126:74: error: no matching function for call to ‘pcl::VoxelGrid<sensor_msgs::PointCloud2_<std::allocator<void> > >::setInputCloud(boost::shared_ptr<sensor_msgs ... (more)

edit flag offensive delete link more

Comments

no idea, sorry...

Wolf gravatar image Wolf  ( 2014-07-07 10:07:15 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2014-07-07 08:14:39 -0500

Seen: 1,166 times

Last updated: Jul 07 '14