How to pass service parameters in ROSLib.js
According to the ROSLib.js
documentation I did this class
import { Ros, Param, Message, Topic, Service, ServiceRequest } from "roslib";
export default class ROSInterface {
constructor() {
this.ros = new Ros({
url: "ws://localhost:9090",
});
}
createService(service_name, service_type) {
const service = new Service({
ros: this.ros,
name: service_name,
serviceType: service_type,
});
return service;
}
callService(service_name, service_type, params) {
const service = this.createService(service_name, service_type);
const request = new ServiceRequest(params);
service.callService(request, function (result) {
return result;
});
}
}
But I'm confused how can I pass a complex parameters to my service!
My Service looks like this:
geometry_msgs/Point pick
geometry_msgs/Point place
std_msgs/UInt16 speed
std_msgs/Bool arm
I have tried let params = {pick:{x:0.1,y:0.2,z:0.3}, place:{x:-0.1,y:-0.2,z:-0.3},speed: 200, arm: 1}
and it didn't work! can you please tell me how can I form my params variabile properly to make my service works well? thanks in advance.
Can you add service_name and service_type to this? What are you passing
@RanjitKathiriya that is straight forward
const service_name = "/pick_place"; const service_type = "my_interface/PickPlace";