Are services working on rosserial_windows for anybody?
I had no issue with topics. Well, except the following warnings by rosserial_server socket_node:
[ WARN] [1487041524.344921905]: Failed to call message_info service. Proceeding without full message definition.
[ WARN] [1487041524.345067742]: Advertising on topic [/turtle1/cmd_vel] with an empty message definition. Some tools (e.g. rosbag) may not work correctly.
However, the generated rosservice API...
template<typename MReq, typename MRes>
bool serviceClient(ServiceClient<MReq, MRes>& srv)
... disagreed with the Jade API:
template<class MReq , class MRes >
ServiceClient serviceClient (const std::string &service_name, bool persistent=false, const M_string &header_values=M_string())
// Matches tutorials
template<class Service >
ServiceClient serviceClient (const std::string &service_name, bool persistent=false, const M_string &header_values=M_string())
Also, ros::ServiceClient.call() returns a void in generated code, but a bool according to the Jade API.
When I used the functions and messages (those in rospy_tutorials) that were available, I ended up with a md5sum mismatch error from add_two_ints:
[WARN] [WallTime: 1487041770.026137] Could not process inbound connection: request from [/rosserial_server_socket_node]: md5sums do not match: [] vs. [6a2e34150c00229791cc89ff309fff21]{'service': '/add_two_ints', 'md5sum': '', 'persistent': '0', 'callerid': '/rosserial_server_socket_node'}
and the following errors from rosserial_server socket node:
[ INFO] [1487041524.348951852]: waitForService: Service [/service_info] has not been advertised, waiting...
[ WARN] [1487041529.352305456]: Timed out waiting for service_info service to become available.
[ WARN] [1487041529.352869481]: Failed to call service_info service. The service client will be created with blank md5sum.
[ WARN] [1487041529.352917157]: Service client setup: Request message MD5 mismatch between rosserial client and ROS
[ WARN] [1487041529.353489848]: Service client setup: Response message MD5 mismatch between rosserial client and ROS
ROS parameters don't work either.
Is something wrong with what I am doing or is the roslib code generated by rosserial_windows using a 3-year-old API (Hydro?) that no longer exists? Did it ever work in the first place? (There's no tutorial for services or ROS params.)
My setup (both computers): ROS Indigo, Ubuntu 14.04, Windows 7 SP1, Visual Studio 2015
I'm not sure, but I'd first fix the "Failed to call message_info service." error. Are you using any of the provided launch files? Because launch/socket.launch starts
message_info
fi.Also: can you please clarify what you mean when you mention Hydro? In general mixing and matching versions of ROS is discouraged, but for
rosserial
it typically really does not work.I have a similar problem -- service client not working. My environment: Windows 10 / Visual Studio 2015 Ubuntu 16.04 ROS-Kinetic
and when I install rosserial-windows, I installed the kinetic version i.e. sudo apt-get install ros-kinetic-rosserial-windows and ros-kinetic-rosserial-server