<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html; charset=windows-1252"
 http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Hi Josh,<br>
<br>
The code would have been helpful!<br>
<br>
laser_proc.cpp:109: mob_client.call(mob_msg);<br>
<br>
where:<br>
<br>
ros::ServiceClient mob_client =
node.serviceClient<surveyor_ctrl::controlCmd>("robot_control",
true);<br>
<br>
and<br>
<br>
surveyor_ctrl::controlCmd mob_msg; <br>
<br>
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).<br>
<br>
Yes, the laserCmd and controlCmd are generated from .srv files in
surveyor_ctrl.<br>
<br>
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.<br>
<br>
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??<br>
<br>
Thanks for pointing me in the right direction!<br>
<br>
Thanks,<br>
Barry<br>
<br>
<br>
<br>
On 11/09/2010 11:11 AM, Josh Faust wrote:
<blockquote
 cite="mid:AANLkTinvD_9mn4EWbjj9nToa1E6P2SPr_VpiwXSTgJDq@mail.gmail.com"
 type="cite">What is the code that's causing the error? (e.g. 
  <meta http-equiv="content-type"
 content="text/html; charset=windows-1252">
  <span class="Apple-style-span"
 style="font-family: arial,sans-serif; font-size: 13px; border-collapse: collapse;">laser_proc.cpp:109).</span>
  <div><font class="Apple-style-span" face="arial, sans-serif"><span
 class="Apple-style-span" style="border-collapse: collapse;"><br>
  </span></font></div>
  <div><font class="Apple-style-span" face="arial, sans-serif"><span
 class="Apple-style-span" style="border-collapse: collapse;">Are
laserCmd and controlCmd generated from .srv files?  What does their
headers look like?</span></font></div>
  <div><font class="Apple-style-span" face="arial, sans-serif"><span
 class="Apple-style-span" style="border-collapse: collapse;"><br>
  </span></font></div>
  <div><font class="Apple-style-span" face="arial, sans-serif"><span
 class="Apple-style-span" style="border-collapse: collapse;">Josh</span></font></div>
  <div><br>
  <div class="gmail_quote">On Tue, Nov 9, 2010 at 11:01 AM, Barry
O'Brien <span dir="ltr"><<a moz-do-not-send="true"
 href="mailto:bobrien@newtonrobotics.com">bobrien@newtonrobotics.com</a>></span>
wrote:<br>
  <blockquote class="gmail_quote"
 style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hello,<br>
    <br>
I recently upgraded my system from box turtle to cturtle and am having<br>
some odd compilation issues. I am running Ubuntu 9.10 (64-bit).<br>
    <br>
I have four separate ROS nodes that have previously compiled and ran<br>
just fine, but following the upgrade two of the four nodes are no longer<br>
compiling. These two nodes (called surveyor_vision and surveyor_ui)<br>
depend on services (laserCmd, controlCmd) defined in one of the other<br>
(correctly building) nodes (called surveyor_ctrl). As far as I can tell,<br>
the errors have to do with apparent changes to the way Services and<br>
ServiceClients are implemented.<br>
    <br>
After reading through the change logs for cturtle, it is clear that this<br>
functionality was modified between box turtle and cturtle releases, but<br>
that all changes made should have retained backwards compatibility.<br>
Similarly, the OpenCV warnings should have been addressed in incremental<br>
updates according to the mailing list and change logs but are still<br>
being thrown. This is my confusion - I can see that others have seen<br>
these errors/warnings, but that they should have been addressed with the<br>
software I have installed.<br>
    <br>
I have confirmed my Ubuntu package sources list matches that on the ROS<br>
installation documentation, and apt-get reports all sources are<br>
up-to-date. I have also confirmed that my .bashrc correctly points to<br>
the cturtle setup script.<br>
    <br>
My question is are there other places that are maintaining "hidden"<br>
paths to box turtle libraries other than the rather obvious places I<br>
mention above? Or does this point to a required code change in the<br>
instantiation and/or use of these services?<br>
    <br>
Please let me know if there is any other information that I am<br>
forgetting to provide.<br>
    <br>
The output from attempting to build surveyor_vision is below.<br>
    <br>
Thanks,<br>
Barry O'Brien<br>
Newton Robotics<br>
    <br>
0%] Built target rospack_genmsg_libexe<br>
[ 0%] Built target rosbuild_precompile<br>
[ 50%] Building CXX object
src/CMakeFiles/surveyor_vision.dir/laser_proc.o<br>
In file included from<br>
/home/bobrien/newton/surveyor/surveyor_vision/include/surveyor_vision/laser_proc.h:5,<br>
from /home/bobrien/newton/surveyor/surveyor_vision/src/laser_proc.cpp:1:<br>
/opt/ros/cturtle/stacks/vision_opencv/opencv2/opencv/include/opencv/cv.h:47:2:<br>
warning: #warning "This is a deprecated opencv header provided for<br>
compatibility. Please include a header from a corresponding opencv
module"<br>
In file included from<br>
/opt/ros/cturtle/stacks/vision_opencv/opencv2/opencv/include/opencv/cv.h:64,<br>
from<br>
/home/bobrien/newton/surveyor/surveyor_vision/include/surveyor_vision/laser_proc.h:5,<br>
from /home/bobrien/newton/surveyor/surveyor_vision/src/laser_proc.cpp:1:<br>
/opt/ros/cturtle/stacks/vision_opencv/opencv2/opencv/include/opencv2/core/internal.hpp:297:1:<br>
warning: "CV_IMPL" redefined<br>
In file included from<br>
/home/bobrien/newton/surveyor/surveyor_vision/include/surveyor_vision/laser_proc.h:5,<br>
from /home/bobrien/newton/surveyor/surveyor_vision/src/laser_proc.cpp:1:<br>
/opt/ros/cturtle/stacks/vision_opencv/opencv2/opencv/include/opencv/cv.h:60:1:<br>
warning: this is the location of the previous definition<br>
/opt/ros/cturtle/stacks/vision_opencv/opencv2/opencv/include/opencv/cv.h:67:8:<br>
warning: extra tokens at end of #endif directive<br>
In file included from<br>
/opt/ros/cturtle/ros/core/roscpp/include/ros/service_client.h:33,<br>
from /opt/ros/cturtle/ros/core/roscpp/include/ros/node_handle.h:35,<br>
from /opt/ros/cturtle/ros/core/roscpp/include/ros/ros.h:45,<br>
from<br>
/home/bobrien/newton/surveyor/surveyor_vision/include/surveyor_vision/laser_proc.h:4,<br>
from /home/bobrien/newton/surveyor/surveyor_vision/src/laser_proc.cpp:1:<br>
/opt/ros/cturtle/ros/core/roslib/include/ros/service_traits.h: In static<br>
member function ‘static const char*<br>
ros::service_traits::MD5Sum<M>::value(const M&) [with M =<br>
surveyor_ctrl::controlCmd]’:<br>
/opt/ros/cturtle/ros/core/roslib/include/ros/service_traits.h:94:<br>
instantiated from ‘const char* ros::service_traits::md5sum(const M&)<br>
[with M = surveyor_ctrl::controlCmd]’<br>
/opt/ros/cturtle/ros/core/roscpp/include/ros/service_client.h:90:<br>
instantiated from ‘bool ros::ServiceClient::call(Service&) [with
Service<br>
= surveyor_ctrl::controlCmd]’<br>
/home/bobrien/newton/surveyor/surveyor_vision/src/laser_proc.cpp:109:<br>
instantiated from here<br>
/opt/ros/cturtle/ros/core/roslib/include/ros/service_traits.h:49: error:<br>
‘const struct surveyor_ctrl::controlCmd’ has no member named<br>
‘__getServerMD5Sum’<br>
/opt/ros/cturtle/ros/core/roslib/include/ros/service_traits.h: In static<br>
member function ‘static const char*<br>
ros::service_traits::MD5Sum<M>::value(const M&) [with M =<br>
surveyor_ctrl::laserCmd]’:<br>
/opt/ros/cturtle/ros/core/roslib/include/ros/service_traits.h:94:<br>
instantiated from ‘const char* ros::service_traits::md5sum(const M&)<br>
[with M = surveyor_ctrl::laserCmd]’<br>
/opt/ros/cturtle/ros/core/roscpp/include/ros/service_client.h:90:<br>
instantiated from ‘bool ros::ServiceClient::call(Service&) [with
Service<br>
= surveyor_ctrl::laserCmd]’<br>
/home/bobrien/newton/surveyor/surveyor_vision/src/laser_proc.cpp:380:<br>
instantiated from here<br>
/opt/ros/cturtle/ros/core/roslib/include/ros/service_traits.h:49: error:<br>
‘const struct surveyor_ctrl::laserCmd’ has no member named<br>
‘__getServerMD5Sum’<br>
/opt/ros/cturtle/ros/core/roslib/include/ros/service_traits.h: In static<br>
member function ‘static const char*<br>
ros::service_traits::MD5Sum<M>::value() [with M =
surveyor_ctrl::laserCmd]’:<br>
/opt/ros/cturtle/ros/core/roslib/include/ros/service_traits.h:76:<br>
instantiated from ‘const char* ros::service_traits::md5sum() [with M =<br>
surveyor_ctrl::laserCmd]’<br>
/opt/ros/cturtle/ros/core/roscpp/include/ros/service_client_options.h:93:
instantiated<br>
from ‘void ros::ServiceClientOptions::init(const std::string&, bool,<br>
const ros::M_string&) [with Service = surveyor_ctrl::laserCmd]’<br>
/opt/ros/cturtle/ros/core/roscpp/include/ros/node_handle.h:1062:<br>
instantiated from ‘ros::ServiceClient<br>
ros::NodeHandle::serviceClient(const std::string&, bool, const<br>
ros::M_string&) [with Service = surveyor_ctrl::laserCmd]’<br>
/home/bobrien/newton/surveyor/surveyor_vision/src/laser_proc.cpp:18:<br>
instantiated from here<br>
/opt/ros/cturtle/ros/core/roslib/include/ros/service_traits.h:44: error:<br>
‘__s_getServerMD5Sum’ is not a member of ‘surveyor_ctrl::laserCmd’<br>
/opt/ros/cturtle/ros/core/roslib/include/ros/service_traits.h: In static<br>
member function ‘static const char*<br>
ros::service_traits::MD5Sum<M>::value() [with M =<br>
surveyor_ctrl::controlCmd]’:<br>
/opt/ros/cturtle/ros/core/roslib/include/ros/service_traits.h:76:<br>
instantiated from ‘const char* ros::service_traits::md5sum() [with M =<br>
surveyor_ctrl::controlCmd]’<br>
/opt/ros/cturtle/ros/core/roscpp/include/ros/service_client_options.h:93:
instantiated<br>
from ‘void ros::ServiceClientOptions::init(const std::string&, bool,<br>
const ros::M_string&) [with Service = surveyor_ctrl::controlCmd]’<br>
/opt/ros/cturtle/ros/core/roscpp/include/ros/node_handle.h:1062:<br>
instantiated from ‘ros::ServiceClient<br>
ros::NodeHandle::serviceClient(const std::string&, bool, const<br>
ros::M_string&) [with Service = surveyor_ctrl::controlCmd]’<br>
/home/bobrien/newton/surveyor/surveyor_vision/src/laser_proc.cpp:33:<br>
instantiated from here<br>
/opt/ros/cturtle/ros/core/roslib/include/ros/service_traits.h:44: error:<br>
‘__s_getServerMD5Sum’ is not a member of ‘surveyor_ctrl::controlCmd’<br>
make[2]: *** [src/CMakeFiles/surveyor_vision.dir/laser_proc.o] Error 1<br>
make[1]: *** [src/CMakeFiles/surveyor_vision.dir/all] Error 2<br>
make: *** [all] Error 2<br>
    <br>
--<br>
Barry O'Brien<br>
Software Engineer<br>
Newton Labs<br>
O: (425) 251-9600<br>
C: (571) 334-5719<br>
    <br>
**************************************************<br>
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.<br>
**************************************************<br>
    <br>
_______________________________________________<br>
ros-users mailing list<br>
    <a moz-do-not-send="true" href="mailto:ros-users@code.ros.org">ros-users@code.ros.org</a><br>
    <a moz-do-not-send="true"
 href="https://code.ros.org/mailman/listinfo/ros-users" target="_blank">https://code.ros.org/mailman/listinfo/ros-users</a><br>
  </blockquote>
  </div>
  <br>
  </div>
</blockquote>
<br>
</body>
</html>