[ros-users] cturtle upgrade issues

Barry O'Brien bobrien at newtonrobotics.com
Tue Nov 9 19:40:16 UTC 2010


Hi Josh,

The code would have been helpful!

laser_proc.cpp:109: mob_client.call(mob_msg);

where:

ros::ServiceClient mob_client = 
node.serviceClient<surveyor_ctrl::controlCmd>("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 
> <bobrien at newtonrobotics.com <mailto:bobrien at newtonrobotics.com>> 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<M>::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<M>::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<M>::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<M>::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 at code.ros.org <mailto:ros-users at code.ros.org>
>     https://code.ros.org/mailman/listinfo/ros-users
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ros.org/pipermail/ros-users/attachments/20101109/084317e3/attachment-0003.html>


More information about the ros-users mailing list