Re: [ros-users] cturtle upgrade issues

Top Page
Attachments:
Message as email
+ (text/plain)
+ (text/html)
Delete this message
Reply to this message
Author: Barry O'Brien
Date:  
To: Josh Faust
CC: User discussions
Subject: Re: [ros-users] cturtle upgrade issues
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
> < <mailto:bobrien@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
>      <mailto:ros-users@code.ros.org>
>     https://code.ros.org/mailman/listinfo/ros-users

>
>