Hi Josh, The code would have been helpful! laser_proc.cpp:109: mob_client.call(mob_msg); where: ros::ServiceClient mob_client = node.serviceClient("robot_control", true); and surveyor_ctrl::controlCmd mob_msg; Similarly, laser_proc.cpp:380 is: laser_client.call(msg) where msg is a laserCmd and laser_client is similar to mob_client (same declaration, different service). Yes, the laserCmd and controlCmd are generated from .srv files in surveyor_ctrl. Actually, as I just went to grab the header files to paste here, I noticed that there were laserCmd.h in two places: surveyor_ctrl/srv/cpp/surveyor_ctrl/laserCmd.h and surveyor_ctrl/srv_gen/cpp/include/surveyor_ctrl/laserCmd.h. The former had header files with old dates and the md5sum information the error message contained (a line like "inline static std:;string getMD5Sum() { return....}"), while the latter file was generated today and contained a similar call but as a private function. I removed the old files and their directory (the srv/cpp items) and rebuilt everything and had success! So I think problem solved! Did the location of generated service headers change between box and ctutrtle?? Thanks for pointing me in the right direction! Thanks, Barry On 11/09/2010 11:11 AM, Josh Faust wrote: > What is the code that's causing the error? (e.g. laser_proc.cpp:109). > > Are laserCmd and controlCmd generated from .srv files? What does > their headers look like? > > Josh > > On Tue, Nov 9, 2010 at 11:01 AM, Barry O'Brien > > wrote: > > Hello, > > I recently upgraded my system from box turtle to cturtle and am having > some odd compilation issues. I am running Ubuntu 9.10 (64-bit). > > I have four separate ROS nodes that have previously compiled and ran > just fine, but following the upgrade two of the four nodes are no > longer > compiling. These two nodes (called surveyor_vision and surveyor_ui) > depend on services (laserCmd, controlCmd) defined in one of the other > (correctly building) nodes (called surveyor_ctrl). As far as I can > tell, > the errors have to do with apparent changes to the way Services and > ServiceClients are implemented. > > After reading through the change logs for cturtle, it is clear > that this > functionality was modified between box turtle and cturtle > releases, but > that all changes made should have retained backwards compatibility. > Similarly, the OpenCV warnings should have been addressed in > incremental > updates according to the mailing list and change logs but are still > being thrown. This is my confusion - I can see that others have seen > these errors/warnings, but that they should have been addressed > with the > software I have installed. > > I have confirmed my Ubuntu package sources list matches that on > the ROS > installation documentation, and apt-get reports all sources are > up-to-date. I have also confirmed that my .bashrc correctly points to > the cturtle setup script. > > My question is are there other places that are maintaining "hidden" > paths to box turtle libraries other than the rather obvious places I > mention above? Or does this point to a required code change in the > instantiation and/or use of these services? > > Please let me know if there is any other information that I am > forgetting to provide. > > The output from attempting to build surveyor_vision is below. > > Thanks, > Barry O'Brien > Newton Robotics > > 0%] Built target rospack_genmsg_libexe > [ 0%] Built target rosbuild_precompile > [ 50%] Building CXX object > src/CMakeFiles/surveyor_vision.dir/laser_proc.o > In file included from > /home/bobrien/newton/surveyor/surveyor_vision/include/surveyor_vision/laser_proc.h:5, > from > /home/bobrien/newton/surveyor/surveyor_vision/src/laser_proc.cpp:1: > /opt/ros/cturtle/stacks/vision_opencv/opencv2/opencv/include/opencv/cv.h:47:2: > warning: #warning "This is a deprecated opencv header provided for > compatibility. Please include a header from a corresponding opencv > module" > In file included from > /opt/ros/cturtle/stacks/vision_opencv/opencv2/opencv/include/opencv/cv.h:64, > from > /home/bobrien/newton/surveyor/surveyor_vision/include/surveyor_vision/laser_proc.h:5, > from > /home/bobrien/newton/surveyor/surveyor_vision/src/laser_proc.cpp:1: > /opt/ros/cturtle/stacks/vision_opencv/opencv2/opencv/include/opencv2/core/internal.hpp:297:1: > warning: "CV_IMPL" redefined > In file included from > /home/bobrien/newton/surveyor/surveyor_vision/include/surveyor_vision/laser_proc.h:5, > from > /home/bobrien/newton/surveyor/surveyor_vision/src/laser_proc.cpp:1: > /opt/ros/cturtle/stacks/vision_opencv/opencv2/opencv/include/opencv/cv.h:60:1: > warning: this is the location of the previous definition > /opt/ros/cturtle/stacks/vision_opencv/opencv2/opencv/include/opencv/cv.h:67:8: > warning: extra tokens at end of #endif directive > In file included from > /opt/ros/cturtle/ros/core/roscpp/include/ros/service_client.h:33, > from /opt/ros/cturtle/ros/core/roscpp/include/ros/node_handle.h:35, > from /opt/ros/cturtle/ros/core/roscpp/include/ros/ros.h:45, > from > /home/bobrien/newton/surveyor/surveyor_vision/include/surveyor_vision/laser_proc.h:4, > from > /home/bobrien/newton/surveyor/surveyor_vision/src/laser_proc.cpp:1: > /opt/ros/cturtle/ros/core/roslib/include/ros/service_traits.h: In > static > member function ‘static const char* > ros::service_traits::MD5Sum::value(const M&) [with M = > surveyor_ctrl::controlCmd]’: > /opt/ros/cturtle/ros/core/roslib/include/ros/service_traits.h:94: > instantiated from ‘const char* ros::service_traits::md5sum(const M&) > [with M = surveyor_ctrl::controlCmd]’ > /opt/ros/cturtle/ros/core/roscpp/include/ros/service_client.h:90: > instantiated from ‘bool ros::ServiceClient::call(Service&) [with > Service > = surveyor_ctrl::controlCmd]’ > /home/bobrien/newton/surveyor/surveyor_vision/src/laser_proc.cpp:109: > instantiated from here > /opt/ros/cturtle/ros/core/roslib/include/ros/service_traits.h:49: > error: > ‘const struct surveyor_ctrl::controlCmd’ has no member named > ‘__getServerMD5Sum’ > /opt/ros/cturtle/ros/core/roslib/include/ros/service_traits.h: In > static > member function ‘static const char* > ros::service_traits::MD5Sum::value(const M&) [with M = > surveyor_ctrl::laserCmd]’: > /opt/ros/cturtle/ros/core/roslib/include/ros/service_traits.h:94: > instantiated from ‘const char* ros::service_traits::md5sum(const M&) > [with M = surveyor_ctrl::laserCmd]’ > /opt/ros/cturtle/ros/core/roscpp/include/ros/service_client.h:90: > instantiated from ‘bool ros::ServiceClient::call(Service&) [with > Service > = surveyor_ctrl::laserCmd]’ > /home/bobrien/newton/surveyor/surveyor_vision/src/laser_proc.cpp:380: > instantiated from here > /opt/ros/cturtle/ros/core/roslib/include/ros/service_traits.h:49: > error: > ‘const struct surveyor_ctrl::laserCmd’ has no member named > ‘__getServerMD5Sum’ > /opt/ros/cturtle/ros/core/roslib/include/ros/service_traits.h: In > static > member function ‘static const char* > ros::service_traits::MD5Sum::value() [with M = > surveyor_ctrl::laserCmd]’: > /opt/ros/cturtle/ros/core/roslib/include/ros/service_traits.h:76: > instantiated from ‘const char* ros::service_traits::md5sum() [with M = > surveyor_ctrl::laserCmd]’ > /opt/ros/cturtle/ros/core/roscpp/include/ros/service_client_options.h:93: > instantiated > from ‘void ros::ServiceClientOptions::init(const std::string&, bool, > const ros::M_string&) [with Service = surveyor_ctrl::laserCmd]’ > /opt/ros/cturtle/ros/core/roscpp/include/ros/node_handle.h:1062: > instantiated from ‘ros::ServiceClient > ros::NodeHandle::serviceClient(const std::string&, bool, const > ros::M_string&) [with Service = surveyor_ctrl::laserCmd]’ > /home/bobrien/newton/surveyor/surveyor_vision/src/laser_proc.cpp:18: > instantiated from here > /opt/ros/cturtle/ros/core/roslib/include/ros/service_traits.h:44: > error: > ‘__s_getServerMD5Sum’ is not a member of ‘surveyor_ctrl::laserCmd’ > /opt/ros/cturtle/ros/core/roslib/include/ros/service_traits.h: In > static > member function ‘static const char* > ros::service_traits::MD5Sum::value() [with M = > surveyor_ctrl::controlCmd]’: > /opt/ros/cturtle/ros/core/roslib/include/ros/service_traits.h:76: > instantiated from ‘const char* ros::service_traits::md5sum() [with M = > surveyor_ctrl::controlCmd]’ > /opt/ros/cturtle/ros/core/roscpp/include/ros/service_client_options.h:93: > instantiated > from ‘void ros::ServiceClientOptions::init(const std::string&, bool, > const ros::M_string&) [with Service = surveyor_ctrl::controlCmd]’ > /opt/ros/cturtle/ros/core/roscpp/include/ros/node_handle.h:1062: > instantiated from ‘ros::ServiceClient > ros::NodeHandle::serviceClient(const std::string&, bool, const > ros::M_string&) [with Service = surveyor_ctrl::controlCmd]’ > /home/bobrien/newton/surveyor/surveyor_vision/src/laser_proc.cpp:33: > instantiated from here > /opt/ros/cturtle/ros/core/roslib/include/ros/service_traits.h:44: > error: > ‘__s_getServerMD5Sum’ is not a member of ‘surveyor_ctrl::controlCmd’ > make[2]: *** [src/CMakeFiles/surveyor_vision.dir/laser_proc.o] Error 1 > make[1]: *** [src/CMakeFiles/surveyor_vision.dir/all] Error 2 > make: *** [all] Error 2 > > -- > Barry O'Brien > Software Engineer > Newton Labs > O: (425) 251-9600 > C: (571) 334-5719 > > ************************************************** > These communications are without prejudice to Newton's rights > under any existing agreement and should not be considered as > binding upon Newton, until Newton affirmatively agrees in writing. > This e-mail and any of its attachments may contain Newton > proprietary information, which is privileged, confidential, or > subject to copyright belonging to Newton family of Companies. This > e-mail is intended solely for the use of the individual or entity > to which it is addressed. If you are not the intended recipient of > this e-mail, you are hereby notified that any dissemination, > distribution, copying, or action taken in relation to the contents > of and attachments to this e-mail is strictly prohibited and may > be unlawful. If you have received this e-mail in error, please > notify the sender immediately and permanently delete the original > and any copy of this e-mail and any printout. Thank You. > ************************************************** > > _______________________________________________ > ros-users mailing list > ros-users@code.ros.org > https://code.ros.org/mailman/listinfo/ros-users > >